Setting up a café's front of house: table tickets, kitchen notes and taking the bill

A practical set-up guide for café owners: lay out the table floor, hold tickets across tablets, pass kitchen notes, cap discounts by role, take split payments, print receipts and close the day.

DSDilawar Singh 8 min read 2 views
Setting up a café's front of house: table tickets, kitchen notes and taking the bill

Most café front-of-house problems come down to three moments. A table orders and nobody is sure which ticket is theirs. The kitchen makes the oat-milk flat white with dairy because the note never left the counter. And at the end, the bill turns into a negotiation: half on card, the rest in cash, a loyalty balance someone wants to spend, and a discount that may or may not be allowed.

This guide walks through setting up the front of house in CafePro, our self-hosted café and restaurant platform, from the table floor through to the printed receipt and the end-of-day cash check. It is for owners and the managers who train staff on the till, and it is clear about what the software does not do, so you can plan service around it.

What CafePro's front of house covers (and what it doesn't)

Area In CafePro today
Order taking Staff ring orders up on a touch POS in the browser (tablet, laptop or counter screen)
Tables A floor per outlet, grouped by area, with seats and live open tickets
Order types Dine in, takeaway and delivery
Kitchen communication A free-text kitchen/bar note on each line, shown on the ticket and the receipt
Taking payment Card, cash with change, loyalty points and "other", combined on one bill
Receipts A printable 80 mm-style receipt from the payment screen
Corrections Voids of open tickets with a reason; manager-only refunds of paid orders
End of day Orders list with filters and export, sales reports and a cash reconciliation

The gaps to know about:

  • No guest QR self-ordering. The business website shows the live menu, but staff take orders on the POS.
  • No separate kitchen display screen. Kitchen and bar instructions travel as line notes on the ticket.
  • No modifier groups. Milk type or an extra shot is a line note or a separate menu item, not a priced option.
  • One bill per ticket. You can split the payment across several methods, but not split a ticket into per-guest bills or merge two tables.

If any of these are essential, they can be added as a customisation. The rest of this guide covers the workflow as it ships.

Step 1: Get the menu POS-ready

The POS reads directly from the menu, so a tidy menu makes a fast till.

  • Categories with icons. The POS shows category chips across the top, so keep them few and obvious: Coffee, Tea, Bakery, Brunch, and so on.
  • A photo per item. Each item appears as a tile with its image, name and price.
  • SKUs for searching. The menu search on the POS matches both the item name and its SKU.
  • Outlet availability. An item can be limited to certain outlets. The POS only shows items sold at the outlet you are working in.
  • Sold-out switch. Mark an item unavailable and it drops off the till. If a held ticket still contains it, the server refuses to charge it with a clear "sold out" message.

Prices are never trusted from the screen. When a ticket is held or charged, CafePro rebuilds it on the server from the current menu: price, recipe cost and totals. A stale tablet cannot undercharge.

Step 2: Lay out the floor

Open the POS and use the Tables button (it needs permission to manage locations) to add your tables for the current outlet:

  1. Give each table a short name: T1, Window 2, Patio A. Names must be unique within an outlet.
  2. Set the area (Main, Terrace, Bar) so the floor groups tables the way your room is laid out.
  3. Set the number of seats.

The Floor view then shows each table as a card. A free table is marked "Free". A table with an open ticket is highlighted with its running total, the ticket number and how long it has been open. Takeaway and delivery tickets sit in their own row below the tables.

Two safeguards keep the floor honest:

  • One open ticket per table. If a table already has an open ticket, the POS marks it "(busy)" and the server refuses a second one. The rule is covered by an integration test in the source (tests/integration/pos.test.ts).
  • You cannot delete a table with an open ticket. Settle or void it first.

Step 3: Take the order

A typical dine-in order on the POS:

  1. Tap the table on the floor. Its open ticket loads, or a new one starts on that table.
  2. Switch to the Menu view and tap items. Each tap adds one; the plus and minus buttons adjust quantities.
  3. Tap the note icon on a line to add a kitchen/bar note of up to 140 characters: "oat milk, extra hot", "no onions", "bring with mains".
  4. Optionally set covers and attach the customer (search by name, phone or email, or add them on the spot) so they earn loyalty points.
  5. Press Hold. The ticket is saved on the table without taking payment.

Held tickets are shared. Every terminal at the outlet refreshes the floor every 15 seconds, so a second tablet at the bar sees what the counter rang up and can add a round of drinks to the same table.

Making line notes work as kitchen tickets

