← back to field notes
research DISPATCH Nº 111 · · 10 MIN READ ·

How to catch Shopify orders that never sync to ShipStation

Shopify says paid. The customer has a confirmation. And your fulfillment software has no row, because the order never arrived and nothing on either side told you. Here is the community record of the silent sync gap, why nobody owns the seam it falls through, and the playbook that catches the missing order in minutes instead of on day nine.

The order lands on a Tuesday morning: paid in full, confirmation sent, another green row in a busy week. You never think about it again, because there is nothing to think about. The store took the money, the warehouse ships what the store sends it, and the pipe between them has worked ten thousand times.

Nine days later the customer emails, polite but puzzled, asking where her order is. You open ShipStation to check the label and there is no label, because there is no order. Not delayed, not stuck in a status, not flagged. Absent. Shopify shows a paid order aging quietly in the open list; ShipStation has never heard of it. Somewhere between the two systems is a gap with no error message, no email, and no dashboard, and your order spent nine days at the bottom of it until a customer went looking for you.

A failure with no error message

Most fulfillment problems announce themselves. A label fails to print, a carrier scan goes quiet, a package stops moving, and somewhere a status turns red. The sync gap is different in kind: both dashboards report that everything is fine, because each one is telling its own local truth. Shopify shows a healthy paid order. ShipStation shows a clean import feed. The failure lives in the space between them, and no system reports on a space.

That is what makes this one expensive out of proportion to its frequency. A missing order does not cost you a shipping fee; it costs you the nine silent days, the where is my order ticket that arrives angry, the refund or the overnight shipping you throw at the apology, and sometimes the chargeback from the customer who stopped waiting. All of it for an order you would have shipped happily on day one, if anything had told you it existed.

The community record

The definitive document is a thread opened in March 2024, by a merchant who had started diffing Shopify against ShipStation by hand because orders kept vanishing between them: about one a week that we know about, he wrote, and the parenthesis is the whole story, because you only ever count the ones you catch. He mapped the failure chain precisely. The customer pays. A new tax amount is applied at checkout. The authorization is voided. Shopify emails the customer a payment failure notice, then resends the invoice; the invoice gets paid. And the order, paid and real and owed to a customer, never exports. A week later he updated the count to at least half a dozen orders a week, always tied to Shop Pay. ShipStation, to their credit, checked their side and confirmed the interesting part: no import event ever arrived. The order did not fail to import. It was never offered.

Then comes the part every merchant who has touched this problem can recite. Shopify staff replied: have you been in contact with ShipStation? He had; the failure was on the Shopify end of the pipe. Second staff reply: please contact our support team. Two months later new merchants were arriving in the thread with the same signature, very randomly, one wrote, and ShipStation says it's not their problem. Another: just caught the first one, and will now have to go back and review orders to see if there are others. The final staff word, in May 2024, closed the loop without closing anything: ShipStation is fully in control of their app integration and how orders sync with their services. Each vendor is correct about its own half of the seam, and the seam stays unowned.

The genre is older than that thread and bigger than ShipStation. In February 2021 a merchant posted that Printful never received two orders his customers had already been charged for; the orders went through on Shopify's side, the customers got confirmations, and the print shop got nothing. The official advice was the quiet part said out loud: refund the customers, cancel the orders, and move on. In March 2022 another merchant reported orders simply not flowing into ShipStation with everything on both sides connected correctly; the thread collected a me-too in June 2023 and was still drawing replies in May 2025. A sibling thread on connection trouble sits at 8 replies and 677 views, also active May 2025. And in October 2025 a merchant posted his own workaround to a thread that drew zero replies, having discovered that orders marked as fulfilled in Shopify are silently blocked from importing; he had to publish a YouTube video to document a failure mode no official source describes.

◆ NOTE The record, in the merchants' own words: about one missing order a week that we know about, revised within days to at least half a dozen a week. A diff between two systems described as a nightmare in busy seasons where we'll have thousands of orders per day. Printful orders paid in 2021 that the printer never saw, answered with advice to refund. Threads opened in 2022 still drawing replies in 2025. ShipStation on the record that no import event ever arrived; Shopify staff on the record, twice, that the integration belongs to ShipStation.

Why the seam leaks

The individual causes are mundane, which is part of why the problem hides so well. An authorization voided and repaid leaves the order in a payment state the export never picks up, first cousin to the payment that expires before you capture it. An order already marked fulfilled in Shopify is skipped by design, the October 2025 merchant's whole mystery. Manual and draft orders do not always flow the way online store orders do. A hold, an archived order, a payment still pending, a ShipStation-side filter or tag rule, a second store connection claiming the import, or an order landing in a status nobody checks: each is a door the order can quietly not walk through.

What they share is the shape. Every one of these failures is invisible from inside either system, because neither system is wrong about itself. The order that never exported looks exactly like every other open order in the Shopify queue, and ShipStation cannot alert you about an order it never received; there is nothing on their side to alert about. The only vantage point that can see the failure is the one that looks at both lists at once. Which today is you, with two browser tabs and an export.

The diff is the right idea in the wrong tool

Notice what the March 2024 merchant actually built, in between support tickets: a catch. He pulled the orders from Shopify, pulled the orders from ShipStation, and compared. That is the correct instinct, and it is the whole design, and his own verdict on it stands: doing it by hand is a nightmare in busy seasons where we'll have thousands of orders per day. A manual diff is a Tuesday chore that stops happening the first week two people are out sick, which is also the week of the sale, which is when the missing orders are worth the most.

The machine version is reconciliation on a clock, and the interesting work is in the judgment, not the comparison. Because the naive rule, alert on every Shopify order not yet in ShipStation, drowns you in false alarms: the feed pulls on an interval, and a normal order is briefly missing from the queue dozens of times a day. The automation has to know your store's normal lag, the way a good ops person does, and flag the order that misses its window, not the one that is thirty seconds young. And it has to read the exceptions like a human would: an order held on purpose is not missing, it is waiting; an order parked for a bad address is a different queue; an order cancelled an hour after it was placed was never owed to the warehouse at all. Sorting missing from waiting from dead is exactly the reading task, the same shape as every judgment call in the automations no one builds.

What the automation actually has to do

As a Dugong playbook, in plain prose:

# trigger
On every new paid order,
and on a clock for the queue

# steps
1. Baseline the lag: how long a
   normal order takes to appear
   in the fulfillment queue
2. Reconcile on a clock: every paid
   open order has a matching row,
   all statuses checked
3. Read the seam: voided auths,
   repaid invoices, holds, manual
   orders, the skip signatures
4. Chase the gap: alert with the
   order, its age, and the
   probable cause attached
5. Watch the way back: tracking
   that never lands in Shopify
   gets the same treatment
6. Digest every morning: what
   synced, what lagged, what
   needed a hand
7. Report weekly: gaps caught,
   causes named, the pipe's
   honest error rate

Step two is the heart, and the phrase all statuses checked is earned: the community troubleshooting for this problem starts with the discovery that an order can import and still be invisible, filed under a status or a store nobody looks at. So the reconciler checks presence anywhere before it cries missing, and a manual refresh counts as the first chase, because sometimes the feed is merely late and the fix is a nudge.

Step three is what turns an alert into a diagnosis. The March 2024 thread proved these failures have signatures: a voided authorization followed by a repaid invoice was the fingerprint of every missing order in that thread. When the flag arrives with the fingerprint attached, the fix is a two minute manual push instead of a twenty minute investigation, and the weekly report can say something no dashboard says today: this is the door the orders leak through, this is how often, this is the pattern to send to support with the ticket.

Step five closes the loop most merchants forget. The pipe leaks in both directions: an order can ship perfectly and the tracking number never make it back onto the Shopify order, which leaves Shopify emailing nobody and the customer refreshing an order page that says unfulfilled forever. Same seam, same watch: fulfillment created on one side must land on the other inside its normal lag, or someone hears about it. And because a missing order that is found late is still a late order, the chase hands off to the workflow that already knows what to tell a customer when a promise slips.

