A Shopify ERP integration keeps orders, inventory, customers and refunds consistent between your Shopify store and your ERP or accounting system, so nobody retypes them. Devvista is a software development and growth agency that builds these integrations as custom Shopify apps for merchants in the US, UK, Australia, Canada and the UAE, and is an official Odoo partner. The hard part is not moving data once. It is what happens when a message is lost.
This guide covers what to sync and who owns each field, the design that survives failures, build or buy, what changes by market, a cost example and how to measure it.
01 The Problem: Two Systems, One Truth Missing
A store takes an order. Someone copies it into the ERP, checks stock, and updates the store by hand. When volume rises, errors appear: oversold items, orders missing from the books, refunds that never reach accounting. Each fix costs a person an hour, and each hour repeats weekly.
The cause is that no system was declared the owner of each piece of data. The fix is a written ownership map, a connection that follows it, and a way to detect and repair anything that slips. The sections below build that up.
02 What to Sync, and Which System Owns It
Settle ownership field by field before any code is written. This table is a starting point, and every row should end with one system named.
| Data | Usual direction | Question to settle |
|---|---|---|
| Orders | Shopify to ERP | When is an order created in the ERP: on payment, or on fulfillment? |
| Inventory levels | ERP to Shopify | Which system adjusts stock, and how often? |
| Products and prices | ERP to Shopify, or the reverse | Where are prices maintained? |
| Customers | Shopify to ERP | Do guest checkouts create customers? |
| Refunds and returns | Shopify to ERP | How do part refunds reach accounting? |
| Tax lines | Shopify to ERP | Which tax code does each line map to? |
| Shipping and tracking | ERP to Shopify | Who sends the tracking number? |
If you use Odoo, we plan both sides together, since Devvista is an official Odoo partner. See Odoo implementation and development.
03 A Design That Survives Lost Messages
Shopify's webhook documentation describes webhooks as a mechanism for receiving near-real-time data about events on a shop, and says they are a performant alternative to polling. The same page is candid about limits: webhook delivery isn't always guaranteed, apps can miss or mishandle events through handler failures or downtime, and deliveries are unordered.
Shopify's recommendation is to use reconciliation jobs that periodically fetch data from Shopify so that your app stays consistent, for example using updated_at filters to fetch objects changed since the last run. That gives the design in three parts:
- Webhooks for speed. New orders and refunds reach the ERP in near real time.
- A reconciliation job for safety. On a schedule, compare what Shopify holds with what the ERP holds, and repair gaps.
- A visible failure list. A screen where your team sees anything stuck, with the reason, instead of a silent log.
Because deliveries are unordered, the app must also cope with a refund arriving before the order it belongs to, using timestamps rather than arrival order.
04 Build a Custom App or Buy a Connector
Start with a connector from the App Store if one fits your ERP and your rules. A pre-built connector is cheaper and faster when your workflow is standard. Build custom when your pricing, stock rules or tax mapping are your own, when two or three connectors are patched together, or when you need the failure screen and reconciliation described above.
For a single merchant, Shopify's app distribution documentation says custom distribution is typical: it installs on one store, needs no approval, and cannot charge merchants through Shopify's app billing. Shopify describes the REST Admin API as a legacy API as of October 1, 2024, so a new integration should be built on the GraphQL Admin API. More on the build side is on our custom Shopify app development page.
05 What Changes by Market: US, UK, Australia, Canada and the UAE
The architecture is the same everywhere. The mapping is not, because tax codes, currencies and registrations differ:
- United States: sales tax lines map to your ERP's tax codes, and tax is your responsibility under Shopify's own tax page.
- United Kingdom: VAT lines map to VAT codes, and the accounting package (Xero, Sage and others) must receive tax-inclusive or tax-exclusive amounts consistently.
- Australia: GST lines map to GST codes. Shopify's tax page lists Australia under Basic Tax without GST detail, so mapping is confirmed with your accountant.
- Canada: GST/HST and provincial lines map to the right codes per region, and Shopify's Canadian tax setup help says to configure only the regions where you are registered.
- United Arab Emirates: VAT lines map to your ERP's VAT codes. Shopify's tax page does not cover the UAE, so setup is confirmed with your accountant and Shopify support.
If you sell in several currencies, decide whether the ERP records the store currency or your base currency, and where conversion happens. Shopify Markets controls currency and tax by region on the Shopify side, and the integration has to respect it.
06 What a Shopify ERP Integration Costs
Devvista prices fixed projects from $500 to $100,000 depending on complexity, or hourly work from $10 to $100 an hour depending on the developer. Hosting for the app's backend is a separate monthly cost.
Worked example (an estimate, not a quote). Assume a two-way sync of inventory and orders between a Shopify store and an ERP with two warehouses, tax-code mapping, a reconciliation job and a failure screen, at one illustrative rate of $40 an hour:
| Work | Hours |
|---|---|
| Ownership map and spec | 16 |
| App scaffold, authentication and webhooks | 18 |
| Inventory sync across two warehouses | 28 |
| Order sync | 28 |
| Refunds and tax-code mapping | 20 |
| Reconciliation job and failure screen | 18 |
| Testing with real cases | 20 |
| Handover | 8 |
| Total | 156 hours, about $6,240 at $40 an hour |
As an estimate, that is four to seven weeks of calendar time. More systems or more custom rules cost more.
07 How to Measure It, and Where Devvista Fits
Pick three numbers before the build: hours per week spent re-entering orders, orders needing a manual fix, and stock mismatches found each month. Check the failure list weekly for the first month. A short list that shrinks is healthy, and one that grows means a rule was missed.
Devvista is a software development and growth agency that builds Shopify ERP integrations, including Odoo, as custom apps with reconciliation and a visible failure screen. A good fit: a store that already knows which system should own which data. Not a fit: a store where a standard connector already does the job. Book a call and bring your ERP name and the manual steps your team repeats.
? Frequently Asked Questions
→ Related Resources
More on connecting Shopify to your back office: