Shopify

Connecting Shopify to your ERP or accounting system: Odoo, SAP Business One, Dynamics, Zoho

A Shopify to ERP connection works only if you decide which system owns which data. This guide covers three ways to connect, Shopify's webhook and API limits, what vendor pages show, and questions to ask.

ESTASOFT
11 min read
Cover image for a guide to connecting Shopify to an ERP or accounting system, covering source of truth, connector or custom build, webhooks and limits, and questions to ask.
On this page
    On this page

      Orders arrive in Shopify, but your accountant works in another system. Someone re-keys the orders, stock counts drift, and month end can take days. Connecting Shopify to your ERP or accounting system can remove that work. It only works if you decide first which system owns which data and what happens when a message fails.

      This article is for the owner or finance lead who has to choose and brief the connection. It covers three ways to connect, the Shopify limits that shape any design, what the pages of Microsoft, Zoho, Odoo and SAP show about Shopify connections, and questions to ask before you sign. It does not rank any connector. Pages were read on 3 November 2026, and vendors change them, so ask each supplier for the current version.

      Decide which system owns which data

      A connection moves data one way or both ways. Two-way sync sounds safe, but if both systems can edit the same record, you must say which one wins. Write a rule for each of these before anyone builds:

      • Products, descriptions and images: created in the ERP, in Shopify, or both?
      • Prices: which system holds them, including trade prices for companies?
      • Stock: which system counts it, and which Shopify location matches which warehouse?
      • Orders: they usually start in Shopify. Do they travel at payment or after fulfilment?
      • Customers: how do you match a Shopify customer to an ERP account, by email, phone or tax number?
      • Fulfilment, refunds and payouts: which system records each, and which account does it post to?

      Vendors set different defaults, which is why your own rule matters. Microsoft's pages show Business Central sending stock and prices to Shopify, receiving orders from Shopify, and syncing products and customers both ways. Zoho's help page shows orders flowing from Shopify to Zoho Inventory, items syncing alongside them, and a setting that pushes stock from Zoho to Shopify. A third-party Odoo app listing describes two-way sync for products and orders. None of the pages read for this article names one master for every record.

      Three ways to connect

      Direct connector. An app or module that links the two systems, installed and set up by you or a partner. It fits when your process is close to standard and the vendor's page shows the flows you need. Ask who maintains it and what happens when Shopify releases a new API version. Microsoft's FAQ says Shopify releases a version every quarter and supports each for 12 months, and that its Business Central connector adopts the latest version in major Business Central releases. The FAQ warns that calls can be blocked if you stay on an unsupported version.

      Middleware. A service between the two systems that holds the mapping rules, retries and logs. It fits when you connect more than two systems, such as Shopify, an ERP, a warehouse and a courier, or when you want one place to see failures. The trade-off is one more supplier and one more recurring cost, so ask for both in writing.

      Custom build. A private integration written for your rules, using Shopify's Admin API and your ERP's own API. It fits when your pricing, bundles or approval steps do not fit a connector. You own the mapping, and you need ongoing care because API versions change. Read custom software or off-the-shelf for the build or buy choice, and who owns the code before you sign. Our integrations and APIs page describes this kind of work.

      What Shopify's developer pages mean for the design

      Four points from Shopify's developer documentation affect every pattern above.

      Webhooks are messages, not guarantees. A webhook is a message Shopify sends when something happens, such as a new order. Shopify can deliver it to a web address, Google Cloud Pub/Sub or Amazon EventBridge. Your receiver must reply within five seconds. A failed delivery is retried up to eight times within four hours, and a subscription can be removed if failures persist. Shopify also says delivery is not always guaranteed, order is not guaranteed, and the same message can arrive twice, so the receiver should use the delivery ID Shopify sends to ignore repeats. Its advice is to run regular jobs that fetch changed records by their updated time, instead of trusting webhooks alone. Ask your supplier to show you that job.

      Rate limits are cost-based. The GraphQL Admin API counts points, not requests. The restore rate is 100 points a second on standard plans, 200 on Advanced, 1,000 on Plus and 2,000 on Shopify for enterprise, and one query can cost at most 1,000 points. A large catalog sync or a flash sale can hit these limits, so ask how the integration slows down and retries. For big reads, Shopify points to bulk operations. They return a file, must finish within 10 days, and the query itself does not count against the rate limits. The download link expires after one week. Shopify also says that once a store has 500,000 variants, it can create no more than 10,000 new variants a day, and Plus stores are exempt from that extra limit.

      Inventory has its own model. Shopify holds a quantity for each item at each location, in states such as available, on hand, committed and reserved. Shopify manages committed stock through orders, and the API cannot change it. Your system can set a quantity or adjust it by a difference. Shopify's inventory guide recommends sending the quantity you expect before a change, so that a change fails instead of overwriting a newer one. It says to skip that check when your system is the source of truth and the change must apply regardless. It also lets each change carry a reference to the source document, which helps your accountant trace it.

      Access is scoped. An app asks for named permissions, and the stock functions need inventory read and write permissions. Ask which permissions the integration requests and who holds the credentials.

      What each vendor's own pages show

      Dynamics 365 Business Central. Microsoft's Learn pages describe a Shopify Connector. They show products and customers syncing both ways, stock and prices going to Shopify, orders (with refund data) and payouts coming from Shopify, and optional tracking sent back. It supports several Shopify shops and logs for troubleshooting. Microsoft's FAQ says it works only with Business Central online, not on-premises. You need both a Business Central licence and a Shopify licence. It does not work with other Dynamics 365 apps such as Sales or Supply Chain Management, so a company on those products cannot assume it applies. Microsoft's overview lists setting up a Shopify account for testing as a step. Its support page points to Microsoft partners for help and to Shopify's Help Center for Shopify questions.

      Zoho. Zoho Inventory's help page shows orders flowing from Shopify, items syncing alongside them, and a stock sync setting that pushes stock from Zoho to Shopify. Customers map either to one customer or to a custom setup, and Zoho warehouses can map to Shopify locations. It says successful sync records are deleted after a month and failed ones after two months, so keep your own audit trail. Zoho's Australian product page adds that shipment details created in Zoho become available in your Shopify store, and that you choose whether orders sync when confirmed or when confirmed and fulfilled. Neither page describes a Shopify to Zoho Books sync, so if Zoho Books is your accounting system, ask how orders and payouts reach it.

      Odoo. Odoo's own documentation for version 19.0 includes a page titled Shopify Connector configuration. Its body text could not be read when this article was checked, so this guide does not describe it. Ask Odoo or your Odoo partner what your version supports. The Odoo Apps store also lists connectors from named publishers other than Odoo. Two listings read for this article come from Emipro Technologies and Astratech Systems, and the Astratech listing carries a Third Party label. Emipro's lists two-way product and order sync, stock export based on Odoo stock movements, and payout import with reconciliation. Astratech's lists Shopify products, orders and customers coming into Odoo. Listings are specific to an Odoo version and may carry release notes and user reviews, so read those and ask who supports the module you are offered.

      SAP Business One. SAP's learning pages describe the Service Layer, a server that gives web access to Business One data. It uses REST and OData, exchanges JSON, and supports Basic and OAuth sign-in. A Shopify App Store listing by a third party, eShopSync, describes a one-way sync from Business One to Shopify, with items becoming products and item groups becoming categories. The listing shows a launch date of October 2023. It lists the Service Layer, a HANA database and Business One 10.0 or later as prerequisites, says no middleware is used, describes no sync of orders back to SAP, and makes no claim of SAP endorsement. An undated SAP Community post lists Shopify among the templates of an older integration hub. A banner on that post says SAP no longer sells or supports the Intercompany Integration Solution it came with and that the content is outdated. Do not treat it as proof of a current connection. Ask your SAP partner what is supported for your Business One version today.

      Questions to ask before you sign

      • Which system owns products, prices, stock, customers and orders? Show me the rule in writing.
      • Which vendor page or document describes this connection, who maintains it, and what happens when Shopify changes its API?
      • What happens to an order when the ERP is down? Is it queued and retried, who sees the failure, and who is alerted?
      • How do you handle a message that arrives twice, or never arrives? Show me the regular check that catches missed changes.
      • How is stock protected when a sale and a stock update happen together?
      • Which Shopify plan does the design assume, given the rate limits above?
      • Which permissions does the app request, and who holds the credentials?
      • How are tax, discounts, shipping, refunds and payouts mapped to accounts, and has my accountant signed off the mapping?
      • Can we test on a separate Shopify store before going live?
      • Who owns the integration code, the mapping document and the credentials if we change supplier?

      ESTASOFT has offices in Dubai, Erbil and London and offers integrations and APIs work. Send a short brief on the contact page with your ERP name and version, your Shopify plan, the data flows you need and where it hurts today. If you are still running on spreadsheets, read spreadsheets to one system first.

      This is general information, not legal or tax advice. Check the current rules or ask a qualified adviser before you decide.

      Sources

      Written by
      ESTASOFT

      Need help with a project?

      Share a short brief. We reply with next steps.

      Book a call

      30 minutes. Free.

      Tell us about your project and we will suggest a time.

      Or email us at info@estasoft.com