The honest limit, stated plainly: none of this fixes the export pipeline itself. If Shopify never emits the event, the bug belongs to Shopify and ShipStation, and only they can patch it; on the record so far, each is still pointing at the other. What the automation changes is the discovery time. Every documented case of this failure was discovered by a customer, days late, one complaint at a time. A reconciled queue discovers it the hour it happens, with the evidence already gathered, which converts a reputation problem into a chore.

Why this is a compiler problem, not an app problem

There are connector apps that promise a better pipe, and the threads recommend a few. A sturdier pipe is worth having and changes nothing about the argument, because any pipe can drop an order, and a second pipe is a second seam. What you want is not a promise that the pipe never leaks; it is a watcher that notices the leak, and the definition of noticing is specific to your store. How long is normal lag for you, at noon and at midnight during a drop? Which orders is your second warehouse supposed to see, and which belong to the 3PL? Does a net terms order count as missing when your fulfillment tool refuses unpaid orders by design? Who gets paged, and after how many minutes, and does the answer change in November? Those are sentences about your operation. They should compile into the workflow as written, instead of being shaved down to whatever a settings page happens to expose.

Run the Tuesday order again with the sentences compiled. The order lands at 9:14, paid. At 9:44 it has no row in ShipStation, which is outside your store's twenty minute norm, and the reconciler checks all statuses, runs a refresh, and looks at the payment timeline: authorization voided, invoice repaid. Known fingerprint. The alert lands in Slack at 9:52 with the order number, the age, and the cause; whoever is on queue duty pushes it across by hand before the morning pick, and the incident closes at nine minutes old instead of nine days. The customer never learns any of this happened, which is the entire point.


The workflow worth building this week

Start with one diff, today, because the backlog is where the surprises live. Export open, paid, unfulfilled orders from Shopify for the last sixty days; export everything from ShipStation or your 3PL across all statuses; compare order numbers. On most stores the list of gaps is zero and you have bought yourself a calm morning. If it is not zero, you have found orders that are owed to customers right now, and each one is worth a personal email before it becomes a ticket.

Then put the reconciler on a clock in observe mode for a week: let it learn your normal lag, watch what it flags, and tune the grace window until the false alarms go quiet. While it runs, write down what your exceptions actually are, the holds, the net terms orders, the preorders your warehouse should not see yet, because those sentences are the difference between a watcher you trust and a watcher you mute.

Then say the brief the way you would hand it to a new hire. Every paid order should show up in ShipStation within twenty minutes; check all statuses before calling one missing, and try a refresh first. If it is still missing, tell me right away with the order number and what the payment timeline shows. Watch the other direction too: if something ships and the tracking never lands in Shopify within the hour, same alarm. Give me a morning digest and a weekly count of what leaked and why. That is the whole paragraph. The compiler turns it into the workflow, and the next order that falls into the gap gets caught by a machine at minute twenty-one instead of by a customer on day nine.

◆ READING Two companion pieces if this one landed: the package that stops moving, on the silence that starts after the label prints, and the tracking number you paste by hand, on the same seam leaking in the other direction.

If you are a Shopify merchant with a sync story, the order that surfaced in a complaint, the diff you ran at midnight in November, the fingerprint you found in a payment timeline, the inbox is open: field-notes@dugong.live. We are collecting case studies for the next issue.

research essay
share · copy link · ✦
◆ COMMON QUESTIONS

Why are my Shopify orders not syncing to ShipStation?

Usually because the order is in a state the integration will not import, and nothing tells you which state that is. The documented offenders: a payment authorization that was voided and repaid, which is the Shop Pay chain a March 2024 community thread mapped in detail, a new tax amount applied at checkout, the authorization voided, a payment failure email sent, the invoice paid again, and the order never exports. Orders already marked fulfilled in Shopify are skipped, which an October 2025 merchant identified as his whole problem. Manual and draft orders often do not flow the way online store orders do. Payment pending states, order holds, archived orders, and ShipStation-side filters, tags, or a second store connection can each hide an order, sometimes in a status other than Awaiting Shipment. The structural problem is that no one owns the seam: Shopify staff answered the 2024 thread twice by pointing at ShipStation, while ShipStation confirmed no import event ever reached their side. Check every status in ShipStation, force a manual store refresh, then read the order's payment timeline in Shopify for a voided authorization. And treat any one you find as evidence of others, because this failure never announces itself.

