Zahli

Manager guide

English

2026-11-08

Contents

  1. Manager guide
  2. Signing in in a browser
  3. Your language
  4. Test mode
  5. Service and Needs attention
  6. History and Tab detail
  7. Statistics and CSV
  8. Activity
  9. Daily closing
  10. Categories and Items
  11. Modifier groups and Follow-up groups
  12. Stations
  13. Stock counters
  14. Discount presets
  15. Menu import and export
  16. Laying out Rooms
  17. Devices
  18. Printers and Print templates
  19. Staff guides
  20. Venue settings
  21. Free-form Discounts, Corrections and Refunds

Manager guide

This Guide is for Managers. A Manager serves like a Waiter, so for service read the Waiter guide; this Guide holds only what a Manager adds: the admin app in a browser, test mode, and money matters on any Tab in the staff app. Each topic is one task, with an example from Beizli Muster, where Michael is the Manager, Silvia serves and Anna is the Tenant admin.

The admin app of Beizli Muster with its sidebar, showing today's Statistics

The admin app

Section titled “The admin app”

Open app.zahli.ch in a browser on a laptop or tablet and sign in. The sidebar groups the pages:

The foot of the sidebar holds your name (it opens Your account), the language and colour switches, and Sign out.

A Tenant admin looks after the rest: Staff members with their passwords and Staff QRs, VAT rates, Payment providers, the Audit log and new Discount presets. In Settings a Manager sees the Twint code and Locale and security but cannot change them. At Beizli Muster that is Anna’s; see the Tenant admin guide.

The words this Guide uses

Section titled “The words this Guide uses”

Besides the words of the Waiter guide:

The first steps: sign in, choose your language, and look at Needs attention every day.

Signing in in a browser

On the venue’s phones you sign in like everyone else, with your name and password or your Staff QR (see Signing in in the Waiter guide). In a browser, a Manager signs in with email and password and lands in the admin app.

Sign in

Section titled “Sign in”
  1. Open app.zahli.ch.
  2. Enter your Email and Password, for Michael michael@beizli-muster.ch, and click Sign in.
  3. If you have set up two-factor authentication, the page then asks for a Code ①: the six digits your authenticator app shows now, or one of your recovery codes. Click Sign in again.
The sign-in page asking for the code from the authenticator app

The admin app opens at Today → Needs attention. On a computer others use too, sign out when you leave: Sign out at the foot of the sidebar.

Set up two-factor authentication

Section titled “Set up two-factor authentication”

Two-factor authentication is optional for Managers, and worth it: someone who learns your password still cannot sign in without your phone. It applies to signing in with your email in a browser; on the venue’s phones nothing changes.

  1. Click your name at the foot of the sidebar: Your account opens.
  2. Click Set up two-factor authentication.
  3. Scan the QR code ① with an authenticator app on your phone, such as Google Authenticator. Enter the six digits it shows ② and click Confirm and turn on ③.
Your account with the QR code for the authenticator app and the code typed in
  1. Zahli now shows ten Recovery codes ①, this once only. Each one works once instead of a code from the app, for when your phone is lost. Write them down or print them, keep them away from your phone, and click I have saved the codes ②.
The ten recovery codes, shown once

Keep the recovery codes safe: without your phone, they are the only way in. To turn two-factor authentication off, for example before moving to a new phone, enter your Password on the same page and click Turn off; then set it up again on the new phone.

Between admin app and staff app

Section titled “Between admin app and staff app”

One sign-in serves both apps in the same browser.

Example: Michael has the Statistics open on the office laptop when Table 6 wants to pay. He clicks Service, takes the Payment in the staff app’s tab, and switches back to the Statistics.

Your language

The admin app and the staff app speak English and German. Your choice is saved with you, so both apps show it in every browser and on every phone you sign in to. Amounts and dates keep the venue’s format, such as CHF 1’234.50.

  1. Click your name ① at the foot of the sidebar: Your account opens.
  2. Under Your language ②, pick English or German. As the browser or phone is set follows the browser’s or the phone’s own language.
  3. Click Save language ③.
Your account with the choice of your language, and the language switch at the foot of the sidebar

Example: Michael picks German. The admin app switches at once, and the staff app shows German too, on the office laptop as on the phone S-001.

The language switch ④ at the foot of the sidebar, EN and DE, changes the language of this browser only, until you next sign in. In the staff app the same choice of your own is under Settings → Your language, as in Your language of the Waiter guide.

Test mode

In test mode every new Tab is a test Tab: it moves no real money, counts in no statistics and no revenue, and its Tickets and Receipts print with a large TEST. Card Payments go to the Payment provider’s test account. What staff see then is in What TEST means.

A test Tab is real data with a flag: it stays in the History with a TEST badge. Each Tab keeps the mode it was opened in, so switching changes only the Tabs opened afterwards. A phone or browser picks the change up at its next sign-in or refresh.

There are three switches, from narrow to wide.

One phone

Section titled “One phone”

For training on one phone while the venue stays live. Example: before the evening, Silvia shows a new colleague the staff app on the phone S-001.

  1. In the admin app, open Venue → Devices.
  2. In the phone’s row, tick TEST ① under Test mode, and confirm.
The Devices with the test mode switch of the phone S-001

The phone stays in test mode until you untick it, and meanwhile shows only test Tabs. A Manager signed in on the phone itself finds the same switch in its Settings: Test mode on this phone. The kitchen terminal has no switch; it shows test Tickets with a TEST badge.

Your browser sign-in

Section titled “Your browser sign-in”

To try something in the staff app in a browser without touching the day’s figures, for example a new Item before the menu goes out.

  1. In the staff app, open Settings.
  2. Tick Test mode until I sign out ①.
The staff app's Settings in a browser with the test mode switch

Only Tabs you open in this browser are test Tabs, and only until you sign out.

The whole venue

Section titled “The whole venue”

Before the venue goes live, or to train everyone at once.

  1. Open Administration → Settings.
  2. Under Test or live mode, click Switch to test mode ① and confirm.
Settings with the card to switch between test and live mode

Every phone and browser is then in test mode, whatever its own switch says, and shows the TEST MODE banner. Switch to live mode ends it. Never switch the venue during service: the Tabs opened meanwhile would be missing from the day’s revenue.

Service and Needs attention

Serve from the admin app

Section titled “Serve from the admin app”

Today → Service opens the staff app in a browser tab of its own. You serve there as the Waiter guide describes, with a few things more:

In a browser there is no Card and no working offline.

Needs attention

Section titled “Needs attention”

When a staff phone loses its network, Waiters can still take cash and Twint on Tabs opened on that phone (see Working offline). Back online, the phone books each such Payment, unless the Tab changed meanwhile. Then the guest has paid, but nothing is paid on the Tab. Zahli keeps the Payment aside for a Manager: the Tab shows Needs attention in the staff app, and the Payment is listed under Today → Needs attention, the page the admin app opens after you sign in.

Example: on Table 4, Silvia’s phone had no network. She took CHF 33.00 in cash for the menu of the day, the mineral water and the coffee. Meanwhile Michael added a second coffee from his browser, so when the phone synced, the Tab came to CHF 37.50 and the cash was not booked.

Needs attention with the cash Payment of Table 4 that was not booked

① says why the Payment was not booked; ② what the Tab came to on the phone and when it synced, and what is left to pay. To sort it out:

  1. Open the Tab in the staff app and put it right with what you know: here, take the CHF 33.00 again as a cash Payment, since Silvia has the money, and let the guest pay the second coffee. If the guest paid twice, refund the difference.
  2. Back under Needs attention, write how you sorted it out ③ and click Mark resolved ④.

The entry leaves the list, and the Tab no longer shows it. Look at Needs attention every day before the Daily closing: the cash in the drawer includes these Payments.

History and Tab detail

In the staff app you see the History as a Waiter does, with one addition: Mine and Everyone switch between your own Rounds and Payments and those of every Staff member. The admin app has the same History for the whole venue, always everyone’s.

Look through a business day

Section titled “Look through a business day”

Open Today → History.

The History of the day in the admin app

A test Tab carries a TEST badge. Click any entry to open its Tab detail.

Read a Tab and reprint a Receipt

Section titled “Read a Tab and reprint a Receipt”

The Tab detail shows one Tab as it happened, without changing anything: where it was, who opened it and when it closed, its Rounds with Modifiers and Notes, Voids, Discounts, moves to another Table, its Payments with Tips and Refunds, and the amounts down to the balance. Open the Tab page shows the guest’s page of the Tab.

The Payments of Table 1's Tab, with a Refund

Example: the family from Table 1 asks for a copy of their Receipt. Michael opens Today → History, clicks #1 under Table 1 and sees the cash Payment of CHF 150.00 with his own Refund of CHF 5.50 for the warm Rivella. He clicks Reprint receipt and the Receipt comes out of the Theke Printer.

To give money back or correct a paid Tab, see Discounts, Corrections and Refunds.

Statistics and CSV

Today → Statistics shows the figures of live Tabs only: what was taken in test mode never counts.

The statistics of the day

Choose the days

Section titled “Choose the days”

① From and To pick a range of business days; the page opens on today’s, and Today goes back to it. A business day runs from the cut-off (04:00 unless the venue settings say otherwise) to the next, so a Payment at 01:30 still counts on the evening before.

What the figures mean

Section titled “What the figures mean”

The tiles ④ add up the range:

Below come the breakdowns: By business day (for more than one day), By hour, By Payment method ⑤ (a Refund counts under the method it was paid back by), By Category, By Item, By Staff member (the Rounds each sent, the Payments each took with their Tips, the Refunds each made) and Discounts given.

Payments and Refunds count on the business day they were made. What was sold, by Category and Item, counts from the Rounds sent, Tabs still open included; so its total is not the revenue.

Export as CSV

Section titled “Export as CSV”

② Download Payments (CSV) downloads every Payment and Refund of the range, one per row, with business day, time, Receipt number, method, Payment provider, amount, Tip, rounding, Staff member and Table. ③ Download sold items (CSV) downloads every line of the Rounds sent, with Category, Item, Modifiers, quantity, units on the house, revenue and VAT rate. Both open in any spreadsheet; send the Payments file to your bookkeeping.

Example: after lunch Michael checks the day. Revenue is CHF 442.45: the Payments of CHF 447.95 less his Refund of CHF 5.50 for the warm Rivella. The CHF 5.00 in Tips, CHF 1.00 for Silvia and CHF 4.00 for himself under By Staff member, are not part of it. At the end of the month he sets From to the first and To to the last day and clicks Download Payments (CSV) for the bookkeeper.

Activity

Today → Activity draws the venue’s day as a timeline: one row per Device or Staff member, time running from left to right. It shows live and test Tabs alike.

The Activity of a lunch service, by Device

Choose what the timeline shows

Section titled “Choose what the timeline shows”

Rounds and Payments made in a browser belong to no Device: they show on the Staff member’s row only.

Open an event

Section titled “Open an event”

Click a bar to list its events, or a mark in Detail to see one: its time, Tab, amount, method, Staff member and Device.

A Payment of the Walk-in opened on the timeline

The Tab number ① opens the Tab detail. Its Back to Activity brings you back to the timeline as you left it.

Statistics of a range

Section titled “Statistics of a range”

Below the timeline, Statistics adds up what the timeline shows: its rows, the event types ticked and the mode. Drag along the time axis to select part of the range ①; drag its edges to adjust it, and Clear selection ③ (or Escape) goes back to the whole range.

Lunch selected on the Staff members' timeline, with its statistics

The figures stand in Live, Test and Total columns ④: Rounds, Voids, Corrections, Payments per method, Tips, Refunds and Net taken; for Printers also the Tickets, Receipts and Guest slips printed and roughly how much paper they took. Then By row, and under Never active the rows with nothing in the selection.

For revenue, use Statistics: it counts live Tabs only and by business day.

Example: Michael wants to know how lunch went. Under Devices he sees the kitchen terminal K-001 marking Tickets done soon after Silvia’s Rounds from S-001. He switches to Staff members, where Silvia’s pale bar ② shows her signed in from just before eleven, and drags from 11:30 to 13:30 to see the Rounds and Payments of those two hours.

Daily closing

A Daily closing records a business day’s takings once and for all: revenue per Payment method, VAT per rate, Tips per Staff member, cash rounding, and the cash you counted against the cash expected. Like the statistics, it counts live Tabs only. Once made, a closing can never be changed.

Close the day

Section titled “Close the day”
  1. Open Today → Daily closings. The page shows what closing the current business day would record now; Business day picks another day not closed yet.
  2. Check the figures. Expected cash is the cash taken, cash Tips included.
  3. If live Tabs are still open, they are listed ① and block the closing. Settle them first, or tick Carry these Tabs over ② and give a Reason: they then count in the next closing once paid. Test Tabs never block.
  4. Count the cash in the till, without its float, and enter it under Counted cash ③. Difference shows how far it is off.
  5. Click Close business day ④. The closing opens.
Closing the day with four Tabs carried over

A closing also counts the Payments and Refunds of earlier days that no closing has counted yet, and says so. A day before the latest closed one can no longer be closed.

Look at a closing and print it

Section titled “Look at a closing and print it”

Under Closings the page lists every closing, the latest first, with revenue, expected and counted cash, the difference, how many Tabs were carried over and who closed it. Click a day to open its closing.

The Daily closing of the day

The top row compares the cash expected, counted and the difference; below come the figures and the Tabs carried over with the reason. Print ① prints the closing on the venue’s default receipt Printer (see Printers).

Example: at the end of lunch Michael counts CHF 213.60 in the till, exactly the expected cash, so the difference is 0.00. Tables 2, 4, 6 and T1 are still sitting, so he ticks Carry these Tabs over with the reason “Gäste sitzen noch”, clicks Close business day and then Print for the folder behind the counter.

Categories and Items

The menu is under Menu → Categories & Items: each Category is a tab of the staff app’s menu (Taking a Round), with its Items in the order the staff app shows them. After a Category’s name, the arrow names the Station its Tickets go to, such as → Kitchen.

The menu of Beizli Muster at the Desserts, with the Coupe Danemark sold out

Moving and ticking are saved at once, and phones and browsers in service get each change by themselves. Changes never touch Rounds already sent: they keep the name, price and VAT rate they were sent with.

The forms enter one name for each thing, the German one, which every name has. Beizli Muster’s English names, such as Chocolate cake for the Schoggikuchen, came with its menu file (Menu import and export).

Add a Category

Section titled “Add a Category”
  1. Click New Category at the top.
  2. Enter the name and choose the Station its Items’ Tickets go to.
  3. Leave On the menu ticked and click Create.

Example: for the summer, Michael adds a Category Glace, made in the Küche. It appears at the end of the menu; he moves it up with ↑ until it follows the Desserts.

Untick On the menu to hide a Category and all its Items in the staff app, such as the Glace in winter; the menu marks it Off the menu. Tick it again to bring it back as it was. Remove Category works only for a Category without Items.

Add or change an Item

Section titled “Add or change an Item”

Click New Item next to its Category, or an Item’s name to change it.

The form of the cordon bleu: price, VAT rate, Modifier groups and availability

Click Create or Save.

Example: the cordon bleu costs 32.00 at the standard rate and offers Side and Extras, so the Waiter picks fries, rösti, noodles or salad and may add cheese or an egg.

Whether an Item is counted, like the chocolate cake, is set on its counter (Stock counters).

Its picture

Section titled “Its picture”

Once the Item exists, the form’s Image part takes a picture: Add image uploads a JPEG, PNG or WebP of up to 10 MB, cropped to a square for the staff app. Where Zahli’s photo search is set up, the same part also has Search for photos: type Cordon bleu, click Search and click a photo. It is stored like an upload, with its photographer’s name. Replace image and Remove image change it later.

Put the menu in order

Section titled “Put the menu in order”

Drag Categories and Items by their handles, or use ↑ and ↓. Items stay in their Category; to move one to another Category, choose its Category in its form.

Example: the chocolate cake sells best, so Michael moves it to the top of the Desserts with ↑ twice.

