How SKU.io spots an order the provider already has
A 3PL or shipping app can get the same store order two ways: from SKU.io, and from its own connection to your store. If both happen, the customer can receive the order twice. So before SKU.io sends a fulfillment order to a provider, it checks the orders that provider imported by itself, and holds the fulfillment order when it finds the same one.
What SKU.io compares
SKU.io compares the sales order with the orders the provider holds from your stores:
- the store's own order, the same Shopify order, for example
- the order number, with or without a leading
# - the shipping postcode, ignoring spaces and a US ZIP+4 extension
It only looks at orders the provider imported itself, at the same provider connection. Orders SKU.io sent, and orders the provider has cancelled, never count.
Strong and possible matches
| Match | When | What SKU.io does |
|---|---|---|
| Strong match | It's the same store order, or the order number and the postcode both match. | Holds it for review. During a cutover, it links it to the provider's order for you. |
| Possible match | Only the order number matches: the postcode differs or is missing. | Always holds it for review, and never links it on its own. Order numbers can repeat across sales channels. |
| No match | — | Sends it as normal. |
The check runs every time an order is sent, whether automatically, from Submit, or as a retry, so a held order can't slip out another way. If the provider imports the order in the same moment SKU.io sends it, both copies can reach the provider. SKU.io then flags the pair on the sales order, so you can cancel one at the provider before it ships.
When a provider cancels the order a hold pointed at, the hold no longer applies. SKU.io clears it and sends the fulfillment order, still checking for duplicates.
When it runs
The check runs for every provider that lets SKU.io read the orders it imports itself, at all times, not only during a cutover. If a provider never had its own store connection, nothing ever matches and orders go out as before. Some providers, such as Shippit and ShipRush, don't let SKU.io read those orders, so SKU.io can't check them. Turn off their own store import before SKU.io sends orders to them.
Next steps
- Resolve an "Already at" hold — link, send anyway or cancel a held order.
- Switch a sales channel from your 3PL's store import to SKU.io — move a channel over in one planned step.