Because there is no kitchen screen, agree a simple routine with your team:

  • Keep notes short and consistent. Use the same words every time ("oat", "decaf", "GF bun") so the kitchen reads them at a glance.
  • Read the ticket back. The notes appear in amber under each line on the ticket panel.
  • One line per variation. Once a line has a note, tapping the same item again starts a new line, so two plain flat whites and one with oat milk stay separate on the ticket.
  • Print when you need paper. Notes are also printed under each line on the receipt, so a printed copy can travel to the pass if your kitchen prefers paper.

Step 4: Present the bill

The ticket panel always shows the running bill:

  • Subtotal and item count
  • Discount, chosen from quick buttons (5%, 10%, 15%) that only appear up to the staff member's role limit, which is shown as "max n%"
  • Tax using the business's tax label and rate, either added on top or backed out of inclusive prices, depending on your business settings
  • Total

The discount limit is enforced on the server too, so a discount above the role's limit is rejected with "Discounts above n% need a manager". Set these limits per role in Settings → Roles. A typical set-up gives baristas a small limit and managers a larger one.

Step 5: Take payment, including split payments

Press Charge to open the payment screen. It shows the total due and, once part is paid, what remains. Up to five payments can go on one bill:

Method How it behaves
Card Pays the remaining balance; you can record the last four digits or an auth code as a reference
Cash Quick buttons for exact cash and rounded notes, or type the amount received; change due is shown and recorded
Loyalty points Available only when a customer is attached; redeems up to their balance
Other For vouchers or bank transfers, with an optional reference

Typical splits are part cash then the rest on card, or points first and the balance by cash or card.

The server checks that the payments add up to the total exactly (cash may be over-tendered and the difference is recorded as change). Points earned are calculated on the amount not paid with points, using the points-per-unit rate in your business settings. The customer's spend, order count and loyalty balance are updated in the same database transaction as the payment, so they cannot drift apart.

Step 6: Print the receipt

After payment, the receipt dialog offers Print receipt and Next order. The receipt carries the business and outlet name, order number and time, order type, table and customer, each line with its note, subtotal, discount, tax and total, each payment with change, and any loyalty points earned. It is laid out for a narrow receipt printer and prints from the browser's print dialog, so any printer the terminal can reach will work.

Step 7: Handle mistakes properly

  • Void an open ticket when a guest leaves or an order was entered twice. A reason is required. The ticket is kept for the audit trail but no longer counts as a sale.
  • Refund a paid order from POS → Orders. Only roles with the approve permission can do this. A refund needs a reason, marks the order refunded, takes it out of sales figures, and reverses the loyalty points and the customer's spend. Points the customer has already spent elsewhere are not clawed back below zero. You then return the money through the original payment method.
  • Every charge, void and refund is audited, with the payment methods used or the reason given.

Step 8: Close the day

At the end of service:

  1. Open POS → Orders and filter by status, order type, payment method and (with several sites) outlet. Check that no tickets are still open.
  2. Export the list to CSV, Excel or PDF if your accountant wants it.
  3. Open Reports for sales by day, hour, category, order type and payment method.
  4. Use the cash reconciliation: day by day, it sets POS takings and invoice payments against expenses paid out, giving a net figure per day.

The POS header also shows today's sales and order count for the outlet, which is a quick sense check before you count the drawer.

A front-of-house set-up checklist

  • Business settings: tax label and rate, inclusive or exclusive prices, loyalty points per unit
  • Menu categories with icons; one photo and an SKU per item
  • Outlet availability set on items that are not sold everywhere
  • Tables added per outlet, with areas and seats
  • Discount limits set per role; refunds restricted to managers
  • A shared vocabulary for kitchen notes
  • Receipt printer tested from the terminal's browser
  • A closing routine: no open tickets, orders reviewed, cash reconciliation checked

Try it, then make it yours

The demo café that ships with the source includes two outlets, a costed menu, a few tickets left open on the floor and a barista login with POS access, which makes it a good place to rehearse a service before going live. You can get the source on the CafePro marketplace page, and if your service needs QR ordering, a kitchen display or modifiers, DEV3 can install and customise it for you. The case study explains how the menu, the till and the books fit together.

DS

Written by

Dilawar Singh

CTO, DEV3 Technologies · ClinicPro, Inventra & WorkPro

Dilawar Singh is the CTO of DEV3 Technologies. He leads the engineering of DEV3’s own products — ClinicPro, Inventra and WorkPro — which are built, sold and supported by the DEV3 team from Mohali, India.

Keep reading

All articles