ERP, inventory and Shopify: getting your back-office connected

Why back-office integration is harder than it looks
On the surface, ERP integration seems straightforward. Products in the ERP sync to Shopify. Orders from Shopify sync back to the ERP. Inventory counts stay in sync. Simple, right?
In practice, it's one of the most complex technical challenges in ecommerce. Product data structures don't match between systems. Inventory needs to account for multiple warehouses, reserved stock, and in-transit quantities. Order data includes discounts, taxes, shipping charges, and payment splits that need to map correctly into your accounting structure. And all of this needs to happen in near-real-time without breaking when one system has an outage.
We've written about the specifics of connecting Cin7 with Shopify Plus, but the principles apply regardless of which ERP or inventory system you're running: whether that's NetSuite, DEAR, Unleashed, or a custom-built system.
The inventory sync problem
Batch sync vs real-time
The most common approach we see is scheduled batch syncs: every 15 or 30 minutes, the ERP pushes inventory counts to Shopify. This works until it doesn't. During a flash sale or a busy trading period, 15 minutes is an eternity. A product can sell out in two minutes, and for the next 13 minutes your store is showing stock that doesn't exist.
Real-time sync using Shopify webhooks and your ERP's event system is the right approach for any brand doing serious volume. When inventory changes in the ERP (sale, return, receiving, adjustment), an event fires and Shopify's stock levels update within seconds. When an order is placed on Shopify, the webhook fires and the ERP's available quantity adjusts immediately.
The implementation cost of real-time sync is higher upfront, but it pays for itself the first time it prevents a batch of oversells that would have cost you customer trust and fulfilment headaches.
Multi-location complexity
If you're running multiple warehouses, retail locations, or fulfilment centres, inventory sync gets significantly more complex. Shopify Plus supports multi-location inventory natively, but your ERP needs to send location-specific quantities, not just totals.
A customer in Melbourne should see stock available from your Melbourne warehouse. A customer in Sydney should see Sydney stock. If your integration only syncs total inventory across all locations, you'll end up promising same-day delivery from a warehouse that doesn't have the product, or showing items as out of stock when they're sitting in a warehouse the customer could receive from.
Getting this right requires proper location mapping between your ERP and Shopify's location and market settings, and testing every edge case: what happens when stock transfers between warehouses mid-sync, when a location goes offline, when a partial fulfilment ships from a different location than originally allocated.
Order flow architecture
Orders flowing from Shopify to your ERP need to carry complete data: line items, pricing, discounts, taxes, shipping costs, customer information, and payment status. The mapping between Shopify's order structure and your ERP's sales order format is where most integrations silently lose data.
Common pain points include discount allocation (how does a $20 order-level discount distribute across three line items for accounting purposes), tax handling (especially for international orders through Shopify Markets), and gift cards (which Shopify treats as payment methods, not discounts, but your ERP might handle differently).
The fix is detailed field mapping documented before any code is written. Every field in a Shopify order needs a defined destination in the ERP, including edge cases. What happens when a customer uses a gift card plus a credit card for partial payment? What happens when an order includes both physical and digital products? What happens when a discount code applies only to specific items?
Product data: which system is the source of truth?
This is the question that causes the most arguments in integration planning. Is your ERP the source of truth for product data, or is Shopify?
For most brands, the ERP should own product master data: SKUs, pricing, cost prices, supplier information, and inventory quantities. Shopify should own storefront-specific data: product descriptions, images, SEO metadata, collection assignments, and metafields used for frontend display.
This means product creation and pricing changes happen in the ERP and sync to Shopify. Content and merchandising changes happen in Shopify (or in Sanity for headless builds) and stay there. The integration only syncs the fields that the ERP owns: it doesn't overwrite the marketing team's product descriptions every time a price update runs.
Getting the source-of-truth rules wrong is how you end up with a content team who spends an hour perfecting a product description only to have it wiped out by the next ERP sync. Document the rules. Enforce them in the integration logic.
Error handling is not optional
This is where most integrations fail in practice. The sync works perfectly for six months, then an edge case appears: a malformed product record, an API rate limit, a network timeout, and the integration fails silently. No alert. No retry. Just missing data that someone discovers days later when the finance team can't reconcile orders.
Every integration needs retry logic (what happens when an API call fails: does it retry with exponential backoff?), dead letter queues (where do failed records go so they can be reviewed and reprocessed?), alerting (who gets notified when a sync fails, and how quickly?), and monitoring dashboards (can you see at a glance whether all systems are in sync?).
We covered this broader operational challenge in our piece on making sure your tech stack works together: integration health monitoring is a critical part of commerce infrastructure that most brands completely overlook.
Choosing the right integration approach
Native connectors
Some ERPs have native Shopify connectors: apps that install on Shopify and connect directly to the ERP. These are the fastest to set up and cheapest to implement. They work well for standard use cases but hit limitations quickly when your requirements are non-standard. If the native connector doesn't support your specific workflow, you're stuck.
iPaaS middleware
Integration platforms like Celigo, Boomi, or MuleSoft sit between Shopify and your ERP, handling data transformation, mapping, and orchestration. These are more flexible than native connectors and can handle complex logic, but they add another system to manage and another subscription to pay for.
Custom integration
For brands with unique requirements or complex multi-system architectures, custom integration built on your own infrastructure gives you complete control. This is the most expensive option upfront but the most flexible long-term. We typically build custom integrations using workflow automation tools with proper error handling, monitoring, and retry logic baked in from day one.
The bottom line
Your storefront is what customers see. Your back-office integration is what determines whether the promise your storefront makes actually gets delivered. A beautiful store with broken inventory sync is worse than an ugly store that ships accurately, because it actively damages customer trust.
If you're running a Shopify Plus store with an ERP, 3PL, or inventory management system that isn't properly connected, or if you're about to migrate platforms and need to rearchitect your integrations, talk to our team. Integration isn't the glamorous part of ecommerce, but it's the part that keeps the business running.
A Shopify Plus Agency for Strategic Design & Advanced Engineering
Building something ambitious?
- ERP-to-Shopify integration is the most critical (and most underestimated) technical decision for mid-market brands.
- Real-time inventory sync prevents overselling but requires proper webhook architecture, not scheduled batch jobs.
- The most common failure is treating integration as a one-time setup rather than an ongoing operational system.
- Multi-location inventory adds complexity: make sure your sync handles warehouse allocation, not just total stock.
- Your integration needs error handling, retry logic, and alerting before it needs features.
- Budget for integration maintenance alongside your storefront retainer: they're equally important.

