How do I build my menu and share it with customers?
Build your menu with photos, allergen and dietary badges, choice steps, reusable choices, VAT rates, serving times, specials, set menus and deals — then share it as a live, searchable page.
You build your menu on the Menu page in the dashboard sidebar, and customers see it as a tidy read-only page on their phones — no ordering, just a beautiful live menu.
Menu management needs the Pro plan or above, or the Order & Pay or Your website product — without one of those, the page shows "Menu management comes with Pro and above, or the Your website product", with the cheapest way in and its price (Your website, £15 per month). Staff need menu permissions to make changes: by default Hosts can only view, while Managers and above can add and edit.
Already have a menu somewhere — photographed, a PDF, on your website, or in a spreadsheet? Import menu — in the … beside Add a dish at the top of the page — reads it in for you, and shows you every dish to check before anything is added. See importing your menu.
Build your menu
- Open Menu in the sidebar and click Add category first — every dish must live in a category. Give it a Category name and a Display order number (lower numbers appear first). You can also add a short Description (optional, up to 200 characters) that shows under the category heading — for example, "Adult breakfasts include toast and an Americano" — and an optional Default VAT rate for new dishes (see "VAT defaults" below). The form also has a Hide from customer menus switch: a hidden category never shows on your public menu, ordering or TV screens (your dashboard always shows it, with a small eye-off marker in the category list). Customers only ever see a hidden category when something deliberately offers it: a special pre-order date that uses it as its menu (see pre-ordering), an event whose linked menu picks it (see events), or a shareable menu that includes it (see "Shareable menus" below) — that's how a Christmas menu stays private until it's needed. There's also an Available for pre-orders switch (on by default): turn it off to keep the whole category — and every dish in it — off the pre-order list, on the customer pre-order page and staff phone entry alike, while it still shows on your ordinary menus; a special pre-order date that picks the category as its menu still serves it.
- Click Add a dish. Fill in the Name, pick the Category, and add a Description (optional).
- On the Allergens step, tick any Dietary boxes that apply to the whole dish — Vegetarian, Vegan, Gluten-free or Dairy-free. Each tick shows as a small word mark beside the dish wherever it's listed ("Gluten-free", "Vegan") — your menu, the dish's box, set menus, today's specials and your team's own dish lists. A dish your kitchen can make another way instead goes on the row below, Can be made … on request (see "Can be made gluten-free (or vegan, and so on) on request" below). Typing markers like "(v)" in the description no longer does anything — use the tick-boxes.
- Type the Price. The box starts empty and a new dish needs a price before Next moves on (it says so under the box) — £0.00 is fine for something free, and shows as Free on your menu. If the dish's price varies by size or options, switch on Show as "From" price — your menu then shows "From £12.00" instead of a set price. No fixed price — fish that changes with the market, say? Above the price, Your menu shows offers A price (every dish starts there), Market price or Ask the team: pick one of the last two and your menus, screens and website show those words in the price's place, and the dish can't be ordered or pre-ordered until you give it a price again. A price you typed before is kept, so switching back to A price brings it back.
- Add a Photo (optional): drop a photo on the box or tap Choose a picture — iPhone photos and big photos are fine, they're converted and shrunk for you — and a guided crop frames it square (800×800 recommended). From your images picks one from your image library, Or paste a web address copies a picture from a link into your library, and Adjust crop reframes it later. To add photos to several dishes at once, use Add photos to dishes above your dishes.
- Leave Available switched on, then click Add dish. The last step's tick-box, "Then start another dish in" your category, starts ticked, so saving opens a fresh form in the same category for the next dish — entering a whole category is quick. Untick it to close the form after saving; the untick holds for the rest of your visit to the Menu page. That last step also says plainly where the dish will appear: a dish in a hidden category, or a dish hidden from your menu, shows on no menu and is offered only where something picks it (a special date's pre-orders, an event's menu, a shareable menu), and the Available switch says the same.
Two more switches in the dish form put a small tag beside the dish on your menu: Mark as popular shows a "Popular" badge (you choose — it's never automatic), and Mark as new shows a "New" tag for four weeks. The switch tells you the tag's last day, and the tag drops off by itself after it — tick it when your autumn dishes go on, and the tags go on their own at the end of October. Both start off.
To change a dish later, open it, edit and click Save changes. You can't delete a category while it still contains dishes — move or delete the dishes first. If deleting a dish would leave its category empty, the delete confirmation offers a tick-box — "This leaves the section empty — remove the section too?" — so you can clear both in one go; leave it unticked (the default) and the empty section stays. Empty sections never show on your public menu either way. If a live set menu or deal points at the section, the confirmation says so — with no dishes in it the deal simply isn't offered until dishes return. Deleting a dish or section that a promotion's scope or a loyalty reward's menu link points at also warns you first, naming what's affected — "Delete anyway" proceeds, and the promotion then stops matching until its dishes are re-picked. Replacing your whole menu via the menu import shows the same warning, listing every affected promotion and reward before anything is wiped.
Give a dish choices (sizes, sauces and more)
Some dishes come in versions — a choice of size, wings or ribs, a pick of sauces. Open the dish and use its Choices section to set them up:
- Click Add a choice step. Each step is a question customers will answer, like "Choose your size" — give it a prompt and add its options. Prompts and option names can be up to 60 characters, with up to 30 options per step and up to 10 steps per dish.
- Under each option's name there's an optional Description — a short line, up to 140 characters, that tells guests what the option is. It's handy for a set menu run as one dish with a step per course: "Roast turkey" with "Hand-carved, with pigs in blankets and all the trimmings". Guests see it as a smaller line under the option's name in the dish's box when they browse, and when they choose — ordering at a table or for collection or delivery, and pre-ordering (the booking page, their manage-booking page and a party's own links); your team sees it in Record a pre-order and when taking an order. Leave it empty and nothing extra shows. The short one-line summary on the dish's card stays names only.
- Each option can carry its own allergens and dietary marks: under the option, Allergens and dietary opens the same 14 Allergens tick-boxes and Dietary marks as a dish. Guests see them beside the option wherever they choose ("Contains: tree nuts", a small "Vegan" mark). A picked option's allergens are added to the dish's own — one combined "Contains: …" list on kitchen tickets and screens, dockets, the day sheet, the booking's pre-order, the manage-booking page and receipts — so tick on the dish only what's always in it and on each option what that choice adds. The dish's last step says when some choices list no allergens. A dish that can be had vegan (or gluten-free, and so on) by what the guest picks — a set-menu-style dish with a vegan starter and main, a pie with a gluten-free pastry — is set on the Allergens step's Can be made … on request row: tick it there and, because its must-pick choices already offer that, nothing is added — the dish shows "Vegan option" (never plain "Vegan") and appears under the menu's Vegan filter. Leave it unticked for a beef burger whose sides happen to be vegan. (The old Can be had vegan, vegetarian, gluten-free or dairy-free through its choices switch has moved into that row — dishes that had it on read just as before and are listed under Check these dishes.) A dish's own allergens rule a word out (gluten: gluten-free; milk: dairy-free, vegan; eggs: vegan; fish or shellfish: vegan, vegetarian).
- If an option costs extra, give it a +£ amount on top of the dish's base price. For example, a Ribs & Wings platter at £12.00 with a Large option at +£4.00 makes a large platter £16.00. Options with no amount are free choices.
- Switch on Customers must pick for steps that always need an answer (like a size); leave it off for optional ones (like extra sauces). How many can they pick? offers three modes: Just one, Up to N (they can pick fewer) and Exactly N (no more, no fewer — "pick your 2 patties"). An optional "Exactly N" step means customers can skip it entirely or pick exactly that many — the editor spells this out under the step, and customer screens hold the button shut until the count is met. (A step can also let guests take the same option more than once — see "Let guests pick the same item more than once" below.)
- As soon as a dish has a priced choice, your menu automatically shows it as From £12.00 — you don't need to touch the "From" price switch yourself.
- Building a similar dish? Copy choices from another dish pulls in an existing dish's steps — descriptions, allergens and dietary marks included — so you don't retype them. Copies are independent — and every copied option arrives marked available, even if it happened to be sold out on the source dish at that moment (sold out is a live-service fact, not part of the choices).
- Naming options after real dishes — say a set-meal-style "pick a side" step? Pick from menu (next to "Add an option") fills the option's name from one of your dishes, suggests that dish's price as the extra cost and copies the dish's allergens and dietary ticks (it leaves the option's description for you to write). You can change any of them, and they aren't connected afterwards — changing the dish later never changes the option.
If a single option runs out mid-service (say, the ribs), mark just that option sold out — the dish and its other choices stay available.
Customers browsing your menu see what each choice offers before they decide where to eat. On the dish's card every step gets one short line — its prompt, then its options with any extra cost, like "Pick your sauce: Peppercorn · Béarnaise +£1.50 · Red wine jus" — cut after four options with "and 3 more". Tapping the dish opens its box with every step in full: how many to pick ("Pick one", "Pick up to 3", "Pick one if you like"), each option with its extra cost, its description and its own allergens and dietary marks, sold-out options marked, and an option that needs an earlier pick marked "Only with Large". That's the same on your menu page, the menu widget on your own website, shareable menus and event menus. Nothing about ordering changes: a customer ordering (at a table, for collection or delivery) still picks step by step when they add the dish. Your own dashboard's dish rows show the "Choices:" prompts at a glance.
Let guests pick the same item more than once
Sometimes the right answer is three of the same thing — ten wings across six sauces, four hash browns on one builder breakfast. Open the choice step and switch on Allow the same item more than once: guests then get − and + buttons against each option instead of one-tap picks, with the running count stated plainly as they go. Each extra one adds the option's +£ again — three hash browns at +£1 each add £3.
With repeats on, How many can they pick? counts the total number of items rather than different options, so it can be bigger than the list itself — "up to 10 items from these 6 options" is exactly the point (totals can go up to 50). If one option shouldn't hog the lot, set Most of any single item — a per-option cap ("no more than 3 of each"). The editor's Guests will see line previews the rule in everyday words before you save, and switching repeats back off simply clamps the numbers to the list size again.
Wherever the order travels next — the kitchen and bar screens, the printed day sheet, receipts and confirmation emails — repeated picks show once with a count, like "Hash brown ×3", never three identical lines.
Can be made gluten-free (or vegan, and so on) on request
Some dishes come one way but your kitchen will make them another — the Christmas turkey without the gluten, a curry made vegan. Open the dish and, on the Allergens step, tick the mark on the second row, Can be made … on request (Dairy-free, Gluten-free, Vegan or Vegetarian). A mark sits on one row or the other — ticking it here takes it off Dietary ("the whole dish is…").
- What guests see. The dish shows "Gluten-free option" (never plain "Gluten-free", which would claim the whole dish) and appears under the menu's Vegan or Vegetarian filter where that applies. When they choose it they're asked "Standard or gluten-free?" — tick two marks and it's one question, "Standard, gluten-free or vegan?", pick one. A menu they can only browse just shows the card.
- The question is added for you. It sits first in the dish's choices, locked: the Choices step shows it with "Added by "Can be made gluten-free on request" — change it on the Allergens step". Your own choice steps work exactly as before. If the dish's own must-pick choices already offer that mark (a gluten-free pastry base), nothing is added.
- Allergens stay true. If you've ticked an allergen the version can't have — gluten for gluten-free, milk for dairy-free, milk, eggs, fish or shellfish for vegan — the line under the tick says so before you save: "You've ticked Cereals containing gluten above — it will show for the standard version only." Guests read "Contains: celery, gluten (not in the gluten-free one), milk, sulphites"; a standard plate's ticket lists gluten, a gluten-free plate's doesn't. Nothing is ever taken off: untick the mark and the question goes and gluten is back on the dish.
- Your team and the kitchen. Your team's own dish lists show the same marks and "Contains: …" on every dish, and the chosen version as a mark. The kitchen ticket prints it loudly — " GLUTEN-FREE " — and the kitchen screens show it as the mark.
- Set menus read the same: a course can be "Gluten-free option", and its question opens like any dish's choices.
An "on request" version isn't a promise of no cross-contact — your menu's line about allergens in your kitchen and the checkout's allergy question still apply. It's menu information, so it's on every plan's menu; unticking a mark is never blocked.
Check these dishes. A dish ticked Gluten-free on the dish that also asks guests to pick "Standard / Gluten Free" is now shown as "Gluten-free option" (it can't be gluten-free both ways), and so are dishes like it ("Vegan", "V", "Dairy Free", "DF"). Menu → Allergens lists them under Check these dishes, each with Make it "gluten-free on request" — which opens the dish on its Allergens step with the mark moved to the second row and your hand-built "Standard / Gluten Free" step folded into the automatic question, as a preview: nothing changes until you press Save dish — or It's gluten-free either way, which keeps the plain "Gluten-free". Dishes that had the old "through its choices" switch on are listed too, with Move it to "Can be made … on request". The Menu page says how many are waiting.
Reusable choices — build a step once, share it across dishes
A bar menu makes the problem obvious: 40 spirits, one "Choose your mixer" question. Rather than copying it 40 times, build it once as a reusable choice — the Menu page's Reusable choices tab. (If you knew these as "choice sets", it's the same thing renamed.)
- Click Add a reusable choice, give it a Name (your label — e.g. "Mixers"; customers see the question, not the name), then build the choice exactly as you would on a dish: the question, the options, their prices, the must-pick rules — repeat picks included. The last step is a Review that says what happens when you save. Reusable choices follow the same limits as dish steps.
- Attach it to a dish from the dish's own Choices section — Add a shared set lists your reusable choices with how many dishes each is used by. It appears on the dish as a highlighted read-only card; you can reorder it among the dish's own steps or remove it, but you can't edit its contents from the dish — a reusable choice means the same thing on every dish. A dish that genuinely needs a different list should get its own reusable choice (or its own step) instead.
- To cover a whole category in one go, open the reusable choice's … menu and choose Add to dishes in a category: pick the category, untick any exceptions, and press Apply to these dishes on the Review. This is a one-off — it adds the reusable choice to the ticked dishes in that category as it is right now. Dishes you add to the category later do NOT get it automatically; add it from the dish editor or run the apply again (already-covered dishes are simply skipped).
The point of a reusable choice is that editing it updates every dish using it — add a new mixer once and all 40 spirits offer it. Because that's powerful, an edit's Review names every dish it will change before anything happens, and the save button itself says how many ("Save and update 41 dishes"). Each reusable choice's row says where it's used — "Used on Steak frites", or "Used on 3 dishes" with the list one tap away. A reusable choice that's still on dishes can't be deleted — remove it from those dishes first. If one gains a priced option, every dish using it switches to a From price automatically, exactly as if you'd priced the option on the dish itself.
Allergens, alcohol and VAT on a dish
Each dish's edit form also carries three compliance fields (added for at-table ordering, but you can fill them in any time):
- Allergens — tick every allergen the dish contains from the standard UK list of 14 (celery, cereals containing gluten, crustaceans, eggs, fish, lupin, milk, molluscs, mustard, peanuts, sesame, soya, sulphur dioxide and sulphites, tree nuts). Guests read them in words everywhere the dish is listed ("Contains: gluten, milk") — on your menu, in the dish's box, on set menus, today's specials, receipts and your team's own dish lists; your Menu page's own rows show them as short codes you can tap for the name. A dish with none ticked carries no line of its own — your menu says once, at the top, "Some dishes don't list their allergens — please ask the team." (and the allergen search shows them apart, under "These dishes don't list their allergens" — see "Share the menu with customers" below). A dish's choices can carry their own allergens too (see "Give a dish choices" above) — a picked item's list is the dish's plus the picked options'. Allergen information is your venue's legal responsibility — ResoFlow shows exactly what you tick and can't check your recipes, so keep it accurate and review it whenever a recipe or supplier changes. Nothing stops you saving a dish without allergen details, but filling them in is strongly advised.
- Contains alcohol — marks the dish for 18+ age checks when customers order and pay from their phones with Order & Pay (it's only shown where you have Order & Pay; on a plan without it you'll see it greyed with how to get it, and a dish still marked after Order & Pay ends keeps the switch, with a note, so you can switch it off). You can also set it while importing your menu: the review screen pre-ticks it for dishes that read as alcoholic drinks (always flagged for you to check, never silently), and each section header has a Mark all as contains alcohol button for a whole drinks section.
- VAT rate (optional) — the dish's VAT rate (20% standard, 5% reduced or 0% zero-rated), used to break down the VAT included on customer Order & Pay receipts and on pre-order payment emails, and in VAT-ready sales exports. VAT only ever appears when your VAT number is set on Settings → Payouts and Stripe (available on every paid plan) — venues that aren't VAT registered never show it. Ask your accountant if you're unsure.
VAT defaults — set the rate once, not dish by dish
Most venues charge the same one or two VAT rates across the whole menu, so there are two optional defaults that fill the rate in for you:
- Per category — a category's edit form has a Default VAT rate for new dishes. New dishes you add to that category start with this rate when you leave the dish's own VAT rate "Not set" — the dish form pre-fills it and says where it came from, so you always see exactly what will be saved and can change it for the odd exception.
- Venue-wide — the same Default VAT rate for new dishes exists for your whole venue on Settings → Menu and stock, in the Your menu for customers section. It applies when the dish's category has no default of its own; a category default always wins over the venue default.
Defaults apply to new dishes only — the rate is stamped onto each dish as its own VAT rate at the moment you add it, and setting or changing a default never changes dishes you've already added. To set a rate on existing dishes, edit the category and click Apply {rate}% to all N existing dishes — after a confirmation, it sets that rate on every dish currently in the category, including dishes that already had a different rate. Dishes keep their rate even if you later change or clear the default.
Serving times on a category
A category can carry serving times — a lunch section served weekdays 12–3, a breakfast page that ends at 11. Set them in the category's own edit form: its Serving times block takes day pills plus a start and end time per window, with several windows allowed (up to 21; an end at or before the start runs overnight, so 21:00 to 02:00 covers a late bar). The category list marks timed sections with their hours, and — on venues with Order & Pay — the same windows are also editable on Settings → Menu and stock → Serving times, where the per-category ordering switches live (see Order & Pay).
Out of hours the category is never hidden: it stays on your customer menus with its serving times shown against its name — "Served Mon–Fri 12:00pm–3:00pm" — so customers can still read tonight's dinner menu at breakfast. Customers see those times on the same clock as the rest of your public pages: 12-hour unless you've picked 24 hour under Time format for public pages (see branding), when it reads "Served Mon–Fri 12:00–15:00". Your wall screens show them on the same clock as the time in their own header. It just can't be ordered: at-table ordering won't take its dishes outside the window, and a pre-ordering party can't pick its dishes for a booking that falls outside the window either — both say why in plain words rather than failing silently. A category with no serving times is simply available whenever ordering is, exactly as before.
Set menus & deals (Pro and above, or Order & Pay)
The Menu page's Set menus & deals tab (beside Dishes at the top) is the ONE place to make a set menu — never build one as a dish with choice steps (the dish form's choices step says so: "Making a set menu?" with a Use Set menus & deals button that takes you here). Set menus & deals come with the Pro plan and above (the plans with pre-orders) or an Order & Pay product; a plan without them sees the tab locked with how to get it, and a venue with only Your website doesn't see the tab. Here you bundle existing dishes into one price: a course-based set menu ("Christmas Day — Adults", "3 courses for £25"), a simple bundle ("burger + any drink £15") or a pick-several deal ("any 3 for £15" — set a slot's Customer picks count above 1) — one engine covers all three. For the pick-several kind there's a shortcut: Build-your-own deal pre-shapes a pick-any-3, whole-category deal for you — choose the section and the price and it's ready to save. When a customer picks several from one slot they can choose the same dish more than once by default; switch on Each pick must be a different dish to require variety.
The editor's last step, Where and when, answers three things separately:
- Where it shows — on your menu page: At the top of your menu (the default), Inside a category (announced as a compact chip under that category's heading, with a small "Part of …" marker on each of its dishes), At the top and in its category (one set menu, two cards — customers pay the same wherever they tap it), or Hidden — only where you pick it (never on your menu page).
- Where it can be ordered — tick Order & Pay (customers order it at the table, or for collection or delivery) and/or Pre-orders (guests choose it when they pre-order for a booking, on any day pre-orders are on). Tick neither and it's offered only on the special dates whose pre-order menu ticks it — see special dates. If a special date ticks it, the editor says so ("Also offered on: Christmas Day (special date)"). A place your plan no longer includes stays listed while it's ticked, so you can untick it.
- When it's available — optional day-and-time windows; no times means always available. Order & Pay checks the time now; a pre-order checks the booking's own day and time.
A shown set menu that can't be ordered in Order & Pay still appears on your menu page, view-only: tapping it shows what's in it — each course's dishes with their allergens and dietary marks — and where it can be had. A hidden set menu that isn't ticked for Order & Pay never reaches your public menu at all, and neither do the dishes of a hidden category it's built from — an unreleased Christmas menu stays unreleased.
In Order & Pay (only for venues with Order & Pay): every shown set menu or deal ticked for Order & Pay (except one priced by how many they pick) has an Apply automatically switch, on by default — a customer whose basket contains dishes that fill it gets the deal price even if they never tapped the card, always in the customer's favour, folding the dearest qualifying dishes into the bundle. Switch it off and it only applies when a customer taps the card and picks their dishes. A hidden one ticked for Order & Pay always applies by itself there. For example, with "3 cocktails for £15" and four cocktails at £8, £7, £6 and £5 in the basket, the £8 + £7 + £6 become the £15 bundle and the £5 one stays full price — the customer pays £20 and the basket names the deal with the saving shown. An automatic apply only ever happens when it makes the order cheaper.
Build a set menu or deal, step by step (Pro and above, or Order & Pay)
- Click Add a set menu or deal. It's built in four short steps, then a Review. Step one, The set menu or deal: its Name, an optional customer-facing Description, and an optional Who’s it for? word ("Adults", "Kids" — up to 24 characters) used when guests choose one each: "2 adults' set menus · 1 kids' set menu". Leave it empty and the name is used.
- What’s in it: add up to 6 slots — one per course or choice ("Starter", "Main", "Any drink"). Each slot works one of two ways:
- Hand-picked dishes (the default) — pick its dishes from your real menu (searchable, grouped by category, up to 40 per slot). Picks are references, never copies — a dish's price, description, photo, dietary badges, allergens, choice steps and VAT rate all ride along, and renaming a dish updates the set menu too. A hand-picked slot needs at least one dish before you can save.
- A whole category — the slot offers whatever is in the category you choose, kept up to date automatically: the perfect shape for "any 3 small plates for £15". A dish you add to that category later joins on its own — the dish's save screen tells you so, names the deal and offers a tick-box to keep the dish out. Dishes kept out are listed on the slot ("Kept out of the deal"). Category slots don't carry supplements, and if the category is emptied or deleted the deal simply stops being offered until you fix it.
Give any hand-picked dish an optional Supplement £ — "+£4.00 for the steak" — charged on top when it's picked. A chosen dish's own priced choices also add on top.
- Price: one Bundle price — what customers pay instead of the chosen dishes' own prices (from £0.30 up to £2,000), per person for a set menu. Or switch on Priced by how many they pick (below).
- Where and when — where it shows, where it can be ordered and when it's available (above). Leave Live on, check the Review and press Add. The live/pause switch on the list stops it instantly whenever you need to.
A few rules worth knowing: a sold-out dish drops out of its pick-lists automatically, and if a slot ends up with no available dishes the whole set menu stops being offered until you fix it. Automatic promotions never apply to set menus & deals. A promo code the customer types CAN come off deal prices in Order & Pay while the Promo codes can be used on deal prices toggle (Settings → Order & Pay, on by default) is on; a code limited to certain items never touches a deal (see How do promotions, deals, rewards and gift cards work together?). If you've set dish VAT rates, Order & Pay receipts, the daily sales email and the per-item sales CSV split the bundle price across the chosen dishes' rates (in the CSV, one row per rate — "Steak Night (20% VAT portion)"; if any chosen dish has no rate, the VAT cells stay blank rather than guessing).
One deal, several prices — priced by how many they pick (Pro and above, or Order & Pay)
Some menus print the same offer at more than one size — "3 small plates £14.99 · 5 for £19.99 · 7 for £25", or a set menu at 1/2/3-course prices. That's one deal with a price ladder, not several deals. In the deal's editor, switch on Priced by how many they pick: the single bundle price steps aside ("Set by the tiers below") and you list tiers instead — each tier is a number and its price, Add another tier takes you up to six. What the numbers count depends on the deal's shape:
- One slot (a pick-several deal): the tiers count dishes picked from that slot. Customers pick a number that matches a price — the picker shows the choice plainly ("Pick 3, 5 or 7") with a running count, and the price shown is always the matched tier's. A number in between can't be added; instead of showing a wrong total, the picker says what reaches the next price.
- Several slots (a courses set menu): the tiers count courses. Every course becomes optional — a customer who doesn't want a starter taps Skip this course — and the number of courses they keep sets the price.
On the customer's menu a tiered deal prints its whole ladder ("3 for £14.99 · 5 for £19.99 · 7 for £25") on its card and on its category chip — never just the smallest price. The order line, the customer's receipt and your sales figures all use the matched tier's price, with any supplements and priced choice steps added on top exactly as on a single-price deal.
Three rules worth knowing:
- Bigger tiers must cost more. Each tier's count and its price must both go up — a ladder where 5 costs the same as (or less than) 3 is refused when you save, and the menu importer refuses to draft one from a photo for the same reason: it's a money-losing typo, not a real menu shape.
- A tiered deal never applies automatically. With several prices there's no single tier a basket could honestly be folded into, so the Apply automatically switch doesn't appear on a tiered deal — customers choose the deal, and their number, themselves.
- A tiered deal can't be hidden while it's ticked for Order & Pay. Hidden there means it applies by itself, which a tiered deal never does, so the editor won't let you combine the two. A hidden tiered set menu offered only where you pick it — on a special date's pre-order menu — is fine.
Availability windows work exactly as on any other deal — a lunchtime-only "3/5/7 plates" deal is fine, and outside its times the card shows its times and can't be started. And when the menu importer reads a printed offer with several pick-count prices, it proposes it as one tiered deal with the full ladder shown for you to accept — see How do I import my menu?.
Today's specials
Got something on today that isn't on the printed menu — or a dish you want to push? Open the dish, and switch on Today's special. That's the whole job: no dates to fill in, nothing to remember to undo. The special ends at the end of today by itself, so yesterday's special can never sit on a wall screen advertising food nobody is cooking.
The dish does not move. It stays exactly where it lives — Starters, Mains, wherever — and also appears in a Today's specials section pinned at the top of your menu. So stock counts, station routing, VAT and Order & Pay all carry on working untouched, and there's nothing to tidy up when the special finishes.
Two optional extras sit under the switch:
- Special price — what the dish costs while it's on special. Your menu shows today's price with the usual price struck through beside it, and that's also what customers are charged if you take orders with Order & Pay. Leave it blank to feature the dish at its normal price.
- Note — one short line shown beside the dish, like "While it lasts" or "Chef's pick".
Want it to run longer than today, or only at certain hours? Open Schedule underneath. Set Starts and Ends after dates to run it over a period, and add time windows for something like a lunch-only special or "every Tuesday". The summary line above the fold always tells you what's currently set — "today only · all day" until you change it.
A special shows in four places, and they always agree with each other because they all read the same thing: the Today's specials section at the top of your customer menu, your menu board screen (marked in place, with the old price struck through), the dedicated Today's specials display screen, and Order & Pay, where it's ordered at the special price. On your own Menu page a dish on special carries a small amber Special badge, so you can see at a glance what's on without opening dishes one at a time.
The specials display screen clears itself. When the last special of the day ends, the screen simply shows "No specials on today" — nobody has to go and switch anything off.
Mark a dish sold out
Flip the Available switch on the dish's row (or inside its edit form). When it's off, the public menu greys the dish out and marks it "Sold out today" (the price stays visible) — handy mid-service when something runs out. Flip it back on when it returns.
Rather customers didn't see it at all? Switch on Hide sold-out dishes (Settings → Menu and stock → How your menu looks — see "How your menu looks" below): a sold-out dish then drops off your menu — its section, the section buttons, today's specials, the menu search and the dietary filters all agree — and comes back by itself when it's available again. It's off to start with.
You can also type it into the search: "86 the salmon" or "only 5 sea bass left" opens your menu with one check for that dish — see What can I type into the search?.
Hide a single dish from your menu
Sold out and hidden are two different things, and the difference matters. Available switched off still shows the dish, greyed out with a "Sold out" badge — you're telling customers "not tonight". Hide from menu takes the dish off your customer menus completely — you're telling them nothing at all.
Open the dish's … menu on the Menu page and choose Hide from menu. It then disappears from your public menu page, your menu board and TV screens, and at-table ordering, while staying set up in your dashboard with everything about it intact — its price, photo, allergens and choices are all still there for whenever you want it back. Your own Menu page shows it with a grey Hidden badge so you always know why it isn't appearing.
Use it for a dish you're resting for the season, one you only do for private bookings, or a staff dish that was never meant to be on the menu. A hidden dish still appears where something deliberately offers it — an event menu or a shareable menu whose categories include it, or a set menu or deal that picks it — the same rule a hidden category follows. One difference: hiding a dish doesn't take it off the pre-order list — switch off its Available to pre-order too if it shouldn't be pre-ordered (the dish's last step tells you when it still can be).
This is a display setting, not a security lock: dish records are readable by anything that asks, so don't use it to keep something genuinely secret.
Dish stock counts — sold out by itself when the portions run out
If you'd rather not watch the fridge yourself, ResoFlow can count portions down for you. The master switch lives in Settings — the Dish stock counts card on Settings → Menu and stock (the gear at the top right of the Menu page opens it). It starts switched off — turn on Track dish stock there and each dish row on the Menu page gains a small stock line: press Count it daily and set its Usual number per day ("we do twelve of these a night") — the line then reads "Usually 12 a day". As the dish sells, the number counts down, and at zero it shows as sold out on your customer menus — the public menu, TV screens, event and shareable menus, and at-table ordering — and can't be added to new pre-orders, until the next service day. Dishes without a number are simply not tracked and behave exactly as before.
The count is one honest number however the dish sells: an Order & Pay table order, a pre-order from a booked party and a dish inside a set menu all draw from the same day's count — and a pre-ordering party's portions are held for them, so a busy walk-in night can never sell food already promised to a booking. If a booking with a pre-order cancels or moves to another date, its portions go back on sale (or move with it) automatically. The same goes for a table order your team rejects — the food was never made, so its portions go straight back on tonight's count. Refunding a customer for food that was already delivered doesn't put anything back, because that food is gone.
On each row you can also correct Left today to whatever is actually in the kitchen, or tap None left today to mark the dish sold out for the rest of the day in one go. Changing counts is a floor job: anyone who can edit the menu can do it, and there's a separate Set and change dish stock counts permission so you can hand it to front-of-house staff without giving them price editing (Hosts have it by default).
Counts reset to each dish's usual number automatically at the start of each service day. Prefer to set them by hand? Switch off Reset automatically each day on the same settings card — then a day only has counts once you set them. Either way, the card's Reset today's counts button starts the day again on demand (portions already promised to pre-ordering parties are kept). Each dish's count chip on the Menu page also turns amber as it runs low — at 3 or fewer left unless you tune the point with the card's Warn when control (1–50). The Stock counts figure at the top of the Menu page says where things stand — how many dishes are counted and whether counts reset nightly or are set by hand (Off while stock is off), with None left today beside it once something runs out — and, for anyone who can change the setting, clicking it opens the card in Settings. Stock tracking comes with menu management (Pro plan and above, or the Order & Pay or Your website product), and while the switch is off nothing else stock-related appears anywhere. On a plan without it the card's controls sit under More options, with a padlock — unless stock counting is still switched on from before, when they stay in view so you can switch it off.
Shareable menus — a link for any slice of your menu
The Menu page's Shareable menus tab lets you build named menus from your existing categories, each with its own link you can share anywhere — an Instagram bio, a printed QR (the QR codes page prints one per shareable menu — see How do I create and print QR codes for my venue?), a festive flyer. Click Add a shareable menu, give it a Menu name (that name is the page title customers see), pick the sections it should include, and press Add menu. Each menu's row says when it's served (read from its sections' serving times) and which sections it shows, and has a live/pause switch and Edit; its … menu has Copy link and Open the menu. A paused menu keeps its link but shows a friendly "This menu isn't available right now" message instead.
Hidden categories are pickable here on purpose: they aren't on your everyday menu, but they ARE shown on a shareable menu that includes them — so a Sunday-lunch or festive menu can live at its own link without ever appearing on your main menu page. The shared page is browse-only (no ordering), follows your "How your menu looks" choices exactly like your main menu (sold-out dishes greyed out with their badge, or left off if you hide them; prices hidden if you hide them), and carries the same allergen notice at the bottom. Deleting a shareable menu never touches your categories or dishes — only the link stops working. Shareable menus come with menu management (Pro plan and above, or the Order & Pay product) — there's no separate switch or extra cost.
Switching your public menu off
Settings → Menu and stock → Show my menu on my public pages turns your whole public menu off and on — switch it off to hide your menu from customers, and back on to show it again. It starts switched on, and it works on every plan — nothing about switching a feature off is ever tied to what you're paying for.
While it's off, customers don't see a Menu tab or a menu card on your venue page, the menu widget on your own website goes quiet, and anyone opening your menu link is told the menu isn't available online right now and to ask a member of staff. The same notice shows when your plan and products no longer include menus (after a downgrade, or when an Order & Pay or website product ends): your menu link and your table QR codes show it until menus are back — nothing to reprint.
Switching it off also stops Order & Pay at the table, because your menu page and the at-table ordering screen are the same page. Nothing is cancelled: your printed table QR codes stay exactly as they are and simply do nothing while the menu is off — switch it back on and every code you've already printed works as before, with no reprinting.
Your dashboard Menu page is unaffected, so you can keep building and editing while it's off.
How your menu looks
Settings → Menu and stock → How your menu looks holds four choices about how customers see your menu. Each starts off, so your menu looks exactly as it always has until you change one, and none is tied to your plan.
- Hide prices on your menu — customers browsing your menu see your dishes without prices: no dish prices, "From" prices, deal prices, specials' old prices or choices' extra costs. That covers your menu page while customers are browsing, the menu widget on your own website, shareable menus, event menus, the featured menu on Your website and what search engines read. Prices always show wherever customers order or pay — at the table, for collection or delivery, and in pre-orders — so a guest ordering at table 4 still sees £16.50 before adding the sea bass. It suits a tasting menu, or prices that change with the market. Your wall screens' menu board has its own Prices switch (see displays).
- How dishes are laid out — Cards with photos (each dish on its own card, with its photo) or List, like a printed menu (each dish on a line with a dotted line to its price, no photos — "Sticky toffee pudding ........ £7.50"). The list suits a short menu or a wine list; the cards show off your photos. Customers ordering at a table, or for collection or delivery, always see the cards, because that's where the Add buttons are.
- Show whole pounds as £12 — a whole-pound price reads "£12" instead of "£12.00"; a price with pence keeps them, like "£12.50". It covers your dishes' prices and their choices' extra costs on your menus, wall screens and what search engines read — baskets, totals, receipts and payments always show pence.
- Hide sold-out dishes — a sold-out dish drops off your menu until it's back, instead of staying on greyed out and marked "Sold out today".
An event can hide the prices on its own menu too, with the venue-wide switch left off: Hide dish prices on this event's menu, under Link a menu in the event's details once a menu is linked — for a dinner whose food is in the ticket (see events).
See it, print it
The Menu page's header has two quick ways to check your menu, both in its … (beside Add a dish). See your menu as customers do opens your public menu page in a new tab — so after changing a choice above, you can see the result straight away. Print the menu prints your menu on paper, in ResoFlow's standard document layout: your sections in menu order with each dish's description, price (as your menu shows it — "£12" if you show whole pounds, "Market price" or "Ask the team" in the price's place), dietary marks, every choice with its extra cost and its own dietary marks and allergens ("Spiced squash soup (vegan; contains celery)"), and "Contains: …" allergens on every dish that lists them — if some don't, the paper says so once at the top, as your menu does. Prices always print, even if you hide them online; a dish that's sold out today stays on (the paper outlives tonight), and hidden dishes and sections are left off.
Share the menu with customers
- Table QR codes — the best route. Settings → Public booking → QR codes generates a code per table; customers scan and see the menu with a "Table X" badge (*Available on Pro plan and above*, or with the Order & Pay product).
- Confirmation and reminder emails — switch on Show menu link for those templates in Settings → Communications → Email templates. The option only appears once you have menu items.
- Shareable menus — a named slice of the menu at its own link (see the section above).
- Event menus — an event can link the full menu or picked categories, adding a "View menu" button to its event page and ticket emails (see events).
The menu page opens with your venue header — cover photo, logo and name, the same treatment as your venue page — then a search box (and Vegetarian and Vegan filters, when your dishes carry those badges) above the dishes. These scroll away with the page so the menu itself takes over, while the category bar stays at the top of the screen: it jumps to a section when tapped and highlights the section customers are reading as they scroll.
Customers can also search your menu: the search box above the dishes is a live filter over dish names, descriptions and category names — handy on long menus. If nothing matches, customers see "No dishes match" with a one-tap way to clear the search. Dietary and allergen words work too: typing vegan, vegetarian, gluten free or dairy free shows the dishes you've ticked with that dietary badge (plus any dish whose name or description mentions the word), then the "… option" dishes that can be made that way, while typing an allergen name — nuts, milk, gluten, sesame and so on — shows the dishes that list their allergens and don't list that one, under "Not marked as containing … — always check with the team". Dishes with no allergen boxes ticked are never among them: they're shown separately under "These dishes don't list their allergens", with a line asking customers to check with your team — so keeping your allergen ticks accurate is what makes the filter useful. A choice's own allergens count too: a dish where every option of a step customers must pick is marked with that allergen is left out, because it can't be had without it. If every dish lists that allergen, the search says so ("Every dish is marked as containing …"). The search is a convenience, never a safety guarantee, and your own allergen advice to customers still applies.
Every public menu page with dishes on it also carries a small allergen notice at the bottom: it tells customers that allergen and dish information comes from your venue, asks them to tell you about any allergy or intolerance before ordering, and warns that cross-contamination can occur. The notice always shows and can't be switched off — allergen accuracy stays your venue's responsibility, and the notice points customers to raise allergies with you directly.
Related: How do I import my menu instead of typing it in? · How do I create and print QR codes for my venue? · How do I edit the emails customers receive? · How do I add my logo, colours and images?