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

IEMSuite
← Orders, Returns→ Inventory Levels, Fulfillments
Shopify

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.

To add new Shopify products to IEMSuite, click Sync Shopify on Inventory → Product Catalog - it re-imports products from your store without duplicating existing ones.

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.

If you manually adjust inventory in Shopify admin, IEMSuite will overwrite it on the next sync event. Always make inventory adjustments in IEMSuite, not in Shopify.

Order Import

Shopify sends order events to IEMSuite via webhooks:

Shopify EventIEMSuite Action
orders/createCreate new Shopify order in IEMSuite with CONFIRMED status
orders/updatedUpdate order details if not yet shipped in IEMSuite
orders/cancelledCancel the order in IEMSuite, release reservations
orders/fulfilledMark fulfilled if external fulfillment; otherwise IEMSuite sends fulfillment
refunds/createLog 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.

Sync runs automatically in the background - failed pushes are retried, and a periodic reconciliation job corrects any levels that drift out of sync.