Fulfillment Order Lifecycle¶
Models the lifecycle of a Fulfilment Order (FO) from creation by the OMS through warehouse or store execution, dispatch, and delivery confirmation. A single Order may spawn multiple Fulfilment Orders (split fulfilment).
Object: fulfillment-order ·
States: 9 ·
Transitions: 10
State Diagram¶
flowchart LR
%% ── classDef palette ─────────────────────────────────────
classDef stInit fill:#0d9488,stroke:#0f766e,color:#fff,font-weight:bold
classDef stNorm fill:#3b82f6,stroke:#2563eb,color:#fff
classDef stOk fill:#16a34a,stroke:#15803d,color:#fff,font-weight:bold
classDef stFail fill:#dc2626,stroke:#b91c1c,color:#fff,font-weight:bold
classDef stHold fill:#d97706,stroke:#b45309,color:#fff
%% ── nodes ───────────────────────────────────────────────
created(["Created"])
allocated["Allocated"]
picking["Picking"]
packed["Packed"]
dispatched["Dispatched"]
delivered[["Delivered"]]
failed_delivery["Failed Delivery"]
returned_to_sender[["Returned to Sender"]]
cancelled[["Cancelled"]]
%% ── transitions ─────────────────────────────────
created -->|"inventory-reserved"| allocated
allocated -->|"fulfillment-order-dispatched"| picking
picking -->|"fulfillment-order-dispatched"| packed
packed -->|"fulfillment-order-dispatched"| dispatched
dispatched -->|"fulfillment-order-dispatched"| delivered
dispatched -->|"fulfillment-order-dispatched"| failed_delivery
failed_delivery -->|"fulfillment-order-dispatched"| dispatched
failed_delivery -->|"fulfillment-order-dispatched"| returned_to_sender
created -->|"order-cancelled"| cancelled
allocated -->|"order-cancelled"| cancelled
%% ── class assignments ───────────────────────────
class created stInit
class allocated,picking,packed,dispatched,failed_delivery stNorm
class delivered,returned_to_sender stOk
class cancelled stFail
States¶
| State | Label | Description | Initial | Terminal |
|---|---|---|---|---|
created |
Created | Fulfilment Order created by OMS routing. Awaiting stock allocation. | ✓ | |
allocated |
Allocated | Stock allocated and reserved for this Fulfilment Order. | ||
picking |
Picking | Warehouse or store associate is physically picking items. | ||
packed |
Packed | Items picked and packed. Ready for handover to carrier or customer. | ||
dispatched |
Dispatched | Parcel handed to carrier or ready for customer collection. | ||
delivered |
Delivered | Customer confirmed receipt or carrier confirmed delivery. | ✓ | |
failed-delivery |
Failed Delivery | Delivery attempt unsuccessful. Re-delivery or return to sender pending. | ||
returned-to-sender |
Returned to Sender | Parcel returned to fulfilment location after failed delivery. | ✓ | |
cancelled |
Cancelled | Fulfilment Order voided before dispatch. | ✓ |
Transitions¶
| From | To | Trigger | Guards |
|---|---|---|---|
created |
allocated |
inventory-reserved |
Sufficient stock available at assigned location |
allocated |
picking |
fulfillment-order-dispatched |
Picking task assigned to associate or automated system |
picking |
packed |
fulfillment-order-dispatched |
All lines picked and verified |
packed |
dispatched |
fulfillment-order-dispatched |
Carrier label generated; Handover scan completed |
dispatched |
delivered |
fulfillment-order-dispatched |
Carrier delivery confirmation received OR customer signature obtained |
dispatched |
failed-delivery |
fulfillment-order-dispatched |
Delivery attempt unsuccessful; Carrier returns failed status |
failed-delivery |
dispatched |
fulfillment-order-dispatched |
Re-delivery scheduled with carrier |
failed-delivery |
returned-to-sender |
fulfillment-order-dispatched |
Maximum delivery attempts exhausted |
created |
cancelled |
order-cancelled |
Stock not yet picked |
allocated |
cancelled |
order-cancelled |
Picking not yet started; Stock reservation released |