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