Skip to content

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 demohttp://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
StageMeaning
PlacedCustomer just checked out
ConfirmedStore accepted the order; it appears on the picker queue
PickingA picker claimed the order
ReadyAll lines scanned, substituted, or marked unavailable
Out for deliveryA driver picked up the bags
DeliveredSuccessful drop-off
Delivery failedVisit failed; driver can retry or return to store
CancelledCustomer or staff cancelled

There is no separate “packed” status. Ready means picked and packed.

Picker flow

  1. Sign in as a picker.
  2. Open the queue (confirmed and in-progress picks, sorted by due time). If the user is limited to certain branches, only those orders appear.
  3. Open an order and tap Start. The order moves to picking.
  4. Scan each line (barcode matches the variant SKU or the line).
  5. If an item is missing, mark Unavailable or Substitute with another product.
  6. When every line is handled, tap Ready.

Development logins: picker1@test.com / picker2@test.com, password 123.

Driver flow

  1. Sign in as a driver.
  2. Open the queue (ready, out for delivery, and failed visits).
  3. Pickup a ready order. It moves to out for delivery.
  4. 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)
  5. 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).

Next

Current limitations