The meal is ready, but the rider is still elsewhere
A restaurant has packed two curries when the assigned rider reports a delay at another collection. The kitchen sees ready, the customer sees an arrival estimate, and dispatch sees a rider moving on a map. Those three views need to converge on one decision: collect within the agreed meal-handling window, reassign, or resolve the order with support. Keeping the original estimate on screen while food waits does not coordinate the delivery.
A Deliveroo-style build is an independently branded restaurant marketplace connecting consumer ordering, merchant acceptance and courier dispatch. The reference describes a product pattern; it includes no Deliveroo affiliation, proprietary software, restaurant contracts or inherited rider network. Start with the restaurant-to-rider handoff and the operator who can resolve a failed collection. That operating brief gives the customer app a credible status to display.
Bound a restaurant marketplace around one service area
Choose a launch area with named restaurant onboarding responsibilities, operating hours and a rider supply plan. State whether dispatch uses contracted fleets, individually onboarded riders or a selected logistics provider. A restaurant shown in search needs permission to trade through the marketplace and a way to pause orders when its kitchen cannot cope. A deliverable address needs supported collection and delivery coverage, rather than only a location inside a drawn boundary.
Compare the Uber Eats-style food and grocery marketplace brief when grocery baskets belong in the plan. This release centers prepared meals, kitchen readiness and courier collection. Grocery substitutions, broader category rules and a multi-market operating structure add separate decisions that should not be hidden inside a restaurant ordering quote.
Make item choices and allergen notes reach the kitchen
A dish with required spice level and an optional side needs a menu contract that survives checkout and kitchen printing. Validate allowed combinations, required choices, price additions and temporary unavailability before the customer pays. Snapshot the accepted dish description and modifiers with the order, so a menu edit cannot change what the customer bought. Explain who can publish merchant changes and how the restaurant confirms that its kitchen receives the same choices.
Show merchant-maintained allergen information before ordering and provide an explicit route for a question the published menu cannot answer. Keep an allergen note visible on the merchant ticket and record its acknowledgement where the agreed workflow requires it. Free text is not a substitute for validated information or a safety assurance. Food handling, allergen responsibilities and escalation language need review by the responsible restaurant and qualified local advisers.
Separate submitted orders from merchant acceptance
A customer submitting a basket does not prove that the restaurant can prepare it. Define placed, accepted, rejected and expired states, with an acknowledgement deadline chosen for the operation. Display a pending state while the kitchen responds and avoid announcing preparation before the acceptance event. A rejection should carry a usable reason, such as unavailable items or a paused kitchen, and explain the payment outcome without forcing the customer to discover it later.
Decide whether the merchant accepts from a tablet or a POS, and which system owns that action. Verify that an order reaches the kitchen once even when a connection retries. Acceptance in the ordering service and successful kitchen injection are related but different facts; a failed injection needs an operator alert and recovery route. Preserve the order reference across both systems so support can inspect the same meal rather than searching several unrelated tickets.
Use ready time as a coordination signal
Track estimated kitchen readiness, preparation started and actual ready as separate events. The restaurant must be able to report a delay with a reason and updated expectation; dispatch must see whether the assigned rider can accommodate it. Define when the kitchen should mark ready, including packing and any final collection checks. Reporting ready to improve a dashboard while cooking continues creates rider waiting and makes the next estimate less useful.
Deliveroo’s Order ready and Need more time guidance describes attempts to adjust rider arrival and explains that an existing rider journey or busy network can limit the response. That is a useful boundary for an independent product: record a timing request and the resulting dispatch decision separately. Neither control should promise that a rider will become available immediately.
Dispatch against kitchen readiness and rider availability
Assign a rider using the agreed service area, available capacity, collection location and supported meal-handling rules. Show dispatch the estimated ready time and the rider’s current collection commitment. An assignment should have an acknowledgement and expiry route; an unanswered offer is not a confirmed collection. If the merchant requests more preparation time, decide whether to retain the rider, adjust the offer or reassign with an accountable reason.
Handle the opposite exception explicitly: the meal is ready but no rider can collect. Surface how long the packed meal has waited and who may make the next decision under the operator’s food-handling policy. Do not silently roll the customer estimate forward forever. A freshness concern may need restaurant consultation, remake, cancellation or another reviewed remedy, with its cost and customer communication recorded rather than a generic delivery-failed label.
Confirm the rider collects the correct package
Rider arrived and meal picked up are different states. At a busy restaurant, several similar bags can share a counter. Give the merchant and rider a common collection reference, a package-count check and a clear way to report a mismatch or missing drink before departure. Avoid showing pickup solely because location data places the rider near the restaurant; proximity cannot prove that the correct food changed hands.
Record the collection confirmation, actor and time, with the minimum evidence agreed for the service. If the rider reports ready food missing, preserve both reports and send the case to dispatch. For an offline rider, distinguish a locally queued update from a server-confirmed pickup and reconcile it on reconnection. Restrict access to customer addresses and contact channels to the people handling the order, with retention and emergency support rules settled before rollout.