Buffet service
What it's for
Buffet is where you set up how your buffet runs — what's on the counter, who you charge and how much — and run the live counter during service. You then charge guests at the POS.
Buffet is an optional module. If you don't see Buffet in the sidebar, it isn't enabled for your account.
Where to find it
Choose Buffet in the sidebar (route /buffet). It has three tabs:
Buffet modes (set up how your buffet is priced),
Counter (run the live service), and Advanced
(a raw editor for fine control).

Set up a buffet mode
On Buffet modes, choose Create a buffet mode and work through the card:
- Name it — e.g. Lunch Buffet.
- What's on the counter — pick the categories and dishes on offer. Give each dish a pan size (how much goes out per bowl), and optionally an extra surcharge for a dish that costs on top of the cover.
- Guest bands & tax — set who you charge differently (e.g. Adult, Kid), with an Always free option for, say, small children. (In India you can set the tax type and GST slab here; elsewhere tax comes from your restaurant settings.)
- How it's served & priced — choose a style like Self-serve buffet, Pay by weight, or Table-served feast, and set the price: a per-head price (the same all day, or different by day or time with lunch/dinner slots), a per-kg rate, or per-box.
When the readiness meter is full, choose Publish (or Save draft to finish later). A published mode shows a Live badge.
You can also set how the whole business runs: À la carte + buffet or Buffet first (which opens the POS on the cover pad).
Charge a guest (at the POS)
You charge guests in the POS, not on this page. Seat the table, choose the Buffet button, and in "How is this guest being served?" pick the mode. Then:
- Per head: step the count for each guest band (Adult, Kid…) — the price shows live.
- By weight: enter the weight on the scale (and container tare if any).
- By box / per sitting: step the number of boxes or sittings.
Choose Apply buffet. The cover charge is added to the order, and each buffet dish shows an Incl. ⇄ À la carte toggle. The rate is locked in when you seat the guests, so it holds for the whole meal even if the price schedule changes.
A mode can only be applied inside its scheduled hours. Outside them you'll see "isn't running right now" with the next available time — adjust hours or add a date override in Buffet Setup.
Run the counter (live service)
The Counter tab is your live service board:
- The counter — tap a dish each time a pan of it goes out. Each tap records production and deducts stock; there's an Undo, a Refill for top-ups, and a Close out service flow that asks how much was left over and where it went.
- Guests — a cover pad to log guests who won't appear on a bill (comps, staff meals, event covers), with a reason.
- KPIs — Cost per cover, Covers today, and Batches, plus a Most refilled today list showing which dishes guests go back for.
Cost per cover analysis is a Pro feature — the counter keeps recording pans and covers on every plan, but the cost figure shows only on Pro.
Marking items buffet-only
To keep a dish on the counter but out of à la carte sales, open it in the menu editor and turn on Buffet counter only ("Not sold à la carte — price is ignored"). It can then only be added to a buffet order.
Worked example
Run a weekend lunch buffet. Create a Buffet mode named Weekend Lunch, add your counter dishes with pan sizes, set Adult ₹499 and Kid ₹249 for a lunch time slot, and Publish. At service, seat a table of four in the POS, choose Buffet, set 2 adults and 1 kid, and Apply buffet. On the Counter tab, tap each dish as its pan goes out and watch Cost per cover.
Tips & things to watch
- ✅ Give every counter dish a pan size — dishes can't be tapped on the counter without one.
- ✅ Log comps on the Guests pad so your cost-per-cover reflects everyone who ate.
- ⚠️ Charging is at the POS — this page sets up pricing and runs the counter, but the cover charge is applied with the POS Buffet button.
- ⚠️ Modes run on a schedule — a buffet can't be applied outside its hours without a date override.