There are three ways to connect an ERP to Shopify: the ERP vendor's own connector, an integration platform such as Celigo, or a custom integration. The right one depends less on the ERP than on how unusual your business rules are. A store with one warehouse, one price list and standard fulfilment is well served by a connector. A business with several warehouses, B2B pricing, multiple storefronts or rules no connector can express will pay for a custom build sooner or later - the only question is whether it pays once or every year.
What an ERP integration actually moves
An integration is a set of flows, and each flow has a direction. Getting the directions right matters more than any tool choice, because two systems that both believe they own the same value will quietly overwrite each other. In a typical setup the ERP is the source of truth for the catalogue and the money, and Shopify is the source of truth for the order.
- Products and variants, ERP to Shopify: items become products, matched by SKU.
- Prices and price lists, ERP to Shopify: store prices plus customer or group lists for B2B.
- Stock by warehouse, ERP to Shopify: quantities per warehouse mapped to Shopify locations.
- Orders, Shopify to ERP: every order created as a sales order, with lines, discounts, shipping and payment.
- Customers, both ways: matched by email or phone, created where missing.
- Fulfilment and invoices, ERP to Shopify: tracking numbers and status returned, the invoice raised in the ERP.
The SKU is what holds all of this together. It's the key that matches an ERP item to a Shopify variant, so the single most useful thing you can do before any integration project is to make sure every variant has a SKU and no two share one. Missing and duplicated SKUs cause more failed syncs than any API problem.
Option 1: the vendor's own connector
Where an official connector exists and fits, start there. It's maintained by the vendor, it's usually the cheapest route, and it covers the common flows. The catch is in the fit, and the detail that matters most is often hosting and version.
Microsoft Dynamics 365 Business Central is the clearest example. Microsoft ships an official Shopify Connector that syncs items, stock, orders, customers and shipments, supports more than one Shopify store, and comes preinstalled for new Business Central sign-ups. But it is only available on Business Central Online. If you run Business Central on-premises, the connector isn't an option and the integration has to be built against Business Central's APIs instead.
NetSuite has one too. Oracle acquired the connector vendor FarApp in 2021, and its Shopify connector now ships as NetSuite Connector, supported by Oracle NetSuite and added to your account through your NetSuite account manager. It's well suited to fairly simple integrations; merchants with heavier customisation, B2B or multi-subsidiary logic tend to move on to an integration platform or a custom build.
Odoo is narrower still. Odoo's own first-party Shopify connector only works on Odoo.sh and requires version 19. It also imports products from Shopify into Odoo rather than publishing them from Odoo - which is the opposite of what most merchants want when Odoo is where the catalogue is managed. On earlier versions, self-hosted Odoo or Odoo Online, the choice is a third-party connector from the Odoo App Store or a custom integration. Odoo Online doesn't allow third-party modules at all, so there the integration has to run as an external service against Odoo's API.
Check a connector's hosting and version requirements before anything else. A connector that covers every flow you need is still no use if it doesn't run where your ERP does.
Option 2: an integration platform
An iPaaS - an integration platform as a service - sits between the two systems and runs configurable flows built from prebuilt connectors. For NetSuite and Shopify, Celigo is the best-known example. Its Shopify App Store listing describes syncing customers, items, orders, cancellations, refunds and returns, B2B companies and catalogues, inventory from warehouses including kits, products with variations, and multiple stores into one NetSuite account.
The strength of a platform is speed: standard flows can be running in weeks, and they're maintained for you. The cost is recurring. Celigo's NetSuite listing shows a 30-day free trial and then a starting package at $7,800 a year, with a limit on endpoints - and larger setups with more flows cost more. That's reasonable for standard processes. It becomes harder to justify when most of the value is in custom logic you're paying a platform to host, or when the subscription keeps growing as you add stores and markets.
Option 3: a custom integration
A custom integration is a small dedicated service that talks to your ERP's API on one side and Shopify's on the other, with your business rules written into it. It costs more up front than turning on a connector, and less over time than a platform subscription. More importantly, it can express anything: stock calculated as available-to-sell after open orders and a safety buffer, orders routed to a different subsidiary by country, B2B customers given their own price list and payment terms, several Shopify stores against one ERP company with different logic for each.
It's the usual route for ERPs without an official connector - SAP Business One and Priority among them - and for NetSuite, Business Central and Odoo setups that have outgrown their connectors or sit outside their hosting and version requirements.
How to choose
- Choose the vendor connector if one exists for your hosting and version, and it covers every flow on your list without workarounds.
- Choose an integration platform if your processes are standard, you want something running quickly, and the recurring cost is comfortable at your size.
- Choose a custom integration if you have several warehouses, B2B pricing, multiple stores or markets, unusual stock rules - or a platform subscription that keeps growing.
- Start small whichever you pick: stock and orders first, then invoices, B2B and additional stores as updates to an integration that already works.
Shopify's API limits shape the design
Whatever the tool, it runs inside Shopify's API rate limits, and they differ by plan. Shopify's GraphQL Admin API meters requests by calculated query cost: standard plans restore 100 points per second, Advanced 200, Shopify Plus 1,000, and Shopify for enterprise 2,000. Limits apply per app and store, so one integration's traffic doesn't eat into another app's budget.
In practice this decides the sync design. Pushing stock for a large catalogue every few seconds on a standard plan will hit the limit; pushing only the quantities that changed, every few minutes, won't. Orders should never wait on a poll at all - they should arrive the moment they're placed, through Shopify webhooks, and be queued so that a temporary failure on the ERP side never loses one.
Where integrations actually go wrong
The happy path - an order placed, paid and shipped - is the easy part, and every option handles it. Integrations fail on the cases nobody wrote down. Each of these needs a defined behaviour before anything is built:
- Returns and credit notes: does a Shopify refund create a credit memo in the ERP, and who restocks the item?
- Partial fulfilment: an order shipped in two parcels from two warehouses.
- Sell-outs at checkout: stock reached zero between the last sync and the customer paying.
- Cancellations and edits: an order changed in the Shopify admin after it already reached the ERP.
- Duplicate customers: the same person existing twice in the ERP under different emails.
- Manual orders: orders created by staff in the Shopify admin rather than by customers.
Before you start: a scoping checklist
What to have answered before choosing a tool
Every variant has a unique SKU
In both systems, with no duplicates and no blanks.
Source of truth decided per field
Exactly one system owns each value - products, prices, stock, orders, customers, invoices.
Flows written down with direction and timing
What moves, which way, and how often.
Hosting and version confirmed
Cloud or on-premises, and which version - this alone can rule a connector in or out.
Warehouses, stores and markets counted
Each one multiplies mapping and logic.
Edge cases given a behaviour
Returns, partial shipments, sell-outs, cancellations, duplicates and manual orders.
A test environment available
A sandbox or test company in the ERP and a development store in Shopify.
With those answered, the choice between connector, platform and custom build usually makes itself - and you'll know exactly what you're asking any partner to build.
Want this applied to your store?
Work with the Byteex team
We help Shopify DTC brands turn more visitors into buyers. See how we can help you below, or browse real client results.