How to Set Up Cafeteria
This guide walks through the complete first-time setup of the Cafeteria module. By the end you will have a published customer menu at handy.cafe/{your-slug}, a zone plan with at least one working table, a menu with products and a successfully placed test order.
What You Will Need
- An active HandyCafe license with the Cafeteria module. See Cloud Cafeteria for how it is purchased. Cafeteria authentication uses the license automatically. You do not paste a key manually.
- Internet connectivity on the server. Cafeteria is cloud-first. Provisioning, menu sync and the live order relay all require outbound access to the cloud.
- A public handle for the menu URL. Allowed characters are lowercase letters, numbers and dashes. Length is 3 to 62 characters.
- Optional: a logo and header image in WebP format up to 2 MB.
- Optional: a receipt printer on the local network for kitchen tickets and bills.
Step 1: Enable Cafeteria
- Open the HandyCafe Server.
- Click Cloud in the main toolbar.
- Open the Cafeteria tab.
- Turn on Enable Cafeteria.
- The server connects to the cloud using your license. The status line below the switch shows the relay state, for example Cloud relay connected.
Expected result: The rest of the Cafeteria settings appear. If no cafeteria exists for your license yet, the Create your handy.cafe page form is shown. If the status line says Cafeteria is not included in this licence, the module is not active for your cafe.
Step 2: Create Your handy.cafe Page
The form asks for five fields.
- Public handle. Type your desired URL suffix. The availability indicator updates as you type. If the handle is taken or reserved, choose a different one.
- Cafe name. The human-readable name shown at the top of the customer menu, for example "Atilla's Gaming Lounge".
- Country. Pick the country where the cafe operates.
- Currency. The currency for menu prices.
- Timezone. Pick the timezone for order and settlement time stamps.
- Click Create cafeteria.
Expected result: Your public URL handy.cafe/{handle} is now live, though the menu is empty. The Cafeteria button appears in the main toolbar next to Cloud.
Step 3: Fill In the Business Profile
- Still under Cloud > Cafeteria, scroll to the Business profile card.
- Upload a Logo (square WebP).
- Upload a Header image (wide WebP).
- Enter the Address and Phone number to show on the customer menu.
- Turn Show prep time on customer menu on or off depending on whether you want customers to see estimated preparation times.
- Click Save.
Expected result: Visiting handy.cafe/{handle} in a browser now shows the branded header but still empty content.
Step 4: Create Zones
- Under Cloud > Cafeteria, find the Zones card.
- Type a zone name (for example "Main Hall") and click Add.
- Add more zones if your venue has multiple areas (for example "Mezzanine" or "Terrace").
- Reorder zones with Move up and Move down. The first zone opens by default on the Zone plan tab.
Expected result: Your zones appear in the list. The Cafeteria > Zone plan tab now shows the zone pills at the top.
Step 5: Set the Options
In the Options card under Cloud > Cafeteria:
- Turn on Auto-print incoming orders if every new order should print a kitchen ticket.
- Turn on Play sound on new order for an audible alert. The same sound plays when a table presses Call the cashier.
- Turn on Allow tipping on bills if you accept tips. Set the Default tip label and Default %.
- Turn on Rotate QR token after each settle for high-turnover tables.
- Click Save at the bottom of the page.
Step 6: Build the Zone Plan
- Click Cafeteria in the main toolbar and open the Zone plan tab.
- Select the first zone from the pills.
- Click Add table. Enter:
- Code (for example "T1" or "Window-3"). Letters, numbers and dashes only.
- Display name.
- Seats.
- Size (1 to 10).
- Shape (Square, Rect. horizontal, Rect. vertical or Round).
- Save. The table appears near the top left corner of the canvas.
- Drag the table to the desired position. Release to save.
- Repeat for every table in the zone.
- Optionally turn on 3D to review the layout from an architect perspective.
Expected result: Your zone plan shows all tables at their real-world positions. Drag is disabled in 3D view. Turn 3D off to move tables.
Step 7: Build the Menu
- Open the Menu tab.
- Click Add category. Enter the Category name, pick a Parent category (or leave it as a root), pick an icon and optionally a Background color. Click Save.
- Repeat for each category (for example "Hot Drinks", "Cold Drinks", "Burgers", "Desserts").
- On a category card, click Add product. In the drawer enter:
- Product name.
- Price (net) and VAT %.
- Prep time (min).
- Description and Ingredients.
- Optional nutrition values and allergens.
- Upload a product photo. You can also let AI Assist fill the photo, description, ingredients and nutrition for an AI credit charge.
- Click Save. To continue with the next product in the same category, click Save and add another instead.
Expected result: The customer menu at handy.cafe/{handle} now shows your categories and products. Visit it in a browser to verify.
Step 8: Assign Printers (Optional)
Cafeteria printers are set up under Settings > Printers, not in the Cafeteria settings.
- Open Settings > Printers.
- Click Add printer. For a network printer set the connection to Network (TCP) and enter the Printer IP and Port. Most ESC/POS network printers listen on port 9100.
- Under Job assignments, pick the printer for Cafeteria kitchen ticket (new orders and table code slips) and Cafeteria bill (printed bills).
- Click Test print on the printer card.
See Printers for all printer options.
Expected result: The test receipt prints. If nothing prints, verify the IP, the port and that the printer is on the same local network as the server.
Step 9: Seat a Table and Take a Test Order
- Open the Tables tab.
- Pick one table and click Seat customer.
- Note the 6-digit access code displayed. Leave the dialog open or print it with Print code.
- On a phone, scan the table QR. Use View QR on the table card if you have no printed sticker yet.
- Enter the 6-digit code.
- Browse the menu and add an item to the cart.
- Choose Pay at counter.
- Press Send order.
- On the server, open the Orders tab.
Expected result: Within seconds a new order card appears. A "New cafeteria order" alert shows at the top right. A sound plays if Play sound on new order is on. The pending-count badge increments on the Orders tab.
Also press Call the cashier on the phone. A "Cashier called" alert should appear on the server and stay until you dismiss it.
Step 10: Advance and Settle the Test Order
- On the order card, click the action button. The order moves from Placed to Confirmed.
- Continue with Start preparing, Mark ready and Mark served.
- On the Tables tab, click Settle check on the same table.
- Pick a Payment method and click Settle & close.
Expected result: The table returns to Available. The access code expires. A settlement record is created and can be audited later.
Common Mistakes to Avoid
- Skipping the business profile. Customers see a bare header if you launch before saving the profile.
- Not reprinting QR codes after an address change. Changing the public address invalidates every existing QR. Print fresh stickers and replace them on every table. The address can only be changed once every 30 days.
- Publishing too many categories at launch. Aim for 6 to 10 root categories. Customers browse faster when the menu fits the screen.
- Forgetting to assign the kitchen printer before the first real shift. Without Auto-print incoming orders and a Cafeteria kitchen ticket printer, staff may miss orders during a busy period. Always run at least one test print.
- Showing prep times before there is order history. Until the dynamic estimate has data, the static value is what customers see. Set realistic static times or turn off the chip until then.
- Using the same device for staff and customer testing. The customer session persists for 24 hours. If your test device is later handed to a customer, they are already on the menu without verification. Clear the device or use a clean browser profile for tests.