Skip to main content
shopifyerpintegrationecommerce

Shopify ERP Integration: When Your Store Needs One

When a Shopify store needs an ERP: the signals that justify one, what Shopify already covers, how to scope the integration and the failures to watch for.

Muhammad Amir

Muhammad Amir

Electrical Engineer & Founder, ECOSIRE Holdings

October 15, 202611 min read2.5k words

A Shopify store needs an ERP integration when the work behind the checkout (buying stock, holding it in more than one place, making or bundling products, selling through other channels and closing the books) has outgrown what Shopify and an accounting app can record without people retyping things. The usual signs are orders keyed in twice, stock counts that disagree between channels, and a month-end that depends on one person's spreadsheet. If none of that describes your store, the honest answer is "not yet", and an ERP bought early mostly adds a second system to keep in step.

This guide is about the decision, not the build: what Shopify already covers, the signals that justify an ERP, how to scope a first integration and what breaks after go-live.

What Shopify Already Covers

Before deciding you need an ERP, check what the platform does on its own. It has grown well past a storefront.

  • Several stock locations. Shopify tracks inventory per location, which it defines as any physical place where you sell products, fulfil orders or stock inventory. How many you can have depends on your plan.
  • Purchase orders. You can create purchase orders in the Shopify admin listing products, quantities, costs, payment terms and supplier details, then receive the incoming goods against them.
  • Automation. Shopify Flow is a free app on the Basic, Grow, Advanced and Plus plans, so tagging, routing and alerting rules do not need another system.
  • Payout detail. Every Shopify Payments balance transaction carries the gross amount, the fee, the net amount and the payout it belongs to, which is what an accounting app needs to reconcile against the bank.

A single-brand store with one or two warehouses, straightforward purchasing and a bookkeeper who reconciles payouts in an accounting app is often well served by exactly this. My rule of thumb is simple: do not buy an ERP to fix a process problem. If orders are being retyped because nobody set up the accounting app's Shopify connector, fix that first. It is a far smaller project.

Seven Signals That Justify an ERP

Each signal below is about work Shopify was not designed to hold. One on its own is a reason to look closer. Two or three together usually mean the business already runs on a shadow ERP made of spreadsheets.

1. Orders are retyped somewhere

If someone copies Shopify orders into another system to pick, invoice or report on them, you are already paying for an integration, in time and in errors. The remaining signals decide whether the destination should be an accounting app or an ERP.

2. The same stock sells in more than one place

Marketplaces, a wholesale portal, retail counters or a second storefront all draw on the same physical units. Shopify can hold stock for the channels it runs, but once orders also arrive from places Shopify does not see, one system has to own the available quantity and every channel has to read from it. That is an ERP's job.

3. You make, kit or bundle what you sell

A bundle that consumes three components, a product assembled to order, or raw material bought by weight and sold by the unit all need bills of materials and component stock. Shopify sells the finished item; it does not record what was consumed to make it.

4. Purchasing has become a discipline

Reorder points based on supplier lead times, partial receipts, landed costs such as freight and duty that change your unit cost, and supplier bills matched to what actually arrived. Shopify's purchase orders record the order; an ERP also carries the real cost into stock valuation and the accounts.

5. Wholesale customers buy on account

Customer-specific price lists, credit limits, payment terms and statements are accounting-heavy work. If your trade buyers pay by invoice rather than at checkout, the receivables ledger has to live somewhere that can age it and chase it.

6. More than one entity, currency or warehouse operator

A second company for another market, books kept in a currency other than the one you sell in, or a third-party warehouse running alongside your own. Each adds a dimension that spreadsheets handle badly and ERPs are built for.

7. Nobody can tell you the margin on an order

If no one can say what an order earned after product cost, payment fees, shipping and returns, the data exists but sits in three places. An ERP that receives the order, the landed cost and the payout is usually where that number first becomes visible.

If the signals you recognise are mostly financial (reconciliation, receivables, tax), compare an ERP with a stronger accounting setup before committing; I wrote a separate guide on ERP vs accounting software and when to move on.

Reasons That Only Sound Like Reasons