Mark an Item sold out

Section titled “Mark an Item sold out”

Tick its Sold out box ④ in the menu, or in its form. In the staff app it keeps its place, in red, and cannot be tapped (Sold out). It stays sold out, also the next day, until you untick it. The staff app itself has no switch for it, so Waiters tell you when something has run out.

Example: the Coupe Danemark ran out at lunch. Michael ticks it; in the evening, with fresh ice cream, he unticks it.

An Item whose Stock counter is at zero is sold out by itself, and the menu marks it Out of stock until the counter is refilled.

Off the menu or removed

Section titled “Off the menu or removed”

To hide an Item for a while, untick On the menu. Remove Item, at the bottom of its form, removes it for good, without asking first; Rounds already sent keep it.

Modifier groups and Follow-up groups

A Modifier group is a set of choices the staff app asks for with an Item, such as the side of a cordon bleu (Taking a Round). One group can be offered with many Items. They are under Menu → Modifier groups.

The Modifier groups of Beizli Muster, Dressing opened by Salad

The list shows how many Modifiers each group has to pick, how many Modifiers it holds, and how many Items offer it. A Follow-up group also says which Modifiers open it ①: Dressing is offered with Items: 2 and is Opened by Salad (Side).

Create or change a group

Section titled “Create or change a group”
  1. Click New Modifier group, or a group’s name to change it.
  2. Enter the name and, under Choices per unit, how many may be picked for one unit of an Item: At least and At most. Tick Required if the Waiter must pick; an optional group may be skipped.
  3. Under Modifiers, click Add Modifier for each choice and enter its name and Price change ①: added to the Item’s price, VAT included; 0.00 for none, negative for a cheaper choice. ↑ and ↓ set the order the dialog shows; Remove takes a Modifier out.
  4. Click Create or Save.
  5. Offer the group with its Items: tick it under Modifier groups offered in each Item’s form (Categories and Items).
The Modifiers of the group Side: Rösti at +2.00, and Salad opening Dressing

Example: Beizli Muster’s Side is required, at least 1 and at most 1, so the Waiter picks exactly one side; Rösti costs 2.00 more. Extras is optional, 0 to 3: up to three of cheese, egg, bacon or no onions.

A required group needs at least 1, the minimum may not be above the maximum, and a group needs at least as many Modifiers as its minimum; the form says which rule a change breaks. Rounds already sent keep the picks and prices they were sent with.

Follow-up groups

Section titled “Follow-up groups”

A Modifier can open further groups, which the dialog offers only once it is picked. Under the Modifier, Opens ② lists them:

  1. Choose a group in Add a Follow-up group….
  2. Choose another for a second one; ↑ and ↓ set their order, Remove stops opening one.
  3. Click Save.

Example: in Side, Salad (Salat in the form, which shows the German names) opens Dressing. A cordon bleu with salad then asks for a dressing, one with rösti does not. The Waiter sees the group right after the side, titled Dressing · Salad.

Delete a group

Section titled “Delete a group”

Remove Modifier group, at the bottom of its form, deletes it at once, without asking first. The hint next to it says how many Items offer it; they and the Modifiers that open it no longer do. Removing a single Modifier from a group (Remove, then Save) also drops the groups it opened. Rounds already sent keep their picks.

Stations

A Station is where the Tickets of a Category go, such as Beizli Muster’s Küche and Bar. Every Category sends its Items to one Station; a Printer prints the Tickets of the Stations it serves, and a kitchen terminal shows those of the Stations chosen on it. The Stations are under Menu → Stations.

The Stations Küche in orange and Bar in blue, and the row for a new Station

Add a Station

Section titled “Add a Station”
  1. In the last row, ②, enter the name of the New Station.
  2. Pick its Colour; a new Station gets the first colour no other Station uses.
  3. Click Add.

Example: in summer, Beizli Muster grills on the Terrasse. Michael adds a Station Grill, keeps its teal, and then sends a new Category Vom Grill there.

Name and colour

Section titled “Name and colour”

Change a Station’s name or pick another of the ten colours ① and click Save in its row. When a kitchen terminal shows several Stations, each Ticket carries a badge with its Station’s name in its colour: the orange Küche and the blue Bar (Your screen). Pick colours that tell the Stations apart at a glance.

Which Categories go there

Section titled “Which Categories go there”

A Category’s Station is set on the Category: under Menu → Categories & Items, click Edit Category, choose its Station and click Save. The menu shows it after each Category’s name, such as → Bar for the Cold drinks (Categories and Items).

Example: to send the Category To take away to the Küche instead, Michael chooses Küche as its Station. Rounds sent from then on go to the Küche; Tickets already sent stay where they went.

Which Printer and screen

Section titled “Which Printer and screen”

Which Printer prints a Station’s Tickets is set on the Printer (Printers). A kitchen terminal shows the Stations chosen on the tablet itself (Choosing Stations).

Remove a Station

Section titled “Remove a Station”

Click Remove in its row. A Station that Categories still send to stays, with the message Categories still send their Tickets to this Station. Route them elsewhere first.

Stock counters

A Stock counter counts something the venue can run out of, such as Beizli Muster’s chocolate cake or its menu of the day. Each unit ordered of an Item or Modifier that draws from it takes one unit when the Round is sent; a Void or a correction gives it back. The counters are under Menu → Stock counters.

The chocolate cake counter low at three pieces, and the menu of the day at 17

Create a counter

