Skip to Content
OrdersLifecycle

Order Lifecycle

Orders in Orderly follow a standard lifecycle. The status reflects where the order is in the fulfillment process.

Status Flow

pending
processing
partially_shipped
shipped
delivered
cancelled

Statuses

StatusDescription
pendingOrder received but not yet being processed
processingOrder is being picked, packed, or prepared
partially_shippedSome line items have shipped, others haven’t
shippedAll items shipped, awaiting delivery
deliveredAll items delivered to the customer
cancelledOrder was cancelled
returnedOrder was returned by the customer
on_holdOrder is paused (payment issue, fraud review, etc.)

Status Transitions

Orders typically flow forward through statuses, but some transitions go backward:

  • pendingprocessing — When fulfillment begins
  • processingshipped — When all items have tracking
  • processingpartially_shipped — When some items ship first
  • partially_shippedshipped — When remaining items ship
  • shippeddelivered — When carrier confirms delivery
  • Any status → cancelled — When the order is cancelled
  • Any status → on_hold — When the order needs review
  • on_hold → previous status — When the hold is released

Dispatch & Fulfillment Push Flow

When a dispatcher routes an order to a fulfillment bridge (3PL, WMS, etc.), the order’s sent_to_fulfillment timestamp is set. This tracks whether the order has been handed off for fulfillment.

  1. Order created — Synced from source (e.g., Shopify) via webhook or grab-orders task.
  2. Dispatched — A dispatcher evaluates the order and routes it to a fulfillment bridge. sent_to_fulfillment is set to the current time. You can set up dispatchers in the portal under Dispatchers > New Dispatcher — define conditions (e.g., ship-to state, tags, SKUs) and choose a destination bridge.
  3. Shipment linked — The fulfillment bridge sends back shipment data with tracking. The shipment processor links it to the order by order_number and updates fulfillment_status.
  4. Tracking pushed — The push-open-fulfillments task finds orders where sent_to_fulfillment is set and shipments have tracking numbers. It pushes the tracking info back to the source platform (e.g., creates a Shopify fulfillment). On success, sent_to_fulfillment is cleared and fulfillment_status is set to fulfilled.

Similarly, sent_to_cart tracks when an order has been dispatched to a cart/e-commerce bridge.

See Dispatcher Configuration for details on setting up routing rules in the portal and API.

Automatic Status Updates

Orderly updates order status automatically when:

  • A shipment is created for order line items
  • Tracking events indicate delivery
  • A bridge webhook reports a status change
  • A fulfillment is pushed back to the source platform

Manual Status Changes

You can manually update order status:

  • From the portal order detail page
  • Via the API (PATCH /api/orders/:id)
  • Through operations (bulk status update)
  • Via the AI agent