Need-X.com

Orders & Fulfillment

Every state change is a compile-time contract

An explicit state machine — illegal transitions can't happen

Orders move through a typed state machine, not a free-text status column, so a transition like Shipped → Pending Approval is caught before it ever reaches production. One order can split across multiple suppliers, each with its own fulfillment group and independent ETA.

Primary path

Draft to closed

Draft
Submitted
Pending approval
Confirmed
Pending supplier assignment
Supplier assigned
Processing
Shipped
Delivered
Closed
Also reachable from mid-path:Partially deliveredCancelledReturnedDisputed

Approval is modeled as its own sub-state — an approver ID and an SLA deadline attached to the order — rather than overloading the main status. That lets an SLA-breach escalation job run without ever touching order-status semantics.

Split fulfillment

One order, two suppliers

The buyer sees one unified order. Underneath, each fulfillment group tracks its own supplier, status, and ETA — the "unified view" is a read-model join, not a data-model compromise.

Shipped

Meridian Supply Co.

Nitrile gloves ×4,000, Face shields ×500

ETA: 2 days

Processing

Coastal Packaging Group

Corrugated mailers ×12,000

ETA: 5 days

Splitting orders across suppliers by hand today?

Request a demo