Some triggers feel like ERP problems and are not:

  • "We are growing fast." Volume alone is something Shopify handles well. Growth matters only when it brings one of the seven signals with it.
  • "We need better reports." Reporting across systems is usually a data warehouse or BI project. An ERP does not improve reports on data it never receives.
  • "The catalogue is a mess." Duplicate SKUs and inconsistent variants are copied faithfully into any ERP. Clean the catalogue first, because SKUs are the key every integration matches on.

A Quick Scorecard

Answer for how the business runs today, not next year.

QuestionStay with Shopify and an accounting appPlan an ERP integration
Where do orders come from?Shopify onlyShopify plus marketplaces, wholesale or retail
What do you sell?Finished goods bought ready to sellKits, bundles, made or assembled products
How do you buy?Simple reorders from a few suppliersLead times, partial receipts, landed costs
How do customers pay?At checkoutOn account, with terms and credit limits
How many entities and warehouses?One company, one or two locationsSeveral, or a third-party warehouse alongside your own
Who reconciles payouts?A bookkeeper, monthly, without dramaOne person, with a spreadsheet nobody else understands

If three or more of your answers sit in the right-hand column, start scoping. If only one does, fix that one thing with the smallest tool that works and run the scorecard again in six months.

Scope the First Integration by Flows, Not Features

Once the answer is yes, do not sync everything on day one. Phase the work by the flows that remove the most retyping:

  1. Orders in, stock out, shipments back. Shopify orders become ERP sales orders, available stock goes from the ERP to Shopify, and the fulfilment and tracking number go back so Shopify sends the customer their shipping email. This one loop removes most of the manual work.
  2. Refunds, returns and payouts. Refunds become credit notes, returned goods go back into stock, and each payout is posted with its fees so the bank reconciles.
  3. Products, prices and wholesale. Catalogue sync, price lists and trade accounts come last, once the transactional loop is trusted.

For each phase, write down which system owns each fact before anyone writes code. Two systems that can both change the same stock number will eventually disagree, and the integration will be blamed for a decision nobody made.

Then size it. Three numbers drive most of the design: orders on your busiest day rather than your average one, SKUs multiplied by locations (the number of stock levels you keep in step), and how many channels write to the same stock.

What Shopify's API Means for the Design

You will not write the integration yourself, but these constraints explain most of the failures that come later.

API capacity is per app and per store, and depends on your plan. Shopify's GraphQL Admin API rate limits are 100 points per second on Standard plans, 200 on Advanced, 1,000 on Plus and 2,000 on Commerce Components, measured by calculated query cost, and a single query may not exceed 1,000 points. The same page recommends bulk operations for large reads such as a full catalogue or order history; they return a JSONL file and do not carry the per-query cost and rate limits. You do not need Plus to integrate an ERP, but a busy store on a standard plan needs a connector that budgets its calls.

Webhooks are fast signals, not a ledger. Shopify's webhook troubleshooting guide says a delivery fails if your endpoint does not respond within five seconds, failed deliveries are retried up to eight times over four hours, and if failures persist the subscription is removed. Its webhooks overview adds that delivery is not always guaranteed, ordering is not guaranteed within a topic, duplicate deliveries should be ignored using the X-Shopify-Webhook-Id header, and apps should run reconciliation jobs that fetch data from Shopify periodically. In practice that means: acknowledge quickly, queue the work, and run a scheduled job that compares both sides.

Stock writes need compare-and-set. The inventorySetQuantities mutation applies an update only when the stored quantity still matches the value you expected, and returns an error when it does not; Shopify warns that opting out of that check can leave stock inaccurate when requests overlap. Since API version 2026-04, Shopify has also made idempotency keys mandatory for its inventory adjustment and refund mutations, so that a retried request is not applied twice. A connector written for earlier versions needs updating before it moves to 2026-04.

The API moves every quarter. Shopify releases a new API version every three months and supports each for at least 12 months; a request to a retired version is answered by the oldest version still available, which can change behaviour without anyone touching the connector. The REST Admin API has been a legacy API since 1 October 2024, and new public apps must be built on the GraphQL Admin API only. So an integration is never a one-off build; it needs an owner who reads the changelog.

Questions to Ask Before You Buy or Commission a Connector

