The full lifecycle of a Shopify order
Traces a Shopify order through every stage HC touches — from placement through fulfilment, cancellation, return, and exchange.
Understanding the full journey of an order through HC helps you pinpoint exactly where something went wrong when you're troubleshooting.
Stage 1 — Order placed
When a customer completes checkout, Shopify fires an order webhook. HC receives it and fans the data out to your downstream systems — typically your WMS to trigger pick/pack and your ERP to create the sales order. Both happen from the same source event, so if either fails, the other isn't affected.
Stage 2 — Fulfilment
When your WMS marks the order as despatched, it sends a confirmation (usually via webhook or polling) back to HC. HC does two things:
Updates Shopify with the tracking number and marks the order fulfilled
Posts the invoice or shipment confirmation to your ERP
If your configuration is set to post financials on shipment (rather than on order placement), this is when the ERP posting happens.
Stage 3 — Cancellation
If an order is cancelled in Shopify before it ships, HC forwards the cancellation to your WMS to halt pick/pack and sends a void or cancellation to your ERP. The exact behaviour depends on how far along fulfilment has progressed — HC cannot cancel a WMS pick that's already been completed.
Stage 4 — Return
Returns generate several downstream actions:
The refund is processed in Shopify
If the item is restocked, HC sends an inventory update to reflect the returned units
A credit note or return is created in your ERP
The inventory and financial steps are independent streams, so one can succeed while the other fails.
Stage 5 — Exchange
HC treats an exchange as a return plus a new order. The return goes through Stage 4, and the replacement triggers a fresh Stage 1. There is no single "exchange" event — they are two linked but separate order lifecycles.
The four streams behind a Shopify–WMS integration
The order lifecycle above runs on (typically) four separate streams: products (Shopify → WMS), stock (WMS → Shopify), orders (Shopify → WMS), and shipments (WMS → Shopify). The order they were activated in matters: products first, then stock, then orders, then shipments — so the warehouse knows every SKU before orders referencing them arrive. This is also why an order can fail if its product was created moments earlier: the product stream may not have synced it yet.
Why this matters for troubleshooting
Stages are sequential in terms of business logic, even if the underlying streams are independent. A failure at Stage 2 (fulfilment) means Stage 4 (return) may not have the correct order state to work with. When you're investigating an issue, always check which stage failed first — that's usually where to focus.