Section titled “Create a counter”
  1. Click New Stock counter.
  2. Enter the name and the Units there are now.
  3. Under Show what is left from, enter from how many on the staff app shows what is left.
  4. Tick the Items that draw from it and the Modifiers that draw from it, and click Create.

Example: in the morning the Beizli bakes five pieces of chocolate cake. Its counter Chocolate cake (pieces) starts at 5, shows what is left from 3, and the Item Chocolate cake draws from it. After two pieces for Table 6, the staff app’s tile says 3 left (Sold out).

One counter can serve several Items and Modifiers: a counter Rösti (portions) could be drawn by the Zurich-style veal with rösti and by the Modifier Rösti of the sides. A unit ordered takes one unit, also when the Item and its Modifier both draw from the same counter.

Click a counter’s name to change its name, where it shows what is left from, or what draws from it. Remove Stock counter, at the bottom, stops its Items and Modifiers from drawing from it.

Refill or count

Section titled “Refill or count”

During service, add what comes in: enter the number under ② and click Apply. A negative number takes units off, such as -1 for a piece that fell on the floor; taking off more than is left is refused. Units ordered meanwhile still count, so adding is safe while the Waiters keep ordering.

To set what is really there, enter it under ③ and click Set, best when nobody is ordering.

Example: at three in the afternoon, Michael brings another cake of 12 pieces: he enters 12 and clicks Apply, and 3 left becomes 15. At closing he counts 4 pieces where the counter says 5: he enters 4 under Counted and clicks Set.

At zero

Section titled “At zero”

When a counter reaches zero, its Items are sold out in the staff app and its Modifiers are no longer offered. A Round that would take more than is left is not sent; the Waiter sees which item ran out. Under Menu → Categories & Items such an Item shows Out of stock.

As soon as you add units, they can be ordered again by themselves: the counter does not tick Sold out, so there is nothing to untick.

Discount presets

Discount presets are the Discounts your venue has prepared, so nobody types a percentage at the table. Menu → Discounts lists them: their name, the Discount, and whether Waiters may give them.

The presets Stammgast 10 % for Waiters too and Personalessen 50 % not for Waiters

As the page says, Only a Tenant admin can change the presets. Ask yours for a new preset, another value, or to let Waiters give one.

Example: Beizli Muster has two. Stammgast 10 % (Regular 10 % in the English staff app) gives regulars 10 %, and Waiters may give it. Personalessen (Staff meal), 50 %, is for Managers only.

Give a preset

Section titled “Give a preset”

In the staff app, you give a preset like a Waiter does (Discounts), but you may give every preset, also those Waiters may not use.

Example: after her shift, Silvia eats a cordon bleu at the Stammtisch. Michael opens her Tab and gives Personalessen; Silvia could not have given it herself.

A Discount keeps the name and value the preset had when it was given; a later change to the preset does not change it. A Discount of any other amount is a free-form Discount (Discounts, Corrections and Refunds).

Menu import and export

Under Menu → Import/export, the whole menu travels as one JSON file: to keep a copy before big changes, to change many prices at once in a text editor, or to copy the menu to another venue. The Rooms have their own file, on the Rooms page (Rooms).

A menu file checked before importing: the beer at a new price and a new shandy

Download the menu

Section titled “Download the menu”

Click ① Download menu (JSON). You get menu.json: the Stations with their colours, the VAT rates, the Categories with their Items (also those off the menu), and the Modifier groups with their Follow-up groups, each with its id. Stock counters and Discount presets are not in it. Pictures are only named: in the same venue they stay, in another one the Items have none until you add them again.

Upload a file

Section titled “Upload a file”
  1. Choose the file under ② Menu file (JSON).
  2. Zahli checks it and shows what importing it would change ③, without changing anything yet: each Station, Category, Item or Modifier group it would create (New) or change (Changed, with the fields), and how many are already up to date.
  3. Click ④ Import to import it, or Cancel.

Example: Michael raises the draught beer from 7.50 to 8.00 and adds a Shandy 3 dl to the Cold drinks in the downloaded file, then uploads it. The page shows one Item to create and one to change, its price; everything else is up to date. He clicks Import.

What the file contains is created or updated by its id; what it leaves out stays as it is, and nothing is ever deleted. The order of things in the file becomes their order on the menu. A file that breaks a rule, such as prices in another currency or a Follow-up group that would open itself, is not imported; the page lists each problem with where it is in the file.

A file that creates or changes VAT rates is refused with This file creates or changes VAT rates, which only a Tenant admin may do. Ask a Tenant admin to import it, or leave the VAT rates as they are.

Copy a menu to another venue

Section titled “Copy a menu to another venue”

Download the menu in one venue and upload the file in the other, which must use the same currency. Since the ids stay the same, uploading a newer file later updates the copies instead of adding new ones.

The first copy brings the first venue’s VAT rates along as new ones, so a Tenant admin imports it; later files, with the same rates unchanged, a Manager can import too.

Example: Beizli Muster opens a summer kiosk at the lake as a venue of its own. Michael downloads the menu, Anna Admin uploads it in the kiosk, and Michael takes the hot meals off the menu there.

A later upload sets everything the file names as the file has it, also what was changed in the copy since: uploaded again, the Beizli’s file would put the kiosk’s hot meals back on its menu.

The menu is the same in test and live mode, so there is nothing to copy between them.

Laying out Rooms

