orders · reference

The order lifecycle

Every status an order can be in, which moves are allowed, and which three are final.

An order moves through a fixed set of statuses. Moves that are not listed here are refused — by the dashboard, by the API and by the agent alike — so an order cannot skip a step or go backwards.

The statuses

StatusMeaning
DRAFTBeing assembled; not yet a commitment
PENDINGWaiting on the customer or on you
CONFIRMEDAgreed, not yet paid
PAIDMoney received
PROCESSINGBeing prepared
SHIPPEDHanded to the carrier
DELIVEREDReceived by the customer
COMPLETEDClosed successfully
RETURNEDCame back
CANCELEDCalled off

Which moves are allowed

FromCan move to
DRAFTCONFIRMED, CANCELED
PENDINGCONFIRMED, CANCELED
CONFIRMEDPAID, CANCELED
PAIDPROCESSING, SHIPPED, CANCELED
PROCESSINGSHIPPED, CANCELED
SHIPPEDDELIVERED
DELIVEREDCOMPLETED, RETURNED
COMPLETED— final
RETURNED— final
CANCELED— final

Three consequences worth knowing before you plan around this:

A shipped order cannot be canceled. Once it is with the carrier the only forward move is DELIVERED, and a problem after that is handled as RETURNED. If you cancel, do it before the parcel leaves.

PAID can go straight to SHIPPED. PROCESSING is optional — useful if you pick and pack, skippable if you do not.

The three final statuses are final. There is no reopening: a returned or canceled order stays that way, and a new attempt is a new order. This is deliberate — an order that can change after it closed makes every report based on it unreliable.

What happens on every change

A status change is never just an update. Each one:

  • takes a lock on that order, so two people (or a person and a webhook) cannot change it at the same moment;
  • writes an audit entry recording what moved, who moved it and why;
  • publishes an event that fulfilment, notifications and your integrations consume.

That is why a status is changed through the order screen, the API or the agent — and why nothing writes it directly. A change that skipped these would move the order while everything downstream carried on believing the old one.

Who can change a status

Anyone with Manage orders — owner, admin and member. See Roles and permissions.

An assistant connected over MCP can move an order too, with a key that carries write access. It is held to the same table above: an invalid move is refused with the list of valid ones.

Last updated 2026-07-29