One block turns your menu into an ordering site: dine-in, collection or delivery, paid online or at the till. A guest orders in a few taps and the ticket is on your Orders screen before they've put their phone down — sound on, notes and all, ready to move through picking, ready and paid.
Build → Order from our menuFull plan
Switch on ordering from your menu
Open Build and add the Order from our menu block — it's under Conversion, or start from the ready-made Order page template, which pairs it with a header. Every field in the inspector decides exactly what a guest can do:
Offer dine-in asks for a table number when it's on. Offer collection and Offer delivery add those channels, each with its own toggles for allow pay at restaurant and allow Stripe Pay — dine-in and collection can take either or both. Delivery is Stripe Pay only, because there's no in-person moment to take cash or a card. Turn it on and set a delivery fee mode (a fixed fee, or postcode-radius distance tiers) and a maximum radius.
Below that: a minimum order in pounds, a collection cut-off before closing time (up to closing, or 15–60 minutes ahead), and a ready-time note guests see once they've ordered — "Usually ready in ~20 min" is a good one. Publish the page and the block is live; there's no separate switch beyond that.
You don't have to connect anything to start: dine-in and collection work immediately on pay-at-restaurant. Connect Stripe under Settings → Payments whenever you want guests to pay by card up front, or to switch delivery on — and every dish gets its own Available for chips (Dine in / Collection / Delivery) and an age-restriction flag in the dish editor, covered in Put your menu online → Everything one dish can carry. The cut-off and delivery windows read the same hours your bookings use — see Hours and booking rules → Set your weekly hours for where those live.
What a guest orders through
With more than one channel switched on, the widget opens on a full-width question before it shows a single dish: How would you like to order? — Dine in, Collection or Delivery, each its own button with an icon. A QR code on a table skips this entirely and locks the page straight to dine-in.
Pick one and the same choice pins itself as a compact bar at the top of the page. Dishes list exactly like your Menu page — sections, photos, dietary chips — with a Dietary & allergens filter and a running Your order panel that stays in view beside the menu.
A plain dish steps straight into the basket. One with sizes or required extras opens an add-to-order sheet instead — a photo carousel, the description, every option group, and a note field, so nothing about the dish is decided badly in a hurry.
The basket itself lists lines with quantity steppers and a running total; on a phone it's a pinned View basket bar that scrolls up to the same panel. Checkout asks how they'd like it (mirroring the mode bar), Pay now by card or Pay at the restaurant when both are configured, a table number or party size, name, phone and email, a delivery address with postcode lookup where that applies, the marketing and terms checkboxes, and notes for the kitchen. Below the minimum order it says exactly how much more to add — never against an empty basket. Then Place order.
After a guest orders
Submitting swaps the page for an Order received screen with the order reference and, once it's live, a status tracker that checks in every 20 seconds and relabels its steps for the channel: Received → Accepted → In the kitchen, then Ready to collect → Collected for collection, On its way → Served for dine-in, or Ready → Out for delivery → Delivered for delivery. If an order is cancelled, the tracker steps aside for a plain note asking the guest to call if that's unexpected. Whatever ready-time note you set in Step 01 prints underneath it — that's the last thing the guest sees before the kitchen takes over.
Where orders land
Open Orders in the sidebar. The header states the day at a glance — 12 in progress · 300 recent — a Sound on toggle for the new-order chime, and Export CSV. Five tabs filter the list: In progress, New, Done, Cancelled, All, each with a live count, and the browser tab itself picks up a (N) prefix while anything sits in New.
Each card leads with a reference, a status chip, where the order's going (a table and party size, Collection, or Delivery), and a payment chip — Paid, Pay at restaurant, Refunded, Part refunded or Awaiting payment. Kitchen-printer status (like Print expired) shows here too, once you've connected a printer — that's the full subject of the next guide, Printing and receipts. Below that, every line item with its price, a note field, and — while the order is still active — a prepared checkbox and quantity steppers. The list refreshes itself: a realtime nudge plus a 30-second poll underneath it, so the screen never needs a manual reload mid-service.
Move an order through its stages
The Status dropdown only ever offers the moves an order can actually make from where it is — New moves to Confirmed, Confirmed to Preparing, Preparing to Ready, and Ready on to Done (delivery orders pick up an extra Out for delivery step first). Cancel is always on offer until an order is Done. Once an order reaches Done or Cancelled the dropdown is there but disabled — there's nowhere left for it to go.
Done picking ticks every remaining dish as prepared in one tap and sends the order straight to Ready — or tick dishes off one at a time as the kitchen finishes them; the button relabels itself All prepared → Ready once every line is ticked. Each line also carries −/+ steppers, an editable note, and a way to cancel or restore it, and the order's Discount and Service charge lines are editable too — a 5%/10%/20% shortcut or a typed amount for the discount, None/10%/12.5%/a typed percentage or amount for the service charge. Both lock once the order is paid.
Table, delivery and collection details
What a card shows beyond the dishes depends on the channel. A dine-in order carries its table and party size as a chip — Table T02 · 1 guest in the screenshots above — drawn from the table list you've set up, or free text if you haven't. Collection carries nothing extra beyond the cut-off it was placed against. Delivery shows the full address, postcode and any delivery notes on the card, plus a delivery-fee line on the total where one applies — and because delivery is Stripe Pay only, there's never a "pay on arrival" ambiguity to sort out with the driver.
How guests pay, and marking an order paid
Card payments for online orders run through your own connected Stripe account. Every transaction is processed independently by Stripe and paid out directly to your bank — no third party, including TableSpark, can access or hold the funds, and we charge no commission. Stripe's standard card fees apply. That's the whole arrangement: connect Stripe once under Settings → Payments, and every card payment from here on settles the same way.
An order paid online has no manual paid/unpaid switch — Stripe is the source of truth for it, and the payment chip and any refund line say everything there is to say. A pay-at-restaurant order gets a Mark paid button once cash or a card machine has settled it (visible in FIG. 05 above), and where you've registered a Stripe Terminal card reader, a Charge on card reader button starts a reader payment on the order directly.
Refund an order
Any Paid or Partially refunded order carries Full refund and Partial refund. Full refund arms on the first press — it turns into Confirm refund? for a few seconds — and fires on the second; Partial refund asks for an amount up to whatever's left owing. An online order refunds itself straight through Stripe; a pay-at-restaurant order records an offline refund instead, since there's no card to reverse.
Choosing Cancelled on a paid order asks you to confirm first and refunds the guest in full as part of cancelling, and a Refunded so far line appears under the total the moment any refund lands. Refunding is owner-only, checked on the server regardless of who's signed in — and reprinting a kitchen ticket or a guest's VAT receipt, the two buttons sitting quietly beside Refund on every card, is the full subject of the next guide.
Add the block, publish, and the loop closes itself: a guest orders through the same menu you already built, and the ticket is waiting on Orders before you've finished reading this sentence.
Next · the kitchen side
Next: printers and receipts
Connect a kitchen printer, read a ticket's print status, and hand a guest their VAT receipt.