Cafeteria Tables and QR Codes
The Tables page is the operations view for your cafe floor. It is where staff seat customers, read out the access code, print QR stickers, and settle the bill. It works on the same table records as the Floor Plan editor, so anything you arrange there shows up here. This page is for running the floor, not for laying it out.
To add, remove, or resize tables, use the Floor plan tab. See Floor Plan and Tables for the visual layout editor.
Floor Filter
Tables are grouped by floor. The pills at the top of the page filter the grid:
- All floors shows every active table, grouped under a labelled heading for each floor. Tables with a missing or deleted floor appear under an Unassigned heading so no table is lost.
- A single floor pill shows only the active tables on that floor in a flat grid.
Each pill carries a count of the active tables it represents.
Reading a Table Card
Every active table appears as a card. The card colour and badge reflect the current state:
| State | Badge | Meaning |
|---|---|---|
| Available | Available | No active session. Seat a customer before they can order. |
| In use | In use | An access code is active. The customer can scan the QR and order. |
| Out of service | Out of service | The table is unavailable. The card is dimmed and the name is struck through. |
The card also shows the display name, the table code, the seat count, and the floor name. When a table is in use it shows the time it was seated and how long it has been open. If an access code is still valid, an Active code row shows a live countdown that you can click to display the code again.
Seating a Customer
To take orders from a table, seat the customer first.
- Find the table card.
- Click Seat customer.
- A dialog shows the 6-digit access code with a countdown.
- Read the code to the customer so they can sign in on their phone after scanning the QR.
The access code rotates and expires. The dialog header is labelled Access code and the instruction reads "Read this code to the customer so they can sign in on their phone." When the code is close to expiry the dialog shows an Expires in countdown.
You can print the code as a table card. Click Print code in the access code dialog. The printed slip carries the access code and a QR that opens the public menu. If no printer is set up you see a prompt to configure one under Settings.
Showing the Active Code
If the customer did not catch the number, click Show code on an in-use table card, or click the Active code countdown row. This re-reads the existing code from the server without rotating it, so the customer's current sign in stays valid. If the table has no active code the action reports that it could not load the code.
QR Codes
Each table has its own QR code. The QR encodes the public ordering URL handy.cafe/{slug}/{table-code} plus a token that proves the sticker is authentic.
View and Print a Single QR
- Click View QR on the table card.
- The dialog shows the rendered QR, the display name, and the table code.
- Click Print to open the printable QR sticker.
The print job goes through the operating system browser so you get the full native print dialog with printer selection, fit to page, copies, and duplex.
Print All QR Codes
Click Print all QR in the page header to print a sticker sheet for every table on the current floor view. A dialog previews each table's QR. Click Print to send the whole sheet. This is the fastest way to produce stickers when you first set up the cafe or after you rotate tokens in bulk.
Rotate the QR Token
Click New QR on a table card to issue a fresh QR token. The previous sticker stops working as soon as the new token is issued. A confirmation dialog warns you before the change. Use this when you reprint a sticker or suspect the old QR has been shared outside the cafe. After rotating, the QR dialog opens so you can print the new sticker right away.
If you turn on automatic rotation in Settings, the table also gets a fresh QR token after each settlement so the next party cannot reuse the departing guest's view of the code.
Settling the Check
When the customer is ready to pay, settle the check. This closes all open orders on the table, records the payment, and returns the table to the Available state.
- Click Settle check on an in-use table card.
- The settle dialog loads the open orders and shows them in a bill layout with Qty, Item, Unit, and Total columns.
- Review the Subtotal.
- If tipping is enabled, enter a tip. See Tips below.
- Pick a Payment method.
- Add an optional Note.
- Review the Grand total.
- Click Settle & close.
When settlement succeeds a confirmation appears with the amount charged, the payment method, and the order count. Click Done to dismiss it.
If the open order list is longer than the preview, the dialog notes that it is showing the first orders only and confirms that the total still includes every open order. If the table has no open orders the dialog reports that there is nothing to settle.
Payment Methods
The Payment method picker lists every active payment method configured in Settings, including cash, card, and any custom methods such as IBAN transfer or USDT. The picker starts on your default method, or on the first active method if the default was removed. Settlement reports keep the exact method you pick. If no active payment methods exist, the dialog tells you to enable at least one under Settings before you can settle.
Tips
When tipping is enabled in Settings, the settle dialog shows two tip inputs:
- A tip label field. Leave it blank to use the auto-generated label "Tip %{percent}".
- A tip percentage field. Type a percentage such as 10. The tip amount is calculated from the subtotal and added to the grand total.
Both fields can be pre-filled from your cafe defaults so the cashier does not retype them on every check.
Printing the Bill
Click Print bill in the settle dialog to send a printed bill for the open orders. The bill breaks the total into sub-total, tax, and total rows when tax applies, and prints the tip line using your tip label and percentage. Printing the bill does not close the table; settle the check separately to take payment.
Closing a Table
To free a table when the customer leaves with no bill to pay, click Close table. A confirmation warns that the active code will expire and any live customer session will be revoked. After closing, the table returns to the Available state and any further scan needs a new seating.
If the table still has open orders, close it through Settle check instead so the orders are paid out before the table is freed.
Out of Service
Take a table offline when it needs maintenance or its furniture is being repaired.
- Click Mark out of service on an available table. A confirmation warns that customers will not be able to sign in until you bring the table back and that any active session will be revoked.
- Click Back in service on an out-of-service table to make it available again.
Mark a table out of service rather than deleting it when the seat is only temporarily unavailable. Delete the table from the Floor plan tab only when the seat is gone for good.
Related Pages
- Cafeteria overview
- Floor Plan and Tables for the visual layout editor
- Orders for the live order dashboard
- Customer menu for what the guest sees after scanning the QR