ShipStation shipped but Shopify still says Unfulfilled? Fix fulfillment sync-back

ShipStation generated the label, the carrier picked up the package, and your team considers the order done — but Shopify still shows Unfulfilled. The customer never received a shipment-confirmation email. Their tracking number is sitting in ShipStation with nowhere to go. When they write in asking "where's my order?", you have to dig through two systems to piece together what happened.

This is the reverse of the better-known sync problem. It's not about orders failing to reach ShipStation — it's about fulfillments failing to make the return trip. Here is why it happens and what to do about it.

The short answer

ShipStation is supposed to push a fulfillment update — including the tracking number — back to Shopify the moment a label is created or an order is marked shipped. When that update is missing, it's almost always one of these: the Notify Marketplace setting is off or was bypassed, a momentary API error or rate-limit caused a silent failure, the order shipped under a duplicate or mis-mapped store connection, or a known integration bug disrupted the notification batch. First move: open the Shipments tab in ShipStation, find the order, and check the Smart Document Tracking column — it will say "Notified" or "Failed".

Why ShipStation fulfillments don't reach Shopify

1. Notify Marketplace is off or was skipped

ShipStation's Shopify integration relies on a Notify Marketplace step to push the fulfillment update. This can be disabled globally in store settings, suppressed by an automation rule, or accidentally bypassed when an operator uses the "Mark as Shipped" manual flow without checking the notify option. If notifications are configured to fire only after a carrier scan (rather than at label creation), they can also appear delayed or missed if the scan data never comes back.

Per ShipStation's Marketplace Shipment Notifications guide, successful notifications show as Notified in the Smart Document Tracking column; failures show as Failed. A "Failed" status means Shopify never received the update.

2. A momentary API error or rate-limit caused a silent failure

Shopify's API enforces rate limits, and ShipStation pushes fulfillment updates in batches. During high-volume periods — a sale weekend, a batch of end-of-day shipments — a transient error or throttle response can cause individual fulfillment notifications to fail without surfacing any visible alert on either side. The order ships, the label exists, but the API call that was supposed to close the loop timed out or was rejected.

3. The order shipped under a different or duplicate store record

If you connect multiple Shopify stores to ShipStation, or if a store was reconnected under a new credentials set at some point, it's possible the order imported under store connection A but the fulfillment update was pushed to store connection B — or to no store at all if the mapping is stale. The result is a fulfilled shipment that Shopify has no record of receiving.

4. A known integration bug silently broke the batch

There is a documented class of breakage where marketplace notifications stop working for a period of time due to API changes or ShipStation-side bugs. Community reports — including a February 2024 incident discussed in the Shopify community — describe orders fulfilled in ShipStation abruptly stopping their Shopify notifications with no error visible to the operator. Fulfillments continue in ShipStation; Shopify never hears about them.

5. Split shipments only partially notify

When an order ships in multiple packages, ShipStation can send a partial notification — one tracking number reaches Shopify, the rest don't — leaving the Shopify order in a half-fulfilled state. Some line items show fulfilled; others remain open. The customer receives one shipment-confirmation email (if that) and no visibility on the rest of the order.

The cost of missing the sync-back

A gap that stays invisible for a day or two quickly turns into a support queue problem. The customer has no shipment-confirmation email and no tracking link, so they write in. Your team has to manually pull the tracking number from ShipStation, paste it into a reply, and figure out why Shopify didn't send the automated notification. Multiply that by a dozen orders in a busy week and you're looking at real support load from work that was already done.

The subtler cost is analytic: Shopify's fulfillment reports and order-status dashboards count these orders as unfulfilled. Inventory adjustments that depend on fulfillment status can lag. If you use Shopify's built-in post-purchase flows or loyalty triggers keyed to fulfillment events, they simply don't fire.

How to fix it, step by step

  1. Check Smart Document Tracking first. In ShipStation, go to the Shipments tab, locate the affected order, and look at the Smart Document Tracking column. "Failed" confirms the notification never landed.

  2. Re-send the notification manually. For orders showing "Failed", use ShipStation's Notify Marketplace option (available in the order or shipment detail view) to re-push the fulfillment update to Shopify. This sends the tracking number and marks the order fulfilled without re-creating the shipment.

  3. Verify Notify Marketplace is enabled globally. In ShipStation, go to Settings → Selling Channels → Store Setup, open the Shopify store, and confirm that marketplace notifications are set to fire at label creation (or your preferred trigger). Check any automation rules that touch order status — a rule that marks orders shipped can bypass the notification step if configured incorrectly.

  4. Check your store mapping. If you have more than one Shopify store connected, confirm the affected orders imported under the correct store record. A mismatch here means re-pushing the notification goes to the wrong destination.

  5. Run a daily reconciliation for the same window. Pull your "shipped today" list from ShipStation and your "fulfilled today" list from Shopify for the same date range. Any order number that appears in ShipStation's shipped list but is absent from Shopify's fulfilled list is a sync gap. For small volumes this can be a manual CSV comparison; for larger operations, Shopify's Fulfillments API lets you query fulfillment status programmatically.

  6. For persistent or batch failures, contact ShipStation support. Provide the shipment IDs and the Smart Document Tracking status. If a broader integration bug is active, support can identify it and escalate; individual re-sends won't fix a systemic notification failure.

For the full Shopify integration reference, see ShipStation's Shopify Integration Guide.

How to stop losing these silently

The step-by-step above fixes individual gaps after you already know about them. The harder problem is that most sync-back failures are invisible until a customer complains — and by then you're in reactive mode.

A daily reconciliation (step 5) is the right structural fix, but running it manually is tedious and easy to skip on busy days. That's exactly the gap StuckOrders was built to close. It connects read-only to both Shopify and ShipStation and surfaces the shipped-in-ShipStation-but-still-Unfulfilled-in-Shopify mismatch as a queue item — with an owner, an age, and a suggested next action — before the customer writes in. You don't need to remember to run the comparison; the exception surfaces automatically.

If you want to see how many of these slipped through in the last month, get a free 30-day stuck-order audit. You connect read-only, no WMS or OMS required, and the audit shows you the real gap before you decide whether to do anything about it.

Related