Integrations 6 min read

Shopify fulfilment integration explained

What a Shopify fulfilment integration really does: order flow, inventory sync, tracking, multi-location stock and the causes of overselling.

A laptop on a studio desk beside kraft mailer bags, representing a webshop connected to fulfilment

“We integrate with Shopify” is one of the least informative sentences in logistics. It can describe a robust two-way connection that updates inventory within seconds, or a nightly spreadsheet import that someone runs by hand.

Both are technically integrations. Only one prevents you from selling stock you no longer have. This article explains what the connection is actually doing, so you can tell which one you are being offered.

The four jobs an integration has to do

Strip away the marketing and a fulfilment integration performs four functions. Each can fail independently.

1. Order export. New paid orders leave Shopify and arrive in the warehouse system, with the address, the line items, the shipping method chosen and any gift message. This is the easy part; almost everyone does it acceptably.

2. Inventory sync. The warehouse tells Shopify how much of each SKU is available. This is the part that goes wrong, and the part that costs you money when it does.

3. Fulfilment confirmation. When a parcel ships, the warehouse writes back a fulfilment record with the carrier and tracking number, which triggers Shopify’s shipping confirmation email. If this is slow or partial, customers email you asking where their order is.

4. Returns and adjustments. Returned or damaged units are reflected back so your available quantity stays truthful.

When you evaluate a provider, ask about each of the four separately. A confident answer to one is often used to imply competence in all.

Why inventory sync is the hard one

Overselling happens in the gap between a sale and the rest of your system finding out. Two things determine how big that gap is.

Sync direction. In a one-way setup, Shopify is told what stock exists but nothing flows back reliably, or vice versa. Two-way sync means both systems converge on the same number. You want two-way, with the warehouse as the source of truth for physical quantity — it is the only system that knows what is actually on the shelf.

Sync trigger. Polling means the warehouse asks Shopify for new orders every n minutes. Webhooks mean Shopify pushes the order the moment it is paid. Webhook-driven flows are near-instant; polling every 15 minutes gives you a 15-minute window in which two customers can buy the last unit.

The practical questions to ask:

Multi-location: the setting that quietly breaks things

Shopify supports multiple inventory locations, and a fulfilment integration normally appears as one of them. This is where configuration errors hide.

If your 3PL’s location is set up but your old “Shop location” still shows stock, Shopify adds them together and shows a total you cannot actually ship. Customers buy against phantom availability. The fix is unglamorous but essential:

  1. Confirm exactly one location holds sellable stock for each SKU, unless you genuinely operate two.
  2. Zero out legacy locations after the stock transfer completes, not before.
  3. Check the fulfilment priority order, which decides where Shopify routes an order when more than one location has stock.
  4. Verify that pre-orders and back-orders behave as intended, because “continue selling when out of stock” interacts with all of the above.

Go through this with your provider on a screen share before launch. It takes twenty minutes and prevents the most common post-migration incident.

Multi-channel allocation

If you sell on Shopify plus a marketplace plus wholesale, one physical pool of stock is being promised to several audiences at once. Ask how allocation is handled:

Shared pools maximise sell-through but risk overselling on the slowest-syncing channel. Reserved buffers are safer and slightly less efficient. Neither is wrong, but the decision should be deliberate. This is the substance behind webshop integration as a service rather than a checkbox.

What good looks like

CapabilityWeak setupWhat to ask for
Order transferBatched hourly or by CSVWebhook-driven, near-instant
Inventory syncOne-way, periodicTwo-way, event-driven, warehouse authoritative
Tracking write-backManual or next-dayAutomatic at dispatch, per parcel
Partial shipmentsNot supportedSupported with separate tracking
Failure handlingSilentQueued, retried, alerted
Multi-locationIgnoredExplicitly configured and verified
VisibilityEmail the account managerDashboard showing on-hand, reserved, dispatched

Failure modes worth planning for

Integrations do not fail cleanly. Plan for these:

Address validation. Shopify accepts what the customer types. Warehouses need deliverable addresses. Ask what happens to an order with a missing house number — does it stop and alert, or ship and fail?

SKU mismatches. The most common data problem. A SKU renamed in Shopify but not in the warehouse becomes an order nobody can pick. Freeze SKU naming during migration and agree who owns changes afterwards.

Bundles and kits. If you sell a set that is three physical items, the warehouse needs a bill of materials and Shopify needs to decrement all three components. Ask explicitly how bundles are handled — see kitting and subscription boxes for the operational side.

Duplicate fulfilments. A retry that is not idempotent can ship an order twice. Ask how duplicate protection works.

Cancellations and edits. An order cancelled after export but before picking must be stopped. Ask what the cut-off for an edit is, and whether it is enforced by the system or by an email to a human.

A pre-launch test script

Before you go live, run these in a test or low-volume window. All of them, in order:

  1. Place a single-item order. Confirm it reaches the warehouse within seconds and inventory drops in Shopify.
  2. Place a multi-item order. Confirm it picks as one shipment.
  3. Place an order that must split. Confirm both parcels write back separate tracking.
  4. Cancel an order immediately. Confirm it is stopped, not shipped.
  5. Adjust stock in the warehouse. Confirm Shopify reflects it.
  6. Process a return. Confirm availability increases only after inspection.
  7. Order the last unit of a SKU twice in quick succession from two browsers. Confirm the second is prevented, and see how fast the block applies.
  8. Order with a deliberately incomplete address. Confirm it alerts rather than silently failing.

Test 7 is the one that matters most and the one almost nobody runs.

Frequently asked questions

How quickly should stock sync between Shopify and a warehouse? Aim for seconds, not hours. Event-driven updates on order placement and dispatch are standard now; anything on a fixed schedule of 15 minutes or more leaves a window where overselling is possible.

Can I use a 3PL and still sell on marketplaces? Yes, and this is exactly where a proper integration earns its cost, because one physical stock pool has to be represented accurately across several channels.

Do I need a custom app, or is an off-the-shelf one enough? Most brands are well served by a maintained native app. Custom work is justified when you have unusual bundling, subscription logic or an ERP in the middle.

What breaks most often after going live? Multi-location misconfiguration leaving phantom stock at a legacy location, and SKU mismatches introduced by renaming products after migration.

Share this article
Discuss your product idea →