Skip to main content

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.view
  • restaurant.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

  1. Tap the order to open it
  2. Review the items and any special instructions
  3. 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 preparing automatically 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:

  1. 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:

  1. Ask the rider for their PIN
  2. Verify the PIN matches the code shown on your order detail screen
  3. Hand over the packed order only after the PIN matches
  4. 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:

  1. Collect the stated amount before handing over the order
  2. Tap Payment collected to record receipt
  3. 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:

  1. When the customer arrives, verify their name matches the order
  2. Ask them to show their order confirmation or quote their order number
  3. Tap Confirm customer pickup — this records collection and completes the order
  4. If the customer paid online (card/mobile money), no cash is collected
  5. 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 statusWhat 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

  1. Contact the customer via the in-app message or call if shown
  2. If you can substitute: confirm with the customer first
  3. 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

  1. Check the rider ETA in the order detail
  2. Contact the delivery company via your assigned support contact
  3. If unresolved: open a support case in Support Cases with the order reference

Rider PIN mismatch

Do not hand over the order.

  1. Ask the rider to check their app for the correct order
  2. If they insist, verify the order number matches
  3. 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.