Order Fulfillment and Handoff
Version: v1.1
Last Updated: May 30, 2026
Module Menu Path
Orders → select order → accept / process / ready / handoff actions
Required Access
shop.orders.viewshop.orders.manage
Order Status Flow
pending → accepted → processing → ready_for_dispatch
→ picked_up → delivered (rider delivery)
→ completed (customer pickup)
→ cancelled (before pickup)
→ delivery_failed (after pickup, rider could not deliver)
Step 1 — Receiving a New Order
When a customer places an order you receive:
- A push notification on your device
- An in-app alert in the Orders section
- The order appearing at the top of the list with status
pending
Acceptance window: You must accept within the configured time limit shown on the order. If you do not respond in time, the order is automatically rejected and the customer is refunded.
📸 Screenshot: Incoming order notification in the shop module
📸 Screenshot: Orders list with pending order
Step 2 — Accepting or Rejecting
- Tap the order to open it
- Review the item list and any customer notes
- Tap Accept order
If you cannot fulfil the order (items out of stock, shop issue), tap Reject and select a reason. The customer is notified and refunded automatically.
Step 3 — Picking and Packing
Once accepted, status moves to accepted. Begin picking items immediately.
- Tap Mark as processing when you start picking
- The customer sees "Order is being prepared"
- Work through the item list in the order detail — each line shows the product name, variant, quantity, and any notes
- Pack securely, especially for fragile items
If you discover a missing or out-of-stock item during picking, see the exceptions section below before proceeding.
📸 Screenshot: Order detail showing item list with quantities and variants
Step 4 — Marking Ready for Dispatch
When all items are picked, packed, and labelled:
- Tap Ready for dispatch
This notifies the assigned delivery company. A rider is dispatched and the customer's tracking page shows the ETA.
📸 Screenshot: Ready for dispatch button on order detail
Step 5 — Rider Pickup (Delivery Orders)
Handoff PIN
When the rider arrives, they present a PIN from the delivery company app. You must:
- Ask for the PIN
- Verify it matches the code shown on your order detail screen
- Hand over the packed order only after the PIN matches
- Tap Confirm handoff
Never hand over an order if the PIN does not match. If there is a mismatch, do not hand over — open a support case immediately.
Cash on delivery / card on delivery
The rider collects payment from the customer at dropoff — you do not collect it at pickup. The order detail shows the COD amount for your reference.
Cash on pickup / card on pickup
If the customer is paying you directly at your location:
- Collect the stated amount
- Tap Payment collected
- Then hand over the order and confirm handoff
📸 Screenshot: Rider handoff PIN screen on order detail
📸 Screenshot: Payment collected confirmation
Step 6 — Customer Pickup (Pickup Orders)
For orders where the customer collects in person:
- Verify the customer's name and order number when they arrive
- If paying at pickup, collect the amount first
- Tap Confirm customer pickup to complete the order
📸 Screenshot: Customer pickup confirmation screen
What Each Status Means for Your Customer
| Your order status | What the customer sees |
|---|---|
pending | "Order placed — waiting for confirmation" |
accepted | "Shop has accepted your order" |
processing | "Your order is being prepared" |
ready_for_dispatch | "Order ready — rider on the way" |
picked_up | "Rider has collected your order" + live map |
delivered | "Order delivered" |
completed | "Order collected" (pickup) |
cancelled | "Order cancelled — refund in progress" |
Exceptions
Item is out of stock during picking
If a specific item is unavailable after you accepted:
- Can partially fulfil: Contact the customer via the in-app message. If they agree to a partial order, cancel the missing item(s). The order total is adjusted and the customer is partially refunded for the removed item(s).
- Cannot fulfil at all: Cancel the entire order using "Item unavailable" as the reason. Full refund is triggered automatically.
📸 Screenshot: Partial item cancellation on order detail
Rider is late or does not arrive
- Check the rider ETA in the order detail
- Contact your assigned delivery company via their support contact
- If unresolved: open a support case with the order reference
Rider PIN mismatch
Do not hand over the order. Ask the rider to verify their app shows the correct order. If the mismatch persists, open a support case immediately.
Customer cancels while you are packing
If the order auto-cancels during processing, you receive an in-app notification. No further action needed — the order disappears from your queue.
System shows wrong status after an action
Refresh the page before retrying. If still wrong, open a support case with the order number and description of what happened.