The Rooms are the plans Waiters tap in the staff app (Rooms and Tables). You draw them under Venue → Rooms: each Room with its Tables, where a Tab can be opened, and its decorations, shapes or text that help find the way, such as a bar counter or the entrance. Beizli Muster has two Rooms, the Gaststube and the Terrasse.

Add or change a Room

Section titled “Add or change a Room”

Adding, moving and deleting a Room take effect at once. Everything else you change in a Room, including the Tables and decorations, takes effect only when you click Save.

Add Tables and decorations

Section titled “Add Tables and decorations”

Add Table and Add round Table place a new Table in the Room, named with the next free number. Add decoration adds a shape, and Add text a text without a shape, such as Fensterseite in the Gaststube.

Then work on the plan:

Table names are unique across all Rooms: a second Table 5 is refused, also on the Terrasse.

Copy Tables

Section titled “Copy Tables”
The Terrasse with T5 copied as T7 and moved below it, not saved yet

① Duplicate (Ctrl+D) copies the selection and places the copies right of it, or below it where the Room has no space. Dragging with Ctrl held drags out copies. Ctrl+C, Ctrl+X and Ctrl+V copy, cut and paste, also into another Room; pasted plain text becomes a text decoration.

A copy keeps the text of its Table’s name and counts the number on from the highest in use: T5 becomes T7 when the Terrasse already has T1 to T6, 3.1 becomes 3.2, and Bar becomes Bar 2. Several copies are numbered in Tab order: row by row, from top to bottom and left to right.

Until you save, ② shows Unsaved changes; ③ Save saves the Room. Leaving the page or opening another Room asks first whether to discard the changes.

Example: for a summer party, Michael adds a Table to the Terrasse. He clicks T5 and Duplicate; the copy T7 ④ appears right of T5, touching T6. He drags it below T5, where the Terrasse has room, and clicks Save. The phones show T7 on the Terrasse a moment later.

Name Tables quickly

Section titled “Name Tables quickly”

In the field Table name (④ above), Tab goes on to the next Table in Tab order and selects its name for typing over, Shift+Tab goes back. To rename the Gaststube’s Tables 1 to 7 as G1 to G7, Michael clicks Table 1 and types G1, Tab, G2, Tab, and so on, then saves.

Format a Table or decoration

Section titled “Format a Table or decoration”
The Gaststube with the Stammtisch selected, yellow and bold, and its formatting in the panel

Select a Table and set, in the panel:

With several items selected, the panel shows what they share and Mixed where they differ; a choice applies to all of them. Text sizes are relative to the phone’s text, so the plan here shows them as on a phone 400 dp wide; on a larger phone or tablet text takes less space.

Example: the Stammtisch, the regulars’ table, stands out in yellow and bold, round and larger than the other Tables.

Import and export Rooms

Section titled “Import and export Rooms”

Import and export (JSON) at the top of the page moves Rooms as a file, for a backup or for a second venue:

An import creates and updates, but never deletes: a Room, Table or decoration missing from the file stays as it is.

Devices

A Device is a phone or tablet set up for the venue: a phone that runs the staff app, or a tablet that runs the kitchen terminal. Each is enrolled once with a one-time code; then the staff sign in on it as often as they like. The Devices are under Venue → Devices.

Enrol a phone

Section titled “Enrol a phone”
The enrolment code for the phone Telefon Terrasse, as QR code and as text
  1. Under Enrol a Device, enter a Name, which is how the list shows the phone, and keep the Kind Staff app.
  2. Click Create enrolment code. The page shows the code as ① a QR code and ② as text. It works once, for 10 minutes.
  3. On the phone, open the Zahli app. It shows Enrol this phone: tap Scan enrolment code or Staff QR and scan ①, or type ② into Enrolment code and tap Enrol.
  4. The phone shows the sign-in with its name and the venue. Click ③ Done to see it in the list.

Example: Beizli Muster buys a phone of its own for the Terrasse. Michael names it Telefon Terrasse, creates the code and scans it with the new phone. Silvia can sign in on it at once (Signing in).

Where the Tenant admin allows it, a Waiter can also enrol a phone by scanning their Staff QR on it; such a phone shows in the list named after its model and the Waiter’s first name. A phone still enrolled at another venue asks before it moves to yours: it is removed there, and what it kept for that venue is discarded.

Enrol the kitchen terminal

Section titled “Enrol the kitchen terminal”
The kitchen terminal on a new tablet, with an enrolment code typed in
  1. Under Enrol a Device, enter a name such as Küchenbildschirm, choose the Kind Kitchen terminal and click Create enrolment code.
  2. On the tablet, open app.zahli.ch/kitchen in the browser. It shows Kitchen terminal.
  3. Type the code into ① Enrolment or setup code and tap ② Set up. The tablet does not scan; type the code.
  4. On the tablet, choose the Stations it shows (Choosing Stations).

A kitchen terminal enrols only with a code of its kind, never with a Staff QR.

Example: when K-001 goes back to Zahli after the summer, Beizli Muster uses a tablet of its own. Michael creates a code for Küchenbildschirm, types it on the tablet and chooses Küche and Bar there.

Look after the Devices

Section titled “Look after the Devices”
The Devices Zahli K-001, Zahli S-001 and Telefon Terrasse with their actions

The list shows each Device’s Last seen and who is Signed in on it.

Deactivating and removing ask first. A kitchen terminal shows its own message when deactivated or removed (When the screen says deactivated).

Example: one evening Telefon Terrasse is nowhere to be found. Michael clicks Deactivate, so nobody can take orders on it. The next morning it turns up under the chestnut tree; he clicks Reactivate and it works again.

