Order Fulfillment and Rider Handoff
Version: v1.1
Last Updated: May 30, 2026
Module Menu Path
Orders → select order → accept / prepare / ready / handoff actions
Required Access
restaurant.orders.viewrestaurant.orders.manage
Order Status Flow
pending → accepted → preparing → ready_for_dispatch
→ picked_up → delivered (rider delivery)
→ completed (customer pickup)
→ cancelled (any stage 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 with a sound
- The order appearing at the top of your Orders list with status
pending
Acceptance window: You must accept or reject 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 restaurant module
📸 Screenshot: Orders list with pending order highlighted
Step 2 — Accepting or Rejecting
- Tap the order to open it
- Review the items and any special instructions
- Tap Accept order
If you cannot fulfil the order (out of stock, kitchen closed), tap Reject and select a reason. The customer is notified and refunded automatically.
📸 Screenshot: Order detail — Accept and Reject buttons with reason selector
Step 3 — Preparing the Order
After acceptance the status moves to accepted. Begin preparing immediately.
- Status changes to
preparingautomatically or when you tap Mark as preparing - The customer sees "Your order is being prepared" in their tracking view
- If an item runs out mid-preparation, see the exceptions section below
Step 4 — Marking Ready for Dispatch
When all items are packed and ready for the rider:
- Tap Ready for dispatch
This triggers a notification to the assigned delivery company. The rider is dispatched and their ETA starts counting down on the customer's tracking page.
📸 Screenshot: Ready for dispatch button on order detail
Step 5 — Rider Pickup (Delivery Orders)
How the handoff PIN works
When the rider arrives, they present a pickup PIN generated by the delivery company app. You must:
- Ask the rider for their PIN
- Verify the PIN matches the code shown on your order detail screen
- Hand over the packed order only after the PIN matches
- Tap Confirm handoff to record the pickup
Never hand over an order if the PIN does not match. If there is a mismatch, do not hand over and contact BookMaMe support immediately.
The order status moves to picked_up once handoff is confirmed.
📸 Screenshot: Rider handoff PIN screen — showing the expected code
Cash on delivery / card on delivery orders
For COD/card-on-delivery orders, the rider collects payment from the customer at dropoff — you do not collect payment at pickup. The order detail will show the COD amount so you are aware of what the rider is collecting.
Cash on pickup / card on pickup orders
For orders where payment is collected at your counter:
- Collect the stated amount before handing over the order
- Tap Payment collected to record receipt
- Then proceed with the handoff as normal
📸 Screenshot: Payment collected confirmation for cash/card on pickup
Step 6 — Customer Pickup (Pickup Orders)
For orders marked as customer pickup:
- When the customer arrives, verify their name matches the order
- Ask them to show their order confirmation or quote their order number
- Tap Confirm customer pickup — this records collection and completes the order
- If the customer paid online (card/mobile money), no cash is collected
- If the customer is paying at pickup, collect payment first, then confirm
📸 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 | "Restaurant has accepted your order" |
preparing | "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
Customer cancels while you are preparing
If an auto-approved cancellation comes through, no action is needed. If it was admin-approved after preparation started, you will be compensated per platform policy. Contact support if the cancellation was unfair.
Item is out of stock after acceptance
- Contact the customer via the in-app message or call if shown
- If you can substitute: confirm with the customer first
- If you cannot fulfil the order: cancel using "Item unavailable" as the reason — the customer is refunded automatically
Rider is late or does not arrive
- Check the rider ETA in the order detail
- Contact the delivery company via your assigned support contact
- If unresolved: open a support case in Support Cases with the order reference
Rider PIN mismatch
Do not hand over the order.
- Ask the rider to check their app for the correct order
- If they insist, verify the order number matches
- If there is still a mismatch, open a support case immediately
System shows wrong status after an action
Refresh the page before retrying. If still incorrect, open a support case with the order number and description of the action attempted.