Shopify-to-ERP integration patterns
Shopify selling well, ERP holding stock and finance. Connecting them looks simple. It isn't.
Shopify-to-ERP integration is one of the most common e-commerce projects. Looks simple in spec — sync products, sync inventory, sync orders. Each of those has 5-10 edge cases.
What needs to flow each way:
- Products: master in ERP usually, but Shopify holds storefront-only fields (SEO meta, custom collections).
- Inventory: real-time matters. Out-of-stock on Shopify when ERP shows zero — within minutes.
- Prices: master in ERP, mirror to Shopify. Watch for promo prices and customer-specific pricing.
- Orders: Shopify → ERP. Watch for partial shipments, cancellations, refunds.
- Customers: master can be either side; pick one.
What goes wrong:
- Inventory drift. Shopify reserves stock as soon as cart is created (in some flows), ERP doesn't know. Mismatch within hours.
- Failed webhooks. Shopify retries, but only 19 times over 48 hours. Without queue and retry logic, you'll lose orders.
- Refund cascades. Refund in Shopify needs to update ERP inventory + GL. Easy to miss either.
- Multi-warehouse. Shopify Locations vs ERP warehouses don't always map cleanly.
Stack that works: webhooks from Shopify → queue (RabbitMQ, AWS SQS) → integration service → ERP. Always idempotent — same message replayable without side effects. Daily reconciliation reports as safety net.