A business that makes things and sells them online runs two worlds: the storefront (Shopify — orders, customers, payments) and the back office (making, buying from many suppliers, stock, costing, the books). Wiring ERPNext to Shopify makes the back office a single source of truth with the storefront as one of its channels — which is exactly what brings true stock, true cost, and supplier-driven purchasing to light for a maker. This is the integration in practice: the sync map, the flows, the gotchas, and when it's worth it.
Shopify is an excellent rented storefront — payments, checkout, marketing, themes. It is not a manufacturing, procurement or accounting system, and it was never meant to be. ERPNext is the opposite: an open-source ERP (manufacturing, inventory, buying, accounting) that you self-host and own, but with no storefront worth selling from. The integration lets each do its job and keeps them in lockstep.
The connection runs through the official ecommerce_integrations Frappe app (the ERPNext Shopify Connector). It talks to Shopify's Admin API and subscribes to Shopify webhooks, so events flow automatically: a sale on Shopify lands as a document in ERPNext within seconds, and stock and product changes in ERPNext push back out to the storefront. No re-keying, no nightly CSV export, no spreadsheet in the middle.
For a maker, the point isn't tidiness — it's visibility you can't get any other way. Because ERPNext holds the bill of materials and your real purchase prices, the moment a Shopify order arrives the system already knows what it consumes, what it truly cost to make, and whether you need to buy more from a supplier. That's the value: the storefront generates demand, and the owned back office turns that demand into accurate stock, cost and purchasing.
Storefront, checkout, payments, marketing, customer experience.
BOMs, work orders, stock, suppliers, purchasing, costing.
Sales, COGS, inventory valuation, supplier bills — one ledger.
The integration is bidirectional, but each kind of data has an owner. Get the direction right and the two systems never argue. The rule of thumb: Shopify owns the order and the customer; ERPNext owns the product, the stock and the money.
| Data | Direction | What happens |
|---|---|---|
| Products / SKUs | ERP → Shopify | Items defined in ERPNext publish to the storefront (or map to existing Shopify products) |
| Inventory levels | ERP → Shopify | Stock from the mapped ERPNext warehouse syncs out, so you stop overselling |
| Orders | Shopify → ERP | Each order becomes a Sales Order (then Delivery Note + Sales Invoice) |
| Customers | Shopify → ERP | New buyers create / match a Customer record |
| Payments | Shopify → ERP | Paid orders can auto-create a Payment Entry for reconciliation |
| Fulfilment / tracking | ERP → Shopify | Shipping a Delivery Note marks the Shopify order fulfilled, with tracking |
Every mapping above hangs on the SKU. The finished good in ERPNext, the variant in Shopify, and the line on the supplier's invoice must agree on what an item is. Disciplined SKUs are the single biggest predictor of whether this integration is smooth or a daily reconciliation chore. Decide your SKU scheme before you connect anything.
When a Shopify order fires its webhook, the connector walks it through the standard ERPNext order-to-cash chain — each step a real document you can audit, not a black-box sync.
Most teams auto-create the Sales Order and let a human confirm Delivery and Invoice — the human-in-the-loop pattern. High-volume, low-variance shops automate the whole chain. The connector lets you set where the automation stops, so control scales with how much you trust the flow.
This is where the integration stops being "sync" and starts being an operating system for a maker. ERPNext's manufacturing module knows what each product is made of, so a Shopify sale doesn't just decrement a number — it can trigger making the next one.
The Bill of Materials lists every component and quantity that goes into a finished good. From it, ERPNext supports two postures, and you can mix them per product:
Either way, the BOM is what connects a sale to raw material consumption — and therefore to purchasing and to true cost, the next two sections.
Makers rarely buy a component from one place. ERPNext is built for exactly that: multiple suppliers per item, each with its own price and lead time, and a procurement flow that turns Shopify-driven demand into the right purchase order to the right supplier at the right time.
Each raw material can carry a list of approved suppliers. When stock of that component drops to its reorder level — pulled down by the sales the storefront is generating — ERPNext raises a Material Request, which walks the standard buying chain:
The Request for Quotation step is the multi-supplier payoff: send the same request to several suppliers, capture their quotes side by side, and order from the best on price or lead time for that run. Over time ERPNext accumulates the price and delivery history that tells you which supplier is actually cheapest and most reliable — not which one you happen to remember.
A reseller buys finished goods. A maker buys inputs — often the same input from different suppliers at different prices, in different currencies, with different lead times. That variability is invisible in a spreadsheet and ruinous to margin if mismanaged. Putting it in ERPNext, fed by real Shopify demand, is what turns purchasing from a guess into a plan.
This is the number most makers can't answer: what did that product really cost to make, and what was the margin on that Shopify sale? The integration answers it, because ERPNext rolls real purchase costs up through the BOM into the finished good.
ERPNext values stock with a real method — Moving Average or FIFO — so the cost of each component reflects what you actually paid, blended across your different suppliers. The BOM rolls those component costs (plus optional labour and overhead via operations) into the finished good's cost. When the storefront sale ships, COGS is recognised at that real cost, and margin per SKU falls out of the ledger automatically.
Once margin per SKU is real, the business questions get answerable: which products to promote, which to discontinue, where a supplier price rise just quietly killed your margin, whether a discount code is still profitable. That feedback loop — storefront price against true, supplier-driven cost — is the whole reason to connect the two systems rather than run them apart.
The connector is solid, but a two-system sync has sharp edges. None is fatal; all are cheaper to plan for than to debug live.
If the same item has different SKUs in Shopify and ERPNext, mappings silently break and stock desyncs. One SKU scheme, enforced, is non-negotiable.
Sync is near-real-time, not instant. On flash sales of low-stock items, a brief race can oversell. Buffer stock or a small safety margin handles it.
If ERPNext is unreachable (downtime, load-shedding) a webhook can be missed. The connector retries and supports backfill — but monitor for gaps.
Map the right ERPNext warehouse to the right Shopify location, or stock figures won't reconcile. Get this explicit before go-live.
Shopify tax settings and ERPNext tax templates must agree, or invoices won't tie out to the order to the cent. Align them up front.
Shopify variants and ERPNext item attributes (and any sold-as-a-kit BOMs) need a clear mapping, especially for made-to-order configurable products.
Run ERPNext on Frappe Cloud (from ~$50/mo, the connector is a managed marketplace app) or self-host for full control. Either way someone owns updates, backups and webhook monitoring. Owned doesn't mean unmanaged — budget for a maintainer or a partner.
The value scales with manufacturing complexity × supplier count × order volume. High on any axis and this is the unlock. Low on all three and you're carrying an ERP you didn't need yet.
For a South African maker-and-seller, the economics and the residency story both favour an owned ERP behind a rented storefront.
The enterprise path — NetSuite or SAP behind Shopify Plus — is USD-billed per seat and out of reach for most local makers. ERPNext removes the licence line entirely; your spend is hosting plus implementation. That's frequently the difference between a real operating system and another spreadsheet.
Shopify holds storefront and payment data on its own infrastructure, but your system of record — costing, suppliers, financials, the BOMs that are your IP — can sit in an ERPNext you host in South Africa. For POPIA and for protecting trade secrets, owning where that data lives is a real advantage over keeping everything in offshore SaaS.
Because the connector retries and backfills missed webhooks, a load-shedding outage delays sync rather than losing orders — provided you monitor for gaps. Self-hosting with a sensible backup and UPS posture keeps the back office trustworthy through the conditions SA businesses actually operate in.
The connector app, the ERPNext manufacturing and buying docs, and the Shopify developer reference. Connector capabilities evolve — confirm against the live app docs before designing around a specific behaviour. Last reviewed 2026-06-17.