Development

Connecting Shopify to ERP and inventory systems

September 16, 2026 · 6 min · zrapp.group

As soon as a store runs alongside a counter, a wholesale arm or a second channel, the same question appears: how do stock, prices and orders move between Shopify and your inventory system without anyone typing. This article covers how such integrations are built, when a ready-made connector is enough, and where they fail in practice.

Key takeaways
  • Before any technology comes a commercial question: which system owns which data? Skip it and you build a permanent conflict.
  • Stock almost always flows from the inventory system into the store, orders the other way.
  • Off-the-shelf connectors pay off for standard systems. Once your process deviates, a custom integration beats the workaround.
  • The most common failure is the key: without a unique article number on both sides, no sync works.

First decide which system owns the data

The most important decision happens before the first line of code. For every kind of data it must be clear which system holds the truth and which only mirrors it.

Usually the inventory system owns articles, prices and stock; Shopify owns orders and customer accounts. Letting both sides maintain the same thing creates conflicts nobody can resolve later — and you usually notice only after an item was sold twice.

Which data flows where

A typical integration consists of four routes. Rarely more at the start:

  • Articles and prices from the inventory system into the store — usually daily or on change.
  • Stock levels the same way but more often. The scarcer the goods, the shorter the interval.
  • Orders from the store into the inventory system, right after payment.
  • Shipping and tracking data back into the store so the customer sees status.

The key decides everything

Every sync needs a unique match between both sides. In practice that is the article number, in Shopify usually the SKU field.

This is exactly where most projects fail: numbers do not match, variants have no number of their own, or the same number was issued twice. That is master-data cleanup — and it belongs before the integration, not after.

Ready-made connector or custom integration

Common systems have connectors in the App Store. If yours is among them and your process matches the standard, that is the fastest and cheapest route — building against it would be uneconomical.

The calculation flips once your process deviates: custom pricing rules, bills of materials, batches, several warehouses with priorities, or a system nothing exists for. Then the connector turns into workarounds and manual steps that cost more over time than an integration built for the process.

What Shopify provides

Shopify offers an Admin API to read and write products, stock and orders. On top of that come webhooks: Shopify actively reports when an order arrives or something changes, instead of a system polling constantly.

In practice that means orders reach your inventory system in seconds rather than in a batch run. That is not a detail — it is the difference between a warehouse that keeps up and one that lags.

What an integration has to survive

Integrations do not run undisturbed — a system is in maintenance, a response never arrives, a number does not match. What matters is what happens then.

A usable integration retries failed transfers automatically, logs what was transferred in a traceable way, and raises an alarm when something stays stuck. Without that you learn about the outage when a customer calls.

We build our integrations with logging and retries for exactly that reason. The same principle sits inside our own apps — for example zrapp, which transfers paid orders to sevdesk and Lexware Office.

Sources and review basis

Product features were checked against the current zrapp implementation. Tax information is not individual advice.

Frequently asked questions

How often should stock be synced?

It depends on the range. Minute intervals for scarce goods, hourly or daily for uncritical stock. More often is not always better, since every transfer creates load.

What happens when something fails?

A good integration retries automatically, logs the operation and raises an alarm if it stays stuck. Silent failure is the real damage.

Do we need Shopify Plus for this?

Usually not. The APIs are available on standard plans as well.

How long does such a project take?

The technical part is rarely the long one. Master data decides — if article numbers match on both sides, it moves quickly.

zrapp.group Logo

Connecting Shopify to your inventory system?

Tell us which system you run — we will say whether a ready-made connector is enough or what a custom integration costs.

Request a project
Related articles
Development
Shopify Plus: when the upgrade actually pays off
Development
Setting up Shopify B2B: companies, price lists, payment terms
Development
Shopify headless: when the effort pays off — and when it does not
Start a project