Whether you choose an off-the-shelf connector, middleware or a custom build, ask whoever will own it:

  • Which Shopify API and version does it use, and who upgrades it each quarter?
  • What happens when a webhook is missed? Is there a reconciliation job, how often does it run, and who reads its report?
  • How are duplicate deliveries and retried writes kept from creating duplicate records?
  • Which system owns stock, prices and customers, and can that be set per flow?
  • How are payouts posted: one entry per order, or one per payout with its fees and refunds?
  • Where do failed records go, and can operations re-run one without a developer?
  • How does it behave on your busiest day, given your plan's API capacity?

A vendor who answers these clearly has run integrations in production. One who answers with a feature list has built a demo.

What Goes Wrong in the First Months, and How to Spot It

Most integration failures are quiet: nothing errors on screen, and numbers drift apart until someone notices at month-end.

SymptomLikely causeFirst check
Orders missing in the ERP after a quiet spellWebhook subscription removed after repeated failed deliveries, with no reconciliation job behind itList the app's webhook subscriptions; compare yesterday's order count on both sides
The same order appears twiceDuplicate deliveries not ignored, or no unique Shopify order ID stored on the ERP recordSearch the ERP for the Shopify order ID
Overselling on busy daysTwo systems writing stock, or stock pushed without compare-and-setWhich system last changed the quantity, and when
Payouts never match the bankFees, refunds and adjustments posted per order instead of per payoutRebuild one payout from its balance transactions
Refunds in Shopify but no credit note in the ERPRefund flow left out of scopeSample last week's refunds on both sides
Sync slows or stalls at peakQuery cost running into the plan's rate limitThrottle errors in the connector's log
Behaviour changes with no deployThe API version the connector pins has been retiredThe API version in the connector's configuration

Ask for one daily report from the first day: orders, refunds and payouts counted on both sides, with every difference listed. When that report has stayed clean for a full month, including a busy week, the integration has earned your trust.

A Sound Order of Work

A sound approach starts with the scorecard and the ownership decisions on paper, before any connector is chosen, because those decisions outlive whichever tool you pick. Then build or configure the first loop (orders, stock and shipments), run it alongside the existing manual process, and switch the manual work off only once the daily reconciliation has been clean for long enough to trust.

If you are at the point where the signals are real, my e-commerce integration service covers the architecture, the connector, the data mapping, the reconciliation report and the monitoring.

Frequently Asked Questions

Do I need Shopify Plus to integrate an ERP?

No. The Admin API is available on every plan. Plus raises the GraphQL Admin API limit to 1,000 points per second against 100 on Standard plans, according to Shopify's rate-limit documentation, which matters for busy stores keeping many stock levels in step. A well-built connector on a standard plan works within its budget and uses bulk operations for large reads.

Which system should own inventory once an ERP is connected?

Usually the ERP, because it holds purchasing, receipts, transfers and every channel's demand; Shopify then shows the available quantity the ERP sends. The exception is a store whose only channel is Shopify and whose ERP is used mainly for accounting. There, keeping stock in Shopify and syncing only orders and payouts can be simpler and safer.

Can I connect Shopify to an accounting app instead of an ERP?

Yes, and if your signals are mostly financial it is often the right first step. Accounting apps with a Shopify connector handle sales, fees and payouts well. They start to struggle once you need bills of materials, multi-location purchasing or several sales channels drawing on the same stock.

How do I know the integration is healthy?

Three checks: a daily count of orders, refunds and payouts on both sides with every difference listed; a queue of failed records that someone actually empties; and a quarterly look at the Shopify API version the connector uses. Silence is not health, because a removed webhook subscription is silent too.


Weighing whether your store needs an ERP yet? Run the scorecard above, then send your answers through the contact form and you will get a straight answer on which column you are really in.

Tags:shopifyerpintegrationecommerce
Share:
Muhammad Amir

Written by

Muhammad Amir

Electrical Engineer and founder of ECOSIRE Holdings. Began his career on JF-17 fighter jet avionics; now ships ERP, AI, and ad-tech systems — including 215+ Odoo modules, an autonomous SEO platform, and AI agent fleets.

Need consulting help?

I offer productized consulting services for ERP, integrations, and AI.

View Services
Chat on WhatsApp