Leave the venue from the phone

Section titled “Leave the venue from the phone”
The Settings of a phone with Test mode on this phone and Leave Beizli Muster

A Manager signed in on a phone finds two more things in its Settings (the menu at the top left of the Rooms): ① Test mode on this phone (Test mode), and ② Leave Beizli Muster under Leave the venue.

Leaving removes the phone from the venue, as Remove in the admin app would. After you confirm, the phone forgets what it kept for the venue and shows enrolment again, ready for another venue. Use it before you hand a phone on. It is refused while Payments taken offline on the phone still wait to be sent; stay online until they are, then try again.

Phones and tablets rented from Zahli

Section titled “Phones and tablets rented from Zahli”

Beizli Muster rents the phone S-001 and the tablet K-001 from Zahli. They need no enrolment: they belong to the venue for as long as the rental runs, and the list shows ① the badge Zahli K-001 with the serial number and when Zahli set it up.

You rename, deactivate and reactivate them, and set the phone’s Receipt Printer and test mode, like your own. You cannot remove them, and the phone’s Settings say that it belongs to Zahli instead of offering to leave. When the rental ends, the Devices leave the list, and the phone shows Not rented – please return to Zahli · S-001, the tablet the same with K-001 (Not rented). Give them back to Zahli as agreed.

Printers and Print templates

A Printer is a named place where Zahli prints: the Tickets of the Stations it serves, Receipts, Guest slips, or all of them. An Epson receipt printer at the venue prints for it and fetches its jobs from Zahli over the internet; nothing at the venue needs to be opened to the internet. The Printers are under Venue → Printers.

At Beizli Muster, the Printer Theke at the counter prints the Bar’s Tickets, the Receipts and the Guest slips, on the printer P-001 rented from Zahli. The Küche has no Printer yet: its Tickets show on the kitchen terminal only.

Add a Printer

Section titled “Add a Printer”
The form Add a Printer filled in for the Printer Küche
  1. ① Name: how the list shows it.
  2. ② Stations: the Stations whose Tickets it prints.
  3. ③ Paper width: 80 mm or 58 mm, as the printer’s paper roll.
  4. ④ Prints: Prints Tickets, Prints Receipts, Prints Guest slips.
  5. ⑤ Password: generated for you. If the printer already has a password set for Zahli, type that one instead.
  6. Click ⑥ Add Printer.

Example: Michael buys an Epson printer for the kitchen. He adds the Printer Küche for the Station Küche (shown as Kitchen in English), 80 mm, and only Prints Tickets. From then on the Küche’s Tickets print there as well as showing on the kitchen terminal.

Set up the venue’s own Epson printer

Section titled “Set up the venue’s own Epson printer”
The setup card of the Printer Küche with URL, ID and password

After adding, the page shows what to enter in the printer. Open the printer’s web settings (its IP address in a browser on the venue’s network), go to TM-i Settings → Services → Server Direct Print, set Server Direct Print to Enable and enter ① the Server1 URL, ② the ID, ③ the Password, ④ the Interval of 2 seconds and URL Encode Disable. Save there, then click ⑤ Done here.

Copy the password before you click Done: it is shown only this once. Later, Setup in the list shows the card again without it; if it is lost, New password there sets a new one, and the printer prints nothing until you enter that in its settings too.

Test and watch a Printer

Section titled “Test and watch a Printer”
The Printer Theke with Zahli P-001, last seen a moment ago, and its actions

Example: before service, Michael clicks Test print on Theke. The page says Test page queued for Theke; it prints at the printer’s next poll., and P-001 at the counter prints the test page.

A printer rented from Zahli

Section titled “A printer rented from Zahli”

A printer rented from Zahli needs no setup: you attach it to one of your Printers, which keeps its name, Stations, paper width and what it prints.

Example: P-001 jams during a busy evening, and Zahli brings the spare P-002. Michael clicks Attach… on Theke and chooses P-002. Theke’s Tickets and Receipts, the waiting ones too, now come out of P-002.

Where Receipts and Guest slips print

Section titled “Where Receipts and Guest slips print”

Receipts print on the phone’s own Receipt Printer, chosen on the Devices page (Devices), or else on the venue’s default receipt Printer (Venue settings). In a browser, a Manager chooses it in the staff app’s Settings under Receipt printer. Only Printers with Prints Receipts are offered. Whether Guest slips print is a venue setting; they come out of the sending phone’s Receipt Printer if it prints Guest slips, or else out of the first Printer that does.

Section titled “Print templates”
The Receipt's header and footer with the line Montag Ruhetag added, and its preview on 80 and 58 mm paper

Under Venue → Print templates you write the top and bottom of Receipts and of Tickets: ② Header and ③ Footer. What lies between them, the items, totals, VAT and the TEST badge, Zahli adds itself.

Example: Beizli Muster is closed on Mondays. Michael adds the line Montag Ruhetag to the end of the Receipt’s footer, sees it under Vielen Dank! in the preview and clicks Save. Every Receipt printed from then on says so.

Staff guides

Under Venue → Staff guides you hand your staff the guide they need: the Waiter guide to the Waiters, the Kitchen guide to whoever works at the kitchen terminal, this guide to another Manager.

