Uncategorized

Shopify Order Is Still Unfulfilled Even Though Tracking Exists: Fulfillment Status, Apps and Manual Fixes

A tracking number and a Shopify fulfillment are related, but they are not the same thing. An order can contain tracking information somewhere in an app, note or external warehouse system while Shopify still considers its line items unfulfilled. Shopify changes the order’s fulfillment status only when a fulfillment record is created for the relevant items.

This distinction explains a common support ticket: “The supplier shipped the parcel and I can see tracking, but Shopify still says Unfulfilled.” The fix is to identify where the tracking exists and whether the system that shipped the order actually created or updated a Shopify fulfillment.

What “Unfulfilled” means in Shopify

Fulfillment status describes whether the order’s items have been marked as fulfilled. Payment status is separate. A paid order can remain unfulfilled, and an order can be partially fulfilled when only some items have shipped.

The tracking number is data attached to a fulfillment. If a third-party app never created that fulfillment, putting a tracking number into the supplier’s own dashboard does not automatically change Shopify’s order status.

First question: where can you actually see the tracking number?

Where tracking appears What it usually means
Inside the Shopify fulfillment card A Shopify fulfillment exists; inspect its status and items
Only in a supplier app The app may not have written fulfillment back to Shopify
Only in order notes or tags Tracking was stored as text, not as a fulfillment
Only in an email from the warehouse No Shopify update has necessarily happened
In a 3PL portal Check whether the integration is configured to push fulfillments

Scenario 1: the app received the order but its fulfillment request failed

Apps that act as fulfillment services can accept or reject fulfillment requests. Shopify documents app-based fulfillment workflows separately from manual fulfillment. If the service declines or cannot complete the request, the order can remain unfulfilled even though the warehouse later creates a shipment outside the expected workflow.

Check the app event log and the Shopify order timeline for failed requests, cancellations, holds or errors.

Scenario 2: the warehouse shipped outside the integration

This happens when a warehouse operator prints a label directly in a carrier portal or another WMS rather than through the connected workflow. The parcel is real, but Shopify never received the event.

In that situation, the merchant may need to create the fulfillment manually and attach the real carrier and tracking number — assuming the integration is not expected to send the update later. Otherwise a delayed webhook could create a duplicate fulfillment.

Scenario 3: only part of the order shipped

If an order contains three line items and the supplier shipped two, the correct status is usually partial fulfillment rather than fully fulfilled. Do not mark the final item fulfilled just to make the order look “complete.” That removes a useful operational signal and can tell the customer something has shipped when it has not.

Create separate fulfillments when separate parcels leave at different times, each with its own items and tracking.

Scenario 4: a fulfillment hold is blocking normal processing

Shopify supports fulfillment holds. An app, fraud workflow or operational process can place an item on hold. The order-level status can therefore remain unfulfilled or on hold while someone externally ships the parcel.

Before manually changing status, identify why the hold exists. Clearing the symptom without understanding the workflow can make the next order fail in exactly the same way.

Scenario 5: the integration created tracking but not the expected line-item mapping

Integrations must identify which fulfillment-order line items they are fulfilling. A SKU mismatch, changed variant or stale mapping can allow a supplier to ship something while the API update fails because Shopify no longer recognizes the item reference expected by the app.

Compare the Shopify variant ID and SKU with the supplier’s item ID for the affected order. If only certain products fail, mapping is more likely than a global connection problem.

A safe manual correction

If you have verified that the package has genuinely been handed to the carrier and no connected app will create the fulfillment later:

  1. Open the order in Shopify.
  2. Select the correct unfulfilled items and quantities.
  3. Create the fulfillment using Shopify’s current fulfillment controls.
  4. Add the real tracking number and carrier.
  5. Decide whether the customer should receive the shipping notification.
  6. Confirm the order now shows the intended fulfillment status.

Do not invent tracking or mark an order fulfilled merely to clear the admin queue.

Why duplicate fulfillment is the main risk

If an app retries later, your manual fulfillment and the delayed app event can collide. The physical supplier might also interpret a second request as a new shipment.

Before manual correction, check whether the supplier order is already in a terminal state such as shipped and whether the integration uses idempotent fulfillment updates. If the system is unreliable, pause automatic retry while reconciling the affected order.

Tracking exists but the customer cannot see it

The customer-facing order status page displays tracking when tracking has been added to the relevant fulfillment. If tracking lives only in an app note or custom metafield, the standard order-status experience may not show it.

After fixing the fulfillment, test the customer view rather than relying only on the admin page.

Build a reconciliation report

Stores using a 3PL, dropshipping supplier or ERP should regularly compare:

  • Shopify orders with unfulfilled items older than the normal handling time;
  • supplier orders marked shipped;
  • tracking numbers issued by the warehouse;
  • Shopify fulfillments and their tracking;
  • orders with a fulfillment hold;
  • partial orders where one line item has aged unusually long.

A daily exception report catches the problem before customers ask why their order says “unfulfilled” even though a parcel is moving.

Official Shopify references

Need hands-on help?

Let’s make your store easier to run — and easier to buy from.

Explore services