Skip to main content
Linking integrations to operations

The full lifecycle of a Shopify order

Traces a Shopify order through every stage HC touches — from placement through fulfilment, cancellation, return, and exchange.

The short answer

A Shopify order passes through up to five stages that HC touches: placement, fulfilment, cancellation, return and exchange. Each stage runs on its own streams, and those streams are independent of one another, but the stages depend on each other in business logic. Understanding the full journey of an order through HC helps you pinpoint exactly where something went wrong when you are troubleshooting, and the stage that failed first is usually where to focus.

How it works

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 is not 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 has 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; an exchange is two linked but separate order lifecycles.

The four streams behind a Shopify–WMS integration

The order lifecycle above typically runs on 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 that 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.

What this means for you

  • The stages are sequential in business logic even though 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 investigate an issue, check which stage failed first. That is usually where to focus.

  • The WMS and ERP updates at Stage 1 come from the same source event but run separately, so one can fail while the other succeeds. The same applies to the inventory and financial steps at Stage 4.

  • Whether the ERP posting happens at Stage 1 or Stage 2 depends on your configuration. See How financial data flows to your ERP.

  • A cancellation cannot stop a WMS pick that has already been completed.

  • An exchange appears as two order lifecycles, not one event, so check both the return and the replacement order.

  • An order that references a product created moments earlier can fail because the product stream has not synced it yet.

Related