Migration & integrations
API integration
An 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.
Why it matters
Most integration failures are not transport failures. The API call succeeded, the payload was well-formed, the response was 200 — and the data is still wrong, because two systems both believed they owned the same field and the last one to write won.
This is why integration work is a design exercise before it is a coding exercise. Deciding which system is authoritative for each piece of data, and which merely reflects it, prevents an entire category of bugs that are otherwise diagnosed one incident at a time over months.
The second reason it matters is scale. Manual re-entry between systems works until volume grows, and then it breaks during the busiest week of the year, which is exactly when nobody has time to fix it.
How it works on Shopify
Start with a field-level ownership map. For every piece of data flowing between systems — price, stock, product copy, customer records, order status — one system owns it and the others read it. Written down, this is a table. Skipped, it becomes an argument during an incident.
Direction follows ownership. Inventory and cost price typically flow inward from an ERP; orders and fulfilments flow outward. Bidirectional sync on a single field should be rare and deliberate.
Mechanism follows urgency. Webhooks push events as they happen and suit anything order-related. Scheduled delta syncs suit inventory and pricing. Full syncs on a timer are the pattern that collapses under Admin API rate limits as the catalogue grows — bulk operations exist for large work.
Three properties separate an integration that survives from one that does not: idempotency, so a retry cannot duplicate an order; backoff, so throttling is handled rather than dropped; and observable failures, so a sync that stops working alerts a person rather than going quiet.
Common mistakes
- No ownership map. The root cause of most data corruption between systems.
- Bidirectional everything. Two systems overwriting each other in turn.
- Polling full datasets. Simple to build, first thing to hit rate limits.
- No idempotency. Duplicate orders from retried webhooks, discovered by finance.
- Silent failures. Logged where nobody looks, found a week later as a data gap.
- Matching on names. Titles get edited. Match on SKU or ID.
- Testing in production. A staging store and a sandbox endpoint exist for this.
When you need help
The trigger is a figure the business cannot trust — stock levels disagreeing between systems, orders appearing twice, prices lagging a change. Each incident looks like a one-off until someone audits the integration as a whole.
The other case is the build-or-buy decision. An off-the-shelf connector covering 80% of the requirement can cost more to work around than a purpose-built sync costs to write, and that assessment depends on how unusual the connected system's configuration is. Getting it wrong is expensive in both directions, which makes it worth a second opinion before committing.
Need this done on your store?
Shopify developmentRelated terms
- WebhookA webhook is a message Shopify sends to your server the moment something happens — an order is paid, a product is updated, a customer is created — so external systems react immediately instead of polling for changes. Webhooks are delivered at least once and can arrive out of order, so a correct integration handles duplicates and verifies the HMAC signature on every request.
- ERP integrationERP 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.
- Admin APIThe Admin API is Shopify's privileged GraphQL API for reading and writing store data — creating products, fulfilling orders, editing inventory. Unlike the Storefront API it must never be called from a browser, because its tokens can mutate the store. Apps, integrations, and back-office automations run against it, subject to rate limits that scale with plan.