Migration & integrations
ERP integration
Enterprise Resource Planning
ERP integration connects Shopify to the system a business runs its operations on — NetSuite, SAP, Business Central — so products, inventory, orders, and invoices stay in sync. The ERP is normally the system of record for stock and pricing, and Shopify the sales channel that reflects it. Getting the sync direction and cadence right is what prevents overselling.
Why it matters
An ERP integration is the difference between a storefront that reflects the business and one that contradicts it. When the sync is wrong, the symptoms are commercial rather than technical: stock sold that does not exist, prices that lag a rate change by a day, orders that reach the warehouse twice, and a finance team reconciling by hand every month.
The cost is asymmetric. A slightly stale product description is a nuisance; overselling a limited line is a refund, an apology, and a customer who does not come back. This is why integration work is judged on correctness rather than speed.
It also decides how much the business can grow without hiring. Manual re-keying between systems scales linearly with order volume, and it is usually the first thing to break at a seasonal peak.
How it works on Shopify
Every integration starts with one decision repeated per field: which system is the record of truth. Stock and cost price normally belong to the ERP, marketing copy and imagery to Shopify, and customers to whichever system the business actually serves them from. Written down, this becomes a mapping table; skipped, it becomes an argument six months later.
Direction follows from that. Inventory and pricing flow ERP → Shopify, orders and fulfilments flow Shopify → ERP, and very little should be bidirectional — two systems both claiming authority over one field is how data corrupts.
Cadence is the next choice. Webhooks push order events the moment they happen, while inventory typically runs on a scheduled delta sync. Full catalogue syncs on a timer are the pattern that eventually collapses under API rate limits.
The join key should be the SKU, never the product title. Titles get edited by marketing, and a rename should not silently create a duplicate.
Common mistakes
- No system of record per field. Both sides write, both sides overwrite, and nobody can explain last night's price change.
- Polling everything on a schedule. Full syncs are simple to write and the first thing to hit rate limits at volume. Sync deltas.
- No idempotency. A retried webhook that creates a second order in the ERP is the classic production incident. Every write needs an idempotency key and a replay-safe handler.
- Ignoring multi-location inventory. Shopify tracks stock per location. An integration that writes a single aggregate number breaks fulfilment routing and click-and-collect.
- Testing against production. Integration work belongs on a staging store with a sandbox ERP, not on live inventory.
- No error surface. Failures that only appear in a log nobody reads become week-old data gaps. Sync failures need alerting to a human.
When you need help
The trigger is usually a number the business cannot trust. If stock levels in Shopify and the ERP disagree and nobody can say which is right, the integration needs auditing before anything new is built on top of it.
The other trigger is the middleware decision. Choosing between an off-the-shelf connector, an iPaaS, and a custom integration depends on how unusual the ERP configuration is — and a connector that covers 80% of the requirement often costs more to work around than a purpose-built sync costs to write. Getting that assessment wrong is expensive in both directions, which is why it is worth a second opinion before committing.
Need this done on your store?
Shopify developmentRelated terms
- API integrationAn API integration connects Shopify to another system — an ERP, a 3PL, a CRM — so data flows between them without manual re-entry. Direction and authority matter more than the plumbing: deciding which system owns inventory, and which merely reflects it, prevents the two from overwriting each other. Most integration bugs are ownership bugs, not transport bugs.
- OMSAn OMS, or order management system, is the layer that decides how each order is routed, fulfilled, and tracked across warehouses, stores, and 3PLs. It is what makes ship-from-store, split shipments, and partial returns work as one coherent process. Merchants selling through several channels usually need one; a single-warehouse store typically does not.
- PIMA PIM, or product information management system, is the central store for product data — descriptions, specs, images, translations — that feeds every sales channel from one source. It earns its place when a catalogue is large, changes often, or has to be published in several languages and marketplaces at once. Below that, Shopify's metafields and metaobjects usually do the job.