Core Concepts

Orders

Lifecycle and statuses.

1 min read v1 API

OrderService owns transitions: place, approve, reject, cancel (customer), applyPayment. Statuses include pending, awaiting_payment, confirmed, dispatched, delivered, pickup_dispatched, picked_up, completed, rejected, cancelled.

Approval requires asset_id matching asset_specification. Company rejects pending orders; customers cancel with guards on paid/dispatched states.

Lifecycle workflow

01
Place order
Customer or company calls OrderService::place. Status pending, pricing snapshot and line items written.
02
Approve
Company assigns asset_id. If upfront payment required β†’ awaiting_payment, else approved.
03
Pay & confirm
OrderService::applyPayment updates totals. awaiting_payment β†’ confirmed when paid.
04
Dispatch delivery
Driver job assigned β†’ order status dispatched β†’ delivered on completion.
05
Pickup & complete
Pickup job β†’ pickup_dispatched β†’ picked_up β†’ completed.
text
pending β†’ approve β†’ awaiting_payment|approved β†’ confirmed β†’ dispatched β†’ delivered β†’ pickup_dispatched β†’ picked_up β†’ completed