How do I find Shopify orders that never imported into ShipStation or my 3PL?

Diff the two lists, because neither side will volunteer the gap. Export your open, paid, unfulfilled orders from Shopify for the window you care about, export everything from ShipStation across all statuses, not just Awaiting Shipment, and compare order numbers. Anything paid in Shopify with no row anywhere in ShipStation is a missing order. Before you conclude that, run a manual store refresh in ShipStation, since the scheduled pull can simply be late. The merchant who documented the Shop Pay export bug did exactly this diff and found about one missing order a week that he knew about, which is the honest phrasing, because you only ever count the ones you catch. His own words for doing it manually at scale: a nightmare in busy seasons where we'll have thousands of orders per day. That is the argument for making the diff continuous instead of heroic: a reconciliation that runs on a clock, knows how long a normal order takes to appear in the queue, and flags any paid order that misses its window, so the gap is found in minutes by a machine instead of in day nine by your customer.

Can AI catch Shopify orders that never reach my fulfillment software automatically?

Yes, and it is the right shape of work for it, because the job is reconciliation plus judgment. An automation like Dugong watches both sides of the seam: every paid, open, shippable Shopify order must have a matching row in ShipStation or the 3PL within the lag a normal order takes, and one that misses the window gets flagged with its story attached, how old it is, what the payment timeline shows, whether it matches a known signature like a voided and repaid authorization, a manual order, or a hold. The judgment matters at the edges: an order on a deliberate hold or failing address validation is not missing, it is waiting, and a blind rule cannot tell those apart. The same watch runs the pipe in reverse, catching shipments whose tracking never lands back on the Shopify order, which is its own quiet genre of customer confusion. What no automation can do is patch Shopify's export pipeline itself: if the platform never emits the event, the fix belongs to Shopify and ShipStation. What changes is the discovery time. The documented cases surfaced when customers asked where their orders were. A reconciled queue surfaces the same failure the hour it happens, with the evidence already gathered.

Do Shopify orders marked as fulfilled sync to ShipStation?

No. An order already marked fulfilled in Shopify is skipped by the import by design, which turned out to be the whole mystery for the merchant in an October 2025 community thread whose orders had stopped arriving. The skip list is longer than most merchants learn until something goes missing: manual and draft orders do not always flow the way online store orders do, a payment still pending keeps an order back, holds and archived orders sit outside the export, and on the ShipStation side a filter, a tag rule, or a second store connection can claim or hide the import. None of these announce themselves. The order looks normal in Shopify, and ShipStation cannot alert you about a row it never received, so the gap is invisible from inside either system. Before concluding an order is missing, check every status and every store connection in ShipStation, run a manual store refresh since the scheduled pull can simply be late, and then read the order itself for the state that kept it home: a fulfillment written too early, a hold, or a payment timeline that never settled.

Why is the tracking number from ShipStation not showing on my Shopify order?

Because the pipe leaks in both directions, and the return trip gets even less attention than the import. An order can ship perfectly and the tracking number never make it back onto the Shopify order, which leaves Shopify emailing nobody and the customer refreshing an order page that says unfulfilled forever. It is the same seam as the missing import, reversed: a fulfillment created on one side must land on the other within your store's normal lag, and neither dashboard tells you when it does not. The watch that catches it is the same reconciliation pointed the other way, one that knows how long tracking normally takes to land and flags the shipment that misses its window with the order and its age attached, so someone can push the number across by hand before the customer notices. The standing caveat applies in this direction too: no watcher patches the pipeline itself. If the platform never emits the event, the fix belongs to Shopify and ShipStation, and what the automation changes is the discovery time, from a customer complaint days later to an alert the hour it happens.