Table Self-Order¶
Guests scan a QR code at the table and can order and pay directly from their smartphone — without having to wait for a server. The module is particularly suitable for self-service areas, beer gardens, festivals, and all businesses looking to speed up their service.
Activation: Admin → Settings → Operations → Tab Self-Order → Block QR Table Ordering
Table of Contents¶
- Feature Overview
- Setup
- Creating QR Codes
- Seats (Optional)
- Guest View (Smartphone)
- POS View (Staff)
- Self-Payment
- Call Waiter
- Settings
- Frequently Asked Questions
Feature Overview¶
| Feature | Description |
|---|---|
| QR Code at the Table | Each table receives a unique QR code that links to the ordering page |
| Menu on the Smartphone | Guests see the full menu with images, options, and prices |
| Order Without a Server | Orders are sent directly to the kitchen |
| Seat Assignment | When seats are enabled, each order is assigned to a seat |
| Self-Payment | Guests can pay their bill directly on their smartphone by card |
| Call Waiter | Guests can call the server at the press of a button |
| Tip | Tip selection (0 %, 5 %, 10 %, 15 %, or custom) when paying |
Setup¶
Step 1: Activate Module¶
- Admin → Settings → Tab Features
- Enable Table Self-Order
- Save
Step 2: Enable QR Table Ordering¶
- Admin → Settings → Operations → Tab Self-Order
- In the QR Table Ordering block, switch Enabled on
- Save
Note: This switch was previously located under Online Ordering → Tab Ordering. It has been moved to Settings → Operations → Self-Order. It no longer exists in the Online Shop admin.
If guests are to pay themselves at their smartphone (self-payment), additionally set up a payment provider (Stripe or PayPal) under Admin → Online Ordering → Tab Payment.
See the Online Shop manual for details on the admin screen.
Step 3: Maintain Menu¶
The self-order feature uses the same online menu as the online shop:
- Admin → Articles → open desired article
- Tab Online → enable Visible in online shop
- Optional: add description, images, and allergens
- Save
Tip: Only articles that are enabled for the online shop appear in the self-order menu.
Step 4: Create QR Codes¶
See section Creating QR Codes.
Creating QR Codes¶
Each table requires its own QR code. The QR code contains a cryptographic token that uniquely identifies the table.
Generating a QR Code¶
- Admin → Tables → select table
- In the detail panel, click Generate QR code
- The system creates a new, unique session token
- The QR code is displayed as an image
Testing a QR Code Locally¶
The QR code points to the guest domain ({name}.order.dikas.de), which is only reachable from the internet. To test from the POS/workstation device:
- Admin → Tables → select table → Generate QR code
- In the QR section click the Test locally button (flask icon)
- The guest order view of the table opens in a new tab — directly on this device, without the guest domain
Printing a QR Code¶
- Click Download QR code (PNG format)
- Print the QR code on a weatherproof sign or table tent
- Recommended minimum size: 4 × 4 cm
Renewing a QR Code¶
A QR code can be renewed at any time:
- Admin → Tables → select table → Generate QR code
- The old QR code becomes invalid immediately
- Guests with the old QR code see an error message
Important: After renewal, the printed QR codes at the table must be replaced.
Automatic QR Code Rotation¶
Optionally, QR codes can be renewed automatically daily:
- Admin → Settings → Tab Table Self-Order
- Enable Renew QR code tokens at end-of-day report
- At each end-of-day report, all QR codes become invalid and new ones are created
Warning: With automatic rotation, QR codes must be displayed digitally (e.g., on a tablet at the table), since printed codes would become outdated daily.
Seats (Optional)¶
When a table has multiple guests, orders can be assigned to seats. This way, the staff knows which order belongs to which guest.
Enabling Seats¶
- Admin → Tables → Tab Groups
- Edit table group
- Enable Use seats
- Set number of seats (default: 4, max: 99)
- Save
How It Works¶
- When ordering for the first time, the guest automatically receives the next available seat
- The seat is stored via a cookie in the browser (valid for 24 hours)
- Each guest only sees their own orders
- When paying, you can choose between "Only my seat" and "Entire table"
POS Display¶
When seats are enabled, additional seat tabs appear in the table view at the POS:
| Tab | Display |
|---|---|
| Total | All orders for the table |
| Seat 1 | Only orders from seat 1 |
| Seat 2 | Only orders from seat 2 |
| ... | ... |
Occupied seats are highlighted in color.
Guest View (Smartphone)¶
The guest scans the QR code and lands on a mobile-optimized page with three tabs.
Tab: Menu¶
- Category bar at the top: horizontal buttons for quick jumping between groups
- Article cards with image, name, description, and price
- Plus button to add to cart
- For articles with options (e.g., sides, extras): selection dialog opens automatically
- Diet badges: Vegan, Vegetarian, Gluten-Free are displayed automatically
Shopping Cart¶
- At the bottom of the screen, a cart bar appears: "3 items — 24.50 €"
- Tapping opens the cart overlay:
- Article name and selected options
- Plus/minus buttons to change quantity
- Input field for kitchen notes (e.g., "no onions")
- Order button
Tab: Orders¶
- Overview of all your own orders
- Article name, quantity, price, and selected extras
- Automatic refresh every 15 seconds
- Total at the end of the list
Tab: Pay¶
See section Self-Payment.
Guest Account (optional)¶
If the Customer Accounts switch is active in the online shop (Admin → Online Ordering → Ordering), a person icon appears in the header of the QR ordering page. Guests can sign in or register — the same accounts as in the Online Shop.
- My orders: Logged in, the guest can see their previous online orders.
- Reorder: With one click, the items from a previous order (checked against the current menu) are placed into the table cart.
- Receipt & hospitality receipt: For each order, the guest can download the receipt as a PDF or receive it by email; a hospitality receipt (with optional occasion/participants) is available in the web account.
Sign-in is optional — anonymous table self-ordering works as usual without an account.
POS View (Staff)¶
Recognizing Self-Orders¶
Orders placed by guests via self-order are marked at the POS with a phone symbol before the article name.
Order Confirmation¶
Depending on the setting, orders are handled differently:
| Mode | Behavior |
|---|---|
| Automatically confirm | Order is immediately created as an OpenBon and sent to the kitchen |
| Manually confirm | Order appears for confirmation in the POS under Table Orders (icon in the top POS bar) and is accepted or rejected there |
Tip: Automatic confirmation is the default mode and recommended for most businesses.
💡 Table Orders view: The POS Table Orders button (QR icon, badge = open table orders) shows only QR/table self-orders with the stages New → In Progress → Ready → Done. Pickup and delivery orders from the online shop, by contrast, run through the delivery service module.
Setting: Admin → Settings → Tab Table Self-Order → Automatically confirm orders
Table Cleaning¶
If the table cleaning requirement is enabled (Admin → Settings → Operations → Table cleaning after payment), the table is automatically set to "Cleaning" status after a self-payment transaction.
Self-Payment¶
Guests can pay their bill directly on their smartphone without having to wait for a server.
Prerequisites¶
- Payment provider must be set up (Stripe or PayPal)
- Admin → Online Ordering → Configuration → enter Stripe/PayPal credentials
Payment Process (Guest View)¶
- Tap the Pay tab
- Bill with all open items is displayed
- With seats: choose between "Only my seat" and "Pay entire table"
- Select tip:
| Option | Description |
|---|---|
| None | No tip |
| 5 % | 5 % of the bill total |
| 10 % | 10 % of the bill total |
| 15 % | 15 % of the bill total |
| Other | Enter custom amount |
- Total amount (including tip) is displayed
- "Pay by card" for card payment via Stripe
- Alternatively: "Pay cash — call waiter" calls the server for cash payment
After Payment¶
- Success screen on the smartphone
- Receipt is created in the system (with payment method "Online payment")
- Table is automatically released (if all items are paid)
- With table cleaning requirement: table changes to "Cleaning" status
Security¶
- Each payment has a unique PaymentIntentId (idempotency protection)
- Duplicate payments are automatically detected and prevented
- Payment data is never stored on the DiKAS server (Stripe/PayPal)
Call Waiter¶
On every page of the self-order, there is an orange bell button (bottom right). Guests can use it to call the server.
How It Works (Guest View)¶
- Tap the bell button
- Select reason:
| Reason | Typical Use Case |
|---|---|
| Advice | Question about the menu or recommendation wanted |
| Cash Payment | Guest wants to pay cash |
| Other | All other requests |
- After sending: "Waiter has been called" is displayed
- 60-second cooldown — cannot call again during this time
How It Works (POS View)¶
- The table receives a pulsing orange border
- A bell symbol appears on the table (for cash/card payment a coin or card symbol)
- Opening the table automatically acknowledges the waiter call
Optional Alarm (Sound + Alert Panel)¶
The table marking is only visible on the table screen. To have staff be notified of a waiter call or payment request anywhere with sound and alert panel, the alarm system can be connected:
- Admin → Settings → Operations → Tab Alarm → enable Alarms and create at least one alarm type
- In the Automatic Triggers section, choose the alarm type for "Alarm on waiter call / payment request"
- Save
From then on, every waiter call from the QR table ordering (Pay, Advice, Other) triggers the chosen alarm — with table number and reason in the message. If the trigger is left empty, only the silent table marking continues.
Settings¶
Module Settings¶
Admin → Settings → Tab Table Self-Order
| Setting | Description | Default |
|---|---|---|
| Automatically confirm orders | Orders are created directly as OpenBon without manual review | Enabled |
| Renew QR code tokens at end-of-day report | All QR codes become invalid at end-of-day report and new ones are created | Disabled |
Payment Provider¶
Admin → Online Ordering → Tab Configuration
| Field | Description |
|---|---|
| Stripe Publishable Key | Public Stripe key for payment processing |
| Stripe Secret Key | Secret Stripe key (never sent to the browser) |
| PayPal Client ID | PayPal client ID for payment processing |
| PayPal Secret | PayPal secret for payment processing |
Seats¶
Admin → Tables → Groups → edit group
| Field | Description | Default |
|---|---|---|
| Use seats | Orders are assigned to seats | Disabled |
| Number of seats | Maximum seat number per table in this group | 4 |
Practical Tips¶
Beer Garden / Outdoor Area¶
- Use weatherproof QR code signs (laminated or UV-resistant)
- Leave automatic token rotation disabled (printed codes)
- Disable seats (open seating)
Festival / Club Event¶
- Large, clearly visible QR codes on table tents
- Enable automatic confirmation (faster throughput)
- Enable self-payment for faster processing
Restaurant / Dining Room¶
- Print QR code discreetly in the menu or on a table tent
- Enable seats for correct assignment
- Call waiter feature facilitates the service workflow
Disco / Club¶
- QR codes at standing tables or in booths
- Combination with the ticketing module (tickets + table ordering)
- Self-payment for quick drink settlement
Frequently Asked Questions¶
Do I need an online shop to use table self-order? Yes, the table self-order uses the online shop infrastructure (menu, payment provider). The online shop must be enabled, but a delivery service is not required.
What happens if the QR code has expired? The guest sees the message "Table not found or QR code expired" and is asked to scan the QR code again. You need to generate a new QR code in the admin.
Can guests order without seat assignment? Yes, if seats are disabled, all orders are assigned to the entire table.
How long is a QR code valid? A QR code remains valid until it is manually renewed or the end-of-day report is performed with token rotation enabled.
Does self-order work without an internet connection? No, both the guest's smartphone and the DiKAS server require an internet connection.
Can a guest order for the entire table? Yes, each guest can order any number of articles. Seat assignment only serves for attribution when paying.
What happens if a guest closes the browser? The shopping cart is stored in the browser session. When scanning the QR code again, the previous cart is restored. Orders that have already been placed are preserved.
Can staff void orders from self-order? Yes, orders from self-order are regular OpenBons and can be voided at the POS as usual.
Are self-orders sent to the kitchen printer? Yes, self-orders are treated exactly the same as POS orders — including kitchen printing, kitchen display (KDS), and draught system integration.