Use when managing order lifecycles, fulfillment workflows, or order status transitions.
Domain knowledge for order management and fulfillment operations.
┌─────────────────────────────────────┐
│ │
▼ │
[pending] ──► [confirmed] ──► [processing] │
│ │ │ │
│ │ ▼ │
│ │ [shipped] ───┤
│ │ │ │
│ │ ▼ │
│ │ [delivered] │
│ │ │
└──────────────┴──► [cancelled] ◄─────┘
[refunded]
| Status | Description | Next States |
|---|---|---|
pending |
Order created, awaiting confirmation | confirmed, cancelled |
confirmed |
Payment verified, ready to process | processing, cancelled |
processing |
Being picked/packed | shipped, cancelled |
shipped |
In transit to customer | delivered |
delivered |
Received by customer | refunded |
cancelled |
Order cancelled | - |
refunded |
Payment reversed | - |
| Status | Description |
|---|---|
pending |
Awaiting payment |
paid |
Payment received |
failed |
Payment declined |
refunded |
Full refund issued |
partially_refunded |
Partial refund issued |
| Status | Description |
|---|---|
unfulfilled |
No items shipped |
partially_fulfilled |
Some items shipped |
fulfilled |
All items shipped |
returned |
Items returned |
{
id: "uuid",
orderNumber: "ORD-12345",
customerId: "customer-uuid",
// Status
status: "pending",
paymentStatus: "paid",
fulfillmentStatus: "unfulfilled",
// Amounts
totalAmount: 89.97,
currency: "USD",
// Items
items: [
{
id: "item-uuid",
sku: "WIDGET-001",
name: "Premium Widget",
quantity: 3,
unitPrice: 29.99,
total: 89.97
}
],
// Shipping
shippingAddress: { ... },
trackingNumber: "FEDEX123",
// Metadata
notes: "Gift wrap requested",
createdAt: "2024-01-15T10:30:00Z",
updatedAt: "2024-01-15T10:30:00Z"
}
Default format: ORD-{sequence}
Examples:
ORD-1ORD-12345ORD-1000000Required:
customerId - Customer UUIDitems - At least one item with sku, name, quantity, unitPriceOptional:
currency - Default USDnotes - Order notesValid transitions only:
Requires:
processing statusSets:
Allowed for:
Not allowed for:
| Event | Trigger |
|---|---|
order_created |
New order placed |
order_confirmed |
Payment verified |
order_shipped |
Shipment created |
order_delivered |
Delivery confirmed |
order_cancelled |
Order cancelled |
order_refunded |
Refund processed |
| Error | Cause | Solution |
|---|---|---|
Order not found |
Invalid ID/number | Verify identifier |
Invalid status |
Bad transition | Check current status |
Customer not found |
Bad customer ID | Verify customer |
Already shipped |
Cannot modify | Create return instead |
Varies by carrier:
ship_order({
orderId: "uuid",
trackingNumber: "FEDEX123456789"
})