HorecaPOSHandbuch Einführung Zur Kasse
DE

Handbuch HorecaPOS

Dieses Handbuch besteht aus drei Teilen: zuerst für das Personal (Bedienung), dann für den Manager und zuletzt für den Administrator. Jeder Teil baut auf dem vorherigen auf: Ein Manager kann alles, was die Bedienung kann, und der Administrator kann alles.

Was Ihre Rolle genau darf, stellt der Administrator unter Einstellungen → Rechte ein. Sehen Sie eine Taste nicht, hat Ihre Rolle dort (noch) kein Recht dazu.

Dieses Handbuch gibt es auch in der Kasse: Tippen Sie auf die ©-Taste unten rechts auf jedem Bildschirm und wählen Sie Handbuch, oder öffnen Sie http://<kassa-pc>:3000/handleiding. Siehe auch die Einführung und die API-Dokumentation.

Teil 1 · Personal

Erste Schritte

Anmelden. Öffnen Sie die Kasse auf der Kasse, dem Tablet oder dem Smartphone und geben Sie Ihre PIN ein (4 bis 8 Ziffern). Danach sehen Sie den Tischplan.

Anmelden mit PIN

Einen Tisch öffnen. Tippen Sie auf einen Tisch. Ein freier Tisch bekommt eine neue Bestellung; bei einem besetzten Tisch machen Sie mit der vorhandenen Bestellung weiter. Oben wechseln Sie zwischen den Räumen (zum Beispiel Saal und Terrasse). Für die Theke nutzen Sie Schnellverkauf, für Bestellungen zum Mitnehmen Abholung.

Tischplan

Bestellen. Wählen Sie eine Warengruppe und tippen Sie auf die Artikel. Sie erscheinen links auf dem Bon. Wählen Sie bei Bedarf zuerst den Gang (1 = sofort, 2 und 3 warten, bis Sie sie abrufen). Tippen Sie auf Bestellen: Dann gehen die Küchenbons an Küche und Bar. Solange Sie noch nicht auf Bestellen getippt haben, können Sie Zeilen einfach entfernen.

Kassieren. Tippen Sie auf Kassieren, wählen Sie Karte / Bancontact, Bar oder Gutschein, eventuell ein Trinkgeld, und bestätigen Sie. Bei Kartenzahlung startet die Zahlung automatisch am Kartenterminal. Der Beleg wird gedruckt; Sie können ihn auch per E-Mail senden.

Kassieren

Abmelden. Melden Sie sich ab, wenn Sie fertig sind, damit niemand anderes unter Ihrem Namen arbeitet. Nach 8 Stunden werden Sie automatisch abgemeldet.

Kein Internet? Die Kasse läuft einfach weiter. Steht oben Kein Internet · Karte manuell, kassieren Sie den Betrag direkt am Kartenterminal und wählen im Kassierbildschirm Bereits am Terminal bezahlt.

Mehrere Gruppen an einem Tisch

An einem Tisch können mehrere Gruppen sitzen, jede mit eigener Rechnung und eigenem Beleg.

Rechnung beim Kassieren teilen

Kassierbildschirm

Kassieren funktioniert wie immer: Alles auf einmal. Im Kassierbildschirm kann die Rechnung jetzt auch geteilt werden, mit den Schaltflächen unter Zurück und Kassieren (so bleiben diese immer sichtbar, ohne Wischen):

Eine Teilzahlung bucht nur die Zahlung; die Rechnung bleibt offen, und im Bestellbildschirm steht „bereits bezahlt … · noch offen …“. Der Beleg (mit allen Zahlungen) kommt bei der letzten Zahlung, wie beim normalen Kassieren. Kartenzahlung über die Anbindung erfolgt für genau den Teilbetrag. Ist bereits teilweise bezahlt, können keine Zeilen mehr in eine andere Gruppe verschoben und keine Rabatte mehr gewährt werden; Entfernen ist nur möglich, wenn genug offen ist. Jede Teilzahlung wird im Protokoll erfasst.

Schnellverkauf und Abholung (ohne Tisch)

Tischplan mit Schnellverkauf und Abholung

