Connecting a warehouse system to Shopify, WooCommerce or Amazon
5 min read · Updated
The short answer
A warehouse system sits behind your storefront rather than replacing it. The store takes the order and the payment; the warehouse system imports it once it is paid, reserves the stock, directs the pick and pack, and then pushes the carrier and tracking number back so the store marks the order shipped and emails the customer. Stock levels flow the other way — available quantity is published back to the storefront so it stops selling what is already promised. The four things worth confirming before you commit are which order statuses trigger an import, whether tracking is pushed back automatically, whether published stock is available or on-hand, and what happens to an order that arrives while the connection is down.
What actually moves between the two systems
| Flow | Direction | When | What breaks if it fails |
|---|---|---|---|
| Orders | Store → warehouse | When the order reaches a paid status | The order never gets picked. This is the failure that customers notice first. |
| Stock levels | Warehouse → store | After every movement, or on a schedule | The store oversells stock that is already reserved against another order. |
| Fulfilment and tracking | Warehouse → store | When the parcel ships | The customer's order page says 'processing' forever and support gets the email. |
| Product data | Store → warehouse | On setup, then on change | New products arrive as unmatched order lines that need a human. |
The third row is the one most often quietly missing, and it is the one that generates support tickets. An order can be picked, packed, shipped and closed inside the warehouse system while the customer's own order page still says processing, because nothing sent the tracking number back. The warehouse thinks it is done and the customer thinks nothing has happened.
Which order statuses should trigger an import
This sounds like configuration trivia and it is the single most common source of missing orders.
Every platform has its own vocabulary. WooCommerce uses processing for a paid order awaiting fulfilment and completed for one already fulfilled, and a store using a payment plugin may introduce its own statuses on top. Shopify separates financial status from fulfilment status, so an order can be paid and unfulfilled at once. Amazon has its own set again.
If the warehouse system imports only one status and your store uses another — because you installed a bank-transfer plugin, or turned on pre-orders — those orders will never arrive. Nothing errors: the sync reports success, having correctly found nothing it recognised.
Ask which statuses are imported and whether you can change the list. If the answer is a fixed set chosen by the vendor, you have a limit you will hit the first time you change how you take payments.
Available, not on hand
When a warehouse system publishes stock back to a storefront, it must publish available quantity — what is physically here minus what is already reserved against unshipped orders — and not on-hand quantity.
Publishing on hand is how a store sells the same unit twice. You have 40 tubs, 30 are reserved against orders picked but not yet shipped, and the storefront is told 40. The next 10 orders are fine and the 11th is an apology.
It is worth asking directly, because both numbers are real and a vendor answering 'we sync your stock levels' has not answered the question.
The timezone bug that eats orders
Worth knowing about because it is common, it is silent, and you can detect it yourself in about five minutes.
Most connectors poll for orders changed since the last check, and they store that timestamp as a cursor. If the connector sends the cursor in UTC and the store compares it against its own local timestamps, the two are offset by however many hours your store is from UTC — and any order that arrives inside that window is skipped. Because the cursor still moves forward, the gap is never revisited. The order does not fail; it is simply never seen.
To check: place a test order, note the exact time, and see whether it appears in the warehouse system on the next sync. Then compare a few days of order counts on both sides. If the warehouse is consistently a few orders short, and the missing ones cluster in a particular part of the day, this is why.
What happens when the connection is down
Storefronts go down, plugins get updated mid-day, and API tokens expire. The question is not whether the connection will fail but what state you are left in when it does.
- Are missed orders picked up on the next successful sync, or does the cursor move past them? A cursor that advances on a failed run loses everything in the gap permanently.
- Is a failed tracking push retried, and can you see that it failed? A push that fails once and is never retried leaves a shipped order showing as processing on the customer's account, with nothing anywhere to say so.
- Can you re-import a specific order on demand? When one order is missing, you want to fetch that order — not to re-run a whole day's sync and hope.
- Is there a record of what was imported, skipped and why? Without one, diagnosing a missing order is guesswork.
These are unglamorous questions and they are the ones that decide how much of your week the integration costs you.
If you sell on more than one channel
Selling the same SKU on a website and a marketplace makes the stock-publishing question sharper, because each channel independently believes it can sell what it has been told about.
The workable arrangement is one source of truth — the warehouse system — publishing available quantity to every channel promptly after each movement. The failure mode to avoid is each channel holding its own allocation, which turns overselling into a permanent budgeting exercise where you deliberately under-publish stock on every channel and carry the lost sales as a cost.
Ask how quickly stock is republished after a movement. A system that syncs hourly is fine at ten orders a day and produces oversells at two hundred.
Common questions
Do I need warehouse management software if I use Shopify?
- Shopify tracks how much stock you have; it does not track which bin it is in, direct a pick route, verify what went in the box, or handle lots and expiry dates. If you have one location, one picker and no lot tracking, Shopify's own inventory is often enough. Once more than one person picks, stock is reserved before it ships, or you need batch traceability, a warehouse system behind the storefront starts paying for itself.
How does a warehouse system send tracking numbers back to my store?
- Either by calling the storefront's fulfilment API directly — which moves the order to shipped and writes the tracking number into its field — or by sending a webhook that your store or middleware receives and acts on. Confirm which one applies to your platform, and confirm that a failed push is retried and visible. A shipped order that never reached the storefront looks fine in the warehouse and unresolved to the customer.
Why are some orders not syncing from WooCommerce?
- The two usual causes are order status and timezone. If the connector imports only specific statuses — commonly processing and completed — orders sitting in a status added by a payment plugin are never picked up, and the sync reports success because it correctly found nothing it recognised. The second is a cursor sent in UTC and compared against site-local timestamps, which silently skips orders inside the offset window. Both fail quietly rather than erroring.
Should my storefront show on-hand or available stock?
- Available — what is physically present minus what is already reserved against orders that have not shipped. Publishing on-hand quantity is the standard way to oversell: the units are genuinely there, but they are already promised to somebody else. Ask a vendor specifically which figure they publish, because 'we sync your stock levels' does not answer it.
Can one warehouse system handle Shopify and Amazon at the same time?
- Yes, and it is the main reason to have one. The warehouse becomes the single source of truth for stock and publishes available quantity to every channel, rather than each channel holding its own allocation. The thing to check is how quickly stock is republished after a movement — a system syncing hourly is fine at low volume and starts producing oversells as order rates climb.
Kinetel does the things described on this page.
Inventory and lot tracking, barcode scanning, guided and batch picking, pack verification and shipping — for growing product companies, not for enterprises with an implementation budget.