Fulfillment operations
Fulfillment covers everything after a customer places an order: confirm, pick, make ready, hand to a driver, deliver or fail.
Two UIs exist:
- Dashboard — Operations → Picking and Operations → Delivery (desk)
- Fulfillment demo — http://localhost:3002 (picker or driver screens, depending on the signed-in role)
Both are staff tools, not the customer shop.
Order lifecycle
Placed → Confirmed → Picking → Ready → Out for delivery → Delivered
↘ Cancelled ↘ Delivery failed
↳ Retry → Out for delivery
↳ Return → Ready| Stage | Meaning |
|---|---|
| Placed | Customer just checked out |
| Confirmed | Store accepted the order; it appears on the picker queue |
| Picking | A picker claimed the order |
| Ready | All lines scanned, substituted, or marked unavailable |
| Out for delivery | A driver picked up the bags |
| Delivered | Successful drop-off |
| Delivery failed | Visit failed; driver can retry or return to store |
| Cancelled | Customer or staff cancelled |
There is no separate “packed” status. Ready means picked and packed.
Picker flow
- Sign in as a picker.
- Open the queue (confirmed and in-progress picks, sorted by due time). If the user is limited to certain branches, only those orders appear.
- Open an order and tap Start. The order moves to picking.
- Scan each line (barcode matches the variant SKU or the line).
- If an item is missing, mark Unavailable or Substitute with another product.
- When every line is handled, tap Ready.
Development logins: picker1@test.com / picker2@test.com, password 123.
Driver flow
- Sign in as a driver.
- Open the queue (ready, out for delivery, and failed visits).
- Pickup a ready order. It moves to out for delivery.
- At the door, Deliver or Fail with a reason:
- Nobody at the door
- Customer refused the order
- Address cannot be used
- Could not reach the customer
- Other (a note is recommended)
- After a failure, Retry (back on the road) or Return the bag to the store (ready again).
Development logins: driver1@test.com / driver2@test.com, password 123.
Real-time
The demo and dashboard refresh by polling. There is no live socket for queues. Customer-facing live updates are only for notifications and the assistant.
Pickup orders
Customer checkout can be delivery or pickup. Pickup orders still go through picking to ready; they are collected at the branch instead of entering the driver trip (drivers typically handle delivery orders).