How to sync inventory between Shopify, your ERP and your accounting software without a migration
A practical architecture for keeping stock levels consistent across an online store, a warehouse system and accounting, including the one decision most businesses get wrong.
The symptom is always the same. The store says eight in stock, the warehouse says three, accounting says eleven, and somebody is on the phone apologising to a customer.
The usual response is to look for a new all-in-one system. That is a twelve-month project with a six-figure price tag, and the business still has to run in the meantime. The alternative is to make the systems you already have agree with each other.
Decide the source of truth first
This is the decision most businesses skip, and it is the only one that really matters. Exactly one system must own the stock number. Usually that is the warehouse management system or the ERP, because that is where physical movements are recorded. The store and accounting software become readers, not writers.
Without this rule you get two systems overwriting each other and a number that is wrong in a new way every hour.
The architecture
Three pieces, in order of importance:
- A change feed from the source of truth. Every stock movement (receipt, sale, adjustment, return) produces an event. If the ERP has webhooks, use them. If it only has a database, poll a timestamped table. If it only exports CSV at 6am, watch the folder.
- A small reconciliation service. It receives each change, translates SKUs between systems (they are never identical), and pushes the new level to the store and accounting. Crucially, it keeps a log of what it sent and when.
- A discrepancy check. Once a day, compare every SKU across all three systems. Differences raise a flag for a human rather than being silently corrected. This is how you catch the things nobody anticipated.
What breaks
- SKU mismatches. The store uses
BLU-TSHIRT-M, the ERP uses100234. Build the mapping table on day one and make it editable by someone in operations, not by a developer. - Bundles and kits. A gift box of three products is one SKU in the store and three in the warehouse. Handle it explicitly.
- Rate limits. Shopify will throttle you. Batch updates and back off gracefully.
- Returns. The most common source of phantom stock. Decide whether returned items go back on sale automatically or wait for inspection.
What it costs
A sync between two systems with a clean SKU list is a one-to-two-week project at a flat fee. Three systems with bundles and a legacy ERP is closer to four to six weeks. Either is a fraction of a migration, and the business keeps running throughout.
The services page has the details, or bring your three systems to an audit and I will tell you which one should own the number.