Connecting Shopify to an ERP or fulfilment system

Apps and integrations 9 min read

A warehouse desk where a screen and shelves of stock face each other
Two systems, one number. Decide who owns it before you connect them.

Integration projects fail on ownership, not on protocol. Once two systems both believe they own the stock number, every subsequent bug is a symptom of that one unmade decision.

So the first deliverable is not code. It is a table.

The ownership table you write first#

Connecting Shopify to an ERP or fulfilment system — The ownership table you write first
FieldOwnerDirection
Product master dataUsually ERPERP → Shopify
PriceUsually ERPERP → Shopify
Stock levelOne system, never bothWarehouse → Shopify
OrdersShopifyShopify → ERP
Fulfilment status and trackingWarehouseWarehouse → Shopify
Customer recordDepends; decide explicitlyOne direction only

The rules that keep it sane#

  1. One owner per field, and the other system never writes it.
  2. Sync in one direction per field. Bidirectional sync is where the loops live.
  3. Use a stable external identifier — SKU, not internal database IDs.
  4. Make everything idempotent so a replay is harmless.
  5. Log every message with its identifier so a disputed order can be traced end to end.

Stock is the hard part#

Stock is the field everyone wants to write and nobody wants to own. Pick the system closest to the physical goods, usually the warehouse, and let it be authoritative. Shopify then reflects that number rather than negotiating with it.

Oversells are almost always a symptom of two writers, not of sync latency. Fix ownership before tuning frequency.

Plan for the boring failures#

The warehouse goes offline for an hour; the ERP rejects a malformed address; a product exists in one system and not the other. None of these are exotic, and all of them need a defined behaviour and a place where a human can see the queue.

Frequently asked questions

Real-time or batch sync?

Orders promptly, stock frequently, product data on a schedule. Real-time everything costs more and improves little.

Should we use a middleware platform?

For several systems, yes — it centralises retries, logs and mapping. For one integration it is often more moving parts than value.

Who fixes a stuck message at 2am?

Decide before launch. An integration without an owner and a visible queue becomes silent data loss.

shopify erp integrationshopify fulfilment integrationshopify inventory syncshopify warehouse integrationshopify middleware

All guides

Last updated 2026-08-04 by shopifydevelopment.info · About us

Written by builders

Every guide is written by developers who build and maintain Shopify stores, not spun from other sites.

Reviewed on a schedule

Shopify ships changes constantly. Each guide carries the date of its last review, and we publish the date even when nothing changed.

No paid placements

No app, theme shop, agency or partner can buy a mention, a ranking or a link here.

Twelve languages

Every guide is translated, not machine-popped — each language has its own URL and its own review date.

Limits named

We say plainly what Shopify will not let you change, and when another platform fits your rules better.