The Waiter guide in German for Beizli Muster: its link, Open to print and the card with its QR code
  1. ① Guide: Waiter guide, Kitchen guide, Manager guide or Tenant admin guide.
  2. ② Language: Deutsch or English; at first your venue’s language.
  3. ③ The link, to send by message or email. The button beside it copies it.
  4. ④ Open to print opens the whole guide on one page in a new browser tab. Print it there with the browser’s Print (Ctrl+P), on paper or as a PDF.
  5. ⑤ The QR code on a card: Download PDF makes a PDF of it to print, cut out and lay by the till or pin up in the kitchen. A phone scanning it opens the guide.

Fitted to your venue

Section titled “Fitted to your venue”

The Waiter guide’s link carries how your venue works: Pay-first or Open tabs, Walk-ins, the Payment methods, Discount presets for Waiters, Stock counters, a receipt Printer, a kitchen terminal and a few settings more. Opened through it, the Waiter guide leaves out what does not apply to you, so a Waiter at a venue without Card never reads about Card. The link holds only these switches, never names or data. The other guides are the same for every venue.

The link follows your settings as they are when you open the page. Once you change them, for example with a kitchen terminal or Card added, open the page again, hand out the new link and print a new card.

Example: Beizli Muster takes Open tabs, Cash and Twint, prints Receipts on Theke and has the kitchen terminal K-001. Michael picks Waiter guide in Deutsch, clicks Download PDF and lays the card by the till. Silvia scans it with her phone and reads the Waiter guide without the passages on Pay-first and Card.

Your own Rooms and menu

Section titled “Your own Rooms and menu”

Opened in a browser where you or one of your staff are signed in to Zahli, the Waiter guide shows your venue’s own screens in place of Beizli Muster’s: each of your Rooms, your menu, the choices of your first item with Modifiers, and an example Tab of your first three items with its Pay sheet. That Tab exists only on the page; nothing is sent or booked. Printed from there, the guide is a picture of your venue at that moment, open Tabs included, so print it before service. Where nobody is signed in, as on most phones scanning the card, it shows Beizli Muster’s screens.

Example: Michael clicks Open to print before opening time and prints the Waiter guide with the Gaststube, the Terrasse and the menu of Beizli Muster as they are today.

Venue settings

How the venue works for everyone is set under Administration → Settings. A Manager changes the card Service, and switches the whole venue between test and live mode in the card above it (Test mode).

The card Service in the settings of Beizli Muster

The Service card

Section titled “The Service card”

Click Save at the end of the card. The staff app takes the change at its next sign-in or refresh.

Example: Beizli Muster’s business day starts at 04:00, so a round of drinks at half past midnight still belongs to the evening before and its Daily closing. Walk-ins are allowed, and only they get a Guest slip with their Pickup number, printed at the Theke. For a summer festival, Michael would switch the Mode to Pay-first, let the staff app open with the menu, for a new Tab, and switch both back afterwards.

What the Tenant admin sets

Section titled “What the Tenant admin sets”

Further down, the cards Twint code (the venue’s Twint QR code shown on the phones) and Locale and security (language and currency of the prints, sign-out after idle time, Staff QRs enrolling phones, Waiters in a browser) say Only a Tenant admin can change these. You see them, greyed or without buttons, but cannot change them. At Beizli Muster, Anna does (Tenant admin guide).

Free-form Discounts, Corrections and Refunds

A Waiter gives Discounts from presets and items on the house, and corrects only Payments they took themselves, on the same business day. A Manager may do more, on every Tab, in the staff app.

A Discount of your own

Section titled “A Discount of your own”

Example: Table 2 waited long for the mains, and Michael takes CHF 6.00 off.

  1. On the open Tab, tap Give a discount.
  2. Choose ① Percentage or Amount and enter it ②: 6.00.
  3. Write the reason ③; it is required and stays with the Discount. Tap Give discount ④.
A Discount of CHF 6.00 on Table 2, with the reason

Table 2 then comes to CHF 54.00 instead of 60.00. Under Preset you also find the presets Waiters may not give, such as Staff meal at 50 %.

A Discount is given only on an open Tab, never for more than is left to pay, and stays once given. A percentage also takes off Rounds sent after it. Once the Tab is paid, money goes back with a Correction and a Refund.

Correct any Tab

Section titled “Correct any Tab”

You correct as the Waiter guide shows, but on any Tab, from any day, whoever took the Payment.

Example: the regulars at Table 3 paid CHF 104.85 by Twint to Silvia, with their 10 % off. Later it turns out one of their three Pinot Noir never came. Michael opens the Tab, for example from the History, taps Correct items, picks one Pinot Noir and taps Correct. The guests are owed CHF 7.65, the CHF 8.50 less their 10 %, and the Refund opens on the Twint Payment with that amount filled in.

Give money back

Section titled “Give money back”

On a Payment of the Tab, tap Refund. Unlike a Waiter, you choose how the money goes back ①:

You may also give back more than a Correction owes, or money without any Correction: a plain Refund ③, where the items stay on the Tab.

Example: a guest at Table 3 says the entrecôte was cold. Michael gives CHF 10.00 back in cash and leaves the entrecôte on the Tab.

  1. On the Twint Payment, tap Refund.
  2. Choose In cash ①, enter 10.00 ② and add the reason if you like.
  3. Hand over the cash and tap Refund ④.
Refunding CHF 10.00 of Table 3's Twint Payment in cash

Each Refund gets its own Receipt number and shows on the Tab and in the History. The Tip is never refunded; it stays with whoever took the Payment. Cash goes back rounded to 0.05, and a Payment taken offline can be refunded once it is synced.