Shopify Deep Sync
Understand how IEMSuite keeps Shopify and your inventory in sync - product data, inventory levels, order imports, fulfillment confirmations, and conflict resolution.
IEMSuite maintains a bi-directional sync with Shopify - inventory levels flow from IEMSuite to Shopify, orders flow from Shopify to IEMSuite, and fulfillments are confirmed back to Shopify after packing and shipping.
Sync Architecture
Shopify webhooks push order events to IEMSuite in real-time. IEMSuite pushes inventory level updates to Shopify after every stock change.
Product Sync
Product sync is one-time and manual - run it during initial setup to import your Shopify product catalog into IEMSuite. After the import:
- Each Shopify variant becomes an IEMSuite product (SKU)
- The Shopify variant ID is stored on the IEMSuite product for future matching
- New products added to Shopify must be manually imported or created in IEMSuite
Product details (name, description, images) are not synced continuously - manage them in Shopify. IEMSuite only syncs inventory quantities and fulfillment status.
Inventory Level Sync
Every time a stock-affecting event occurs in IEMSuite, inventory levels are pushed to the mapped Shopify location within seconds:
- Inbound lot created → stock increases
- Order fulfilled / shipped → stock decreases
- Manual adjustment → stock updated
- Production batch output → stock increases
- QC lot released from quarantine → stock increases
IEMSuite pushes the available quantity (AVAILABLE lots only, minus reserved quantities) to Shopify. PENDING_QC and QUARANTINE lots are not counted.
Order Import
Shopify sends order events to IEMSuite via webhooks:
| Shopify Event | IEMSuite Action |
|---|---|
| orders/create | Create new Shopify order in IEMSuite with CONFIRMED status |
| orders/updated | Update order details if not yet shipped in IEMSuite |
| orders/cancelled | Cancel the order in IEMSuite, release reservations |
| orders/fulfilled | Mark fulfilled if external fulfillment; otherwise IEMSuite sends fulfillment |
| refunds/create | Log return; optionally create a stock return lot |
Fulfillment Sync
After you mark a Shopify order as shipped in IEMSuite (by processing the shipment), IEMSuite automatically sends a fulfillment confirmation back to Shopify with:
- Carrier name and tracking number (if entered)
- Tracking URL (if carrier is recognized)
- Fulfilled line item quantities
Shopify then marks the order as fulfilled and sends the shipping notification email to the customer.
Conflict Resolution
IEMSuite is the source of truth for inventory levels. In any conflict:
- IEMSuite's calculated available quantity wins over Shopify's stored quantity
- Orders edited in Shopify after being imported to IEMSuite trigger a diff update
- If a webhook is missed, a background reconciliation job runs hourly to re-sync levels
Sync Frequency
Real-Time (Webhooks)
Order events, cancellations, refunds - processed within seconds of the Shopify event.
Event-Driven (Inventory)
Inventory levels are pushed immediately after any IEMSuite stock event. No polling - changes appear in Shopify within seconds.