Oben rechts im Tischbildschirm stehen Schnellverkauf und Abholung. Beide öffnen sofort eine Bestellung ohne Tisch. Schnellverkauf ist Verkauf an der Theke (MwSt. vor Ort); Abholung verwendet den MwSt.-Satz für Abholung des jeweiligen Artikels. Mit „Kundenname“ fügen Sie einen Namen hinzu; er steht auf dem Beleg („Abholung – Jansen“) und oben auf dem Küchenbon. Offene Bestellungen ohne Tisch stehen unter den Raumtasten („Ohne Tisch: Abholung #12 – Jansen“), damit Sie sie wiederfinden. Gehen Sie zurück, ohne etwas zu verkaufen, verschwindet die leere Bestellung automatisch.

Beide Tasten lassen sich pro Betrieb unter Einstellungen → Betrieb ein- oder ausschalten, direkt unter dem hellen/dunklen Design (standardmäßig ein). Aus = Taste ausgeblendet; bereits offene Bestellungen ohne Tisch bleiben sichtbar.

Lieferung und Zeitfenster

Bestellungen, die Sie an der Kasse selbst aufnehmen, zum Beispiel telefonisch oder an der Theke, mit denselben Regeln wie im Webshop: Liefergebiete und eine maximale Anzahl an Bestellungen pro Zeitfenster. Einschalten unter Einstellungen → Betrieb → Lieferung und Zeitfenster, direkt unter den Tasten Schnellverkauf und Abholung (standardmäßig aus).

Erweiterungen (alles standardmäßig aus; ohne diese Einstellungen funktioniert alles genau wie oben):

Code: lib/bezorgen.ts, routes/bezorgen.ts, BezorgDialoog.tsx, BezorgInstellingen.tsx, BezorgKaart.tsx und lib/kaart.ts (die Karte, ohne zusätzliches Paket; derselbe Code steht als public/kaart.js im Webshop).

Telefonie: Kunden bei einer telefonischen Bestellung erkennen

Einstellungen → Telefonie (standardmäßig aus; beim Ausschalten bleibt alles gespeichert). Zwei separate Schalter:

Gesucht wird in der Kundenkarte, den Liefer- und Abholbestellungen der Kasse, dem Webshop, Thuisbezorgd, den Lieferplattformen und den Reservierungen. Nummern werden vereinheitlicht (+31 6 1234 5678, 0031612345678 und 06-12345678 sind gleich; auch belgische Nummern).

Wie die Nummer hereinkommt (mehrere gleichzeitig möglich; derselbe Anruf zählt einmal):

QuelleFürEinrichtung
Webhook / Action URL3CX (CRM-Integration), Aircall, Voys / VoIPGRID, Yeastar P-Serie, Telefone mit einer Action URL bei eingehendem Anruf (Fanvil, Grandstream, Mitel 6800/6900, Snom, Yealink: funktioniert mit jeder Telefonanlage und jedem Anbieter), Integrationsdienste (Zapier, Make, n8n, Power Automate)die Adresse aus Einstellungen → Telefonie (/api/telefonie/oproep?sleutel=...&nummer=...), GET oder POST, JSON, Formular oder Query; auch über das Portal: https://<portaal>/telefonie/<kassa-id>/oproep?sleutel=...
Asterisk (AMI)Asterisk, FreePBX, Issabel, VitalPBX, Grandstream UCMAdresse, Port (5038; Grandstream UCM 7777), AMI-Benutzer und Passwort (Rechte call)
FRITZ!BoxFRITZ!Box mit TelefonieAdresse (fritz.box) und Port 1012; Callmonitor einmal einschalten mit #96*5*
USB-Caller-ID-Modemanaloger Festnetzanschluss mit Rufnummernanzeigeserieller Port (COM3, /dev/ttyACM0), Baud und Init-Befehl (Standard AT+VCID=1)
Android-Telefondas eingebaute Telefon eines Android-Telefons des BetriebsHorecaPOS-App auf diesem Telefon, Einstellungen → Telefonie → Dieses Telefon koppeln (Android 10+: die App als App für die Anruferkennung wählen)

Die Antwort enthält den Anrufer, auch als contact (firstname, lastname, phone, email, address) für eine CRM-Vorlage von 3CX. Ausgehende und interne Anrufe werden nicht angezeigt; Nur diese Leitungen beschränkt auf bestimmte Leitungen oder Telefone. Anrufe werden nach der Aufbewahrungsfrist gelöscht (standardmäßig 30 Tage, DSGVO). Testanruf simuliert den Anruf einer Nummer.

Code: apps/pos-server/src/lib/telefonie.ts, routes/telefonie.ts, packages/shared/src/telefonie.ts; Bildschirme Telefonie.tsx, BezorgDialoog.tsx; Android android-app/native/java/Beller*.java. Protokoll: Telefonie.

Eigene Fahrer: Touren, Kassenabrechnung und Sendungsverfolgung

Für Betriebe mit eigenen Fahrern. Einschalten unter Einstellungen → Betrieb → Lieferung → Eigene Fahrer (standardmäßig aus). Eine App für den Fahrer ist nicht nötig: Der Fahrer nutzt eine Seite im Browser des eigenen Handys (wer möchte, nutzt die App Optimum Bezorger: siehe Fahrer-App unten).

Eine Tour erstellen. In der Kasse gibt es die Taste Touren (mit der Anzahl der Lieferungen, die noch rausmüssen, plus der Touren, die unterwegs sind).

  1. Hake unter Bereit zur Lieferung die Bestellungen an, die mitgehen. Das sind die Lieferbestellungen aus der Kasse, dem Webshop und Thuisbezorgd (nur selbst liefern; nicht die mit einem Fahrer von Thuisbezorgd).
  2. Wähle den Fahrer (einen Mitarbeiter) und das Wechselgeld, das mitgeht (standardmäßig der Betrag aus der Einstellung), und tippe auf Tour erstellen.
  3. Es erscheint ein QR-Code. Der Fahrer scannt ihn mit dem eigenen Handy und sieht pro Adresse den Namen, die Adresse mit einer Taste Route (Navigation), Anrufen, die Bemerkung, die Wunschzeit und was zu kassieren ist. Es gibt einen Wechselgeldrechner (Kunde gibt € 50 → zurück € 31,50). Eine Anmeldung ist nicht nötig. Teile den Link nur mit dem Fahrer: Wer ihn hat, sieht die Adressen dieser Tour. Mit QR-Code für den Fahrer erstellst du einen neuen Link; der alte funktioniert dann nicht mehr.
  4. Tippe auf Losfahren, wenn der Fahrer losfährt. Das Wechselgeld geht aus der Schublade (Geld raus, mit dem Grund). Der Kunde erhält eine Nachricht, dass die Bestellung unterwegs ist:
    • bei einer Bestellung aus der Kasse per SMS und/oder E-Mail, wenn Nachrichten an den Kunden eingeschaltet ist (siehe Lieferung und Zeitfenster);
    • beim Webshop wie im Webshop eingestellt (Mail, SMS oder Push-Nachricht);
    • bei Thuisbezorgd über Thuisbezorgd.

Ist die Tour noch nicht losgefahren, kann sie noch aufgehoben werden.

  1. Unterwegs tippt der Fahrer pro Adresse auf Geliefert, bar, Geliefert, Karte (ein eigenes Kartenterminal) oder Geliefert (bereits bezahlt). Die Kasse sieht das sofort. Kann der Fahrer es nicht melden, geht es auch in der Kasse. Zurück im Betrieb tippt der Fahrer auf Ich bin zurück im Betrieb.

Kassenabrechnung. Nach der Tour tippst du auf Kassieren (Recht Kassenschublade verwalten):

Sendungsverfolgung (separat in der Einstellung einzuschalten). Der Kunde erhält bei unterwegs einen Link zu einer Verfolgungsseite auf dem Portal. Der Link steht in der SMS oder E-Mail und im Webshop auf der Statusseite (Verfolge deinen Fahrer). Auf der Verfolgungsseite steht:

Die Seiten erscheinen in der Sprache des Handys (alle Sprachen des Portals). In der Kasse siehst du bei der Tour, wann der Standort zuletzt übermittelt wurde (mit einem Link zur Karte).

Datenschutz. Das Portal speichert die Daten einer Tour (Namen, Adressen, Telefonnummern, den Standort) nur, solange die Tour läuft. Beim Abrechnen wird alles gelöscht, sonst nach 24 Stunden. Der Kunde sieht nur die eigene Bestellung. Der Standort des Fahrers ist nur während der Tour sichtbar und nicht mehr, sobald der Fahrer zurück ist.

Tourenplanung (optional)

Aktivieren unter Einstellungen → Betrieb → Lieferung → Tourenplanung (standardmäßig aus; funktioniert mit eigenen Fahrern). Im Fenster Touren gibt es dann die Schaltfläche Touren vorschlagen. Die Kasse fasst die noch auszuliefernden Bestellungen zu Touren zusammen:

Mit Diese Tour verwenden werden diese Bestellungen in dieser Reihenfolge angehakt; Fahrer wählen und Tour erstellen tippen. Bei einer Tour, die noch nicht losgefahren ist, bringt Beste Reihenfolge die Adressen in die schnellste Reihenfolge (auch auf dem Telefon des Fahrers). Bei jeder Tour stehen Entfernung und Fahrzeit.

Einstellungen: Adressen pro Tour, maximale Tourdauer, das Zeitfenster, die Geschwindigkeit des Fahrers (Fahrrad ~15, Roller ~25, Auto ~35 km/h in der Stadt) und die Minuten pro Adresse (Parken, Klingeln, Abrechnen; Standard 2). Diese Werte darf auch der Manager einstellen: im Fenster Touren mit der Schaltfläche Tourenplanung einstellen (Recht Tourenplanung einstellen, für den Manager standardmäßig an; anpassbar unter Einstellungen → Rechte). Tourenplanung ein- oder ausschalten und der Routendienst (Adresse, API-Schlüssel) bleiben beim Administrator.

Entfernung und Fahrzeit, vom Administrator wählbar:

Mit Testen wird der Dienst ausprobiert. Klappt der Dienst nicht, greift die Planung auf die Schätzung zurück und weist darauf hin. Eine Adresse, deren Lage unbekannt ist (keine gültige Postleitzahl und Hausnummer), erscheint im Vorschlag unter ohne bekannte Lage und wird nicht eingeplant. Der Konfigurationsexport enthält die Einstellungen, aber nicht den Schlüssel.

Code: lib/ritplanning.ts.

Fahrer-App (optional)

Einschalten unter Einstellungen → Betrieb → Lieferung → Fahrer-App (standardmäßig aus; funktioniert mit eigenen Fahrern und dem Verwaltungsportal). Jeder Fahrer koppelt dann sein eigenes Handy einmal, statt pro Tour einen QR-Code zu scannen:

  1. Unter Gekoppelte Handys den Fahrer (einen Mitarbeiter) wählen, eventuell den Namen des Handys, und auf Handy koppeln tippen.
  2. Es erscheint ein QR-Code. Der Fahrer scannt ihn in der App Optimum Bezorger (Schaltfläche Koppeln) oder mit der Kamera des Handys: Dann öffnet sich die Seite im Browser. Sie funktioniert auch ohne App und kann auf den Startbildschirm.
  3. Die Kopplung bleibt gültig, bis sie widerrufen wird; das Handy sieht dann sofort nichts mehr. Eine neue Kopplung für denselben Mitarbeiter ersetzt die alte (zum Beispiel bei einem neuen Handy).

In der App oder auf der Seite stehen alle eigenen Touren (jede Tour, die die Kasse für diesen Fahrer erstellt), mit denselben Schaltflächen wie bei einer Tour: Route, Anrufen, zu kassieren mit Wechselgeldrechner, Geliefert und Ich bin zurück im Betrieb. Separat einschaltbar:

Die App für Android gibt es bei Google Play und auf der Download-Seite des Portals (/download/). Eine Version für iPhone ist fertig, kommt aber erst, wenn es ein Apple-Entwicklerkonto gibt; bis dahin nutzen iPhones die Webseite. Bei einer Tour, die der Fahrer selbst übernommen hat, steht vom Fahrer selbst in der App übernommen.

Code: lib/bezorgersapp.ts, im Portal src/volgen.mjs und die App im Repo horecapos-bezorger.

Im Protokoll steht, wer eine Tour erstellt, losgeschickt, als geliefert gemeldet und abgerechnet hat, mit den Beträgen. Ausschalten: keine Taste Touren; Touren und Einstellungen bleiben gespeichert.

Auf dem Portal: /bezorger/<sleutel> und /volg/<code>. Code: lib/bezorgers.ts, routes/bezorgers.ts, Bezorgers.tsx und im Portal src/volgen.mjs.

Meldung bei zu langer Durchlaufzeit

Eine Abhol- oder Lieferbestellung, die später fertig ist als zugesagt: Die Kasse erkennt das, meldet es und kann dem Kunden sofort eine Entschuldigung senden, optional mit einem Gutschein. Einschalten unter Einstellungen → Betrieb → Lieferung → Meldung bei zu langer Durchlaufzeit (standardmäßig aus).

Code: lib/telaat.ts, routes/telaat.ts, TeLaat.tsx und packages/shared/src/telaat.ts.

Die Taste Bestellen: was sie macht und wann du sie brauchst

Ein Produkt antippen und auf Bestellen tippen sind zwei verschiedene Schritte:

Warum diese zwei Schritte? Am Tisch nimmst du die ganze Bestellung auf (Getränke, Vorspeise, Hauptgericht), passt noch etwas an, wenn der Gast es sich anders überlegt, und schickst dann alles auf einmal in die Küche, mit einem Bon pro Station statt einem Bon pro Produkt. So kann die Küche schon anfangen, lange bevor bezahlt wird.

Was bei Bestellen außerdem passiert:

Direkt kassieren geht auch. Tippst du auf Kassieren, während noch neue Zeilen auf der Rechnung stehen, bestellt die Kasse diese zuerst automatisch, damit Küche und Bar immer ihren Bon bekommen. An der Bar oder bei Abholung musst du also nicht erst auf Bestellen tippen: antippen und sofort Kassieren. Klappt das automatische Bestellen nicht (keine Verbindung, All-you-can-eat-Regel, Blackbox), bleibt der Kassierbildschirm zu und du siehst, warum.

Lieber keinen Bon für die Bar, wenn du sofort kassierst? Setze unter Einstellungen → Betrieb → Bestellen und Kassieren das Häkchen bei Direkt kassieren ohne Arbeitsbon. Dann geht nur das, was du mit Bestellen abschickst, an Küche und Bar; was du sofort kassierst, bekommt keinen Arbeitsbon.

Große oder kleine Taste Kassieren

Mit dem Häkchen Große Schaltfläche "Kassieren" steht im Bestellbildschirm eine große Taste Kassieren direkt unter den bestellten Produkten: breit, hoch und mit dem Betrag darin, damit sie schnell zu treffen ist. Ist die Rechnung schon teilweise bezahlt, zeigt die Taste den noch offenen Betrag. Die kleine Taste unten neben Bestellen entfällt dann.

Mit der großen Taste sind auch die Tasten im Kassierbildschirm groß: Kassieren (bei Karte, Gutschein und den anderen Zahlungsarten) und bei Bar sind Passend kassieren und Kassieren breit und hoch, leicht zu treffen, auch mit schmutzigen Fingern (zum Beispiel in einer Metzgerei). Die Zahlungsarten sind etwas größer und die Trinkgeldtasten etwas kleiner, damit alles im Bild bleibt.

Bei einer Neuinstallation ist das Häkchen aus: dann die kleine Taste unten neben Bestellen und ein Kassierbildschirm mit normalen Tasten. Lieber groß? Setzen Sie in Einstellungen → Betrieb, direkt unter hellem/dunklem Design, das Häkchen Große Schaltfläche "Kassieren". Eine Kasse, die schon in Gebrauch war, behält ihre bisherige Einstellung. Die Wahl gilt für alle Kassen und Tablets des Betriebs.

Artikel auf „aus“ setzen (ausverkauft)

Jeder kann im Bestellbildschirm einen Artikel lange drücken (oder mit der rechten Maustaste anklicken) und Aus (ausverkauft) wählen. Der Artikel wird dann grau und ist an keiner Kasse mehr bestellbar. Auf dieselbe Weise setzen Sie ihn mit Wieder verfügbar zurück. Jede Änderung steht im Protokoll. Der Administrator kann es weiterhin auch unter Einstellungen → Artikel. Auch der Kassenserver lehnt einen Artikel ab, der auf „aus“ steht („Cola“ ist aus), also auch von einem Tablet, das die Änderung noch nicht hatte, oder bei offline gespeicherten Bestellungen; dieses Tablet zeigt dann „Senden nicht möglich“.

Küchenmonitor (KDS)

Neben (nicht anstelle von) den Küchenbondruckern kann die Küche oder Bar einen Bildschirm nutzen. Öffnen Sie auf einem Tablet/PC in der Küche http://<kassaserver>:3000/keuken, melden Sie sich mit einer PIN an und wählen Sie die Station: Das sind dieselben Namen wie bei den Druckern (Küche, Bar, ...), auf dem Bildschirm steht also genau das, was auf diesem Küchenbon stehen würde. „Alles“ zeigt alle Stationen.

Der Bildschirm aktualisiert sich sofort selbst. Küchenbons werden weiterhin gedruckt; wer den Bildschirm nicht nutzt, merkt nichts davon.

Küchenmonitor: Weiterleiten, Reihenfolge und Gang

Einstellungen → Drucker → Küchenmonitor. Jeder Teil lässt sich einzeln einschalten, standardmäßig aus; beim Ausschalten bleibt alles erhalten.

Küchendrucker aus oder kein Küchenmonitor

Die Kasse läuft immer weiter, auch wenn der Küchen- oder Bardrucker aus ist (oder das Papier leer ist oder das Kabel lose ist) und auch ohne Küchenmonitor:

Gänge (Vorspeise, Hauptgericht ...)

Die Gangtasten werden nur angezeigt, wenn sie gebraucht werden: sobald ein Menü (zusammengesetzter Artikel) auf der Bestellung steht oder bereits etwas in Gang 2 bis 4 steht. Bei normalen Artikeln, wie einer Cola, sehen Sie sie nicht und alles geht sofort an die Küche. Es gibt nichts einzustellen.

Unter der Bestellliste steht Gang 1 2 3 4. Standardmäßig ist Gang 1 aktiv und alles funktioniert wie immer: „Bestellen“ schickt alles sofort an die Küche, ohne Gangüberschriften auf dem Küchenbon. Wählen Sie Gang 2 (oder höher), bevor Sie Artikel antippen, dann:

Gang 1 geht immer sofort. Ist Gang 2 schon abgerufen, geht ein später nachbestelltes Gericht in Gang 2 ebenfalls sofort.

Allergene pro Artikel

Standardmäßig aus: Dann sind Allergene nirgends zu sehen. Einschalten über Einstellungen → Betrieb → Allergene pro Artikel erfassen und anzeigen.

All-you-can-eat

Standardmäßig aus. Einschalten über Einstellungen → Betrieb → All-you-can-eat (nur Administrator). Sie legen ein oder mehrere Arrangements an, z. B. Fisch, Fleisch und Sushi, jeweils mit:

Mit ↑ ↓ legen Sie die Reihenfolge fest. Sie zählt, wenn ein Gericht zu mehreren Arrangements gehört: Es geht dann an das oberste, das die Gruppe gewählt hat. Löschen entfernt ein Arrangement für neue Tische; laufende Tische behalten ihre Preiszeilen (weniger Personen ist dort noch möglich, mehr nicht).

Am Tisch:

Gutscheine

Zwei Schalter unter Einstellungen → Betrieb → Gutscheine:

Aufladbares Guthaben (optional)

Für Vereine, Sportkantinen, Jugendhäuser und Veranstaltungen: Ein Gutschein mit Guthaben wird zur aufladbaren Karte. Einschalten unter Einstellungen → Betrieb → Aufladbares Guthaben, unter den Gutscheinen (standardmäßig aus; funktioniert nur, wenn Gutscheine mit Guthaben verkaufen eingeschaltet ist).

Essensgutscheine

Nur für Betriebe in Belgien, standardmäßig aus: Einstellungen → Betrieb → Kassieren → Essensgutscheine. Essensgutscheine sind ein Gehaltsvorteil: Der Arbeitgeber lädt sie auf eine Karte des Arbeitnehmers (Edenred, Monizze oder Pluxee). Der Gast bezahlt damit am normalen Kartenterminal; eine Anbindung an die Anbieter ist nicht nötig.

Fremdwährung

Bar in einer anderen Währung kassieren, z. B. bei britischen oder amerikanischen Touristen oder im Grenzgebiet mit Schweizer Franken. Standardmäßig aus: Einstellungen → Betrieb → Kassieren → Fremdwährung. Fügen Sie die Währungen hinzu (CHF, CZK, DKK, GBP, HUF, NOK, PLN, SEK, TRY, USD), mit einem Kurs pro Währung: wie viel Euro Sie für 1 Einheit berechnen (z. B. 1 GBP = € 1,15).

Zusätzliche Tasten beim Bestellen und Kassieren

Tasten für das, was nicht jeder Betrieb braucht. Standardmäßig ist alles aus; einschalten pro Taste unter Einstellungen → Betrieb → Bestellen und Kassieren (Recht Betrieb, Bezahlen und Drucker einrichten). Aus = die Taste ist nirgends in der Kasse und der Kassenserver verweigert die Aktion. In den Niederlanden funktioniert alles ohne Blackbox; in Belgien funktioniert eine Taste erst, wenn diese Funktion mit der Blackbox getestet ist (an der Taste steht es, solange das noch nicht der Fall ist).

Beim Öffnen eines Tisches:

Beim Bestellen (Bestellbildschirm, für das, was Sie danach antippen):

Beim Kassieren:

Nachträglich (Belege):

Code: apps/pos-server/src/lib/kassaopties.ts, routes/kassaopties.ts; Bildschirm KassaOpties.tsx. Protokoll: Einstellung geändert, SPV eingelöst, Beleg korrigieren, Unbezahlt.

Anzahlung verrechnen

Eine Anzahlung (z. B. für eine Feier oder eine Reservierung) verkaufen Sie als normalen Artikel mit eingeschalteter Anzahlung (Einstellungen → Artikel; hat immer einen offenen Preis). Legen Sie einen pro MwSt.-Satz an, wenn die Anzahlung pro Satz sein muss (z. B. Anzahlung Speisen und Anzahlung Getränke), oder einen Artikel, wenn sie ein Teil des Angebots ist. Der Gast bezahlt die Anzahlung im Voraus und bekommt einen Beleg.

Einschalten: Einstellungen → Betrieb → Bestellen und Kassieren → Anzahlung verrechnen (standardmäßig aus). Bei der Schlussabrechnung tippen Sie im Bestellbildschirm auf Anzahlung verrechnen und geben die Belegnummer der Anzahlung ein. Die Kasse setzt die Anzahlungspositionen dieses Belegs mit negativer Anzahl auf die Rechnung (gleicher Artikel, Preis und MwSt.). Was bereits verrechnet ist, kann nicht noch einmal verrechnet werden. Ist die Anzahlung höher als die Rechnung, bekommt der Gast die Differenz zurück (Rückzahlung). In Belgien gehen die verrechneten Positionen als Rückzahlung (REFUND) an die Blackbox (UC4110, UC4111, UC4113). Protokoll: Anzahlung verrechnet.

Beleg per E-Mail

Standardmäßig aus. Einschalten über Einstellungen → Betrieb → Beleg auch per E-Mail.

SMTP_HOST=smtp.voorbeeld.nl
SMTP_PORT=587
SMTP_GEBRUIKER=kassa@voorbeeld.nl
SMTP_WACHTWOORD=...
SMTP_AFZENDER=bon@voorbeeld.nl

Starten Sie die Kasse nach dem Ausfüllen neu. Danach gibt es beim Kassieren das Feld Beleg auch per E-Mail (optional): leer lassen = nur drucken wie immer; E-Mail-Adresse eingeben = derselbe Beleg (mit MwSt.-Aufstellung und fiskalischen Angaben) geht auch per E-Mail an den Gast, mit dem Namen des Betriebs als Absender.

Reservierungen

Einschalten unter Einstellungen → Betrieb → Reservierungen (standardmäßig aus). Dort stellen Sie auch ein, ab wie vielen Minuten vorher ein reservierter Tisch im Tischplan erscheint (Standard 60), und die Standarddauer einer Reservierung (Standard 120 Minuten).

TheFork-Kassenanbindung: Tisch öffnet bei Ankunft, Rechnung zurück

Mit der POS-API von TheFork arbeitet die Kasse mit TheFork Manager zusammen (standardmäßig aus), zusätzlich zum Abrufen der Reservierungen oben. Einschalten unter Einstellungen → Reservierungsplattformen → TheFork-Kassenanbindung; läuft über das Verwaltungsportal.

Dokumentation von TheFork: https://docs.thefork.io/POS-API/introduction

Warteliste für Walk-ins

Für Gäste ohne Reservierung, die auf einen Tisch warten. Einschalten unter Einstellungen → Betrieb → Warteliste (Walk-ins) (standardmäßig aus). Nur sichtbar, wenn SMS über CM.com eingerichtet ist; sonst ist die Warteliste nirgends in der Kasse zu sehen (auch nicht in den Einstellungen). Funktioniert unabhängig von den Reservierungen: auch wenn diese aus sind. Dort steht auch der Text der SMS (leer = "Hallo {naam}, uw tafel bij {zaak} is klaar. Wilt u zich melden bij de bediening?"; {naam}, {zaak} und {personen} werden ausgefüllt).

Kundenkarte / Treuepunkte

Einschalten unter Einstellungen → Betrieb → Kundenkarte / Treuepunkte (standardmäßig aus, dann ist nirgends etwas davon zu sehen). Dort stellen Sie auch ein: Punkte pro Euro (0 = nur Stempelkarten), nach wie vielen Punkten es eine Belohnung gibt und wie viel Euro Rabatt diese Belohnung ist.

Gästeprofil: VIP, Ernährungswünsche und Vorlieben (optional)

Einschalten unter Einstellungen → Betrieb → Gästeprofil, unter der Kundenkarte (standardmäßig aus; funktioniert nur, wenn die Kundenkarte eingeschaltet ist). Danach:

Favoriten / Schnelltasten

Standardmäßig aus. Einstellungen → Betrieb → Favoriten / Schnelltasten:

Noch eine Runde

Im Bestellbildschirm gibt es die Taste ↻ Noch eine Runde (sobald etwas auf der Rechnung steht, auch wenn es noch nicht bestellt ist). Ein Tipp setzt die letzte Runde (alles, was auf einmal mit "Bestellen" ging, oder was Sie gerade angetippt haben) noch einmal als neue Zeilen dazu; danach einfach Bestellen. Es gelten die aktuellen Preise (auch Happy Hour).

Tischzeit im Tischplan

Auf jedem besetzten Tisch steht ⏱ 45m · 12m: wie lange der Tisch schon besetzt ist und wie lange es her ist, dass zuletzt etwas eingegeben wurde (Tisch antippen und halten oder mit der Maus darüberfahren für die genauen Zeiten). Wurde eine Zeit lang nichts bestellt, bekommt der Tisch einen orangefarbenen Rand: kurz vorbeischauen. Wie viele Minuten, stellen Sie unter Einstellungen → Betrieb → Tischzeit ein (Standard 20, 0 = kein orangefarbener Rand). Wurde noch nichts eingegeben, zählt die Zeit ab dem Öffnen des Tisches.

Sitzen mehrere Gruppen (eigene Rechnungen) an einem Tisch, steht dort pro Gruppe eine Zeile, z. B. G1 ⏱ 50m · 12m und Jansen ⏱ 10m (der Gruppenname, sonst die Gruppennummer). Eine Gruppe, die zu lange ruht, bekommt ein orangefarbenes Label und der Tisch einen orangefarbenen Rand.

Ganzen Tisch verschieben

Im Bestellbildschirm gibt es Tisch verschieben. Wählen Sie den Bereich (z. B. Terrasse) und einen Tisch: Alle Gruppen des Tisches gehen mit, jede mit ihrer eigenen Rechnung. Wählen Sie einen besetzten Tisch, werden die Tische zusammengeführt (die Gruppen kommen hinzu). Wollen Sie nur einen Teil verschieben, nutzen Sie wie bisher Teilen / verschieben. Soll alles auf eine Rechnung, nutzen Sie Zusammenführen.

Offline weiterarbeiten (Tablet ohne WLAN)

Bricht die Verbindung zwischen einem Tablet und dem Kassenserver ab (WLAN auf der Terrasse, Server kurz aus), erscheint eine gelbe Leiste und das Tablet arbeitet mit den zuletzt gespeicherten Tischen, Artikeln und offenen Bestellungen weiter:

Personenzahl

Optional und standardmäßig aus: Einstellungen → Betrieb → Bestellen und Bezahlen → Personenzahl erfassen. Aus = so wenig Tippen wie möglich: Ein freier Tisch öffnet mit einem Tippen, nirgends werden Personen angezeigt, und Bericht, Dashboard und Tageszusammenfassung zeigen keine Gäste und keinen Umsatz pro Gast.

An: Tippst du auf einen freien Tisch, fragt die Kasse nach der Personenzahl (große Tasten 1-8 oder eintippen; "Überspringen" = 1). Im Tischplan steht bei einem besetzten Tisch "3/4 Pers." (Personen/Plätze, gelb, wenn mehr Personen sitzen als Plätze vorhanden sind). Im Bestellbildschirm änderst du sie mit der Taste "3 Pers." in der Gruppenleiste; bei mehreren Gruppen zählt der Tisch alle Gruppen zusammen.

Ohne Personenzahl funktioniert alles weiter: Gleichmäßig aufteilen beim Bezahlen beginnt bei 2, All-you-can-eat fragt selbst nach der Anzahl Erwachsener und Kinder, und Reservierungen und die Warteliste behalten ihre eigene Personenzahl (der Tisch öffnet dann ohne Personen).

HACCP-Erfassung

Jeder Gastronomiebetrieb muss die Lebensmittelsicherheit überwachen und dokumentieren: in den Niederlanden nach dem Hygiënecode voor de Horeca (Hygienekodex für das Gastgewerbe, Kontrolle durch die NVWA), in Belgien nach der Eigenkontrolle der FAVV (Leitfaden G-023). Schalte HACCP-Erfassung unter Einstellungen → Gesetze und Vorschriften ein (standardmäßig aus).

Zapfsystem und Durchflussmesser

Jede Zapfung, die ein Zapfcomputer oder Durchflussmesser meldet, kommt auf den Bon, damit nichts "versickert". Aktivieren Sie es unter Einstellungen → Zapfsystem (standardmäßig aus).

Dosiertes Zapfen und Kegboard

Beim dosierten Zapfen öffnet ein Zapfhahn erst, nachdem das Glas an der Kasse boniert wurde, und dann nur für diese Menge. So wird nichts gezapft, was nicht auf dem Bon steht. Es funktioniert nur, wenn das Zapfsystem eingeschaltet ist, und du schaltest es pro Zapfhahn ein (standardmäßig aus).

Musik von der Kasse aus steuern

Das Personal steuert die Musik über den Touchscreen der Kasse, sodass kein separater Bildschirm an der Bar nötig ist. Einschalten unter Einstellungen → Betrieb → Bildschirme und Bedienung → Musik von der Kasse aus steuern (standardmäßig aus). Dann erscheint die Taste Musik in der oberen Leiste: pro Quelle (z. B. Bar und Terrasse) Wiedergabe, Pause, Weiter, Zurück, Lauter, Leiser und ein Schieberegler für die Lautstärke, dazu was gerade läuft. Zurück zur Kasse schließt das Panel. Beim Ausschalten bleiben die Quellen gespeichert.

Der Verwalter fügt die Quellen mit + Musikquelle hinzu, wählt, wie sie verbunden sind, und prüft sie mit Testen:

Die Kasse spricht vom Server aus mit den Playern, daher müssen diese im selben Netzwerk wie die Kasse sein (Soundtrack über das Internet). Bedienen darf jeder, der angemeldet ist; zum Einrichten ist das Recht Betrieb, Bezahlen und Drucker einrichten nötig. Token und Passwort werden nie wieder angezeigt und erscheinen nicht im Protokoll; im Protokoll steht nur die Einrichtung (ein/aus, Quellen), nicht jeder Tastendruck. Der Konfigurationsexport übernimmt nur ein/aus (die Quellen gehören zu einem einzelnen Betrieb).

Zweiter Bildschirm auf einem Tablet oder Smartphone

Musik und Kameras lassen sich auch auf dem eigenen Tablet oder Smartphone eines Mitarbeiters anzeigen, als zweiter Bildschirm neben der Kasse. Im Fenster Musik oder Kameras gibt es die Schaltfläche Auf einem Tablet oder Smartphone: Sie zeigt einen QR-Code mit der Adresse, z. B. http://192.168.1.20:3000/muziek oder .../camera.

  1. Verbinden Sie das Tablet oder Smartphone mit dem Wi-Fi-Netzwerk des Betriebs.
  2. Scannen Sie den QR-Code mit der Kamera (oder geben Sie die Adresse im Browser ein).
  3. Melden Sie sich mit Ihrer eigenen PIN an. Sie sehen nur, was Sie dürfen: die Musik jeder, die Kameras nur mit dem Recht Kamerabilder ansehen.
  4. Fertig: Abmelden oben rechts. Ist die Anmeldung abgelaufen (z. B. lag das Tablet über Nacht unbenutzt), fragt der Bildschirm wieder nach der PIN.

Tipp: Legen Sie die Seite auf den Startbildschirm des Tablets (im Browser: Zum Startbildschirm hinzufügen), dann öffnet sie sich wie eine App.

Deshalb ermittelt die Kasse die IP-Adresse des Kassen-PCs im Netzwerk (hat der PC mehrere, z. B. Wi-Fi und Kabel, wählen Sie das Netzwerk). Im Verwaltungsportal (Kasse aus der Ferne) ist es die Adresse des Portals. Den QR-Code erstellt die Kasse selbst, ohne Internet.

Tablets koppeln: mit einer Taste auf das Tablet (optional)

Noch einfacher: Koppeln Sie ein Tablet einmal, dann sendet die Kasse die Musik oder die Kameras mit einer Taste an dieses Tablet. Aktivieren Sie es unter Einstellungen → Betrieb → Bildschirme und Bedienung → Tablets als zweiter Bildschirm (standardmäßig aus).

  1. Auf dem Tablet: Öffnen Sie http://<kassaserver>:3000/tablet (bei der Einstellung steht Auf einem Tablet oder Smartphone mit dem QR-Code), melden Sie sich mit einer PIN an und geben Sie dem Tablet einen Namen, z. B. Tablet Bar. Koppeln.
  2. An der Kasse: Im Fenster Musik oder Kameras steht jetzt die Taste An Tablet Bar (mit einem grünen Punkt, wenn das Tablet an ist). Tippen Sie darauf: Das Tablet öffnet diesen Bildschirm von selbst. Bei Musik wird die gewählte Quelle mitgenommen (z. B. Terrasse).
  3. Auf dem Tablet: Schließen kehrt zum Warten zurück; Dieses Tablet entkoppeln entfernt die Kopplung.

Lassen Sie die Seite auf dem Tablet geöffnet; ist das Tablet aus oder im Ruhezustand, öffnet es den Bildschirm, sobald es wieder an ist. Das Tablet bleibt als der Mitarbeiter angemeldet, der sich darauf angemeldet hat: Kameras senden und ansehen ist nur mit dem Recht Kamerabilder ansehen möglich. Der Administrator sieht bei der Einstellung, welche Tablets gekoppelt sind und ob sie an sind, und kann sie umbenennen oder entfernen. Das Tablet speichert einen eigenen Schlüssel; die Kasse speichert davon nur einen Hash. Deaktivieren: Die gekoppelten Tablets bleiben gespeichert. Im Protokoll steht, wer ein Tablet gekoppelt, umbenannt oder entfernt hat.

Abholbildschirm für Abholer

Ein Bildschirm für die Gäste mit links In Zubereitung und rechts Fertig, mit großen Nummern, wie in einer Imbissbude oder einem Fast-Food-Restaurant. Schalten Sie ihn ein unter Einstellungen → Betrieb → Bildschirme und Bedienung → Abholbildschirm für Abholer (standardmäßig aus).

Koppeln ist nicht nötig: Öffnen Sie auf einem Fernseher mit Browser (Smart-TV, Stick oder Mini-PC), einem Tablet oder einem zweiten Monitor die Adresse der Kasse mit /oproep, z. B. http://192.168.1.20:3000/oproep. Bei der Einstellung und im Fenster Aufrufen gibt es die Schaltflächen Auf einem eigenen Bildschirm und Auf einem Tablet oder Smartphone (QR-Code mit der Adresse). Anmelden ist nicht nötig: Der Bildschirm zeigt nur Nummern. Tippen Sie einmal auf den Bildschirm, dann darf der Browser Töne abspielen.

Was angezeigt wird:

Die Nummer: beim Webshop, Thuisbezorgd und den Lieferplattformen die Bestellnummer, die der Gast oder Fahrer schon hat; sonst die Abholnummer (1 bis 999). Sie steht groß auf dem Kassenbon, mit dem Hinweis, dass die Nummer auf dem Bildschirm erscheint, wenn die Bestellung fertig ist (in der Sprache des Kassenbons).

Optional (standardmäßig aus, in der Einstellung):

In der Kasse gibt es die Schaltfläche Aufrufen (mit der Anzahl, die noch in Zubereitung ist):

  1. Fertig setzt eine Nummer von Hand auf fertig (ohne Küchenmonitor oder wenn es schneller geht). Bei einer Bestellung aus dem Webshop oder von Thuisbezorgd wird der Status mit übernommen, der Gast bekommt also auch eine Nachricht.
  2. Zurück setzt sie wieder auf In Zubereitung.
  3. Abgeholt nimmt sie vom Bildschirm (mit Rückgängig).

Bei der Einstellung wählen Sie auch, ob der Vorname neben der Nummer steht (standardmäßig nicht, wegen des Datenschutzes) und ob der Bildschirm Töne abspielt. Ausschalten: keine Schaltfläche Aufrufen und keine Abholnummer auf dem Bon; die Einstellungen bleiben gespeichert. Im Protokoll steht, wer was von Hand auf fertig, zurück oder abgeholt gesetzt hat.

Ein- und Ausstempeln

Standardmäßig ist das Stempeln aus: Dann ist es nirgends in der Kasse zu sehen (keine Taste in der oberen Leiste, nicht im Anmeldebildschirm, kein Tab Arbeitszeiten). Schalten Sie es über Einstellungen → Betrieb ein, unter Ein- und Ausstempeln des Personals:

Wer die Kasse nicht verwendet (z. B. die Küche), stempelt im Anmeldebildschirm: Tippen Sie auf Ein- / ausstempeln und geben Sie Ihre PIN ein. Das wechselt zwischen ein und aus, ohne Anmeldung.

Ist das Stempeln eingeschaltet, sieht der Administrator unter Einstellungen → Arbeitszeiten:

In Belgien wird jedes Ein- und Ausstempeln auch an die Blackbox gemeldet. Ist diese nicht erreichbar, wird das Stempeln nicht durchgeführt (wie beim Kassieren). Ob dies genau der belgischen Personalregistrierung entspricht, muss noch bestätigt werden.

Wiegen und Etiketten (Waage)

Ist die Waage eingeschaltet (Einstellungen → Waage), können Artikel einen Preis pro Kilo haben. Alle anderen Artikel bleiben ganz normal pro Stück.

Uber Eats, Deliveroo und HubRise

Neben Thuisbezorgd.nl / Takeaway.com kommen auch Bestellungen von Uber Eats (Niederlande und Belgien), Deliveroo (nur Belgien; Deliveroo hat sich Ende 2022 aus den Niederlanden zurückgezogen) und alles, was auf HubRise läuft (u. a. Uber Eats, Deliveroo, Just Eat/Takeaway.com und kleinere Bestell-Apps), in die Kasse. Jede Plattform lässt sich einzeln einschalten unter Einstellungen → Lieferplattformen (standardmäßig aus, beim Ausschalten bleibt alles gespeichert). Die Registerkarte zeigt pro Plattform, in welchen Ländern sie tätig ist, und warnt, wenn sie im Land des Betriebs nicht tätig ist.

Bestellungen. Eine Bestellung wird zu einer normalen Bestellung (bezorgen oder afhalen, Gruppenname <platform> <nummer>) mit den Preisen der Plattform: Produkte werden an der ID (aus dem Menü), dem Code oder der PLU-Nummer erkannt, unbekannt = eine einzelne Position mit dem Preis der Plattform (und eine Meldung); Liefergebühren, Zuschläge und Rabatte als eigene Positionen; stimmt der Gesamtbetrag trotzdem nicht, eine Position "Differenz". Der Küchenbon geht sofort an Küche/Bar. Schaltfläche Plattformen in der oberen Leiste (mit der Anzahl laufender Bestellungen; orange, wenn etwas anzunehmen ist): annehmen oder ablehnen (mit Grund), in Zubereitung, fertig, unterwegs, geliefert oder abgeholt, stornieren und Abschließen (online bezahlt). Was die Plattform kennt, geht zurück (Uber Eats: annehmen, ablehnen, stornieren; Deliveroo: annehmen, ablehnen, in Zubereitung, fertig, abgeholt; HubRise: alle Status). Liefert der Betrieb selbst (Eigenlieferung), steht die Bestellung auch unter Touren, und Abfahrt und geliefert gehen automatisch an die Plattform. Eine Stornierung durch die Plattform lässt die Bestellung verfallen. Ist die Kasse länger als 2 Minuten nicht mit dem Portal verbunden, lehnt das Portal eine neue Bestellung von Uber Eats ab und meldet Deliveroo (mit Tablet), dass es nicht geklappt hat, sodass der Betrieb es auf dem Tablet sieht.

Code: apps/pos-server/src/lib/bezorgplatforms.ts, routes/bezorgplatforms.ts; Bildschirme Bezorgplatforms.tsx. Portalseite: horecapos-portaal/src/platforms.mjs. Protokoll: Lieferplattformen (ein/aus, Einstellungen, Bestellungen). Alles ist in den Backups der Kasse enthalten.

Kleinere Plattformen in den Niederlanden und Belgien (Homie, Hebtrek, sneleten.nl, Bistroo ...) haben keine öffentliche Kassenanbindung; sind sie auf HubRise, funktionieren sie über HubRise. Weiteres: siehe Backlog.

Bargeldautomat (geschlossenes Bargeldsystem)

Standardmäßig aus: Bargeld funktioniert wie immer. Bei einem geschlossenen Bargeldsystem berührt das Personal das Bargeld nicht: Der Kunde oder Mitarbeiter gibt das Geld in den Automaten, der es zählt, auf Falschgeld prüft und Wechselgeld herausgibt.

Die ©-Taste

OptimumPOS-Angaben

Rechts unten auf jedem Bildschirm (PIN, Tischplan, Bestellen und Küche) gibt es eine kleine ©-Taste. Sie öffnet die Angaben von OptimumPOS: Logo, Adresse, Telefon, E-Mail und Website. Das Symbol ist lokal in der App gespeichert und funktioniert daher auch ohne Internet. Dasselbe Symbol ist das App-Symbol (Tab und Startbildschirm).

Teil 2 · Manager

Erste Schritte

Ein Manager kann standardmäßig alles, was die Bedienung kann, und darüber hinaus unter anderem Rabatte gewähren, Retouren durchführen, den Tag abschließen, die Kassenschublade verwalten sowie Protokoll und Lagerbestand einsehen. Das findet sich vor allem unter der Taste Bericht:

Lagerbestand

Standardmäßig aus. Einschalten über Einstellungen → Betrieb → Lagerbestand führen. Aus = nirgends in der Kasse zu sehen.

Bei Lieferanten bestellen

Standardmäßig aus. Einschalten unter Einstellungen → Lagerbestand → Bei Lieferanten bestellen (nur mit eingeschaltetem Lagerbestand führen). Aus = die Bestellliste funktioniert wie immer.

Bewertungsverwaltung

Bewertungen von Google und Trustpilot in der Kasse lesen und beantworten. Einschalten unter Einstellungen → Punkte und Bewertungen → Bewertungsverwaltung (standardmäßig aus, dann ist nirgends etwas davon zu sehen). Lesen und beantworten unter Bericht → Bewertungen (Recht Bewertungen lesen und beantworten, standardmäßig auch für den Manager). Schaltest du es aus, bleiben die Verbindungen und die Bewertungen gespeichert.

SMS- und E-Mail-Marketing

Nachrichten an Kunden mit Kundenkarte, die dafür ihre Einwilligung gegeben haben. Ohne Kundenkarte lässt sich keines von beiden einschalten.

Trinkgeld pro Mitarbeiter

Unter Einstellungen → Betrieb → Trinkgeld (nur wenn "Trinkgeldtasten beim Kassieren anzeigen" eingeschaltet ist) wählen Sie, wie das Trinkgeld pro Mitarbeiter im Zwischenstand (X), im Z-Bericht (Beleg und E-Mail) und in Umsatz pro Zeitraum (auch in der CSV) erscheint:

OptionVerteilung
Aus (Standard)nur die Trinkgeldsumme, wie bisher
Jeder eigenes TrinkgeldTrinkgeld der Rechnungen, die jemand selbst kassiert hat
Topf nach Stundenalles Trinkgeld zusammen, nach eingestempelten Stunden in diesem Zeitraum (erfordert Ein- und Ausstempeln; niemand gestempelt = gleich)
Topf gleichalles Trinkgeld zusammen, gleich verteilt auf alle, die eingestempelt waren (ohne Stempeln: wer etwas eingegeben oder kassiert hat)

Einzelne Cents gehen an die Person, die am nächsten am nächsten Cent liegt, sodass die Summe immer stimmt. Es ist eine Übersicht: Die Kasse zahlt nichts aus (das geht mit "Geld aus der Schublade"). Alte Z-Berichte bleiben, wie sie waren.

Z-Bericht per E-Mail

Geben Sie unter Einstellungen → Betrieb → Z-Bericht mailen an einmalig die E-Mail-Adresse des Administrators ein (mehrere Adressen: mit Komma getrennt, max. 3). Nach dem Tagesabschluss geht der Z-Bericht dann automatisch an diese Adresse, zusätzlich zum gedruckten Beleg. Leer = nicht mailen, wie bisher.

Zusammenfassung des Tages (optional)

Ist unter Z-Bericht mailen an eine Adresse eingetragen, steht darunter das Häkchen Mit einer kurzen Zusammenfassung des Tages oben in der Mail (standardmäßig aus). Ein = oben in der Mail des Z-Berichts einige Zeilen in einfacher Sprache, nur aus den eigenen Daten der Kasse (keine KI, nichts geht nach außen):

Der Z-Bericht selbst (Beleg und Mail) bleibt genau gleich. Vorschau für heute zeigt die Zusammenfassung vom letzten Tagesabschluss bis jetzt. Die Zusammenfassung ist auf Niederländisch, genau wie die Mail des Z-Berichts.

Dashboard

Tab Dashboard unter Bericht (Recht Umsatz pro Zeitraum), nur lesen:

Verkaufte Gutscheine zählen nicht als Umsatz, Rabatte und Menüköpfe nicht in den Top 10 (wie in den anderen Berichten). Ein Tag läuft von 00:00 bis 24:00.

Zusätzliche Berichte

Drei zusätzliche Registerkarten in Bericht, jede einzeln einzuschalten über Einstellungen → Betrieb → Verwaltung und Berichte → Zusätzliche Berichte (standardmäßig aus: dann keine Registerkarte). Sie erfordern dasselbe Recht wie Umsatz pro Zeitraum und sind nur zum Lesen. Zeitraum: diese Woche, letzte Woche, dieser Monat, letzter Monat, die letzten 90 Tage, dieses Jahr oder selbst wählen (höchstens gut ein Jahr).

Rabatte

Ein Manager oder Administrator sieht im Bestellbildschirm neben der Summe die Taste % Rabatt:

Der Rabatt erscheint als eigene Position auf dem Beleg ("Rabatt 10%", mit dem Grund darunter) mit demselben MwSt.-Satz, sodass Summe und MwSt.-Aufstellung stimmen. Auf den ganzen Beleg wird der Rabatt pro MwSt.-Satz verteilt. Entfernen: Tippen Sie auf den Betrag der Rabattposition. Wird eine Position mit eigenem Rabatt storniert, entfällt dieser Rabatt mit. Entfernen Sie einen Artikel von einem Beleg mit Prozentrabatt auf den ganzen Beleg, berechnet die Kasse diesen Rabatt neu über das, was übrig bleibt (in Belgien UC226); ein fester Betrag bleibt bestehen und wird beim Kassieren erneut auf die Positionen verteilt. Ist durch 100% Rabatt nichts zu bezahlen, schließen Sie mit "Abschließen (nichts zu bezahlen)" ab. Rabatte stehen im Protokoll sowie im X/Z-Bericht und in der Periodenübersicht als "davon Rabatt". Bei einer Retoure eines Belegs mit Rabatt wird der Rabatt anteilig übernommen.

Rabattcodes (optional)

Codes mit Rabatt auf den ganzen Beleg, zum Beispiel für eine Aktion (ZOMER10). Einschalten unter Einstellungen → Betrieb → Rabattcodes (standardmäßig aus); die Codes erstellen Sie unter Einstellungen → Rabattcodes (Recht Artikel verwalten):

Im Bestellbildschirm gibt es die Taste Rabattcode (jeder darf einen Code eingeben; der Code wurde vorher vom Betrieb erstellt). Der Rabatt erscheint als Zeile "Rabattcode CODE" auf dem Beleg, aufgeteilt auf die MwSt.-Sätze; ein Code pro Beleg, und nicht mehr, wenn bereits (teilweise) bezahlt wurde. Entfernen Sie die Zeile wieder oder wird die Bestellung storniert, zählt die Nutzung nicht mehr. Das Löschen eines verwendeten Codes deaktiviert ihn (die Berichte bleiben stimmig). Alles steht im Protokoll (Rabattcode). Code: lib/kortingscodes.ts, routes/kortingscodes.ts, Kortingscodebeheer.tsx, KortingscodeDialoog.tsx.

Sie stehen nicht in der Liste unter Einstellungen → Rabattcodes (wohl aber die Anzahl pro Aktion unter Bericht → Marketing) und werden an den Webshop übertragen, solange sie gültig und unbenutzt sind.

Berichte und Tagesabschluss

Bericht - Zwischenstand (X)

Taste Bericht in der oberen Leiste:

Export für die Buchhaltung

Bericht → Umsatz pro Zeitraum → Export Buchhaltung (Journal) (Recht Umsatz pro Zeitraum) erstellt eine CSV mit einem Buchungssatz pro Tag, bereit zum Einlesen in e-Boekhouden, Exact, SnelStart, Twinfield u. Ä. (über deren CSV-/Memorialimport), oder eines der Formate unten (UBL, XAF und fertig für 14 Programme).

Pro Tag ein Buchungsbeleg (KASSA-JJJJMMDD), der immer ausgeglichen ist (Soll = Haben):

SeiteWas
SollEinnahmen pro Zahlungsart (bar, Karte, Gutschein, online, sonstige), inkl. Trinkgeld
HabenUmsatz pro MwSt.-Satz (ohne MwSt.) und abzuführende MwSt. pro Satz
HabenTrinkgeld (an das Personal zu zahlen, kein Umsatz)
+/-Rundungsdifferenz (Barbeträge auf 5 Cent runden)
+/-Geld in die/aus der Schublade (Kassenverwaltung) gegen Geldtransitkonto, und Kassendifferenz aus dem Z-Bericht

Retouren und Rabatte sind bereits in den Belegen enthalten und mindern den Umsatz. Spalten: Datum; Buchungsbeleg; Journal; Konto; Beschreibung; Soll; Haben; MwSt.-Code; MwSt.-% (Semikolons, Dezimalkomma). Nach dem Download meldet die Kasse, ob es Tage gibt, die nicht ausgeglichen sind oder eine größere Differenz als die Rundung aufweisen.

Neben der Schaltfläche wählen Sie das Format (die Auswahl wird im Browser gespeichert). Dasselbe Journal, aber so formatiert, dass die Software es direkt einlesen kann. Die Liste zeigt nur die Formate für das Land des Betriebs (Einstellungen → Betrieb), zuerst die Standards (CSV, UBL, XAF), dann die Programme alphabetisch:

FormatDateiEinlesen in die Software
Allgemein (CSV)journaal_…csvjede Software mit CSV-/Memorialimport (Spalten zuordnen)
UBL 2.1 / Peppol (XML), NL und BEjournaal_…_ubl.xml (mehrere Tage: .zip)pro Tag eine Rechnung "Tageseinnahmen" an Kassaverkopen (bereits bezahlt) nach Peppol BIS Billing 3.0, mit einer Zeile je MwSt.-Satz und dem Erlöskonto in AccountingCost; nur Umsatz und MwSt. (Zahlungsarten, Trinkgeld, Rundung, Schublade und Kassendifferenz gehören nicht in eine Rechnung). Zum Hochladen u. a. in Adsolut, Billit, BUNNI, DigiBoox, Expert/M, Moneybird, Popsy, Rompslomp, Storecove und TriFact365; nicht zum Versand über das Peppol-Netzwerk. Name, USt-IdNr. und Adresse stammen aus Einstellungen → Betrieb
XML Auditfile Financieel (XAF 4.0), NLjournaal_…_xaf.xafAuditfile der niederländischen Steuerbehörde (Belastingdienst) (XSD XmlAuditfileFinancieel4.0): eine Datei für den Zeitraum, Hauptbuch, MwSt.-Codes, Perioden und pro Tag eine Memorialtransaktion; einlesbar u. a. in Caseware, Exact Reeleezee und Visma Cash
AccountView (XML), NLjournaal_…_accountview.xmlXML-Buchungen (VFPData, eine transact pro Buchungszeile mit dj_code, period, inv_date, inv_nr, acct_nr, trn_desc und amount: Soll positiv, Haben negativ), pro Tag ein Beleg im Memorial; Einlesen mit einer Importdefinition (Document → Importeren → Importdefinitie aanmaken, Typ XML), die Feldnamen sind die von AccountView selbst, also einmal 1:1 zuordnen. Lassen Sie den ersten Import prüfen
AFAS Profit (XML)journaal_…_afas.xmlXML des UpdateConnectors FiEntries (Finanzbuchungen), pro Tag eine Buchung mit Jahr, Periode, Administration und Journal; in Profit einlesen über Importieren → XML; tragen Sie die Administrationsnummer ein (Standard 1)
Asperion (CSV), NLjournaal_…_asperion.csvFMUTA-Format (Extra → Import financiële mutaties), pro Tag eine Kopfzeile und die Buchungszeilen; die Importdefinition richtet Asperion über den Helpdesk ein
Tagesabrechnung (HTML), NL und BEjournaal_…_dagstaat.htmllesbare Tagesabrechnung pro Tag (Umsatz je MwSt.-Satz, Zahlungsarten, Trinkgeld, Kassendifferenz) und Summen; als PDF drucken oder per E-Mail senden, für Software ohne Import (Accountable, Dext, Dexxter, Jortt, Kleisteen, MoneyMonk)
e-Boekhouden.nl (CSV)journaal_…_eboekhouden.csvDatum; Belegnummer; Beschreibung; Sachkonto; Betrag (Soll positiv, Haben negativ); MwSt.-Code GEEN (die MwSt. steht schon auf den MwSt.-Konten); Import → Buchungen, Art Memorial
Exact Online (XML)journaal_…_exact.xmleExact-XML (Thema GLTransactions): pro Tag eine Memorialbuchung (Typ 90) im Journal; Import/Export → XML importieren
InformerOnline (TXT), NLjournaal_…_informer.txttabulatorgetrenntes Memorial (Geavanceerd → Memoriaal → uploaden); das Journal muss eine Nummer 1–99 sein (sonst 90)
KING ERP (XML), NLjournaal_…_king.xmlKING_JOURNAAL: ein Buchungsstapel (nicht endgültig) mit einem Buchungssatz pro Tag
KOMAS (CSV), NLjournaal_…_komas.csvKOMAS freies Format (0401 Importeren journaalposten): Datum; Grootboek; Omschrijving; Bedrag
Odoo (CSV), NL und BEjournaal_…_odoo.csvBuchhaltung → Journal Entries → Import records; Journal und Konto nach Name oder Code
Sage BOB 50 (Excel), BEjournaal_…_bob.xlsxImportation de données externes → Opérations diverses (Spalten einmalig zuordnen)
SAP Business One (ZIP), NL und BEjournaal_…_sapb1.zipData Transfer Workbench, Journal Entries: JournalEntries.csv und JournalEntries_Lines.csv
SnelStart (CSV)journaal_…_snelstart.csvDatum; Belegnummer; Beschreibung; Sachkonto; Soll; Haben (TT-MM-JJJJ, Dezimalkomma, ohne BOM); Memorial importieren, das Journal wählen Sie beim Einlesen
Twinfield (XML)journaal_…_twinfield.xmlJournalbuchungen als Entwurf (destiny="temporary"), der Buchhalter macht sie endgültig; tragen Sie den Administrationscode ein (leer = die Administration, in die Sie importieren)
Winbooks (CSV), BEjournaal_…_winbooks.csvK_DOC.CSV, pro Tag ein Beleg im Journal (Winbooks nummeriert selbst)
Yuki (XML)journaal_…_yuki.xmlJournal-XML (GeneralJournal), pro Tag ein Memorial, gleicher Aufbau wie die Live-Verbindung; Administrations-ID optional

Übersicht: welche Buchhaltungssoftware auf welche Weise

Nach Segment, alphabetisch. NL/BE = in welchem Land die Software funktioniert: Unter Einstellungen → Buchhaltung → Buchhaltungssoftware sehen Sie nur die Programme für das Land des Betriebs (niederländische Programme funktionieren nicht in Belgien und umgekehrt). Live = die Kasse bucht jeden Tag selbst (Auswahl unter Einstellungen → Buchhaltung → Buchhaltungssoftware); auf Anfrage = es gibt eine API, die aber zuerst eine Partnerregistrierung oder Freigabe beim Anbieter erfordert (sagen Sie uns Bescheid). Datei = das Format beim Buchhaltungsexport. Wo beides möglich ist, können Sie beides nutzen. Die Liste steht in packages/shared/src/boekhoudcatalogus.ts und erscheint auch unter Einstellungen → Buchhaltung.

SoftwareNLBELiveDateiAnmerkung
KMU und Freiberufler
Accountable–✓–Tagesabrechnung (HTML, für PDF oder E-Mail)
AccountView (Visma)✓–auf AnfrageAccountView (XML), Allgemein (CSV)Datei: XML-Buchungen für eine Importdefinition (Document → Importeren); die allgemeine CSV geht auch mit einer Importdefinition. Live über die AccountView.Net-API nach Anfrage bei AccountView.
Acumulus✓–✓–Live als bezahlte Verkaufsrechnung pro Tag, mit einer Zeile je MwSt.-Satz.
AFAS Profit✓–✓AFAS Profit (XML)
Asperion✓–auf AnfrageAsperion (CSV)Live nach Anmeldung als API-Partner bei Asperion.
Billit–✓auf AnfrageUBL 2.1 / Peppol (XML)UBL über Fast input hochladen; live nach Freigabe durch Billit.
BUNNI✓––UBL 2.1 / Peppol (XML)Noch keine öffentliche API-Dokumentation.
Dexxter–✓–Tagesabrechnung (HTML, für PDF oder E-Mail)
DigiBoox (Visma DigiBTW)✓––UBL 2.1 / Peppol (XML)
e-Boekhouden.nl✓––e-Boekhouden.nl (CSV)Auch für ehemalige Ficsus-Kunden.
Exact Online✓✓✓Exact Online (XML)
Exact Reeleezee✓––XML Auditfile Financieel (XAF 4.0)
Horus–✓✓–
InformerOnline✓––InformerOnline (TXT)
Jortt✓––Tagesabrechnung (HTML, für PDF oder E-Mail)Kein Import: Buchen Sie den Tagesumsatz als Ertrag mit der Tagesabrechnung als Anhang.
KING✓–auf AnfrageKING ERP (XML)Live nach Partnerregistrierung bei KING Software.
Kleisteen✓––Tagesabrechnung (HTML, für PDF oder E-Mail)
KOMAS (Adfinis)✓––KOMAS (CSV)
Minox✓–auf Anfrage–Live nach einer Partnerverbindung über Minox.
Moneybird✓–✓UBL 2.1 / Peppol (XML)
MoneyMonk✓––Tagesabrechnung (HTML, für PDF oder E-Mail)MoneyMonk erhält 2026 eine API für Anbindungen.
Octopus–✓auf Anfrage–Live nach Beantragung einer Software-House-ID bei Octopus.
Popsy / Allegro–✓–UBL 2.1 / Peppol (XML)
Rompslomp✓––UBL 2.1 / Peppol (XML)
Sage BOB 50–✓–Sage BOB 50 (Excel)
Silvasoft✓✓✓–Live als Verkaufsbuchung pro Tag, mit einer Zeile je MwSt.-Satz; Zahlungsarten, Trinkgeld und Kassendifferenz werden nicht übertragen.
SnelStart✓–✓SnelStart (CSV)
Twinfield✓–✓Twinfield (XML)
Visma Cash✓–auf AnfrageXML Auditfile Financieel (XAF 4.0)API mit einem Schlüssel aus CASHWeb; das Satzformat für Buchungen wird noch bestätigt.
Visma eAccounting✓–auf Anfrage–Live nach Freigabe durch Visma (Partnerregistrierung).
Winbooks–✓auf AnfrageWinbooks (CSV)
Wolters Kluwer Adsolut–✓auf AnfrageUBL 2.1 / Peppol (XML)UBL mit dem Erlöskonto pro Zeile; aktivieren Sie in Adsolut "grootboekrekening verwerken bij verkopen".
Wolters Kluwer Expert/M–✓–UBL 2.1 / Peppol (XML)
Yuki✓✓✓Yuki (XML)
International
QuickBooks Online✓✓✓allgemeine CSVKeine niederländische oder belgische Ausgabe: Prüfen Sie die MwSt.-Einstellungen.
Xero✓✓✓allgemeine CSV
Zoho Books✓✓✓allgemeine CSV
Enterprise und Ketten
Exact Globe+✓✓–Exact Online (XML)Gleiches XML wie Exact Online; lassen Sie den ersten Import prüfen.
Microsoft Dynamics 365 Business Central✓✓✓–
Odoo✓✓✓Odoo (CSV)
Oracle NetSuite✓✓auf Anfrageallgemeine CSV
SAP Business One✓✓✓SAP Business One (ZIP)
Unit4 ERPx✓✓–allgemeine CSV
Plattformen und Aggregatoren
Apicbase✓✓auf Anfrage–Verkäufe pro Beleg für Lagerbestand und Food Cost: Anbindung unter Einstellungen → Rezepturen (nicht als Buchhaltungsprogramm).
Caseware✓✓–XML Auditfile Financieel (XAF 4.0)
Combidesk✓–auf Anfrage–Combidesk baut und verwaltet die Verbindung selbst (u. a. zu Exact, Moneybird, SnelStart und Twinfield); auf Anfrage als Partner.
Dext✓✓–Tagesabrechnung (HTML, für PDF oder E-Mail)Senden Sie die Tagesabrechnung (PDF) per E-Mail an Ihre Dext-Adresse.
Jamix✓✓auf Anfrage–Verkäufe für Lager und Food Cost über die JAPI-Schnittstelle von Jamix; Sonderanpassung auf Anfrage bei Jamix.
Omniboost✓✓auf Anfrage–Leitet über das Partnerprogramm von Omniboost an viele Buchhaltungs- und Hotelsysteme weiter.
Storecove (Peppol)✓✓auf AnfrageUBL 2.1 / Peppol (XML)
TriFact365✓––UBL 2.1 / Peppol (XML), Tagesabrechnung (HTML, für PDF oder E-Mail)
Jede andere Software✓✓–allgemeine CSV, UBL oder XAF (NL)

Lassen Sie den Buchhalter den ersten Import prüfen. Das Format steht in packages/shared/src/journaalexport.ts (mit Tests).

Einstellungen → Buchhaltung (Recht Betrieb, Bezahlen und Drucker einrichten): Journalcode (Standard MEM) und das Sachkonto pro Bereich. Leer = Beispielkonto (NL: 8000/8010/8020 Umsatz, 1500/1510 MwSt., 1000 Kasse, 1100 Karte; BE: 7000xx Umsatz, 451000 MwSt., 570000 Kasse). Lassen Sie den Buchhalter die echten Konten eintragen.

Verbindung mit einer Buchhaltungssoftware

Live-Verbindungen mit Acumulus, AFAS Profit, Microsoft Dynamics 365 Business Central, Exact Online, Horus, Moneybird, Odoo, QuickBooks Online, SAP Business One, Silvasoft, SnelStart, Twinfield, Xero, Yuki und Zoho Books. Nach jedem Tag bucht die Kasse dasselbe Journal wie beim Export oben (Umsatz und MwSt. pro Satz, Zahlungsarten, Trinkgeld, Rundung, Schublade und Kassendifferenz) als Memorialbuchung in der gewählten Software, mit dem Journal und den Sachkonten aus Einstellungen → Buchhaltung. Es ist immer höchstens eine Software aktiv.

SoftwareLandVerbinden mitWas die Kasse bucht
AcumulusNLVertragscode, Benutzer und Passwort eines API-Benutzerspro Tag eine bezahlte Verkaufsrechnung mit einer Zeile je MwSt.-Satz; Fehler sendet Acumulus per E-Mail an ACUMULUS_FOUTMAIL
AFAS ProfitNLUmgebung, Token, AdministrationMemorial (FiEntries)
Business CentralNL, BETenant, Umgebung, Unternehmen, Client-ID und Geheimnis einer Microsoft Entra-App (API.ReadWrite.All)Zeilen im allgemeinen Journal mit dem Code aus Journal
Exact OnlineNL, BEanmelden (OAuth, eigene App: siehe Exact Online unten; Belgien: start.exactonline.be)Memorialbuchung im Journal (z. B. 90)
HorusBEanmelden (OAuth, App unten), optional Mandantsonstiger Vorgang
MoneybirdNLAPI-Token, optional AdministrationMemorial (general journal document)
OdooNL, BEAdresse, Datenbank, Benutzer, API-SchlüsselBuchungssatz im Journal mit dem Kurzcode (z. B. MISC)
QuickBooks OnlineNL, BEanmelden (OAuth, App unten; QUICKBOOKS_OMGEVING)Journal Entry; Konten nach Nummer
SAP Business OneNL, BEAdresse des Service Layer, Datenbank, Benutzer, PasswortBuchungssatz (JournalEntries)
SilvasoftNL, BEBenutzer und API-SchlüsselVerkaufsbuchung auf den Kontakt Kassaverkopen, eine Zeile je MwSt.-Satz (Zahlungsarten, Trinkgeld und Kassendifferenz werden nicht übertragen)
SnelStartNLVerbindungsschlüssel und AbonnementschlüsselMemorial
TwinfieldNLanmelden (OAuth, App unten), optional BüroJournaltransaktion
XeroNL, BEanmelden (OAuth, App unten), optional OrganisationManual Journal; Konten nach Code
YukiNL, BEAPI-Schlüssel, optional AdministrationMemorial (GeneralJournal)
Zoho BooksNL, BEanmelden (OAuth, App unten; standardmäßig das europäische Rechenzentrum), optional OrganisationBuchungssatz; Konten nach Code

Kassen-Auditfile (XAA)

Für niederländische Betriebe steht unter Bericht → Umsatz pro Zeitraum neben dem Buchhaltungsexport die Schaltfläche Kassen-Auditfile (XAA): die XML Auditfile Afrekensystemen 3.2 der niederländischen Steuerbehörde (Belastingdienst) und der XML Platform (SRA) über den gewählten Zeitraum (höchstens gut ein Jahr; Recht Umsatz pro Zeitraum). Das ist die Datei, die der Belastingdienst empfiehlt, um die Daten einer Kasse bei einer Prüfung oder an den Steuerberater zu liefern; die Regeln stehen in der Handreiking voor een betrouwbaar afrekensysteem (Leitfaden für ein zuverlässiges Kassensystem, docs/xaa).

In der Datei (auditfile_kassa_<van>_tm_<tot>.xml, Schema docs/xaa/XmlAuditfileAfrekensystemen3.2.xsd):

Beträge sind positiv mit C (Verkauf, Einnahme) oder D (Retoure, Auszahlung); Zeiten in niederländischer Zeit mit Offset. Alle Schlüssel sind die IDs aus der Datenbank ohne Bindestriche, also in der Kasse wiederzufinden.

Signieren (Kapitel 6 der Spezifikation): Hat Optimum POS ein Zertifikat eingerichtet, kommt die Auditfile signiert in einem Umschlag (XML Signature), und die Datei heißt …_ondertekend.xml; sonst ist es eine einfache Auditfile, und das meldet die Kasse beim Herunterladen.

Kauf auf Rechnung

Geschäftskunden (eine Firma, die jede Woche Mittagessen abholen lässt, ein Hotel, ein Verein) kaufen auf Rechnung und zahlen später, mit einer Rechnung. Einschalten unter Einstellungen → Rechnungen → Kauf auf Rechnung (nur mit Rechnungen an; standardmäßig aus).

Bank: Überweisungen verbuchen

Unter Bericht → Auf Rechnung → Bank sucht die Kasse zu jedem Zahlungseingang die passende Rechnung (Kauf auf Rechnung):

Kamerabilder in der Kasse

Alle Kamerabilder des Betriebs auf einer Seite, ohne separaten Bildschirm oder separate App. Einschalten unter Einstellungen → Betrieb → Bildschirme und Bedienung → Kamerabilder in der Kasse (standardmäßig aus). Dann erscheint die Taste Kameras in der oberen Leiste für alle mit dem Recht Kamerabilder ansehen (standardmäßig Manager und Administrator; unter Einstellungen → Rechte auch für die Bedienung einschaltbar). Alle Kameras stehen nebeneinander; auf eine Kamera tippen für ein großes Bild. Beim Ausschalten bleiben die Kamerasysteme gespeichert.

Auch als eigener Bildschirm: Auf einem eigenen Bildschirm öffnet http://<kassaserver>:3000/camera (z. B. ein Monitor hinter der Bar), und Auf einem Tablet oder Smartphone zeigt einen QR-Code: Ein Mitarbeiter scannt ihn mit dem eigenen Tablet oder Smartphone und meldet sich mit der eigenen PIN an (auch dort nur mit dem Recht Kamerabilder ansehen). Auf einem schmalen Bildschirm stehen die Kameras untereinander. Siehe Zweiter Bildschirm auf einem Tablet oder Smartphone.

Der Verwalter fügt die Kamerasysteme mit + Kamerasystem hinzu, prüft sie mit Testen und wählt pro Kamera den Namen und ob sie auf der Seite steht:

Ohne ffmpeg: das Foto.

Datenschutz: Die Kasse holt die Bilder beim Kamerasystem ab und gibt sie nur weiter; es wird nichts gespeichert (keine Aufnahmen, kein Cache). Benutzer und Passwörter bleiben auf dem Server und erscheinen nie auf dem Bildschirm oder im Protokoll. Im Protokoll steht, wer die Kameras angesehen hat. Die Bilder selbst fordert die Seite mit einem Schlüssel an (12 Stunden gültig, solange der Mitarbeiter angemeldet ist), weil ein Bild im Browser kein Token mitsenden kann. Der Konfigurationsexport enthält nur ein/aus.

Protokoll sensibler Aktionen

Bericht → Protokoll (Manager oder Administrator) zeigt, wer was wann getan hat.

Was protokolliert wird: Stornos, Rabatte (und deren Entfernung), Retouren, Bonkopien, Pro-forma-Rechnungen, manuelle Kartenzahlungen, Schublade öffnen, Geld in/aus der Schublade, Wechselgeld, Tagesabschluss, Zeilen oder Tische verschieben, leere Bestellungen schließen, Preis/Name/MwSt. von Produkten ändern, neue oder gelöschte Produkte, Personal und Einstellungen ändern, Arbeitszeiten anpassen, An- und Abmelden, falsche PINs sowie Ein- und Ausstempeln. Mit Zahlung auf Rechnung außerdem: Kunden, Verkäufe und Zahlungen auf Rechnung, Kontoauszüge einlesen, die Bankanbindung und der Abruf bei der Bank. Mit der Meldung bei zu langer Durchlaufzeit: verspätete Bestellungen und gesendete Entschuldigungen. Mit Mailchimp oder Klaviyo: Verbinden, Liste wählen, Trennen und Abmeldungen von dort. Mit der Musiksteuerung: ein/aus sowie Hinzufügen, Ändern und Entfernen von Musikquellen. Mit Kamerabildern: wer die Kameras angesehen hat (höchstens einmal pro halbe Stunde pro Mitarbeiter), ein/aus und die Kamerasysteme. Mit Warnungen: jede Warnung, ihre Erledigung sowie das Ein- und Ausschalten.

Warnungen: Betrug und Abweichungen

Einstellungen → Warnungen. Zwei Teile, jeder einzeln einschaltbar und standardmäßig aus; beim Ausschalten bleiben alle Warnungen und Einstellungen erhalten. Einrichten darf, wer das Recht Warnungen einrichten hat (standardmäßig Manager und Administrator); die Warnungen sehen und erledigen darf, wer das Protokoll sehen darf. Die Kasse prüft alle 5 Minuten (und mit Jetzt prüfen); nicht auf der Schattenkasse.

Betrugs- und Diebstahlerkennung (pro Mitarbeiter, pro Geschäftstag ab 05:00), jede Regel einzeln ein oder aus mit eigener Grenze:

Meldungen bei Abweichungen, verglichen mit demselben Wochentag und derselben Uhrzeit in den letzten Wochen (Standard 4; Tage ohne Umsatz zählen nicht, mindestens zwei Vergleichstage):

Jede Warnung kommt einmal (pro Regel, Mitarbeiter und Tag; die Küchenzeit höchstens einmal pro Stunde) und geht an:

Pro Kanal gibt es eine Schaltfläche Testnachricht. Tokens und Schlüssel bleiben auf der Kasse (die Bildschirme sehen nur, ob sie ausgefüllt sind). Eine Warnung ist kein Beweis: Bon und Protokoll prüfen und mit dem Mitarbeiter besprechen.

Belege: Kopie und Retoure (Gutschrift)

Belege

Taste Belege in der oberen Leiste:

Kassenschublade mit Sensor und Schublade pro Mitarbeiter

Standardmäßig aus. Einstellen unter Einstellungen → Bezahlen → Kassenschublade.

Teil 3 · Administrator

Erste Schritte

Installieren. HorecaPOS installieren Sie mit dem Installationsprogramm für Ihr System, erhältlich auf der Download-Seite von OptimumPOS: Android (App), Windows (Installationsprogramm), macOS (Installer für Macs mit Apple Silicon und Intel), Linux (grafischer Installer oder das Paket .deb bzw. .rpm), Raspberry Pi (grafischer Installer oder .deb für einen Raspberry Pi 3, 4 oder 5 mit 64-Bit-Raspberry Pi OS) und Chromebook (die Android-App aus Google Play). Wählen Sie für alle Benutzer für einen Kassenserver, mit dem sich Tablets und der Küchenmonitor verbinden, oder nur für mich für nur eine Kasse auf diesem Gerät. Der Installer richtet alles Nötige ein, auch die Datenbank, und erstellt jede Nacht eine Sicherung. Zum Aktualisieren installieren Sie die neue Version: Ihre Daten bleiben erhalten. Das Installationsprogramm startet in der Sprache Ihres Computers (sonst Englisch); bei Windows und Linux können Sie auf dem ersten Bildschirm eine andere Sprache wählen. Die Kasse startet danach sofort in dieser Sprache. Die Pakete .deb und .rpm sowie die Android-App folgen der Sprache des Systems, sonst Niederländisch.

Der Administrator richtet die Kasse über Einstellungen ein. Dort gibt es Tabs wie Betrieb, Personal, Rechte, Arbeitszeiten, Artikel, Happy Hour, Lagerbestand, Tischpläne, Bezahlen, Drucker, Buchhaltung, Backups, Import/Export und Datenbank. Welche Tabs ein Manager ebenfalls sieht, hängt von den Rechten ab.

Datenbank. Unter Einstellungen → Datenbank (nur der Administrator) wählen Sie zwischen MySQL / MariaDB, der integrierten Datenbank und PostgreSQL; beim Umstellen werden alle Daten übernommen (siehe Datenbank). Hat Optimum POS bei der Installation bereits eine feste Adresse eingestellt, gilt diese Adresse und es gibt keine Eingabefelder. Andernfalls füllen Sie Server, Port, Datenbank, Benutzer und Passwort selbst aus. Die Kasse speichert sie selbst, zeigt sie danach wieder ausgefüllt an, und Sie können sie jederzeit mit MySQL/MariaDB-Angaben ändern oder PostgreSQL-Angaben ändern ändern. Das Passwort leer lassen bedeutet: das gespeicherte Passwort behalten (beim selben Benutzer). Der Installer und ein Update ändern nichts an DATABASE_URL oder an der gewählten Datenbank.

Einstellungen: Artikel

Buchhaltung

Alles für die Buchhaltung finden Sie unter Einstellungen → Buchhaltung. Tragen Sie zusammen mit Ihrem Buchhalter das Journal und die Sachkonten ein. Soll die Kasse den Tagesumsatz jeden Tag selbst buchen, wählen Sie oben unter Buchhaltungssoftware Ihre Software, auch Exact Online: Sie sehen nur die Programme, die im Land Ihres Betriebs funktionieren. Direkt darunter tragen Sie die Daten dieser Software ein und verbinden. Bei Programmen, bei denen Sie sich anmelden (wie Exact Online, Twinfield oder Xero), tragen Sie zuerst die App ein: Client-ID und Client-Geheimnis. Hat Optimum POS die Software oder eine Angabe bei der Installation fest eingestellt, sehen Sie diese Auswahl bzw. dieses Feld nicht. Dort finden Sie auch eine Übersicht aller Programme: welche live verbunden werden können und welche eine Datei erhalten. Eine Datei erstellen Sie unter Bericht → Umsatz pro Zeitraum → Buchhaltungsexport: Wählen Sie das Format Ihrer Software, oder UBL (Peppol), XAF oder eine Tagesabrechnung. Lassen Sie die erste Buchung oder den ersten Import immer von Ihrem Buchhalter prüfen.

Für einen niederländischen Betrieb steht dort auch Kassen-Auditfile (XAA): die XML Auditfile Afrekensystemen der niederländischen Steuerbehörde (Belastingdienst) mit allen Belegen, Positionen, Zahlungen und Ereignissen der Kasse über den gewählten Zeitraum. Diese geben Sie Ihrem Steuerberater oder bei einer Prüfung dem Belastingdienst.

Lohn und Personalplanung

Stempelt Ihr Personal ein und aus, steht unter Einstellungen → Arbeitszeiten unten Lohn und Personalplanung, in zwei Blöcken. Unter Lohnabrechnung wählen Sie Ihre Lohnsoftware oder (in Belgien) Ihr Sozialsekretariat und tragen pro Mitarbeiter seine Personalnummer in dieser Software ein. Danach erstellen Sie für einen Zeitraum die Datei mit den gearbeiteten Stunden und dem Umsatz pro Mitarbeiter und lesen sie in Ihre Lohnsoftware ein. Unter Personalplanung wählen Sie Ihr Dienstplansystem: Bei Deputy, Dyflexis und Shiftbase geht der Umsatz jede Stunde automatisch, bei den anderen erstellen Sie eine Umsatzdatei. So sehen Sie in Ihrer Planung die Lohnkosten neben dem Umsatz. Arbeiten Sie ohne Ein- und Ausstempeln, können Sie den Umsatz trotzdem an Ihre Planung senden: Das steht dann unten in Einstellungen → Buchhaltung, bei Umsatz an Ihre Planung. Hat Optimum POS bei der Installation etwas fest eingestellt, sehen Sie diese Auswahl oder dieses Feld nicht.

Backups

Die Kasse erstellt jede Nacht automatisch ein Backup, und immer vor einem Update. Unter Einstellungen → Backups sehen Sie alle Backups (wann, von wem oder automatisch, Größe) und erstellen mit Backup erstellen selbst eines. Ist das letzte Backup älter als zwei Tage, erscheint eine rote Warnung: Wenden Sie sich dann an Optimum POS.

Einstellungen: Backups

Wiederherstellen geht mit der Taste Wiederherstellen bei einem Backup. Alles, was nach diesem Backup passiert ist, geht dann verloren. Sie müssen das anhaken und Ihre eigene PIN erneut eingeben. Die Kasse erstellt zuerst noch ein Sicherheitsbackup des aktuellen Stands und meldet danach alle ab. In Belgien ist das nicht über die Kasse möglich (die Zähler der Blackbox laufen weiter); dort übernimmt das Optimum POS.

Datenbank

Unter Einstellungen → Datenbank (nur der Administrator) sehen Sie, wo die Kasse ihre Daten speichert. Oben steht die aktuelle Datenbank mit Programm, Version, Tabellen, Zeilen und Adresse oder Ordner. Für das Personal und die Tablets arbeitet die Kasse mit jeder Datenbank gleich. Unter Windows, macOS, Linux und Raspberry Pi wählen Sie aus drei Datenbanken:

Wann MySQL oder MariaDB? Wenn Ihr Betrieb schon einen MySQL- oder MariaDB-Server hat, wenn Ihr IT-Administrator damit arbeitet oder wenn Sie die Daten in Ihrem eigenen Reporting, in Excel oder einem BI-Programm lesen möchten. Im Zweifel wählen Sie integriert: Das funktioniert sofort.

Was brauchen Sie für MySQL oder MariaDB?

CREATE DATABASE horecapos CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'horecapos'@'localhost' IDENTIFIED BY 'wachtwoord';
GRANT ALL PRIVILEGES ON horecapos.* TO 'horecapos'@'localhost';

Läuft MySQL oder MariaDB auf einem anderen Computer, setzen Sie in den letzten beiden Zeilen die IP-Adresse des Kassenservers statt localhost ein.

Umstellen auf MySQL / MariaDB:

  1. Füllen Sie unter Adresse von MySQL/MariaDB die Felder aus: Server (Standard localhost), Port (Standard 3306), Datenbank (Standard horecapos), Benutzer und Passwort; für MariaDB genauso. Ist die Adresse schon eingestellt, sind die Felder bereits ausgefüllt; lassen Sie das Passwort leer, bleibt das gespeicherte Passwort (beim selben Benutzer). Die Kasse speichert die Adresse selbst; hat Optimum POS bereits eine feste Adresse eingestellt, gilt diese Adresse und es gibt keine Felder. Läuft die Kasse bereits mit MySQL/MariaDB, ändern Sie die Angaben später mit MySQL/MariaDB-Angaben ändern. Eine verschlüsselte Verbindung richtet Optimum POS für Sie ein.
  2. Tippen Sie auf Verbindung testen: Sie sehen das Programm und die Version oder warum es nicht klappt.
  3. Tippen Sie auf Umstellen auf MySQL/MariaDB, bestätigen Sie mit dem Häkchen und geben Sie Ihre eigene PIN ein.

Umstellen funktioniert in jede Richtung zwischen den drei Datenbanken, und alle Daten gehen mit:

  1. Die Kasse nimmt kurz keine Anfragen an (meist weniger als eine Minute); die Tablets machen danach von selbst weiter.
  2. Zuerst erstellt die Kasse ein Backup des aktuellen Stands (unter Einstellungen → Backups).
  3. Alles geht in die neue Datenbank, und die Kasse zählt pro Tabelle, ob alles genau angekommen ist.
  4. Erst wenn alles stimmt, arbeitet die Kasse mit der neuen Datenbank weiter. Angemeldete Mitarbeiter bleiben angemeldet.

Klappt etwas nicht, ändert sich nichts und die Kasse arbeitet mit der alten Datenbank weiter. Die alte Datenbank bleibt bestehen, ein Zurück ist also immer möglich. Kassendaten, die schon in der neuen MySQL/MariaDB- oder PostgreSQL-Datenbank standen, werden ersetzt. Auch in Belgien geht das: Die Zähler der Blackbox gehen exakt mit.

Backups und Wiederherstellen funktionieren mit allen drei Datenbanken gleich (Einstellungen → Backups). Ein Backup der einen Datenbank können Sie in jeder anderen wiederherstellen, auch ein Backup von PostgreSQL in MySQL oder MariaDB.

Was steht in MySQL oder MariaDB? Jede Tabelle der Kasse, mit demselben Namen und denselben Spalten (Zeiten in UTC). Jede Tabelle bekommt die Schlüsselspalte _hp_sleutel dazu, und in den Hilfstabellen _horecapos_stand, _horecapos_kolom, _horecapos_reeks und _horecapos_wijziging (Protokoll der Änderungen, 14 Tage aufbewahrt) führt die Kasse den Stand, die Spaltentypen, die Zähler und die Änderungen. Andere Programme lesen die Daten; schreiben tun nur die Kassen.

So funktioniert es: Die Kasse rechnet in einer schnellen Arbeitskopie auf dem Kassenserver und schreibt jede Änderung im selben Schritt nach MySQL/MariaDB. Klappt das nicht, wird die Änderung nicht ausgeführt und die Kasse meldet einen Fehler; halten Sie MySQL/MariaDB also erreichbar. Beim Start liest die Kasse alles aus MySQL/MariaDB.

Mehrere Kassen an einer Datenbank. Wie bei PostgreSQL können mehrere Kassen dieselbe MySQL/MariaDB-Datenbank nutzen, zum Beispiel jeder Betrieb einer Kette mit einem eigenen Kassenserver. Änderungen laufen nacheinander, und jede Kasse übernimmt zuerst, was die anderen getan haben; so geht bei gleichzeitigen Änderungen nichts verloren. Stellt eine Kasse ein Backup wieder her oder aktualisiert eine Kasse mit einer neueren Version die Datenbank, lesen die anderen Kassen automatisch alles neu ein; aktualisieren Sie daher alle Kassen gleichzeitig. Eine Kasse, die länger als 14 Tage aus war, liest beim Start alles neu ein.

Bei der Installation wählen Sie auch die Datenbank: MySQL / MariaDB, integriert (empfohlen) oder PostgreSQL mit der Adresse. Ist sie nicht erreichbar, installiert sich die Kasse mit der integrierten Datenbank; umstellen können Sie danach hier. Bei einem Update bleibt die Wahl bestehen.

Tablets und Bildschirme koppeln

Kundendisplay

Ein Bildschirm an der Kasse, der zum Kunden gerichtet ist. Der Kunde sieht ungefähr, was bestellt wurde, und sehr deutlich den Betrag und wie bezahlt wird. Es gibt keine Bedienung daran: Der Bildschirm folgt nur dem, was die Kasse tut. Standardmäßig aus; einschalten über Einstellungen → Betrieb → Kundendisplay. Auf einem Kassen-PC mit zwei Bildschirmen schaltet die Kasse es beim ersten Mal automatisch ein; schalten Sie es danach aus, bleibt es aus. Ohne Kundendisplay (aus, oder es ist keines angeschlossen) funktioniert alles genau wie bisher: Die Kasse sendet das Bild im Hintergrund, und einen Fehler oder ein fehlendes Display bemerkt die Bedienung nie.

Was der Kunde sieht:

Anschließen, auf zwei Arten (beide am Gerät selbst einzurichten):

Das Kundendisplay fragt keine PIN ab (es gibt nichts zu bedienen) und zeigt nur das Bild der Kasse, mit der es gekoppelt ist. Das Bild liegt nur im Speicher des Kassenservers; nach einem Neustart ist der Bildschirm bis zur nächsten Änderung leer. Die Einstellung (ein/aus und Begrüßungstext) ist im Backup und in Import/Export (Sonstige Einstellungen) enthalten.

Digitaler Beleg per QR (optional)

Standardmäßig aus. Einschalten über Einstellungen → Betrieb → Küche und Kundendisplay → Digitaler Beleg (die Option erscheint, wenn das Kundendisplay gespeichert eingeschaltet ist). Nach dem Kassieren steht bei Danke ein QR-Code; er bleibt dann 45 Sekunden stehen statt nur ein paar Sekunden. Der Gast scannt ihn mit dem eigenen Telefon und sieht den Beleg genau wie den Papierbeleg (gleicher Text, bei einer belgischen Kasse auch mit dem FDM-Block). Auf dem Telefon kann er den Beleg drucken, als PDF speichern oder als Textdatei herunterladen.

Kundendisplay im Ruhezustand: Diashow (optional)

Standardmäßig aus. Einschalten über Einstellungen → Betrieb → Küche und Kundendisplay → Kundendisplay im Ruhezustand. Steht keine Rechnung auf dem Kundendisplay, wechseln sich die Folien ab (standardmäßig alle 8 Sekunden, einstellbar von 4 bis 60):

Ohne Folien zeigt das Kundendisplay wie immer den Begrüßungsbildschirm.

Happy Hour

Standardmäßig aus. Einschalten über Einstellungen → Betrieb → Happy Hour verwenden; danach erscheint der Tab Einstellungen → Happy Hour.

Tagesabschnitte und Saisons

Standardmäßig aus. Einschalten über Einstellungen → Betrieb → Tagesabschnitte und Bestellart → Sortiment nach Tagesabschnitt und Saison; danach erscheint der Reiter Einstellungen → Tagesabschnitte. Wird es ausgeschaltet, sind alle Artikel wieder immer verkäuflich und die Tagesabschnitte bleiben gespeichert.

Sortiment und Preise nach Bestellart

Standardmäßig aus. Einschalten über Einstellungen → Betrieb → Tagesabschnitte und Bestellart → Sortiment und Preise nach Bestellart. Wird es ausgeschaltet, gilt überall wieder der normale Preis und alles ist überall verkäuflich; die eingegebenen Preise bleiben gespeichert.

Standardmäßig aus. Einschalten über Einstellungen → Betrieb → Menüs verwenden.

Rezepturen und Kostpreis (Apicbase)

Anbindung an Apicbase (Rezepturen, Kostpreis, Lagerbestand und Einkauf) über die Generic POS API von Apicbase (standardmäßig aus, jeder Teil einzeln ein- oder ausschaltbar). Einrichten unter Einstellungen → Rezepturen (Recht Betrieb, Zahlungen und Drucker einstellen). Die Kasse spricht selbst mit Apicbase (nur ausgehender Verkehr, kein Portal nötig).

  1. Verbinden (alles vom Administrator auszufüllen), auf eine von drei Arten:
    • Token einfügen: in Apicbase Library Settings → API Settings → New token → Service Account Token (Scopes accounts, library, sales); das Access token und Refresh token einfügen;
    • Anmelden mit der eigenen API-App des Betriebs (Client-ID und Client Secret aus API Settings): Bei Apicbase anmelden und den Code einfügen, den Apicbase danach anzeigt;
    • Ein abgelaufenes Token (nach 7 Tagen) erneuert die Kasse automatisch mit dem Refresh token.
  2. Outlet: Outlets abrufen und das Outlet dieses Betriebs wählen. Die Kasse stellt dort das POS auf Generic POS API mit einer eigenen Location-ID (änderbar; standardmäßig HORECAPOS-…, eindeutig pro Kasse).
  3. Ein, mit Häkchen:
    • Artikel, Gruppen und Optionen an Apicbase: Warengruppen, Artikel (PLU = die PLU-Nummer des Artikels, sonst der Code, sonst die ID), Optionen als Modifier, mit Preis und MwSt. Automatisch nach jeder Änderung (nach einer Minute) und jeden Tag. In Apicbase verknüpfst du danach jeden Kassenartikel mit einem Rezept;
    • Jeden bezahlten Beleg an Apicbase: älteste zuerst, höchstens 100 pro Durchgang, innerhalb einer Viertelstunde nach dem Bezahlen (und alle 5 Minuten). Rabatt wird auf die Positionen verteilt; offene Beträge, Einwegzuschlag und Pfand stehen als eigener Artikel in Apicbase; gewogene Artikel als 1 Stück mit dem Gesamtbetrag. Klappt es nicht, hält die Kasse an (Apicbase will die Belege in Reihenfolge) und versucht es später erneut: das Kassieren merkt davon nichts. Beim Einschalten wählst du, ab welchem Tag (standardmäßig ab jetzt);
    • Kostpreis pro Portion abrufen (alle 6 Stunden): pro verknüpftem Rezept die Food Cost (Zutaten und Verschnitt), mit Personalkosten, der Verkaufspreis und die Marge laut Apicbase. Berechnet mit dem günstigsten Lieferanten, dem zuletzt bestellten Preis oder dem durchschnittlichen Lagerwert;
    • Verkaufspreis aus Apicbase übernehmen (standardmäßig aus): den Verkaufspreis verknüpfter Artikel in der Kasse setzen (steht im Protokoll).
  4. Unten: Kostpreis pro Artikel mit Kostpreis, Kostpreis mit Personal, Preis in der Kasse, Kostpreis % und Marge. Schaltflächen Katalog jetzt senden, Belege jetzt senden und Kostpreise jetzt abrufen.

Code: apps/pos-server/src/lib/apicbase.ts, routes/apicbase.ts; Bildschirm Apicbase.tsx. Protokoll: Apicbase. Voraussetzung: das API-Modul von Apicbase. Für die App von Pin Voordeel für alle Kunden: Partnerschaft und Zertifizierung bei Apicbase (siehe Backlog). Dokumentation: https://developers.apicbase.com/docs/generic-pos-api-guide

Hotelsoftware: aufs Zimmer buchen

Für ein Restaurant oder eine Bar in einem Hotel: die Rechnung aufs Zimmer eines Gastes buchen. Standardmäßig aus: Einstellungen → Hotel (Recht Betrieb, Bezahlen und Drucker einrichten).

Sirvoy sendet nur etwas, wenn sich eine Buchung ändert: Buchungen von vor der Anbindung kennt die Kasse erst nach einer Änderung in Sirvoy. Nachrichten können in beliebiger Reihenfolge eintreffen; eine Nachricht, die älter ist (generatedAt) als das, was die Kasse schon hat, wird übersprungen. Im Hotel = nicht storniert und nicht ausgecheckt, eingecheckt oder Anreise heute oder früher, und Abreise heute oder später. Verbindung testen zeigt, wie viele Buchungen eingegangen sind.

Alle Hotelsoftware ist in den Niederlanden und/oder Belgien erhältlich. Verbindung testen prüft die Daten. Code pro Anbindung: apps/pos-server/src/lib/pms/<naam>.ts.

Code: apps/pos-server/src/lib/hotel.ts, routes/hotel.ts, die Anbindungen in lib/pms/, Katalog packages/shared/src/hotelcatalogus.ts; Bildschirm Hotel.tsx. Protokoll: Hotel. Geheimnisse (Tokens) stehen nur in der Datenbank, nie auf dem Bildschirm.

Weinverwaltung mit Vinify

Einstellungen → Weinverwaltung (standardmäßig aus; beim Ausschalten bleibt alles gespeichert). Vinify verwaltet den Weinkeller, die Weinkarte und den Bestand und ist die Hauptquelle der Weine. Gemäß den POS-Anforderungen von Vinify bietet die Kasse eine API, mit der Vinify:

sich anmeldet, auf allen drei Wegen, die Vinify kennt (der Administrator schaltet ein, welche):

  1. API-ID und API-Schlüssel (X-Api-Id und X-Api-Key, oder Authorization: Bearer <id>:<sleutel>);
  2. API-Schlüssel und API-Secret mit einer Signatur: X-Api-Key, X-Timestamp und X-Signature = hex HMAC-SHA256(secret, <timestamp>\n<METHODE>\n<pad met query>\n<sha256 van de body>), höchstens 5 Minuten alt.

Den Schlüssel und das Secret erstellt die Kasse (einmal angezeigt); die Bildschirme zeigen nur, ob sie ausgefüllt sind. Erreichbar über das Portal unter https://<portaal>/vinify/<kassa-id>/... (kein offener Port im Betrieb; die Adresse steht unter Einstellungen → Weinverwaltung). Welche Produkte Wein sind: was Vinify anlegt, plus die Gruppen, die du ankreuzt. Gibt Vinify eine Adresse für die Verkäufe an, sendet die Kasse sie auch selbst (Push, mit einem Token): nach jedem bezahlten Beleg und alle 5 Minuten, was noch nicht geklappt hat. Vinify schaltet die Anbindung an HorecaPOS ein (hello@vinify.no). Alles im Protokoll. Nicht zu verwechseln mit Vinify.nl, einem Online-Weinshop: Er steht bei den Lieferanten (Bei Lieferanten bestellen).

Adresse schnell eingeben mit PLZ und Hausnummer

Einschalten unter Einstellungen → Betrieb → Adresse schnell eingeben (standardmäßig aus; nur für einen Betrieb in den Niederlanden). Geben Sie PLZ und Hausnummer ein (auch mit Buchstabe oder Zusatz, z. B. 12A oder 12-1) und tippen Sie auf Adresse suchen: Straße, Hausnummer, PLZ und Ort werden ausgefüllt. Gibt es unter dieser Nummer mehrere Adressen (12, 12A, 12B), wählen Sie die richtige. Danach können Sie alles noch selbst anpassen.

Hinweis bei einer neuen Version

Einschalten unter Einstellungen → Betrieb → Update-Meldung (standardmäßig aus).

Reservierungsplattformen

Reservierungen von TheFork, Formitable, Zenchef, Resengo (nur Belgien), OpenTable (nur Niederlande), PlanPanther, RestoManager und Aqqo (nur Niederlande) erscheinen automatisch in der Kasse und auf dem Tischplan. Einschalten unter Einstellungen → Reservierungsplattformen (standardmäßig aus). Nur möglich, wenn Reservierungen eingeschaltet sind.

Bonusprogramme und Bewertungen

Zwei getrennte Schalter unter Einstellungen → Punkte und Bewertungen (beide standardmäßig aus, dann ist nirgends etwas davon zu sehen). Schalten Sie sie aus, bleiben die Einstellungen und alles bisher Geschehene erhalten.

Bonusprogramm einer anderen Plattform: Der Gast sammelt Punkte bei Joyn (Belgien) und/oder Piggy (Leat; Niederlande und Belgien). Das ist unabhängig von der eigenen Kundenkarte der Kasse; diese kann einfach parallel aktiv bleiben.

Um Bewertungen bitten: nach dem Besuch eine E-Mail mit einer Schaltfläche zu Google und/oder Trustpilot.

Anbindung an Mailchimp und Klaviyo

Ihre Kunden mit Kundenkarte in Ihrem eigenen Mailprogramm: unter Einstellungen → Betrieb → Mailchimp und Klaviyo (unter dem SMS- und E-Mail-Marketing). Es gibt keinen Schalter: Ohne Anbindung mit gewählter Liste passiert nichts.

Code: lib/mailinglijst.ts, routes/mailinglijst.ts und MailingKoppelingen.tsx.

BI und Datenexport

Die Verkaufsdaten an Power BI, Looker Studio, Excel, Google Sheets, Tableau, Qlik Sense, Metabase, einen BI-Dienst (zum Beispiel YourBI, BI4Horeca oder Moore DRV) oder ein eigenes Data Warehouse. Einschalten unter Einstellungen → BI und Datenexport (standardmäßig aus). Nur lesen: Über eine Anbindung kann nichts in der Kasse geändert werden. Keine Gästedaten.

Lohn und Personalplanung

Mit eingeschaltetem Ein- und Ausstempeln des Personals (Einstellungen → Betrieb) steht unter Einstellungen → Arbeitszeiten unten Lohn und Personalplanung (Recht Einstellungen verwalten), in zwei getrennten Blöcken. Ist das Stempeln aus, gibt es keine Stunden: Dann steht nur der Block Personalplanung (der Umsatz, live oder als Umsatzdatei) unten in Einstellungen → Buchhaltung, unter der Überschrift Umsatz an Ihre Planung:

SoftwareNLBELiveDateiAnmerkung
Lohnsoftware und Lohnabrechnungsdienste
ADP✓✓auf AnfrageStundenliste pro Mitarbeiter und Tag (CSV)Anbindung über ADP (auf Anfrage); bis dahin die Stundenliste pro Mitarbeiter und Tag.
AFAS Payroll✓–auf AnfrageStundenliste pro Mitarbeiter und Tag (CSV)Lohnabrechnung in AFAS Profit (gleiche Umgebung wie die Buchhaltung in AFAS); Anbindung auf Anfrage, bis dahin die Stundenliste.
BCS HR✓–auf AnfrageStundenliste pro Mitarbeiter und Tag (CSV)Anbindung über BCS (auf Anfrage); bis dahin die Stundenliste.
Buddee✓–auf AnfrageStundenliste pro Mitarbeiter und Tag (CSV)HR- und Lohnsoftware; Anbindung auf Anfrage, bis dahin die Stundenliste pro Mitarbeiter und Tag.
Employes✓–auf AnfrageStundenliste pro Mitarbeiter und Tag (CSV)Employes hat eine API für gearbeitete Stunden (Token des Kunden); die Anbindung folgt nach Abstimmung mit Employes. Bis dahin die Stundenliste.
Exact Online Loon✓–auf AnfrageStundenliste pro Mitarbeiter und Tag (CSV)Lohnabrechnung in Exact Online (gleiche Umgebung wie die Buchhaltung in Exact); Anbindung auf Anfrage, bis dahin die Stundenliste.
Humanwave✓–auf AnfrageStundenliste pro Mitarbeiter und Tag (CSV)Anbindung über Humanwave (auf Anfrage); bis dahin die Stundenliste.
Loket.nl✓–auf AnfrageLoket.nl Variabele gegevens (CSV), Stundenliste pro Mitarbeiter und Tag (CSV)Datei für Werkgever → Collectieve mutaties → Importeren → Variabele gegevens (Stunden pro Mitarbeiter über den Zeitraum). Live über die Loket-API nach Anmeldung bei Loket.
Nmbrs✓–auf AnfrageStundenliste pro Mitarbeiter und Tag (CSV)Stundenliste pro Mitarbeiter und Tag zur Übernahme in Nmbrs. Live über die Nmbrs-API nach Registrierung einer App bei Nmbrs.
Salar (Van Winckel)✓––Stundenliste pro Mitarbeiter und Tag (CSV)Stundenliste pro Mitarbeiter und Tag für das Lohnbüro; das Importformat von Salar ist nicht öffentlich.
Sozialsekretariate
Acerta–✓auf AnfrageStundenliste pro Mitarbeiter und Tag (CSV)Sozialsekretariat: Den Aufbau der Leistungsdatei erhalten Sie von Acerta; bis dahin die Stundenliste.
Group S–✓auf AnfrageStundenliste pro Mitarbeiter und Tag (CSV)Sozialsekretariat: Den Aufbau der Leistungsdatei erhalten Sie von Group S; bis dahin die Stundenliste.
Liantis–✓auf AnfrageStundenliste pro Mitarbeiter und Tag (CSV)Sozialsekretariat mit einer API, die Liantis pro Unternehmen freigibt; bis dahin die Stundenliste.
Partena Professional–✓auf AnfrageStundenliste pro Mitarbeiter und Tag (CSV)Sozialsekretariat: Den Aufbau der Leistungsdatei erhalten Sie von Partena; bis dahin die Stundenliste.
SD Worx✓✓–SD Worx Tijdsregistratie (TXT), Stundenliste pro Mitarbeiter und Tag (CSV)Belgien: Datei Tijdsregistratie (Zeiterfassung; feste Positionen, pro Mitarbeiter pro Tag) für "Tijdsregistratie importeren". Niederlande: die Stundenliste.
Securex–✓auf AnfrageStundenliste pro Mitarbeiter und Tag (CSV)Sozialsekretariat: Anbindungen laufen über Partner; bis dahin die Stundenliste.
Dienstplanung und Zeiterfassung
Book'u–✓auf AnfrageUmsatz pro Tag und Stunde (CSV)Book'u übernimmt die Dimona-Meldungen; eine Kassenanbindung gibt es auf Anfrage. Bis dahin die Umsatzliste.
Deputy✓✓✓Umsatz pro Tag und Stunde (CSV)Live: Der Umsatz pro Stunde geht jede Stunde an Deputy (Sales). Ein permanentes Token erstellen Sie in Deputy unter API-Integrationen.
Dyflexis✓–✓Umsatz pro Tag und Stunde (CSV)Live: Der Umsatz pro Stunde geht jede Stunde an Dyflexis (information streams). Das API-Token erhalten Sie über Dyflexis.
Eitje✓–auf AnfrageUmsatz pro Tag und Stunde (CSV)Eitje bindet über sein Partnerprogramm an; bis dahin die Umsatzliste pro Tag und Stunde.
Exact Horeko✓–auf AnfrageUmsatz pro Tag und Stunde (CSV)Anbindung über Horeko (auf Anfrage); bis dahin die Umsatzliste.
Fooks✓–auf AnfrageUmsatz pro Tag und Stunde (CSV)Fooks baut Kassenanbindungen selbst; bis dahin die Umsatzliste pro Tag und Stunde.
L1NDA✓–auf AnfrageUmsatz pro Tag und Stunde (CSV)L1NDA baut Kassenanbindungen gemeinsam mit Partnern; bis dahin die Umsatzliste pro Tag und Stunde.
Mr. Einstein✓–auf AnfrageUmsatz pro Tag und Stunde (CSV)HR, Dienstplan und Lohnkosten für die Gastronomie; Mr. Einstein baut Kassenanbindungen gemeinsam mit dem Kassenanbieter (Anfrage über mreinstein.nl/contact). Bis dahin die Umsatzliste pro Tag und Stunde.
Nostradamus✓✓auf AnfrageUmsatz pro Tag und Stunde (CSV)Nostradamus übernimmt den Umsatz über seine Kassenschnittstelle (API-Token und Domain des Betriebs, nach Anfrage bei Nostradamus); bis dahin die Umsatzliste pro Tag und Stunde.
Plan-Me–✓auf AnfrageUmsatz pro Tag und Stunde (CSV)Plan-Me übernimmt die Dimona-Meldungen; eine Kassenanbindung gibt es auf Anfrage. Bis dahin die Umsatzliste.
Planday✓✓auf AnfrageUmsatz pro Tag und Stunde (CSV)Planday hat eine offene API für Kassensysteme; die Anbindung folgt nach Abstimmung. Bis dahin die Umsatzliste.
Shiftbase✓–✓Umsatz pro Tag und Stunde (CSV)Live: Der Umsatz pro Tag geht jede Stunde in das Logbuch der Abteilung in Shiftbase. Den API-Schlüssel erstellen Sie in Shiftbase unter App center.
Shyfter–✓auf AnfrageUmsatz pro Tag und Stunde (CSV)Shyfter übernimmt die Dimona-Meldungen und nimmt Umsatz pro Tag über seine API an; die Anbindung folgt nach Abstimmung mit Shyfter. Bis dahin die Umsatzliste.
Strobbo✓✓–Strobbo-Umsatzimport (Excel), Umsatz pro Tag und Stunde (CSV)Excel-Datei für Planning → € → Importeer omzet (Umsatz pro Tag pro Arbeitsbereich).
Tamigo✓✓auf AnfrageUmsatz pro Tag und Stunde (CSV)Anbindung über Tamigo (auf Anfrage); bis dahin die Umsatzliste.
Werktijden.nl✓––Umsatz pro Tag und Stunde (CSV), Stundenliste pro Mitarbeiter und Tag (CSV)Werktijden.nl erfasst die Stunden selbst und nimmt (noch) keinen Umsatz über seine API an; die Listen dienen zum Vergleich.
XPS Logic✓–auf AnfrageUmsatz pro Tag und Stunde (CSV)XPS Logic ist auf Flex- und Leiharbeitskräfte ausgerichtet; eine Anbindung gibt es auf Anfrage. Bis dahin die Umsatzliste.

Gesetzliche Anforderungen in Belgien und den Niederlanden

Was das Gesetz verlangt und was HorecaPOS dafür tut (lassen Sie Ihren Buchhalter bestätigen, was für Ihren Betrieb gilt):

LandAnforderungHorecaPOS
BelgienRegistriertes Kassensystem (GKS 2.0) mit Blackbox für Gastronomiebetriebe, die die Vorgaben erfüllen müssen (u. a. bei mehr als € 25.000 Jahresumsatz aus Mahlzeiten, ohne MwSt.)Verbindung mit der Blackbox (FDM), die Pflichtangaben auf dem Bon und die Zähler beim Z-Bericht (Land Belgien unter Einstellungen → Betrieb, FDM_API_KEY und FDM_TERMINAL_ID); oben unter Einstellungen → Betrieb wählen Sie, ob der Betrieb GKS-pflichtig ist: Ja = nur mit einer funktionierenden Blackbox kassieren, Nein = ohne, mit einer Erklärung des Administrators (jedes Jahr erneut); solange nichts gewählt ist, kann nicht kassiert werden. Die Kasse zählt den Umsatz mit Mahlzeiten und warnt ab 25.000 €
BelgienE-Rechnung über Peppol: Seit dem 1. Januar 2026 müssen Rechnungen zwischen belgischen mehrwertsteuerpflichtigen Unternehmen strukturiert elektronisch sein (UBL, Peppol BIS 3); Kassenbons an Verbraucher fallen nicht darunterExport des Tagesumsatzes als UBL nach Peppol BIS Billing 3.0 für die Buchhaltungssoftware (Export Buchhaltung); und Rechnungen zu einem Bon für Geschäftskunden (Einstellungen → Rechnungen): UBL nach Peppol BIS Billing 3.0 plus eine Rechnung zum Drucken, Versand per E-Mail, über Billit ins Peppol-Netzwerk, an eine eigene Adresse oder als Download (siehe Rechnungen für Geschäftskunden)
BelgienMwSt. Gastronomie seit 1. März 2026: Speisen zum Mitnehmen und alkoholfreie Getränke 12 % (vor Ort und zum Mitnehmen), Alkohol 21 %, Mahlzeiten, die der Kunde noch selbst zubereitet (Fondue, Gourmet), 6 %MwSt.-Assistent (Einstellungen → Recht und Gesetz): pro Produkt die Art, der richtige Satz sofort oder ab einem Datum; die Beschreibungen der Sätze A/B/C wurden aktualisiert
NiederlandeAlkoholgesetz: kein Alkohol an Jugendliche unter 18, auch nicht beim Onlineverkauf und bei der Lieferung (Alter bei Übergabe prüfen)Alterskontrolle: Produkte mit Alkohol; im Webshop bestätigt der Kunde selbst 18+ (Kästchen nicht vorausgewählt) mit dem Hinweis, dass das Alter bei Übergabe geprüft wird; "18+" auf Küchenbon, Lieferschein und Kassenbon
NiederlandeEinwegbecher und -schalen (SUP): seit 2024 ein separater, sichtbarer Preis für Einwegverpackungen aus Plastik bei Abholung und LieferungEinwegabgabe pro Produkt, als eigene Zeile auf dem Bon (MwSt. des Produkts) und separat im Umsatz
NiederlandePfand auf Dosen und PlastikflaschenPfand pro Produkt (0,15 € / 0,25 €), eigene Zeile ohne MwSt. bei Abholung und Lieferung, separat im Umsatz
NiederlandeBarzahlung: seit dem 1. Januar 2026 keine 3.000 € oder mehr in bar für WarenWarnung bei Abholung und Lieferung (auch am Geldautomaten); Bestätigen ist möglich und wird protokolliert
Niederlande und BelgienMwSt.-Änderung: ein Satz oder ein Produkt erhält ab einem Datum einen anderen MwSt.-ProzentsatzMwSt.-Änderung planen: Die Kasse führt sie am Tag selbst aus (in Belgien pro Produkt, die Buchstaben A/B/C/D sind festgelegt)
NiederlandeBeherbergung (Übernachtungen) 21 % seit dem 1. Januar 2026MwSt.-Satz pro Produkt einstellbar
EUOmnibus-Richtlinie: ein durchgestrichener "statt"-Preis darf nur der niedrigste Preis der letzten 30 Tage seinDer Webshop streicht nur gegen den niedrigsten Preis von 30 Tagen durch (die Kasse speichert den Preisverlauf; wöchentlich wiederkehrende Happy Hours zählen mit)
EUEuropean Accessibility Act (seit 28. Juni 2025): Webshops barrierefrei (WCAG 2.1 AA)Der Webshop funktioniert mit Tastatur und Screenreader (Link "Zum Inhalt", sichtbarer Fokus, Beschriftungen) und hat eine Erklärung zur Barrierefreiheit (Link unten)
NiederlandeXML Auditfile Financieel (XAF): der Standard der niederländischen Steuerbehörde (Belastingdienst) zur Übertragung einer Buchhaltung (oder eines Teils davon); XAF 4.0 ist ab 2027 PflichtExport als XAF 4.0 (Buchhaltungsexport)
NiederlandeZuverlässiges Kassensystem: die Kassendaten (alle Belege, Korrekturen und Ereignisse) aufbewahren und bei einer Prüfung digital liefern können; die niederländische Steuerbehörde (Belastingdienst) empfiehlt dafür die XML Auditfile Afrekensystemen (XAA)Export als XAA 3.2 (Bericht → Umsatz pro Zeitraum → Kassen-Auditfile), auf Wunsch signiert mit dem Zertifikat des Anbieters
BelgienAnwesenheitserfassung bei einem registrierten Kassensystem: Beginn und Ende der Arbeitszeit der Arbeitnehmer im Kassensystem registrierenEin- und Ausstempeln des Personals (Einstellungen → Betrieb; Pflicht = zuerst einstempeln) wird in der Blackbox registriert
BelgienDimona: jede Beschäftigung (auch Flexi-Jobs und Studenten) vor Beginn beim RSZ meldendas erledigt Ihr Sozialsekretariat oder Ihr Planungstool (z. B. Shyfter, Book'u, Plan-Me); HorecaPOS liefert die gearbeiteten Stunden und den Umsatz (Einstellungen → Arbeitszeiten → Lohn und Personalplanung)
NiederlandeErfassung der Arbeits- und Ruhezeiten (Arbeitszeitgesetz, Arbeidstijdenwet)Ein- und Ausstempeln mit den gearbeiteten Stunden pro Mitarbeiter, anpassbar durch den Verwalter (mit Protokoll), und die Stundenliste für die Lohnsoftware
Niederlande und BelgienHACCP / Lebensmittelsicherheit: Temperaturen (Kühlung, Tiefkühler, Warmhalten, Erhitzen, Rückkühlen, Wareneingang) und Reinigung dokumentieren; NL Hygiënecode voor de Horeca (NVWA), BE Eigenkontrolle FAVV (Leitfaden G-023)HACCP-Erfassung in der Kasse (Einstellungen → Gesetze und Vorschriften, Taste HACCP oben): Messpunkte mit Grenzwerten, Reinigungs- und Kontrollaufgaben, verpflichtende Korrekturmaßnahme bei einer Abweichung, nicht änderbar, Übersicht mit verpassten Erfassungen als CSV oder Ausdruck (siehe HACCP-Erfassung)
Niederlande und BelgienAufbewahrungspflicht (NL 7 Jahre, BE 10 Jahre)Bons, Z-Berichte und das Protokoll liegen in der Datenbank und in den Backups; das Protokoll kann von der Kasse aus weder geändert noch gelöscht werden

Recht und Gesetz

Einstellungen → Recht und Gesetz (Administrator; der MwSt.-Assistent auch mit dem Recht Produkte verwalten). Alles ist standardmäßig aus; ohne diese Einstellungen funktioniert die Kasse wie immer.

Rechnungen (in Belgien zwischen Unternehmen Pflicht) stehen unter Rechnungen für Geschäftskunden. Noch zu tun: GKS 2.0, nachfragen, wie es um die Zertifizierung steht (siehe docs/backlog-concurrenten.md).

Rechnungen für Geschäftskunden

Einstellungen → Rechnungen (Administrator; standardmäßig aus): Schalten Sie Rechnungen für Geschäftskunden (UBL / Peppol) ein. Ist es eingeschaltet, finden Sie darunter Kauf auf Rechnung, die Angaben auf der Rechnung, die Peppol-Dienste, die Bankanbindung (mit Kauf auf Rechnung) und die Liste aller Rechnungen. In Belgien ist die E-Rechnung zwischen Unternehmen seit dem 1.1.2026 Pflicht.

Selbstbedienungskiosk

Gäste bestellen selbst an einer Säule oder einem Tablet, wie in einem Fast-Food-Restaurant, und bezahlen an der Kasse oder mit Karte am Kiosk. Die Bestellbildschirme sind Teil der Kasse selbst, daher kommen Karte, Preise, Optionen, Menüs, Happy Hours, Tageszeiten, Fotos, Allergene, Sprachen und der Kassenbon aus der Kasse und müssen nirgendwo anders eingerichtet werden. Auf dem Kiosk läuft die App PinPortal Kiosk 2 (Android, auch Sunmi, sowie Windows, Linux und macOS), die die Seite zeigt und den Bon druckt. Standardmäßig aus.

Einschalten und einrichten (Administrator): Einstellungen → Betrieb → Bildschirme und Bedienung → Selbstbedienungskiosk.

Den Scanner selbst stellen Sie am Kiosk ein: in der App PinPortal Kiosk 2 unter Verwaltung → Barcodescanner (als Tastatur, der eingebaute Scanner oder ein COM-Port), mit einem Scannertest. Ein Scanner, der als Tastatur arbeitet, funktioniert auch ohne die App.

Kiosk hinzufügen und koppeln

  1. Gib bei Kioske einen Namen ein (z. B. Kiosk Eingang) und wähle Kiosk hinzufügen. Du bekommst einen Kopplungscode aus 6 Ziffern (30 Minuten gültig).
  2. Wähle beim Kiosk, wie der Gast bezahlt: standardmäßig an der Kasse. Ist es ein Kiosk mit Kartenterminal, wähle mit Karte oder der Gast wählt und wähle das Kartenterminal dieses Kiosks (aus Einstellungen → Bezahlen).
  3. Öffne auf dem Kiosk die Kioskseite:
    • im Betrieb: in der App unter Verwaltung → Vast adres die Adresse, die bei der Einstellung steht, z. B. http://192.168.1.20:3000/kiosk;
    • oder über das Verwaltungsportal (https, auch wenn der Kiosk nicht im selben Netzwerk steht): verknüpfe die Kioskadresse, die bei der Einstellung steht, mit dem Kioskcode der App, wie beim alten Kiosk.
  4. Gib auf dem Kiosk den Kopplungscode ein. Fertig: Der Kiosk merkt sich seinen eigenen Schlüssel. Erneut koppeln gibt einen neuen Code; Entfernen entkoppelt ihn.

Bei jedem Kiosk steht, ob er online ist.

So bestellt der Gast

  1. Startbildschirm mit dem Begrüßungstext; der Gast wählt seine Sprache (alle Sprachen der Kasse) und tippt zum Bestellen.
  2. Hier essen oder mitnehmen.
  3. Die Karte pro Produktgruppe, mit Fotos, dem Preis (mit Happy Hour), Allergenen und was ausverkauft ist. Produkte mit Auswahl oder ein Menü öffnen das Auswahlfenster.
  4. Der Warenkorb: Mengen anpassen und eventuell Noch etwas dazu?.
  5. Bestellen (Bezahlen an der Kasse): Der Gast sieht seine Abholnummer groß auf dem Bildschirm mit dem Betrag, erhält den Bon und bezahlt an der Kasse. In der Kasse ist die Bestellung offen als Kiosk Eingang · 42 (die Nummer, die der Gast nennt); abrechnen wie immer. Danach steht sie als bezahlt auf dem Abrufbildschirm und geht in die Küche, wenn das erst nach dem Bezahlen sein sollte.
  6. Mit Karte bezahlen: Die Kasse setzt den Betrag auf das Kartenterminal dieses Kiosks (dieselbe Kartenzahlungs-Anbindung wie an der Kasse). Klappt es nicht, kann der Gast es erneut versuchen oder abbrechen (oder, wenn der Gast wählen darf, doch an der Kasse bezahlen). Erst wenn die Zahlung geklappt hat, geht die Bestellung in die Küche und wird abgerechnet. Der Gast sieht seine Abholnummer groß auf dem Bildschirm und erhält den Bon.
  7. Nach ein paar Sekunden geht der Kiosk zurück zum Anfang.

Bei Störung: Meldung und Notmodus (in der Kiosk-App, Verwaltung → Bij storing; standardmäßig aus). Erreicht der Kiosk die Kasse nicht, steht dort Even gesloten. Zwei Extras:

In der Kasse ist eine Kioskbestellung eine normale Bestellung (Abholung oder vor Ort, mit dem Namen Kiosk Eingang) auf den Namen des Mitarbeiters Kiosk. Die Kasse legt ihn selbst an; niemand kann sich damit anmelden. Setze ihn nicht auf inaktiv, sonst kann der Kiosk nicht bestellen. Die Kioskbestellungen stehen in den Berichten, unter Bons und auf dem Abrufbildschirm. Eine Bestellung, die am Kiosk nicht abgeschlossen wird (nicht bestellt oder nicht mit Karte bezahlt), verfällt nach 30 Minuten von selbst.

Kartenzahlung im Testmodus (Einstellungen → Bezahlen)? Dann kassiert der Kiosk nicht wirklich; praktisch zum Ausprobieren. Ohne Internet ist keine Kartenzahlung möglich; der Kiosk sagt dann, dass man an der Theke bestellen kann.

Störung: Ist die Kasse nicht erreichbar, zeigt die Kiosk-App "Kurz geschlossen" und macht von selbst weiter. Läuft der Kiosk über das Verwaltungsportal und fällt das Internet aus, kann die App auf die Kasse im eigenen Netzwerk zurückfallen (in der App: Verwaltung → Erweiterungen → Bei Störung auf das eigene Netzwerk zurückfallen); die Adresse gibt der Kiosk selbst weiter.

Ausschalten: Der Kiosk zeigt an, dass er kurz geschlossen ist. Die Kioske und die Einstellungen bleiben gespeichert. Im Protokoll stehen Ein/Aus, die Einstellungen, hinzugefügte und entfernte Kioske, Koppeln und stornierte Bestellungen.

Digitale Menütafel

Die Karte mit Preisen auf einem Fernseher (oder einem anderen Monitor mit Browser), direkt aus der Kasse. Standardmäßig aus; einschalten über Einstellungen → Betrieb → Bildschirme und Bedienung → Digitale Menütafel. Öffnen Sie danach auf dem Fernseher http://<kassaserver>:3000/menubord (oder nutzen Sie die Taste Auf einem eigenen Bildschirm / Auf einem Tablet oder Smartphone mit dem QR-Code). Keine Anmeldung und keine Kopplung.

Personal und PINs

Einstellungen → Personal (nur Administrator): Mitarbeiter hinzufügen, Name, Rolle und PIN ändern und auf inaktiv setzen.

Anmelden mit einer Karte (optional)

Standardmäßig aus. Einschalten: Einstellungen → Personal, Häkchen bei Anmelden mit einer Karte (NFC, RFID oder iButton). Erforderlich: ein USB-Kartenleser, der als Tastatur arbeitet (für NFC- oder RFID-Karten, Schlüsselanhänger, Armbänder oder iButton-Schlüssel). Ein solcher Leser "tippt" die Nummer der Karte und drückt Enter; ein Treiber oder eine Anbindung ist nicht nötig.

Rechte pro Rolle

Einstellungen → Rechte (nur Administrator): pro Rolle anhaken, was Bedienung und Manager dürfen. Standardmäßig ist alles genau wie oben (wie die Kasse es immer gemacht hat); ein abweichendes Kästchen ist farbig markiert.

RechtBedienungManager
Zeilen nach dem Bestellen streichen (Storno)jaja
Rabatt gewähren / Rabatt entfernenneinja
Artikel auf "aus" setzenjaja
Kopie eines Belegs druckenjaja
Retoure (Gutschrift)neinja
Auf Rechnung kassieren und Zahlungen auf Rechnung annehmen (nur mit Kauf auf Rechnung an)neinja
Zwischenstand (X-Bericht)jaja
Tagesabschluss (Z-Bericht)neinja
Umsatz pro Zeitraumneinja
Kassenschublade verwaltenneinja
Gutscheine verwalten (nur bei Gutscheinen mit Guthaben)neinja
Bewertungen lesen und beantworten (nur mit Bewertungsverwaltung an)neinja
Kundenkarte verwalten (nur mit Kundenkarte an)neinja
Protokoll einsehenneinja
Kamerabilder ansehen (nur mit aktivierten Kamerabildern)neinja
Lagerbestand verwalten (nur bei aktiviertem Lagerbestand)neinja
Artikel verwaltenneinnein
Tischpläne verwaltenneinnein
Betrieb, Bezahlen und Drucker einrichtenneinnein
Arbeitszeiten einsehen und anpassenneinnein

Daten des Betriebs

Einstellungen - Betrieb

Einstellungen → Betrieb (nur Administrator): Name, Adresse, PLZ, Ort, Telefon und USt-IdNr. der Filiale. Diese stehen oben auf jedem Kassenbeleg und Pro-forma-Beleg. Auch der Text unten auf dem Beleg lässt sich hier einstellen (mehrere Zeilen möglich; leer = kein Text; Standard "Vielen Dank und auf Wiedersehen!"), darunter die Sprache des Kassenbons (Standard Niederländisch; siehe Sprachen). Eine Vorschau des Belegs ändert sich live mit. Nach dem Speichern verwendet der nächste Beleg sofort die neuen Angaben. Land und fiskalische Angaben (GKS) sind hier bewusst nicht änderbar. In Belgien ist die USt-IdNr. Pflicht. Mit dem Häkchen Barzahlungen auf 5 Cent runden (standardmäßig aus) wird bei Barzahlung die Summe gerundet (€ 6,62 → € 6,60, € 6,63 → € 6,65); die Differenz steht als "Rundung" auf dem Beleg. Kartenzahlung bleibt immer centgenau.

Artikel verwalten

Einstellungen - Artikel

Melden Sie sich als Administrator an und wählen Sie Einstellungen → Artikel.

Artikelfotos

Jeder Artikel kann ein Foto bekommen.

Barcodescanner

Mit einem Barcodescanner an der Kasse scannen Sie Artikel, Rabattcodes, Kundenkarten und Gutscheine. Einschalten unter Einstellungen → Scanner (Registerkarte bei den Druckern und der Waage; standardmäßig aus). Haken Sie an, was ein Scan im Bestellbildschirm tut:

Die Kasse sucht zuerst bei den Artikeln, dann bei den Kundenkarten, den Gutscheinen und den Rabattcodes. Scannen funktioniert im Bestellbildschirm, wenn Sie nicht in einem Eingabefeld stehen. In einem Eingabefeld landet der Code einfach in diesem Feld.

Scannertest: Unter Einstellungen → Scanner sehen Sie bei jedem Scan den Code und was die Kasse daraus macht, auch wenn der Scanner noch ausgeschaltet ist. Funktioniert es nicht:

Am Kiosk stellen Sie den Scanner separat ein (Einstellungen → Betrieb → Kiosk); siehe Selbstbedienungskiosk.

Etiketten drucken

Artikeletiketten mit dem Namen, dem Preis und einem Barcode, auf einem Etikettendrucker (Brother, Dymo, Zebra ...), der auf dem Computer oder Tablet installiert ist. Einschalten unter Einstellungen → Betrieb → Etiketten drucken (standardmäßig aus). Dort wählen Sie auch das Format des Etiketts (38 × 25, 57 × 32, 62 × 29 oder 100 × 50 mm) und ob Preis und Barcode darauf erscheinen. Testdruck druckt ein Probeetikett.

Waage einrichten (A&D, Aclas, Adam Equipment, Avery Berkel, Avery Weigh-Tronix, Balanzas Marques, Baxtran, Bizerba, Brecknell, CAS, Datalogic, Dibal, DIGI, Dini Argeo, Excell Precision, Gram, Ishida, Kern & Sohn, Mettler Toledo, Minebea Intec, Ohaus, Precia Molen, Precisa, Rice Lake, Rongta, Sartorius, Star Micronics, T-Scale, UWE, Wedderburn, Wintec, Zebra)

Eigener Tab Einstellungen → Waage (Recht Betrieb, Bezahlen und Drucker einrichten, standardmäßig nur der Administrator; der Tab ist immer da, auch wenn die Waage noch ausgeschaltet ist). Standardmäßig aus: Dann funktioniert die Kasse genau wie bisher. Sehen Sie den Tab nicht?

Automatische Suche. Ist noch nichts eingerichtet, sucht die Kasse beim Öffnen dieses Bereichs automatisch (die Taste Suchen wiederholt das):

Gefunden = mit der Taste Aktivieren und verwenden ins Formular übernommen: ein Tipp und es funktioniert. (Die Suche sendet ein W an jeden freien COM-Port; ein belegter Port, z. B. durch das Kartenterminal, wird übersprungen.)

Alle Aclas-Waagen. Pro Waage wählen Sie das Modell; die Kasse weiß dann, wie sie angeschlossen werden kann. Es gibt zwei Arten:

Eine Liste, zwei Häkchen. Alle Waagen stehen in einer Liste. Pro Waage haken Sie an, was sie tut: An der Kasse wiegen (die Kasse fragt beim Bestellen das Gewicht ab) und/oder Etiketten scannen (die Waage druckt ein Etikett mit Strichcode, das die Kasse scannt, und erhält die PLUs von der Kasse). Eine PC- oder KI-Waage wie die TS6X kann beides; eine LS-Etikettenwaage nur Etiketten. Etiketten können von einer Waage pro Betrieb kommen.

ModellArtAnschlüsseIn der Kasse
OS6XPOS-WaageRS232, USB, Bluetoothangeschlossen, mehrere gleichzeitig
OS2XPOS-WaageRS232, USBangeschlossen, mehrere gleichzeitig
CS6X, CS3XKassenwaageRS232, USB, Ethernet, wifiangeschlossen, mehrere gleichzeitig
TS6X, TS3X, TS5EX, TS5NX, TS5GXPC-Waage (Windows, Android, Linux)RS232, USB, Ethernet, wifiauf diesem Gerät (1x), auch als Etikettenwaage
iS6X, iS2X, iR6X, Ti6X, iL8XKI-Waage mit Produkterkennung (Windows, Android, Linux)RS232, USB, Ethernet, wifiauf diesem Gerät (1x), auch als Etikettenwaage
iS5X, OiT2XKI-Waage (nur Linux)RS232, USB, Ethernetangeschlossen oder als Etikettenwaage
LS2S, LS2RX, LS2CX, LS2NX, LS5SX, LS5RX, LS5CX, LS5NX, LS6CX, LS6RX, LS6NXEtikettenwaageRS232, Ethernet, wifiEtiketten scannen und PLUs
PS1CX, PS1DX, PS6CX, PS6DXPreisrechnende WaageRS232angeschlossen, mehrere gleichzeitig
PS1BXPreisrechnende Waage ohne AnschlusskeineGewicht von Hand
LH15XHängewaage mit EtikettendruckerRS232, Ethernet, wifiangeschlossen oder als Etikettenwaage

A&D, Adam Equipment, Avery Berkel, Avery Weigh-Tronix, Balanzas Marques, Baxtran, Bizerba, Brecknell, CAS, Datalogic, Dibal, DIGI, Dini Argeo, Excell Precision, Gram, Ishida, Kern & Sohn, Mettler Toledo, Minebea Intec, Ohaus, Precia Molen, Precisa, Rice Lake, Rongta, Sartorius, Star Micronics, T-Scale, UWE, Wedderburn, Wintec und Zebra. Von diesen Marken sind die gängigen Modelle enthalten, bei denen feststeht, wie die Kasse mit ihnen spricht (zu testen = das Protokoll steht nicht wörtlich in einer Quelle; die Kasse wählt das Naheliegendste). Alle angeschlossen (mehrere gleichzeitig) oder als Etikettenwaage, deren Etikett die Kasse scannt:

MarkeModellArtAnschlussProtokoll (ab Werk)In der Kasse
A&DEK-i (u. a. EK-610i), HV-WPKassenwaage (nur Gewicht)RS232, EK-i auch USBKontinuierlich (Modus stream), 2400 Baud, 7E1angeschlossen, mehrere gleichzeitig
Adam EquipmentSwiftPreisrechnende WaageRS232, USB (Option)Kontinuierlich (kontinuierlich an PC), 9600 8N1 (zu testen)angeschlossen, mehrere gleichzeitig
Avery BerkelFX110, FX120, FX131 (Einbau mit Scanner)KassenwaageRS232, FX131 auch USBMettler Toledo 82/7 = Toledo 8217 (Kasse sendet W), 9600 Baud, 7E1angeschlossen, mehrere gleichzeitig
Avery BerkelFX125Preisrechnende WaageRS232Checkout-Dialog 06 (9600, 7O1)angeschlossen, mehrere gleichzeitig
Avery BerkelXs, XTs, XTiEtikettenwaageEthernet, WLAN, USBeigene PLUs auf der WaageEtiketten scannen
Avery Weigh-Tronix7820, 7829, ZP900KassenwaageRS232, 7820 auch USB, ZP900 auch USB und EthernetNCI (Kasse sendet W), 9600 Baud, 7E1angeschlossen, mehrere gleichzeitig
Balanzas MarquesBM1000P TOPKassenwaage (nur Gewicht)RS232METTLER (Kasse sendet W, Toledo), 9600 Baud, 7E1angeschlossen, mehrere gleichzeitig
Balanzas MarquesBM5 Junior Tower Label, BM500 ETQEtikettenwaageEthernet, USB, RS232, BM500 ETQ auch wifieigene PLUs auf der WaageEtiketten scannen
BaxtranTW, VW, XTA, XTA-PPreisrechnende WaageRS232Toledo (Kasse sendet W), 9600 Baud, 7E1angeschlossen, mehrere gleichzeitig
BizerbaCS 300 (auch Einbau)KassenwaageRS232Checkout-Dialog 06 (9600, 7O1)angeschlossen, mehrere gleichzeitig
BizerbaK-Class Flex, KH IIEtikettenwaageEtherneteigene PLUs auf der WaageEtiketten scannen
Brecknell6702U, 6710U, 6720UKassenwaageRS232, USB (virtueller COM-Port)NCI (Kasse sendet W), 9600 Baud, 7E1angeschlossen, mehrere gleichzeitig
CASPD-II, PDN, PDI, PDS-BKassenwaageRS232, PDN auch USB und Bluetooth, PDI auch USBECR type 2 = Toledo (Kasse sendet W), 9600 Baud, 7E1angeschlossen, mehrere gleichzeitig
CASCL3000, CL5500, CL7200EtikettenwaageEthernet, USB, RS232, CL5500 und CL7200 auch wifieigene PLUs auf der WaageEtiketten scannen
DatalogicMagellan 9300i, 9400i, 9800i (Scanner mit Waage)KassenwaageRS232 (separater Waagenport), USBMettler Toledo 8217 (Kasse sendet W), 9600 Baud, 7E1angeschlossen, mehrere gleichzeitig
DibalKS-400, D-POS 400KassenwaageRS232, D-POS 400 auch USBCheckout-Dialog 06 (9600, 7O1)angeschlossen, mehrere gleichzeitig
DibalG-325, PI-100Preisrechnende WaageRS232Checkout-Dialog 06 (9600, 7O1)angeschlossen, mehrere gleichzeitig
DibalM-500 (Mistral), D-900, CS-2200EtikettenwaageEthernet, WLAN, USBeigene PLUs auf der WaageEtiketten scannen
DIGIDS-781Preisrechnende WaageRS232DIGI Type B (Kasse sendet ENQ), 9600 8N1angeschlossen, mehrere gleichzeitig
DIGISM-120, SM-6000EtikettenwaageEthernet, WLANeigene PLUs auf der WaageEtiketten scannen
Dini ArgeoDFW, DGT, 3590EKassenwaage (nur Gewicht)RS232, USB, Ethernet, DFW und 3590E auch wifiKontinuierlich (ST,GS, 0.512,kg), 9600 8N1angeschlossen, mehrere gleichzeitig
Excell PrecisionTPE, AM4, FD4-P, FDP4-P, GE4, GEP4Preisrechnende WaageRS232Kontinuierlich (ST,GS,+0.876kg), 9600 8N1 (außer TPE zu testen)angeschlossen, mehrere gleichzeitig
GramXFOC RS, XFOC+ RS, ZFOC RSPreisrechnende WaageRS232, USB (Kabel von Gram)Gram (Kasse sendet ENQ, dann DC1), 9600 8N1 (XFOC zu testen)angeschlossen, mehrere gleichzeitig
IshidaUni-3, Uni-5, Uni-7, Uni-9EtikettenwaageEthernet, WLAN, USBeigene PLUs auf der WaageEtiketten scannen
Kern & SohnRPB, RFCPreisrechnende WaageRS232, USBCheckout-Dialog 06 (Prot = DLG-06, 9600, 7O1)angeschlossen, mehrere gleichzeitig
Kern & SohnRFE (Preis), IFB, EOCPreisrechnende Waage / KassenwaageRS232Kontinuierlich, 9600 8N1angeschlossen, mehrere gleichzeitig
Mettler ToledoAriva-SKassenwaageRS232, USB (virtueller COM-Port)Toledo 8217 (Kasse sendet W), 9600 Baud, 7E1angeschlossen, mehrere gleichzeitig
Mettler ToledoVivaKassenwaageRS232Toledo 8217, 9600 Baud, 7E1angeschlossen, mehrere gleichzeitig
Mettler ToledobPlus, UC EvoEtikettenwaageEthernet, WLANeigene PLUs auf der WaageEtiketten scannen
Minebea IntecSignum, Combics, Midrics, PuroKassenwaage (nur Gewicht)RS232, USB, Signum und Combics auch EthernetKontinuierlich (SBI, automatisch drucken), 9600 8N1angeschlossen, mehrere gleichzeitig
OhausAviator 7000Preisrechnende WaageRS232 oder USBCheckout-Dialog 06 (9600, 7O1)angeschlossen, mehrere gleichzeitig
OhausValor 7000, Ranger 3000, Ranger 4000, Ranger 7000, Defender 3000Kassenwaage (nur Gewicht)RS232, USB, EthernetKontinuierlich (Auto Print Continuous), 9600 8N1angeschlossen, mehrere gleichzeitig
Precia MolenDP400KassenwaageRS232, USBCheckout-Dialog 06 (9600, 7O1)angeschlossen, mehrere gleichzeitig
Precia MolenDPOS CR, C 210 B, C 210 CPreisrechnende WaageRS232Checkout-Dialog 06 (9600, 7O1; C 210 zu testen)angeschlossen, mehrere gleichzeitig
Precia MolenCorail 500EtikettenwaageEthernet, WLANeigene PLUs auf der WaageEtiketten scannen
PrecisaXB, XT, LS, LX (Präzisionswaagen)Kassenwaage (nur Gewicht)RS232, LS und LX auch USBKontinuierlich (Druckmodus CONTINUOUS), 9600 8N1angeschlossen, mehrere gleichzeitig
Rice LakeBenchPro BP-S, BenchPro BP-RKassenwaageRS232BP-S Toledo 8213, BP-R NCI (beide: Kasse sendet W), 9600 Baud, 7E1 (zu testen)angeschlossen, mehrere gleichzeitig
RongtaRLS1000, RLS1100EtikettenwaageEthernet, RS232, wifieigene PLUs auf der WaageEtiketten scannen
SartoriusEntris, QuintixKassenwaage (nur Gewicht)RS232, USBKontinuierlich (SBI, automatisch drucken), 9600 8N1angeschlossen, mehrere gleichzeitig
Star MicronicsmG-T12, mG-T30, mG-T60, mG-S8200Kassenwaage (nur Gewicht)RS232, USB (virtueller COM-Port)Kontinuierlich, 9600 8N1 (zu testen)angeschlossen, mehrere gleichzeitig
T-ScalePA10, PA15, PEA10EtikettenwaageEtherneteigene PLUs auf der WaageEtiketten scannen
UWEASEPPreisrechnende WaageRS232Kontinuierlich, 9600 8N1 (zu testen)angeschlossen, mehrere gleichzeitig
WedderburnTSDS983KassenwaageRS232DIGI Type B (Kasse sendet ENQ), 9600 8N1 (zu testen)angeschlossen, mehrere gleichzeitig
WedderburnTSDS781T, TSDS782TPreisrechnende WaageRS232DIGI Type B, 9600 8N1 (zu testen)angeschlossen, mehrere gleichzeitig
WedderburnTSSM120EtikettenwaageEthernet, RS232eigene PLUs auf der WaageEtiketten scannen
WintecScalePOS ACS-S60E (Kasse mit eingebauter Waage)Kassenwaageintern COM6 (Windows) oder COM4 (Android)Kontinuierlich, 9600 8N1 (zu testen)angeschlossen
ZebraMP7000, MP72 (Scanner mit Waage)KassenwaageRS232 (AUX-Port)SASI = Toledo (Kasse sendet W), 9600 Baud, 7E1 (zu testen)angeschlossen, mehrere gleichzeitig

Dieselbe Liste steht in der Kasse unter Einstellungen → Waage → Alle Waagen (ACLAS_MODELLEN in packages/shared/src/weegschaal.ts, mit der Marke pro Modell).

So wenig wie möglich ausfüllen: Wählen Sie ein Modell, stellt die Kasse den Rest so ein, wie die Marke es ab Werk tut: Anschluss COM-Port / USB am ersten freien Port, 9600 Baud (A&D: 2400) und das Protokoll der Marke (Toledo: Aclas mit 8N1, und mit 7E1 Avery Berkel FX, Avery Weigh-Tronix, Balanzas Marques, Baxtran, Brecknell, CAS, Datalogic, Mettler Toledo, Rice Lake und Zebra; Dialog 06: Avery Berkel FX125, Bizerba, Dibal, Kern & Sohn RPB/RFC, Ohaus Aviator und Precia Molen; DIGI Type B: DIGI und Wedderburn; Gram: Gram; Kontinuierlich: A&D, Adam Equipment, Dini Argeo, Excell Precision, die anderen Kern & Sohn, Minebea Intec, die anderen Ohaus, Precisa, Sartorius, Star Micronics, UWE und Wintec) sowie einen Namen (z. B. OS6X, OS6X 2). Eine PC- oder KI-Waage wird Auf diesem Gerät (z. B. TS6X (ingebouwd); unter Linux am internen Port /dev/ttyS0). Stimmt etwas nicht, findet Suchen den richtigen Port, die Geschwindigkeit und das Protokoll.

Auf diesem Gerät (Aclas Scale Module): die Waage zeigt das geeichte Gewicht; die Kasse sendet den Kilopreis und die Tara (als Vortara) und übernimmt den Betrag, den die Waage berechnet, genau wie bei Dialog 06.

Software von Aclas ist in der Kasse enthalten: das Scale Module für Windows (aclas-module), AclasScaleDriver für Android (aclas-android) und das Aclas Sync SDK für Windows und Linux (aclas-sdk). Aclas erlaubt uns, sie mitzuliefern. Die Installer für Windows und Linux bringen sie mit; nichts separat herunterzuladen oder zu installieren.

Bluetooth (z. B. die OS6X): Koppeln Sie die Waage zuerst. Windows macht daraus einen COM-Port (Bluetooth-Einstellungen → Weitere Bluetooth-Optionen → COM-Anschlüsse), Linux /dev/rfcomm0: Tragen Sie diesen Port ein. In der Android-App tragen Sie die Bluetooth-Adresse ein (00:11:22:AA:BB:CC); die App fragt einmal nach der Berechtigung für Geräte in der Nähe und verbindet über Bluetooth SPP.

KI-Waagen (Produkterkennung): die Kamera erkennt das Produkt in der Aclas-Software auf der Waage. Das Wiegen läuft über das Scale Module (auf diesem Gerät) oder den RS232-Port; KI-Etikettenwaagen drucken nach dem Erkennen ein Etikett mit Strichcode, das die Kasse scannt (wie bei der TS6X).

Aclas AI Recognition Plugin (KI-Waage mit der Kasse darauf, z. B. die iS6X mit Windows): Das Plugin von Aclas erkennt das Produkt und tippt dessen Strichcode in die Kasse ein, genau wie ein Scanner (mit Enter danach); der Bestellbildschirm setzt das Produkt mit dem Gewicht auf die Bestellung. So richten Sie es ein:

Aclas OS6X (POS-Waage an der Kasse, RS232/USB; so funktionieren auch die anderen angeschlossenen Waagen):

Etiketten scannen (Häkchen bei der Waage: Aclas TS6X, eine andere PC- oder KI-Waage, die LS-Serie oder die LH15X; Waage + Etikettendrucker, eine pro Betrieb):

Verwaltungsportal: Die Meldung an das Portal hat die Funktion Waage (A&D, Aclas, Adam Equipment, Avery Berkel, Avery Weigh-Tronix, Balanzas Marques, Baxtran, Bizerba, Brecknell, CAS, Datalogic, Dibal, DIGI, Dini Argeo, Excell Precision, Gram, Ishida, Kern & Sohn, Mettler Toledo, Minebea Intec, Ohaus, Precia Molen, Precisa, Rice Lake, Rongta, Sartorius, Star Micronics, T-Scale, UWE, Wedderburn, Wintec, Zebra) mit an/aus und welchen Waagen pro Modell (z. B. TS6X (op dit apparaat), 2x OS6X, PS1CX, Ariva-S, DS-781, LS6RX, 5 producten per kilo); keine IP-Adressen, COM-Ports oder Bluetooth-Adressen.

Eichrecht: Eine Waage, mit der verkauft wird, muss geeicht sein (Klasse III, wie die OS6X). Mit Toledo/kontinuierlich rechnet die Kasse mit dem Gewicht, das die Waage liefert; mit Dialog 06 berechnet die geeichte Waage den Preis selbst.

Code: packages/shared/src/weegschaal.ts (Protokolle, Etiketten, PLU-Datei), apps/pos-server/src/lib/weegschaal.ts und routes/weegschaal.ts; Bildschirme WeegschaalInstellingen.tsx und WeegDialoog.tsx.

Thuisbezorgd.nl / Takeaway.com

Bestellungen von Thuisbezorgd.nl (in der App: Thuisbezorgd) kommen direkt in die Kasse, ohne Zwischenanbieter (kein Deliverect, HubRise o. Ä.): Just Eat Takeaway JET Connect kommuniziert mit dem Verwaltungsportal von Pin Voordeel, und die Kasse holt ihre Nachrichten dort ab.

In Belgien heißt die Plattform Takeaway.com: dasselbe Unternehmen (Just Eat Takeaway) und dieselbe Anbindung. Bei einem belgischen Betrieb steht in den Bildschirmen, Meldungen, auf dem Küchenbon und im Verwaltungsportal überall Takeaway.com statt Thuisbezorgd.nl. Im Folgenden steht Thuisbezorgd für beide.

Warum über das Portal? Die Kasse braucht nur PORTAAL_URL und PORTAAL_SLEUTEL (siehe Verwaltungsportal) und stellt nur ausgehende Anfragen.

Einrichten (Einstellungen → Lieferplattformen → Thuisbezorgd.nl / Takeaway.com, Recht Betrieb, Zahlungen und Drucker einstellen; früher stand dies unter Einstellungen → Betrieb):

  1. Thuisbezorgd verwenden einschalten (wirkt sofort, unabhängig von Speichern).
  2. Bei Thuisbezorgd anmelden. Der Betrieb wählt danach bei Thuisbezorgd (Partner Hub oder Account-Manager) OptimumPOS / Pin Voordeel als Kasse. JET startet dann eine Onboarding-Sitzung; das Portal sucht die angemeldete Kasse dazu (nach PLZ und Name, sonst verknüpft Pin Voordeel die Sitzung manuell im Portal), sendet die Konfiguration und fordert von der Kasse das Menü an. Danach geht die Anbindung live.
  3. Artikel anhaken, die über Thuisbezorgd bestellbar sind (pro Gruppe oder einzeln), ggf. mit einer Beschreibung für Thuisbezorgd. Das Menü (Preis, Optionen als Modifier, Allergene, MwSt.) wird automatisch übernommen; PLU = ID des Artikels/der Option. Nach einer Änderung im Katalog aktualisiert die Kasse das Menü innerhalb von 30 Sekunden; nur "ausverkauft"/"wieder lieferbar" läuft über die Verfügbarkeits-API.
  4. Öffnungszeiten Thuisbezorgd: getrennt für Lieferung und Abholung (z. B. 16:00-22:00, mehrere Blöcke mit Komma getrennt). Sie werden mit der Schaltfläche Öffnungszeiten speichern darunter gespeichert und gehen als Service Times an Thuisbezorgd, sobald die Anbindung fertig ist.
  5. Vorübergehend geschlossen / Wieder geöffnet (in NL/BE spätestens am nächsten Morgen um 07:00 wieder geöffnet).

Bestellungen. Eine Bestellung wird zu einer normalen Bestellung ohne Tisch (bezorgen oder afhalen, Gruppenname TB <ordernummer>) mit den Preisen, die der Kunde bezahlt hat, plus Liefer-/Servicegebühren als eigene Zeile und Rabatt von Thuisbezorgd als Rabattzeile; stimmt die Summe trotzdem nicht, kommt eine Zeile "Differenz Thuisbezorgd" hinzu. Der Küchenbon geht sofort an Küche/Bar (abschaltbar). Die Kasse bestätigt innerhalb von Sekunden an das Portal, das es an JET meldet; klappt das nicht innerhalb von 3 Minuten oder ist die Kasse offline, erhält JET "fehlgeschlagen" und der Betrieb fällt auf das Orderpad zurück.

Taste Thuisbezorgd in der oberen Leiste (mit Anzahl laufender Bestellungen): Liste, Kunde und Adresse, Fertig-/Lieferzeit und die Zeitleiste (Track & Trace): eingegangen, Fahrer unterwegs zum Betrieb, Fahrer beim Betrieb, unterwegs zum Kunden, geliefert (von JET), plus eigene Schritte (in Zubereitung, fertig, unterwegs/geliefert bei eigener Lieferung, abgeholt). Eine Live-Karte mit dem Fahrer bietet JET Connect der Kasse nicht an; die sieht der Kunde in der App von Thuisbezorgd. Neue Bestellung, Stornierung und "Fahrer beim Betrieb" lösen eine orangefarbene Leiste und einen Ton aus. Abschließen (online bezahlt) kassiert mit der Zahlungsart online; zahlt der Kunde an der Tür, ganz normal kassieren. Eine Stornierung von Thuisbezorgd lässt die Bestellung entfallen und druckt einen "STORNIERT"-Küchenbon.

Code: apps/pos-server/src/lib/thuisbezorgd.ts, routes/thuisbezorgd.ts; Bildschirme ThuisbezorgdInstellingen.tsx und Thuisbezorgd.tsx. Portalseite: horecapos-portaal/src/thuisbezorgd.mjs (siehe README des Portals).

Zählung im Verwaltungsportal. Die Anzahl der Thuisbezorgd-Bestellungen pro Tag ist in der Meldung an das Verwaltungsportal enthalten (verkoopTelling in lib/portaal.ts): eingegangen und nicht storniert, am Tag des Eingangs. Eine Thuisbezorgd-Bestellung, die in der Kasse kassiert wird (auch Abschließen (online bezahlt)), zählt dort nicht noch einmal bei Abholung/Lieferung. Die Thuisbezorgd-Daten liegen in der Kassendatenbank und sind daher ganz normal in den Backups der Kasse enthalten.

Webshop und Online-Bestellung

Jeder Betrieb kann einen eigenen Webshop bekommen: eine Bestellseite (und App) im eigenen Corporate Design für Abholung, Lieferung, Bestellen am Tisch per QR-Code und Reservieren, mit Online-Bezahlung (MultiSafepay oder Buckaroo) oder Bezahlung bei Abholung/Lieferung. Der Webshop ist ein eigenes Projekt, horecapos-webshop (Node.js, siehe die README dort), und läuft auf demselben Server wie das Verwaltungsportal.

Einschalten und Einrichten erfolgt in der Webshop-Verwaltung: Taste Webshop verwalten im Kundenportal (Inhaber) oder bei der Installation im Verwaltungsportal (Pin Voordeel). Dort finden Sie Ein/Aus, die Webadresse (<zaak>.<webshopdomein> oder eine eigene Domain), Corporate Design (Farben, Logo, Titelbild, Schriftart), Öffnungszeiten und Zeitfenster für Abholung und Lieferung, Liefergebiet (Postleitzahlen, Radius oder ein Gebiet auf der Karte, mit Kosten und Mindestbetrag), Bezahlen, Rabattcodes, Texte, Sprachen, QR-Codes für die Tische, Reservieren und die App (installierbar als PWA; eine Android-App über eine Trusted Web Activity), und Push-Benachrichtigungen (optional, standardmäßig aus): Der Gast schaltet auf der Seite seiner Bestellung eine Benachrichtigung ein und erhält eine Push-Benachrichtigung, wenn die Bestellung fertig oder unterwegs ist; wer möchte, bekommt auch ab und zu ein Angebot, das der Betrieb in der Webshop-Verwaltung (Registerkarte Push-Benachrichtigungen) versendet. Funktioniert auf Android und Computern (Chrome, Edge, Firefox, Samsung Internet), in der Android-App sowie auf iPhone und iPad (iOS 16.4 oder neuer), wenn der Gast den Webshop zum Home-Bildschirm hinzufügt. Es werden keine SMS oder E-Mails verschickt und kein Name und keine Nummer gespeichert. Details in der README des Webshops.

Menü. Die Kasse sendet das Menü automatisch: alle aktiven Produkte (nicht nach Kilo), pro Produktgruppe, mit Preis, Auswahloptionen, Allergenen, ausverkauft und dem Produktfoto, dazu die Tische und die Daten des Betriebs sowie welche Marketingkanäle eingeschaltet sind (für das Häkchen "Angebote erhalten" beim Bezahlen, siehe SMS- und E-Mail-Marketing). Das geschieht beim Start, sobald der Webshop eingeschaltet wird, innerhalb von 30 Sekunden nach einer Änderung im Katalog und innerhalb weniger Sekunden nach einer Änderung unter Einstellungen → Betrieb, etwa Marketing oder die Kundenkarte (oder mit Menü jetzt senden). Ein Produkt aus dem Webshop heraushalten können Sie in der Webshop-Verwaltung (ausblenden) oder in der Datenbank mit artikel.webshop = false.

Bestellungen. Abholung und Lieferung werden zu einer normalen Bestellung ohne Tisch (Gruppenname WEB <bestelnummer>) mit den Preisen, die der Gast gesehen hat, dazu Lieferkosten und Transaktionskosten als eigene Zeile und ein Rabattcode als Rabattzeile; stimmt die Summe trotzdem nicht, kommt eine Zeile "Differenz Webshop" hinzu. Das Trinkgeld des Gastes zählt nicht als Umsatz: Es kommt bei Abschließen (online bezahlt) als Trinkgeld in die Zahlung. Bestellen am Tisch (QR-Code) kommt auf die offene Rechnung dieses Tisches (online bezahlt: als eigene Gruppe an diesem Tisch). Der Küchenbon geht sofort an Küche/Bar (abschaltbar im Fenster Webshop). Die Kasse bestätigt innerhalb von Sekunden mit der Bonnummer; der Gast erhält dann "eingegangen" und eine E-Mail. Ist die Kasse offline, nimmt der Webshop keine Bestellungen an (der Gast sieht das sofort) und mailt dem Betrieb, wenn eine Bestellung zu lange liegen bleibt. Reservierungen aus dem Webshop kommen in Reservierungen (nur wenn Reservieren in der Kasse eingeschaltet ist). Ist ein Maximum pro Zeitfenster eingestellt (Lieferung und Zeitfenster), zählen Webshop-Bestellungen mit einer Zeit darin mit.

Belgien (Blackbox). Eine Webshop-Bestellung geht sofort als Bestellung (signOrder) an die Blackbox, vor dem Arbeitsbon, genau wie Bestellen an der Kasse. Klappt das nicht, kommt sie nicht in die Kasse und der Webshop sendet sie später erneut. Was noch nicht mit der Blackbox getestet ist, ist im Menü für den Webshop aus (Gutscheine, Rabattcodes, auf Rechnung, aufs Zimmer, Menüs, Optionen mit Aufpreis, Happy Hour und Trinkgeld) und wird abgelehnt, wenn ein alter Webshop es trotzdem sendet. Abschließen prüft Trinkgeld, auf Rechnung und aufs Zimmer wie die Kasse.

Aufs Zimmer (Hotelanbindung, Einstellungen → Hotel → Selbstbedienung → Im Webshop): Das Menü bekommt kamer: { maxBedrag }; der Webshop sendet betaling.wijze = "kamer" mit kamer und achternaam. Die Kasse prüft den Gast bei der Hotelsoftware (nicht am Tisch, nicht mit Gutschein) und speichert ihn bei der Bestellung; Abschließen (aufs Zimmer) rechnet aufs Zimmer ab und bucht den Bon auf die Hotelrechnung. Sammelrechnung bei auf Rechnung: Der Bon steht dann als offener Posten.

Taste Webshop in der oberen Leiste (mit Anzahl laufender Bestellungen): Liste, Kunde und Adresse, gewünschte Zeit oder "so schnell wie möglich", Zahlungsart und der Zeitverlauf. Die Schritte In Zubereitung, Fertig und Unterwegs sieht der Gast live im Webshop (und per E-Mail, wenn der Betrieb das möchte). In der Kasse kassiert = Abgeschlossen; Abbrechen storniert nur die Zeilen dieser Webshop-Bestellung, druckt einen "STORNIERT"-Küchenbon, und eine online bezahlte Bestellung erstattet der Webshop zurück. Angekommen, No-Show oder storniert bei einer Reservierung geht ebenfalls an den Webshop zurück. Eine neue Bestellung oder Reservierung zeigt einen orangefarbenen Balken und gibt einen Ton aus.

Code: apps/pos-server/src/lib/webshop.ts, routes/webshop.ts; Bildschirm Webshop.tsx. Portalseite: horecapos-portaal/src/webshop.mjs.

Kasse und Webshop gleich (jeder Teil einzeln einschaltbar, standardmäßig aus; ein älterer Webshop ignoriert die neuen Felder). Was in der Kasse eingeschaltet ist, funktioniert auch im Webshop:

Das Menü für den Webshop hat dafür versie: 2 mit den Feldern menuArtikelen, allergenenAan, happyhours, menus, klantenkaart, cadeaubon, kortingscodes, pauze, drukteMin, volgt, bezetting, reserveren.online, ayce, opRekening, wachtlijst und upsell. Die Bestätigung an das Portal enthält außerdem cadeaubonnen (Codes), klant (Punkte) und plek (Warteliste).

Zählung im Verwaltungsportal. Abholung und Lieferung über den Webshop werden separat gezählt (webshop, webshopGeannuleerd in verkoopTelling), am Tag des Eingangs, und nicht noch einmal bei Abholung/Lieferung. Bestellen am Tisch zählt ganz normal beim Tisch.

Kartenzahlung und Kartenterminals

Einstellungen → Bezahlen (nur Administrator):

Gibt es mindestens ein Terminal mit API-Schlüssel (oder ist der Testmodus eingeschaltet), startet Kassieren → Karte / Bancontact die Zahlung automatisch am Terminal, für den Betrag, den der Server berechnet.

Solange die Anbindung aktiv ist, akzeptiert der Server "Karte" nur mit einer erfolgreichen Terminalzahlung für genau diese Bestellung und diesen Betrag. Die Anfragen gehen wie im offiziellen PHP-SDK als normales Formular, mit der Reserve-API (api-backup.pinvandaag.com), falls die Haupt-API nicht reagiert. Jede Antwort der API steht mit [pin] im Serverfenster, praktisch bei Störungen. Eine erfolgreiche Zahlung, die noch nicht verarbeitet wurde (z. B. Tablet ausgefallen), wird beim nächsten Kassieren dieser Bestellung wiedergefunden.

Trinkgeld (Karte, bar und Gutschein)

Im Kassierbildschirm gibt es bei jeder Zahlungsart eine Reihe Trinkgeldtasten: Keine, 5%, 10%, 15% (aufgerundet auf 10 Cent), Aufrunden (auf den nächsten vollen Euro) und Anderer Betrag. Bei Karte zahlt der Kunde Betrag + Trinkgeld in einem Schritt am Terminal; bei bar zählt das Trinkgeld zum Wechselgeld und zur Kassenschublade. Auf dem Beleg steht der per Karte bezahlte Betrag mit "davon Trinkgeld" darunter; die SUMME und die MwSt. bleiben gleich, denn Trinkgeld ist kein Umsatz. Im X/Z-Bericht steht das Trinkgeld pro Zahlungsart und als "Trinkgeld gesamt".

Der Administrator stellt die Trinkgeldtasten unter Einstellungen → Betrieb → Trinkgeld ein: ein/aus, welche Prozentsätze (höchstens 4, z. B. "5, 10, 15"), ob die Taste "Aufrunden" dabei ist und bei welchen Zahlungsarten (Karte, bar, Gutschein) Trinkgeld möglich ist. "Keine" und "Anderer Betrag" sind immer dabei.

"Machen Sie … daraus" ist immer da, bei jeder Zahlungsart, auch wenn die Trinkgeldtasten ausgeschaltet sind (keine Einstellung): Der Kunde rundet die Rechnung selbst auf und die Differenz ist Trinkgeld. Es gibt Tasten mit dem nächsten vollen Euro und den nächsten runden Beträgen (z. B. € 28,00 → 29, 30, 40; € 44,00 → 45, 50, 60) und Anderer Gesamtbetrag, um die Summe selbst einzutippen. Nochmals auf die gewählte Taste tippen = nicht aufrunden. Höchstens € 500 Trinkgeld (gleiche Grenze wie beim Kassenserver).

Kein Internet

Die Kasse arbeitet im lokalen Netzwerk und braucht kein Internet; nur Kartenzahlung über die Anbindung schon. Hat der Betrieb kein Internet, steht in der oberen Leiste Kein Internet · Karte manuell (jede Minute geprüft). Im Kassierbildschirm erscheint dann, und auch nach einem fehlgeschlagenen Start am Terminal, die Taste Bereits am Terminal bezahlt: Kassieren Sie den Betrag am Terminal selbst und erfassen Sie ihn so.

Tischpläne und Tische

Tischplan-Editor

Einstellungen → Tischpläne (nur Administrator):

Konfiguration auf einen zweiten Betrieb übertragen

Einstellungen - Import/Export

Einstellungen → Import/Export (nur der Administrator). Haben Sie einen Betrieb komplett eingerichtet, exportieren Sie die Konfiguration in eine .json-Datei und importieren Sie diese in die Kasse des zweiten Betriebs. Pro Bereich wählbar:

Werden nie übernommen: Name, Adresse, PLZ, Ort, Telefon, E-Mail, USt-IdNr. und Beleg-Schlusszeile des Betriebs, die E-Mail-Adresse für den Z-Bericht, Kartenterminals und ihre Schlüssel, Personal und PINs sowie alle Umsätze, Belege, Kunden und Lagerbestände.

Der Import ist stark abgesichert: eine große rote Warnung, ein Häkchen "Mir ist bewusst...", erneut die eigene PIN des Administrators, keine offenen Bestellungen, dasselbe Land (MwSt.-Sätze) und vorab automatisch ein Backup. Der Import erfolgt in einer einzigen Transaktion: Geht etwas schief, ändert sich nichts. Bestehende Artikel, Gruppen, Zutaten und Tische werden nicht gelöscht, sondern aus der Kasse genommen (wie bei Löschen), damit alte Belege und Berichte stimmig bleiben.

Aus einer anderen Kasse importieren

Umsteigen, ohne alles abzutippen. Immer verfügbar (ohne Schalter): Unter Einstellungen → Import/Export (nur der Administrator) gibt es den Bereich Aus einer anderen Kasse importieren.

Sprachen (42, u. a. Türkisch, Arabisch, Darija, Berberisch, Polnisch, Bulgarisch, Ungarisch, Russisch, Serbisch, Albanisch, Persisch, Tigrinya, Amharisch, Somali, Papiamento, Sranantongo, Hindi, Urdu, Indonesisch, Vietnamesisch, Syrisch-Aramäisch, Chinesisch und Ukrainisch)

Neben der ©-Taste rechts unten gibt es auf jedem Bildschirm eine Taste mit der Sprache (z. B. NL und dem Fähnchen). Tippen Sie darauf für das Auswahlmenü: Die Sprachen stehen in alphabetischer Reihenfolge, mit dem Namen in der eigenen Sprache vor der Flagge: Bahasa Indonesia (Indonesisch), Čeština (Tschechisch), Darija (Marokkanisch-Arabisch in lateinischer Schrift), Deutsch, English, Español, Français, Hrvatski (Kroatisch), Italiano, Kurdî (Kurmancî), Latviešu (Lettisch), Lietuvių (Litauisch), Magyar (Ungarisch), Nederlands, Papiamentu (Papiamento), Polski, Português, Română, Shqip (Albanisch), Slovenčina (Slowakisch), Soomaali (Somali), Sranantongo, Srpski (Serbisch, in lateinischer Schrift), Tarifit (Riff-Berberisch), Tiếng Việt (Vietnamesisch), Türkçe, dann in kyrillischer Schrift Български (Bulgarisch), Русский (Russisch) und Українська (Ukrainisch), danach die Sprachen in arabischer Schrift: اردو (Urdu), الدارجة (Darija), العربية (Arabisch), دری (Dari), فارسی (Persisch, Farsi), پښتو (Paschtu) und کوردی (سۆرانی) (Kurdisch Soranî), dann in syrischer Schrift ܣܘܪܝܝܐ (Syrisch-Aramäisch, Suryoyo), in Devanagari हिन्दी (Hindi), in Ge'ez-Schrift ትግርኛ (Tigrinya) und አማርኛ (Amharisch), in Tifinagh ⵜⴰⵎⴰⵣⵉⵖⵜ (Tamazight, Berberisch), und zuletzt 中文(简体)(Chinesisch, vereinfachte Schrift). Alle Bildschirme, Tasten, Meldungen und Fehlermeldungen des Kassenservers werden übersetzt.

Für Entwickler: Jeder sichtbare Text steht im Code als vt('Nederlandse tekst') (apps/pos-web/lib/i18n.ts); der niederländische Text ist der Schlüssel. Die Übersetzungen stehen in apps/pos-web/lib/vertalingen/<taal>.ts. Fehlt eine Übersetzung, zeigt die Kasse den niederländischen Text; der Test i18n (pos-web) prüft, dass jeder Text in jeder Sprache übersetzt ist und die {0}-Platzhalter stimmen. Meldungen des Kassenservers bleiben niederländisch und werden im Browser übersetzt (auch mit {0}, z. B. einem Artikelnamen in der Meldung).

Drucker einrichten

Eine neue Kasse hat keine Drucker. Melden Sie sich als Administrator an (Demo: 1111) und wählen Sie Einstellungen in der oberen Leiste.

Gleiche Artikel werden beim Drucken zusammengefasst: zweimal 1x Cola wird zu 2x Cola, auf dem Küchenbon und auf dem Kassenbon. Nur Artikel mit denselben Optionen und derselben Bemerkung werden zusammengefasst.

Der Linux-Installer fügt den Benutzer der Kasse den Gruppen lp und dialout hinzu, damit die Kasse USB- und serielle Drucker verwenden darf.

Hilfe benötigt?

Optimum POS · 085 560 00 60 · support@optimumpos.nl · Mo–Fr 9:00–20:00, Sa–So 14:00–20:00