R
Docs
Customer Ordering

Customer ordering — how it all flows

Pickup, delivery, dine-in — the order pipeline end-to-end.

1 min read Updated 5/28/2026restaurant-ownercustomer

The lifecycle

Every order moves through these states:

  1. Pending — customer placed it; awaiting your acknowledgement
  2. Accepted — you confirmed; kitchen knows
  3. Preparing — being cooked
  4. Ready — waiting for pickup or driver
  5. Delivered — done (auto-triggers payout window)

Two terminal states: Cancelled (by customer or you) and Rejected (by you — out of stock, kitchen closed).

Notifications

At each transition the customer gets:

  • An email with the new status + items + total
  • An SMS (if you have an SMS provider configured — Twilio / Vonage)
  • A push to the live order tracker at /track/{tenantId}/{orderId}?email={email}

The kitchen sees every new ticket on the Kitchen Display System (coming soon).

Pickup vs delivery vs dine-in

  • Pickup — customer collects from the restaurant. No address required.
  • Delivery — driver delivers. Address + zone validation required.
  • Dine-in — customer is at a table. QR-pay flow handles the bill.

Customers pick the type at checkout. You can disable any of the three under Settings → Ordering.

Customer-facing tracker

After checkout, customers get a "Track this order live" button on the confirmation page. The tracker page (/track/[tenantId]/[orderId]) polls every 4 seconds while the order is live and shows a 5-stage progress bar + full event timeline + ETA + share/copy links + self-cancel button (within the escrow grace period).

Frequently asked

  • Not via self-service. Cancellation + re-order is the supported path during the grace window. Direct edits are coming in a future release.