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.
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.
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.
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.
- Tippen Sie auf einen Tisch: frei = neue Bestellung; eine Gruppe = sofort diese Gruppe; mehrere Gruppen = erst wählen, oder + Neue Gruppe (Name darf leer bleiben).
- Im Bestellbildschirm steht oben die Gruppenleiste: zwischen den Gruppen wechseln, + Gruppe, Gruppenname (z. B. „Jansen“) und Teilen / verschieben.
- Teilen / verschieben: Wählen Sie pro Zeile, wie viele mitgehen (bei 3× Pils z. B. 1) und zu welcher Gruppe, oder legen Sie eine neue Gruppe an. So verschieben Sie etwas, das auf der falschen Rechnung steht, oder teilen nachträglich „jeder zahlt seinen Teil“. Wird eine Gruppe leer, entfällt sie.
- Mehrere Teile auf einmal: Mit + Noch ein Teil legen Sie einen Teil bereit und wählen den nächsten (z. B. Fisch und einen Dry Martini an Tisch 2, den Rest an Tisch 35). Ein Teil kann auch an + Anderer Tisch gehen (dort als neue Gruppe). Mit Verschieben geht alles auf einmal. ½ teilt eine Zeile in der Mitte, auch eine halbe Flasche (0,667 wird zu 2 × 0,3335).
- Zusammenführen: alles von einem oder mehreren anderen Tischen (oder Gruppen an diesem Tisch) auf diese Rechnung, in einem Schritt.
- Belgien: Aufteilen oder Zusammenführen in einem Schritt ist bei der Blackbox ein einziger Tischwechsel, wie es der FÖD Finanzen verlangt (UC242, UC251, UC252, UC4119bis). Wird nach der Bestellung etwas gestrichen oder gibt es Rabatt auf eine bereits bestellte Zeile, geht das mit der nächsten Meldung dieses Tisches mit (Bestellung, vorläufige Rechnung, Tischwechsel), sonst mit dem Verkauf: die alte Zeile negativ und die neue positiv (UC226, UC4102, UC4104, UC4107, UC4110).
- Im Tischbildschirm zeigt ein orangefarbener Punkt, wie viele Gruppen es gibt; der Betrag ist die Summe aller Gruppen.
- Kassenbon und Küchenbon zeigen „Tisch 5 - Gruppe 2“ oder „Tisch 5 - Jansen“.
Rechnung beim Kassieren teilen
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):
- Gleichmäßig aufteilen: Wähle mit − und +, auf wie viele Personen (standardmäßig die Gästezahl, oder 2, wenn die Kasse keine Personenzahl erfasst). Der Bildschirm zeigt den Betrag pro Person; jeder zahlt seinen Anteil mit Karte, bar oder Gutschein (auf Wunsch mit Trinkgeld). Nach jedem Anteil wird heruntergezählt ("noch 3 Personen"); der Letzte zahlt genau den Rest.
- Eigener Betrag: Jemand zahlt einen festen Betrag (z. B. € 20); der Rest bleibt offen.
- Pro Artikel…: öffnet Teilen / verschieben, um Artikel auf eine separate Rechnung zu setzen und diese separat zu kassieren (wie oben).
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)
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).
- Taste Lieferung im Tischbildschirm (neben Abholung): Geben Sie Name, Telefon und Adresse ein (mit Adresse schnell eingeben eingeschaltet: PLZ und Hausnummer nachschlagen). Die Kasse sucht das Liefergebiet und zeigt die Lieferkosten, den Mindestbetrag und "kostenlos ab". Liegt die Adresse außerhalb der Gebiete, ist keine Lieferung möglich.
- Liefergebiete: nach Postleitzahl (Bereiche und einzelne Postleitzahlen, z. B.
5000-5049, 5051, 5052 AB), innerhalb eines Radius in km vom Betrieb (Luftlinie) oder ein Gebiet auf der Karte, das Sie selbst einzeichnen. Radius und Gebiet funktionieren nur mit niederländischen Adressen (Lage über PDOK). Pro Gebiet: Lieferkosten, Mindestbetrag, kostenlos ab und Extra-Minuten; es gilt das erste passende Gebiet von oben, daher lassen sich die Arten kombinieren (z. B. zuerst einige Postleitzahlen, dann ein Gebiet, dann ein Radius für den Rest). Keine Gebiete eingerichtet = überall liefern, ohne Kosten oder Mindestbetrag. Die Gebiete des Webshops richten Sie separat ein (Webshop-Verwaltung). - Gebiet auf der Karte: Wählen Sie bei einem Liefergebiet die Art Gebiet auf der Karte und dann Auf der Karte zeichnen. Klicken Sie auf die Karte, um Punkte zu setzen (mindestens 3); ziehen Sie einen Punkt, um ihn zu verschieben, klicken Sie auf einen Punkt, um ihn zu entfernen, und ziehen Sie den Kreis in der Mitte einer Kante, um dazwischen einen Punkt einzufügen. Die Karte zeigt auch die Radius-Gebiete und den Betrieb. Die Kartenkacheln stammen von OpenStreetMap, daher braucht die Karte Internet; das Liefern selbst nicht (außer beim Nachschlagen der Adresse). Kann die Adresse nicht nachgeschlagen werden, meldet die Kasse das statt "außerhalb der Liefergebiete".
- Lieferkosten stehen als Zeile "Lieferkosten" auf der Bestellung und werden nach jeder Änderung neu berechnet (kostenlos ab, keine Produkte = keine Kosten), solange noch nichts bezahlt ist. Unter dem Mindestbetrag ist Kassieren nicht möglich; der Bestellbildschirm zeigt, wie viel noch fehlt, mit der Taste Doch Abholung (Lieferkosten und Mindestbetrag entfallen).
- Zeit: So schnell wie möglich (jetzt + Lieferzeit, plus die Extra-Minuten des Gebiets) oder ein Zeitfenster von heute. Sind bei Thuisbezorgd Öffnungszeiten eingestellt, gelten diese auch hier.
- Maximum pro Zeitfenster (0 = kein Maximum; Zeitfenster 5 bis 60 Minuten): für Abholung und Lieferung zusammen; auch Webshop-Bestellungen in der Kasse zählen mit. Ist ein Maximum eingestellt, fragt auch Abholung nach einer Zeit, und volle Zeitfenster sind nicht wählbar. Zwei Kassen gleichzeitig um den letzten Platz: Eine bekommt ihn.
- Auf dem Küchenbon stehen Adresse, Name, Telefon und Zeit; in "Ohne Tisch" und oben auf dem Küchenbon z. B. "Lieferung – 18:30 Jansen".
Erweiterungen (alles standardmäßig aus; ohne diese Einstellungen funktioniert alles genau wie oben):
- Eigene Öffnungszeiten für Abholung und Lieferung (pro Wochentag, z. B.
16:00-21:00oder11:30-14:00, 17:00-22:00; über Mitternacht geht:17:00-01:00; leer = an diesem Tag geschlossen). Aus = wie bisher (die Zeiten bei Thuisbezorgd, falls vorhanden, sonst den ganzen Tag). - Schließtage (z. B.
25-12-2026, 26-12-2026): dann keine Abholung oder Lieferung. - Vorbestellen: 0 (nur heute, wie bisher) bis 14 Tage. Im Fenster Lieferung/Abholung wählen Sie dann zuerst den Tag; ein späterer Tag steht auf dem Küchenbon vor der Uhrzeit.
- Hochbetrieb: so viele Minuten extra bei "so schnell wie möglich" (Kasse und Webshop). Auch schnell einzustellen mit der Taste Webshop in der oberen Leiste.
- Belgische Adressen (Postleitzahl mit 4 Ziffern): Bei einem Radius oder Gebiet auf der Karte sucht die Kasse die Lage über OpenStreetMap (Nominatim; Straße und Ort nötig).
- Der Webshop folgt der Kasse: Die Kasse ist maßgeblich. Der Webshop verwendet dann die Liefergebiete, Liefer- und Abholzeit, das Zeitfenster, das Maximum pro Zeitfenster, die Öffnungszeiten (falls hier eingestellt), Schließtage und Tage im Voraus der Kasse und zählt die an der Kasse aufgenommenen Bestellungen im Zeitfenster mit. Aus = der Webshop hat seine eigenen Einstellungen (Webshop-Verwaltung), wie bisher. Abholung/Lieferung ein oder aus bleibt Sache des Webshops.
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:
- Kunden per Telefonnummer suchen bei Lieferung und Abholung: Tippen Sie die Nummer im Lieferbildschirm ein, zeigt die Kasse den Kunden mit Adresse und den früheren Bestellungen; Daten übernehmen füllt Name, E-Mail und Adresse aus. Funktioniert auch ohne Telefonanlage.
- Rufnummernerkennung: Ruft ein Kunde an, meldet die Telefonanlage (oder das Telefon, die FRITZ!Box, das Modem oder das Android-Telefon) die Nummer. Auf den Bildschirmen erscheint eine Meldung, wer anruft: Name, Adresse, die letzten Bestellungen (mit den Gerichten und dem Betrag, auch aus dem Webshop, von Thuisbezorgd und den Lieferplattformen), die Summe und eine Reservierung. Mit Lieferung aufnehmen oder Abholung aufnehmen öffnet sich der Lieferbildschirm mit allem bereits ausgefüllt (bei aktivierter Lieferung und Zeitfenstern); die Bestellung wird dem Anruf zugeordnet und die Meldung verschwindet auf allen Bildschirmen. Schaltfläche 📞 in der oberen Leiste: die Anrufe der letzten 24 Stunden. Pro Bildschirm abschaltbar (Meldungen auf diesem Bildschirm anzeigen).
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):
| Quelle | Für | Einrichtung |
|---|---|---|
| Webhook / Action URL | 3CX (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 UCM | Adresse, Port (5038; Grandstream UCM 7777), AMI-Benutzer und Passwort (Rechte call) |
| FRITZ!Box | FRITZ!Box mit Telefonie | Adresse (fritz.box) und Port 1012; Callmonitor einmal einschalten mit #96*5* |
| USB-Caller-ID-Modem | analoger Festnetzanschluss mit Rufnummernanzeige | serieller Port (COM3, /dev/ttyACM0), Baud und Init-Befehl (Standard AT+VCID=1) |
| Android-Telefon | das eingebaute Telefon eines Android-Telefons des Betriebs | HorecaPOS-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).
- 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).
- Wähle den Fahrer (einen Mitarbeiter) und das Wechselgeld, das mitgeht (standardmäßig der Betrag aus der Einstellung), und tippe auf Tour erstellen.
- 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.
- 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.
- 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):
- Pro Bestellung wählst du bar, Karte an der Tür, bereits bezahlt oder nicht geliefert (zurück). Was der Fahrer gemeldet hat, ist schon ausgefüllt.
- Die Kasse rechnet jede Bestellung mit offenem Betrag ab, ohne neuen Kassenbeleg (der Kunde hat den Beleg schon; erneut drucken unter Belege). Eine nicht gelieferte Bestellung wird von der Tour genommen und bleibt offen, damit sie auf eine nächste Tour kann.
- Du siehst, was erwartet wird: das Wechselgeld plus das bar Eingenommene. Gib ein, was der Fahrer abgibt, oder zähle nach Scheinen und Münzen (Nach Scheinen und Münzen zählen). Die Kasse zeigt, ob es stimmt oder wie viel zu viel oder zu wenig ist.
- Das Wechselgeld geht zurück in die Schublade (Geld rein). Die Differenz steht bei der Tour und im Protokoll und erscheint auch als Kassendifferenz im Z-Bericht.
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:
- ob die Bestellung zubereitet wird, unterwegs ist oder geliefert wurde;
- die erwartete Zeit: vom Standort des Fahrers über die Adressen, die zuerst kommen, sonst die Wunschzeit;
- wie viele Adressen noch vorher kommen (ohne andere Adressen zu zeigen);
- mit Der Fahrer live auf der Karte auch der Fahrer, der Betrieb und die eigene Adresse auf einer Karte (OpenStreetMap). Der Fahrer schaltet das Teilen des Standorts selbst auf dem Handy ein (Meinen Standort teilen). Der Standort wird nur übertragen, solange die Seite geöffnet ist; die Seite hält den Bildschirm an.
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:
- Bestellungen, die nah beieinander liegen und deren Wunschzeiten innerhalb des Zeitfensters liegen (standardmäßig 30 Minuten), kommen zusammen;
- bis zur maximalen Anzahl Adressen pro Tour (standardmäßig 4), solange die Tour (hin, alle Adressen und zurück zum Betrieb) nicht länger als das Maximum dauert (standardmäßig 45 Minuten);
- pro Tour die beste Reihenfolge, die Entfernung (km), die Fahrzeit hin und zurück und pro Adresse die erwartete Ankunft bei Abfahrt jetzt. Liegt diese nach der Wunschzeit, steht später als gewünscht dabei.
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:
- Schätzung (Standard): Luftlinie mal 1,35 (Umwegfaktor) mit der Geschwindigkeit des Fahrers. Funktioniert ohne Internet und ohne Konto.
- OSRM: Routen über die Straße über einen OSRM-Server. Adresse eintragen (
https://, oderhttp://im eigenen Netzwerk). Der öffentliche Demo-Server (https://router.project-osrm.org) ist nur für gelegentliche Nutzung; für den täglichen Einsatz einen eigenen OSRM-Server aufsetzen oder einen Anbieter nutzen. - OpenRouteService: Routen über die Straße mit eigenem API-Schlüssel (kostenlos erstellbar auf openrouteservice.org, mit Tageslimit). Die Adresse steht standardmäßig auf
https://api.openrouteservice.orgund kann auf einen eigenen Server zeigen. Der Schlüssel bleibt auf der Kasse; die Bildschirme zeigen nur an, dass er eingetragen ist.
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:
- Unter Gekoppelte Handys den Fahrer (einen Mitarbeiter) wählen, eventuell den Namen des Handys, und auf Handy koppeln tippen.
- 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.
- 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:
- Selbst Bestellungen übernehmen: Der Fahrer sieht die Lieferungen, die noch auf eine Tour müssen, hakt an, was mitgeht, und tippt auf Mitnehmen. Die Kasse erstellt die Tour (oder fügt sie hinzu, wenn dieser Fahrer schon eine Tour hat, die noch nicht unterwegs ist); das Standard-Wechselgeld geht mit. Was ein anderer schon genommen hat, geht nicht mehr.
- Selbst losfahren: Losfahren in der App bewirkt dasselbe wie in der Kasse (Wechselgeld aus der Lade, die Kunden werden benachrichtigt).
- Live-Karte: Unter Touren gibt es die Schaltfläche Karte mit dem Betrieb, allen Fahrern, die im Dienst sind, und den Adressen, die noch beliefert werden müssen. Der Fahrer schaltet Im Dienst selbst ein und aus. Die App übermittelt den Standort auch bei ausgeschaltetem Bildschirm (Android: eine Benachrichtigung in der Leiste, solange das Teilen an ist); die Webseite nur, solange sie geöffnet ist. Ohne diese Einstellung wird der Standort nur während einer Tour mit Sendungsverfolgung geteilt.
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).
- Welche Bestellungen: Abholung und Lieferung mit zugesagter Zeit, von der Kasse (Lieferung und Zeitfenster), dem Webshop und Thuisbezorgd.nl / Takeaway.com.
- Verspätet: so viele Minuten (standardmäßig 10) nach der zugesagten Zeit noch nicht fertig oder unterwegs. Fertig oder unterwegs heißt: alles fertig auf dem Küchenmonitor, der Status fertig oder unterwegs im Webshop oder bei Thuisbezorgd, die Nachricht ✉ Fertig / ✉ Unterwegs an den Kunden oder bezahlt. Die Kasse prüft jede Minute.
- Meldung: Schaltfläche Verspätet in der oberen Leiste mit der Anzahl (mit Ton bei einer neuen), mit der zugesagten Zeit pro Bestellung und wie viele Minuten verspätet. Eine Bestellung verschwindet automatisch, sobald sie fertig oder unterwegs ist, oder mit Erledigt; darunter stehen die der letzten 24 Stunden, mit dem Zeitpunkt, wann sie fertig waren. Alles steht im Protokoll.
- Webshop: Die Statusseite des Gastes zeigt, dass es länger dauert, mit der neuen erwarteten Zeit.
- Bei Thuisbezorgd geht das nicht (der Kunde gehört zu Thuisbezorgd): dort nur die Meldung. Ein eigener Text ist möglich;
{naam},{zaak},{code},{korting}und{geldig}werden ausgefüllt. - Gutschein (nur mit Rabattcodes ein): mit der Entschuldigung ein persönlicher Rabattcode für die nächste Bestellung (z. B.
SORRY-7K4Q2M), ein Betrag oder Prozent, einmal einlösbar, eine bestimmte Anzahl Tage gültig, an der Kasse und im Webshop. Die Codes stehen nicht in der Liste unter Rabattcodes. Schlägt das Senden fehl, verfällt der Code. Mit der Schaltfläche in der Kasse nur mit dem Recht Rabatt gewähren. - Aus: Die Meldungen und die ausgegebenen Codes bleiben gespeichert (auch in der Sicherung); die Einstellung ist im Konfigurationsexport enthalten.
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:
- Antippen setzt das Produkt sofort auf die Rechnung (links in der Liste), als neu. Nur du siehst es: Küche und Bar wissen noch nichts davon. Eine neue Zeile ist ein Entwurf: Entfernen, Menge oder Optionen ändern geht noch ganz normal, ohne Storno.
- Bestellen schickt alle neuen Zeilen auf einmal weiter: Die Bons gehen an die Küchen- und Bardrucker (und den Küchenbildschirm), danach stehen die Zeilen auf bestellt. Entfernen geht dann nur noch mit einem Storno (Recht Storno). Auf der Taste steht, wie viele neue Zeilen bereitstehen, z. B. Bestellen (3); gibt es keine neuen Zeilen, ist die Taste grau.
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:
- Gänge: Gang 1 geht sofort in die Küche; Gang 2, 3 und 4 gehen als WARTEN mit, und die Küche beginnt erst, wenn du diesen Gang abrufst (siehe Gänge).
- Runden: Jedes Bestellen ist eine Runde; darauf baut ↻ Noch eine Runde auf.
- Lagerbestand wird abgebucht und ein dosierter Zapfhahn wird freigegeben.
- All-you-can-eat: Ist es zu viel, zu früh oder zu spät für das Arrangement, fragt die Kasse zuerst, ob es trotzdem erlaubt ist.
- Belgien (GKS 2.0): Die Zeilen gehen zuerst als Pro-forma an die Blackbox; klappt das nicht, geht nichts in die Küche und sie bleiben neu.
- Keine Verbindung: Die Bestellung wird gespeichert und geht in die Küche, sobald die Verbindung wieder da ist. Drucker aus: Das Bestellen geht trotzdem durch, der Bon kommt in die Druckwarteschlange (siehe Küchendrucker aus oder kein Küchenbildschirm).
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.
- Pro Bestellung ein Bon, die älteste zuerst, mit Tisch/Abholung, Nummer und wie lange sie schon wartet (orange nach 10, rot nach 20 Minuten).
- Gänge stehen getrennt; ein Gang, der noch nicht abgerufen wurde, steht grau als „WARTEN auf Abruf“. Stornos sind durchgestrichen.
- Tippen Sie auf eine Zeile, um sie als fertig zu markieren, oder auf Fertig für den ganzen Bon. Die Bedienung bekommt dann in der oberen Leiste „Küche: Tisch 5 ist fertig“. Mit Einstellungen → Betrieb → Küchenmonitor → Ton für die Bedienung (standardmäßig aus) piept die Kasse dabei auch („Ding-Dong“, ohne Audiodatei). Der Browser erlaubt Ton erst nach dem ersten Tippen auf den Bildschirm; stellen Sie die Lautstärke des Tablets an.
- Zurückholen zeigt, was in der letzten Stunde als fertig gemeldet wurde; versehentlich Weggetipptes lässt sich so zurückholen.
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.
- Weiterleiten zwischen Stationen, zum Beispiel kalt → warm → Pass. Pro Station legen Sie eine feste nächste Station fest; auf dem Bon steht dann eine Taste → warm (und immer Weiterleiten an…, um eine andere Station zu wählen). Nur die offenen Positionen dieser Station gehen mit. Eine Station braucht keinen Drucker: Tragen Sie Stationen wie Pass bei Stationen ohne Drucker ein. Fertig (und die Meldung an die Bedienung) kommt erst an der letzten Station. Unter "Alle" steht bei einer weitergeleiteten Position, wo sie gerade ist. Jeder Schritt steht bei der Position und im Protokoll.
- Umsortieren: Bons ziehen (Maus) oder mit ◀ ▶ verschieben (Touchscreen). Die Reihenfolge gilt pro Station und für alle Bildschirme dieser Station; neue Bons kommen ans Ende.
- Nächster Gang vom Küchenmonitor: Bei einem Bon mit einem wartenden Gang steht Gang 2 anfordern. Die Bedienung bekommt dann "Küche fordert Gang 2 für Tisch 5 an" (mit Ton) und ruft wie immer ab; auf dem Küchenmonitor steht "Gang 2 angefordert · n Min.", bis der Gang abgerufen ist. Oder wählen Sie Abrufen: Dann ruft der Küchenmonitor den Gang selbst ab, mit dem Arbeitsbon "ABRUF GANG 2", genau wie die Taste in der Kasse.
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:
- Bestellen geht immer. Die Zeilen stehen sofort auf bestellt, die Rechnung stimmt und kassieren ist ganz normal möglich. Drucker werden gleichzeitig angesprochen, und jeder Drucker bekommt höchstens etwa 4 Sekunden: Ein ausgeschalteter Drucker lässt die anderen (und die Bedienung) nicht lange warten.
- Druckwarteschlange. Ein Küchenbon, der nicht gedruckt werden konnte, kommt in die Druckwarteschlange. Der Kassenserver versucht es alle 30 Sekunden erneut, eine Viertelstunde lang; sobald der Drucker wieder funktioniert, kommt er heraus, oben mit SPÄTER GEDRUCKT. Klappt ein nächster Bon auf diesem Drucker wieder, werden die wartenden Bons sofort hinterher gedruckt.
- Nach einer Viertelstunde hört das erneute Versuchen automatisch auf; Jetzt erneut drucken ist dann noch möglich.
- Küchenmonitor. Steht die Bestellung auf dem Küchenmonitor, sieht die Küche sie dort auch, wenn der Drucker aus ist. Wer keinen Küchenmonitor nutzt, verpasst nichts: Die Kasse wartet nirgends auf „Fertig“ von der Küche.
- Die Warteschlange steht nur im Speicher des Kassenservers (nach einem Neustart ist sie leer).
- Auch der Kassenbon: Klappt der nicht, ist trotzdem kassiert (die Kasse meldet „Drucken fehlgeschlagen“), und Sie können später unter Belege eine Kopie drucken.
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:
- gehen diese bei „Bestellen“ zwar schon an die Küche, unter „-- Gang 2 · WARTEN auf Abruf --“, damit die Küche vorbereiten kann;
- steht in der Bestellliste „Gang 2 · wartet“ mit einer Taste Abrufen;
- bekommt die Küche beim Abrufen einen Bon „ ABRUF GANG 2 “ mit dem, was jetzt zubereitet werden muss.
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.
- Einstellungen → Artikel: Bei jedem Artikel die 14 EU-Allergene antippen (Gluten, Krebstiere, Eier, Fisch, Erdnüsse, Soja, Milch, Schalenfrüchte, Sellerie, Senf, Sesamsamen, Sulfite, Lupinen, Weichtiere). In der Artikelliste stehen die Abkürzungen hinter dem Namen.
- Bestellbildschirm: Auf jeder Artikeltaste klein die Abkürzungen (z. B.
Gl Me), und die Taste ⚠ Allergene in der Gruppenleiste zeigt pro Artikel der gewählten Gruppe die Allergene ausgeschrieben, mit der Erklärung der Abkürzungen. - Änderungen an Allergenen werden im Protokoll erfasst (alt → neu). Ist die Einstellung aus, bleiben bereits erfasste Allergene gespeichert.
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:
- einem Namen (steht auf dem Beleg: „Fisch Erwachsener“, „Fisch Kind“);
- einem Preis pro Erwachsenem und pro Kind (inklusive MwSt.) und dem MwSt.-Satz (standardmäßig NL
LAAG, BEB); - den zugehörigen Gerichten (€ 0): ganze Warengruppen und/oder einzelne Artikel (auch aus anderen Gruppen, z. B. Pommes bei Fisch und Fleisch);
- einem Zeitlimit in Minuten (0 = keins);
- Runden: höchstens so viele Gerichte pro Person pro Runde (0 = unbegrenzt) und mindestens so viele Minuten zwischen zwei Runden (0 = keine);
- einem Verschwendungszuschlag pro Stück (0 = keiner).
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:
- Im Bestellbildschirm steht über dem Bon + All-you-can-eat. Wähle pro Arrangement die Anzahl Erwachsene und Kinder; gemischt ist erlaubt (z. B. 2× Fisch und 2× Fleisch). Der Preis erscheint als Positionen auf der Rechnung; diese gehen nicht an die Küche. Die Personenzahl der Gruppe wird die Gesamtzahl der Teilnehmer (wenn die Kasse die Personenzahl erfasst).
- Die Leiste zeigt pro Arrangement: Personen, verbleibende Zeit (rot, wenn die Zeit um ist), welche Runde es ist mit dem Maximum, und wie lange es noch bis zur nächsten Runde dauert. Zugehörige Gerichte stehen auf den Tasten als AYCE und auf dem Bon mit dem Label AYCE für € 0. Alles, was zu keinem gewählten Arrangement gehört (Getränke, Desserts ...), bleibt ganz normal kostenpflichtig.
- Bestellen: Jedes „Bestellen“ mit kostenlosen Gerichten ist eine Runde, pro Arrangement (nur die Arrangements, aus denen Gerichte dabei sind). Offline Eingegebenes, das später gesendet wird, wird nicht blockiert.
- Ändern: Anzahlen pro Arrangement anpassen. Weniger Personen zählt als Stornieren (Recht „Storno“). Ein Arrangement auf 0 setzen (oder Stoppen für alles) ist möglich, solange noch keine Gerichte dieses Arrangements auf der Rechnung stehen.
- Zuschlag (nur wenn ein gewähltes Arrangement einen Verschwendungszuschlag hat): Anzahl wählen (und das Arrangement, wenn es mehrere gibt); „Verschwendungszuschlag × Anzahl“ kommt auf die Rechnung.
- Kassieren, Teilen, Rabatte und der Beleg funktionieren wie immer: Die Arrangementpreise, der Zuschlag und die Getränke sind normale Zeilen mit ihrer eigenen MwSt.
- Schaltet der Administrator All-you-can-eat aus, während Gruppen dabei sind, kosten neu eingegebene Gerichte wieder den normalen Preis; was bereits auf der Rechnung steht, bleibt.
- Im Webshop (optional, standardmäßig aus): Mit Auch bei Bestellung am Tisch über den QR-Code (Webshop) sieht der Gast, der an einem Tisch mit einem Arrangement bestellt, die dazugehörigen Gerichte als Inklusive für € 0, oben mit dem Stand (Personen, Runde, Zeit). Eine Bestellung ist eine Runde, mit denselben Regeln wie bei Bestellen; zu viel, zu früh oder zu spät lehnt der Webshop sofort ab. Getränke und andere Gerichte bezahlt der Gast ganz normal; alles kommt auf die Rechnung des Tisches. Aus = der Webshop berechnet die normalen Preise, wie bisher.
Gutscheine
Zwei Schalter unter Einstellungen → Betrieb → Gutscheine:
- Gutschein als Zahlungsart beim Kassieren: standardmäßig ein, wie bisher. Aus = die Taste Gutschein erscheint nicht beim Kassieren (und nicht bei Geld zurück über bei einer Retoure), und der Kassenserver lehnt Zahlungen mit Gutschein ab.
- Gutscheine mit Guthaben verkaufen: standardmäßig aus. Ein:
- Im Bestellbildschirm gibt es die Taste Gutschein: Wählen Sie den Betrag (€ 10, 25, 50, 100 oder einen anderen Betrag) und lassen Sie die Kasse einen Code erzeugen, oder scannen Sie den Code einer vorgedruckten Karte. Der Gutschein kommt als Zeile auf die Rechnung (MwSt.-Code BON: kein Umsatz, keine MwSt., geht nicht an die Küche). Dort können Sie für einen Kunden auch das Guthaben abfragen.
- Nach dem Kassieren ist der Gutschein aktiv und der Bondrucker druckt einen Gutschein mit Betrag, Code und QR-Code.
- Einlösen: Beim Kassieren Gutschein wählen und den Code scannen oder eingeben (Taste Guthaben zeigt das Guthaben). Der Betrag wird vom Guthaben abgezogen. Ist das Guthaben niedriger als die Rechnung, wird das gesamte Guthaben als Teilzahlung abgezogen und der Rest mit Karte oder bar bezahlt. Das Guthaben darf in Teilen aufgebraucht werden.
- Code leer lassen = Gutschein ohne Code, wie bisher (z. B. ein alter Papiergutschein).
- Bericht → Gutscheine (Recht Gutscheine verwalten, standardmäßig Manager und Administrator): Suche nach Code, offenes Guthaben, Verlauf pro Gutschein, sperren (verloren/gestohlen) und Guthaben korrigieren mit Begründung. Das wird im Protokoll festgehalten.
- Berichte: Verkaufte Gutscheine zählen nicht als Umsatz und stehen separat (Verkaufte Gutscheine); das erhaltene Geld erscheint aber bei den Zahlungsarten. Was mit einem Gutschein bezahlt wird, ist normaler Umsatz (mit MwSt.) bei der Zahlungsart Gutschein.
- Buchhaltung: Verkaufte Gutscheine werden im Haben und eingelöste Gutscheine im Soll auf dem Konto Gutscheine (Kundenguthaben) gebucht.
- Ein verkaufter Gutschein kann über Belege → Retoure zurückgenommen werden, solange er noch nicht verwendet wurde (Guthaben = Wert). Nach der Retoure ist der Gutschein eingezogen (Guthaben 0, gesperrt; steht im Verlauf des Gutscheins). Wurde er bereits (teilweise) verwendet, setzen Sie das Guthaben unter Bericht → Gutscheine auf 0 und zahlen den Restbetrag separat zurück. Rabatt auf einen Gutschein ist nicht möglich.
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).
- Karte oder Armband: Verkaufen Sie einen Gutschein mit Vorgedruckte Karte und scannen Sie die Karte (ein NFC/RFID-Leser, der als Tastatur arbeitet, oder ein Barcode). Die Nummer der Karte ist dann der Code; damit bezahlt der Gast wie mit einem Gutschein.
- Aufladen: Bestellbildschirm → Gutschein → Guthaben aufladen: Scannen Sie den Gutschein oder die Karte und geben Sie den Betrag ein. Er kommt als Zeile auf die Rechnung (MwSt.-Code BON: kein Umsatz, keine MwSt., genau wie ein verkaufter Gutschein) und ist nach dem Kassieren im Guthaben. Im Verlauf des Gutscheins steht Aufgeladen.
- Höchstes Guthaben pro Gutschein oder Karte (standardmäßig € 500, einstellbar bis € 5.000).
- Restguthaben auszahlen (Häkchen, standardmäßig aus; Recht Kassenschublade verwalten): Nach Guthaben abfragen erscheint Restguthaben auszahlen. Das Guthaben geht auf € 0 und der Betrag steht als Geld aus der Schublade im X- und Z-Bericht (Tegoed terugbetaald …).
- Eine Aufladung kann über Belege → Retoure zurückgenommen werden, solange das Guthaben noch mindestens diesen Betrag beträgt; der Gutschein oder die Karte bleibt gültig.
- Aufladen am Kiosk (optional): siehe Selbstbedienungskiosk.
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.
- Ein: Beim Kassieren gibt es die Taste Essensgutschein. Wählen Sie den Anbieter (nur die Anbieter, die der Betrieb akzeptiert) und lassen Sie den Gast die Karte an das Kartenterminal halten, wie bei einer Kartenzahlung. Ohne Kartenterminal-Anbindung: Der Gast bezahlt direkt am Kartenterminal, und Sie tippen auf Kassieren.
- Kein Trinkgeld und kein Wechselgeld mit Essensgutscheinen. Ist das Guthaben zu niedrig, bezahlt der Gast den Rest anders (die Rechnung bleibt offen, bis alles bezahlt ist).
- Nur für bestimmte Warengruppen (optional, z. B. Essen, aber kein Alkohol): Dann kann mit Essensgutscheinen höchstens der Betrag dieser Produkte auf der Rechnung bezahlt werden. Der Kassierbildschirm zeigt, wie viel; den Rest bezahlt der Gast anders.
- Auf dem Kassenbon: Essensgutschein Pluxee (mit dem Anbieter dahinter).
- Z-Bericht und X-Bericht: pro Anbieter eine eigene Zeile (Essensgutschein Edenred, … Monizze, … Pluxee).
- Buchhaltung: pro Anbieter ein eigenes Sachkonto (Essensgutscheine Pluxee (Forderung) usw., standardmäßig 416100, 416200 und 416300), denn das Geld kommt vom Anbieter und nicht von der Bank des Kartenterminals.
- Erforderlich: ein Vertrag mit jedem Anbieter, dessen Gutscheine Sie akzeptieren, und ein Kartenterminal, das diese Karten akzeptiert (fragen Sie dies beim Lieferanten des Kartenterminals nach).
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).
- Selbst eingegeben: ein fester Kurs; passen Sie ihn selbst an, wenn er sich ändert.
- Live (EZB): der Tageskurs der Europäischen Zentralbank (Referenzkurse, jeden Werktag gegen 16:00 Uhr; kostenlos, kein Konto nötig). Mit einem Aufschlag in Prozent (0-20) wird der Kurs entsprechend niedriger, sodass der Betrieb den Umtausch nicht selbst bezahlt. Die Kasse ruft die Kurse selbst ab, wenn sie älter als 6 Stunden sind; Jetzt aktualisieren ruft sie sofort ab. Ohne Internet bleibt der letzte Kurs stehen.
- Ein: Beim Kassieren gibt es die Taste Fremdwährung. Wählen Sie die Währung; die Kasse zeigt, wie viel es in dieser Währung ist. Geben Sie ein, was der Gast gibt: Die Kasse rechnet es um und gibt das Wechselgeld in Euro. Möchte der Gast nichts zurück, haken Sie Wechselgeld ist Trinkgeld an: Das Wechselgeld kommt als Trinkgeld auf den Beleg, in Belgien in dieser Währung (GKS 2.0, UC296).
- Gibt der Gast weniger als den ganzen Betrag, ist es ein Teil; den Rest zahlt er anders.
- Auf dem Kassenbon: die Währung, der Betrag und der Kurs sowie das Wechselgeld in Euro.
- X- und Z-Bericht: pro Währung eine eigene Zeile (Fremdwährung GBP, in Euro) und bei der Kassenschublade, was in dieser Währung in der Schublade liegt. Das Wechselgeld in Euro wird vom erwarteten Geld in der Schublade abgezogen; die Fremdwährung selbst zählen Sie separat.
- Buchhaltung: zählt als Bargeld (Kasse), in Euro.
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:
- Personenzahl erfassen: die Frage "Wie viele Personen?" bei einem freien Tisch, die Personen im Tischplan und im Bestellbildschirm sowie Gäste in den Berichten. Siehe Personenzahl.
Beim Bestellen (Bestellbildschirm, für das, was Sie danach antippen):
- Gleiche Produkte zusammenfassen (keine Taste, standardmäßig an): Tippst du dasselbe Produkt noch einmal an (gleiche Optionen, noch nicht bestellt), erhöht sich die Menge statt einer neuen Zeile: 4 Cola in einer Zeile mit dem Preis mal 4. Mit − wird wieder eins abgezogen, auch wenn es schon bestellt ist (Storno von einem). Mit einer Bemerkung, einem Platz oder zum Mitnehmen bleibt es eine eigene Zeile; was schon bestellt ist, bleibt eine eigene Zeile (eine neue Runde).
- − und + (vor dem Preis in jeder Zeile): − zieht eins ab, + fügt eins hinzu (gleiches Produkt, gleiche Optionen und Bemerkung; ist Gleiche Produkte zusammenfassen aus, dann eine neue Zeile). Noch nicht bestellt und auf 0: Die Zeile verschwindet. Schon bestellt: eins weniger ist ein Storno, die Zeile bleibt durchgestrichen stehen (für die Küche und die Berichte); eins mehr wird eine neue Zeile, die noch bestellt werden muss. Tippen auf den Preis selbst entfernt nichts mehr. Bei einem Menü nur −.
- Mitnehmen (nur vor Ort): Der Gast nimmt diesen Artikel mit, z. B. eine Flasche Wasser oder ein Dessert. Diese Position bekommt die MwSt. für Außer-Haus (in Belgien Kennzeichen C), der Rest der Rechnung die MwSt. für vor Ort. Auf dem Beleg steht außer Haus bei der Position.
- Platz (an einem Tisch): weitertippen für Platz 1, 2, 3 ...; die Positionen bekommen diese Platznummer (auch auf dem Küchenbon). In Belgien geht jede Position mit der Kostenstelle des Platzes (CHAIR, UC4123) an die Blackbox. Noch einmal nach Platz 12 = wieder ohne Platz.
- Rücknahme: Der nächste Artikel kommt mit -1 dazu, z. B. eine leere Flasche oder ein Becher (Pfand). Das geht nur bei Artikeln mit Rücknahme möglich (Pfand) (Einstellungen → Artikel). Ist die ganze Rechnung negativ (nur Pfand zurück, ohne Verkauf), wird Kassieren zu einer Rückzahlung: bar zurück oder per Karte (am Terminal selbst zurückgebucht). In Belgien als Rückzahlung (REFUND, UC4108 und UC4114).
- SPV einlösen: Der Gast bezahlt einen Artikel oder ein Menü mit einem Single Purpose Voucher (ein Gutschein für genau diesen Artikel, z. B. "1 Menü all-in"). Tippen Sie auf SPV einlösen und danach auf den Artikel auf dem Beleg: Er kommt mit -1 dazu (gleicher Preis und gleiche MwSt., bei einem Menü mit den Bestandteilen), mit SPV dabei. Nicht an die Küche; entfernen ist normal möglich. Einen Gutschein-Artikel verkaufen Sie im Voraus als normalen Artikel; aktivieren Sie unter Einstellungen → Artikel SPV (Gutschein). In Belgien geht die Position beim Verkauf als VOUCHER an die Blackbox (UC271).
- Anzahlung verrechnen: siehe unten.
- Offener Preis (keine Taste, pro Artikel): Bei einem Artikel mit Offener Preis fragt die Kasse nach dem Preis, z. B. für das Tagesgericht oder eine Anzahlung.
Beim Kassieren:
- Direkt kassieren ohne Arbeitsbon (keine Taste): Standardmäßig bestellt Kassieren zuerst, was noch nicht bestellt ist, damit Küche und Bar immer ihren Bon bekommen (siehe Die Taste Bestellen). Ein: Was du sofort kassierst, ohne vorher auf Bestellen zu tippen, bekommt keinen Arbeitsbon, z. B. an der Bar, wo du es selbst holst. Was bereits bestellt ist, ändert sich nicht.
- Separat kassieren (an einem Tisch, unter Rechnung teilen): Wählen Sie, was ein Gast jetzt bezahlt, auch einen Teil einer Position (½ für eine halbe Flasche). Das wird ein eigener Teil, den Sie sofort kassieren; der Rest bleibt auf der Rechnung, ohne die Rechnung vorher zu teilen oder in eine andere Gruppe zu verschieben. Ein Prozentrabatt auf den ganzen Beleg wird anteilig übernommen. Zurück ohne zu bezahlen = alles wieder auf der Rechnung. In Belgien bleibt der Verkauf am Platz des Tisches, ohne Tischwechsel (UC4103bis, UC4104).
- Gast ohne Bezahlen gegangen (Recht Ohne Zahlung abschließen, standardmäßig nur Manager und Administrator): Die Rechnung wird als Verkauf ohne Zahlung abgeschlossen, mit einem Grund im Protokoll. Im X- und Z-Bericht und in der Tagesabrechnung steht es als Nicht bezahlt (Gast gegangen); im Buchungsjournal auf uneinbringlich (standardmäßig 4985 / 643000). In Belgien ein Verkauf ohne Zahlung (UC4109).
Nachträglich (Belege):
- Preis korrigieren (Recht Preis eines Belegs korrigieren, standardmäßig nur Manager und Administrator): Der Preis eines kassierten Belegs stimmte nicht, z. B. 50% Rabatt statt 5%. Die Kasse erstellt einen neuen Beleg ohne Tisch mit den Positionen des alten Belegs zurück (negativ, zu dem damals bezahlten Preis) und denselben Artikeln noch einmal zum normalen Preis. Geben Sie dort den richtigen Rabatt und kassieren Sie die Differenz (oder zahlen Sie zurück, wenn der neue Preis niedriger ist). Der alte Beleg bleibt, wie er war; einmal pro Beleg und nicht, wenn bereits etwas retourniert wurde. In Belgien gehen die alten Positionen als CORRECTION mit (UC4116).
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.
- Die E-Mail-Adresse wird nicht gespeichert; im Protokoll steht nur "Beleg N gemailt an a***@domain.de" und ob es geklappt hat.
- Klappt das Mailen nicht (z. B. falsche Zugangsdaten), ist der Beleg trotzdem kassiert und gedruckt; die Meldung sagt, was schiefgelaufen ist.
- Nicht bei einer Teilzahlung (Rechnung teilen): Der Beleg kommt mit der letzten Zahlung, dort geben Sie also die Adresse ein.
- Nachträglich mailen: Unter Belege gibt es bei einem Beleg die Taste Per E-Mail (Recht Kopie eines Belegs drucken). Sie mailt den Beleg mit dem Vermerk KOPIE, genau wie eine gedruckte Kopie (in Belgien als Kopie registriert).
- Keine zusätzlichen Pakete nötig: Die Kasse spricht selbst mit dem Mailserver (STARTTLS auf 587, TLS auf 465).
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).
- Taste Reservierungen in der oberen Leiste: Übersicht pro Tag (◀ ▶) mit Anzahl Reservierungen, Personen und No-Shows. + Neue Reservierung: Name, Telefon, E-Mail, Personen, Datum, Uhrzeit, Dauer, Tisch (auch später) und Bemerkung. Reservierungen nimmt das Personal auf; Online-Buchung gibt es (noch) nicht.
- Gibt es auf demselben Tisch in diesem Zeitraum schon eine Reservierung, meldet die Kasse das; "Trotzdem speichern" ist möglich.
- Bestätigung per E-Mail (Häkchen, oder später "Bestätigung mailen"), wenn eine E-Mail-Adresse und ein Mailserver vorhanden sind (
SMTP_HOST, siehe Beleg per E-Mail). - Im Tischplan erscheint ein reservierter freier Tisch lila mit "R 19:30 Jansen (4)". Tippen Sie darauf: "Jansen ist da" öffnet den Tisch mit 4 Personen und "Jansen" als Gruppenname; "Andere Gäste" öffnet ihn ganz normal.
- In der Übersicht: Angekommen (öffnet den Tisch; ohne Tisch wählen Sie zuerst einen), Ändern, No-Show, Abbrechen und Wiederherstellen. Alles wird im Protokoll festgehalten.
- Reservierungen von Online-Plattformen: siehe Reservierungsplattformen unten.
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.
- Setzen Sie einen Gast in TheFork Manager auf Angekommen oder Am Tisch, öffnet sich in der Kasse der Tisch mit demselben Namen, mit der Gästezahl und einer Bemerkung: Name, Allergien und Ernährung, Anzahlung, Angebot/Rabatt und Treuepunkte (Yums). Gibt es auf diesem Tisch schon eine offene Bestellung, wird diese verknüpft. Kein Tisch mit diesem Namen: eine Meldung, und unter Plattformen wählen Sie den Tisch.
- Nach dem Bezahlen geht die Rechnung an TheFork (Gesamtbetrag und Positionen mit Name, Produktgruppe, Menge und Betrag); TheFork setzt die Reservierung dann auf Gegangen. Bei getrennter Zahlung eine Rechnung mit dem Gesamtbetrag. Klappt es nicht, versucht die Kasse es jede Viertelstunde erneut (zwei Tage lang), oder mit Erneut senden unter Plattformen.
- Koppeln: Die Kasse zeigt einen Kopplungscode; geben Sie ihn in TheFork Manager ein (Integrationen → Kasse). Die Restaurant-ID von TheFork (Customer-id) trägt der Administrator ein, oder sie kommt automatisch mit der ersten Bestellung.
- Häkchen: Tisch automatisch öffnen, Name, Allergien und Anzahlung als Bemerkung, Rechnung an TheFork.
- Voraussetzung: Pin Voordeel hat den API-Schlüssel von TheFork (nur für Partner) und hat die Kasse dort als POS registriert (Schaltfläche im Verwaltungsportal); TheFork schaltet die Anbindung nach einer Testsitzung live.
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).
- Taste Warteliste in der oberen Leiste, mit der Zahl der Wartenden (orange, wenn jemand wartet). + Auf die Warteliste: Name, Telefon (für die SMS), Personen, die genannte Wartezeit und ein Wunsch (Terrasse, Kinderstuhl).
- Die Liste steht in der Reihenfolge der Anmeldung, mit der bisherigen Wartezeit (rot, wenn es länger dauert als genannt), und oben die Zahl der Wartenden, Personen und die durchschnittliche Wartezeit von heute.
- Klappt die SMS nicht, steht der Grund dabei. SMS erneut ist möglich.
- Platzieren: Wähle den Tisch; die Kasse öffnet ihn mit der Personenzahl (wenn die Kasse die Personenzahl erfasst) und dem Namen als Gruppenname (wie bei einer ankommenden Reservierung).
- Weg (gegangen oder abgemeldet) und Wiederherstellen. Unter der Liste steht, wer heute platziert wurde oder gegangen ist, mit der Wartezeit.
- Datenschutz: Telefonnummern werden nach einem Tag gelöscht; wer nach 12 Stunden noch auf der Liste steht, fällt automatisch heraus. Anmelden, Aufrufen (nur mit den letzten 3 Ziffern der Nummer) und Platzieren stehen im Protokoll.
- Warum nicht bei den Reservierungen? Eine Reservierung ist für später (Datum, Uhrzeit, Tisch vorab); die Warteliste ist für jetzt (Reihenfolge, Wartezeit, SMS, wenn der Tisch frei ist). Daher ein eigener Schalter und eine eigene Taste, mit demselben "Tisch öffnen" wie bei einer Reservierung.
- Online auf die Warteliste (optional, standardmäßig aus; nur mit dem Webshop): Mit Gäste können sich auch selbst über den Webshop anmelden steht im Webshop Warteliste (und es gibt dafür einen QR-Code für die Tür, in der Webshop-Verwaltung unter Tische und QR). Der Gast gibt Name, Telefon, Personen und einen Wunsch ein und sieht seinen Platz live. In der Kasse steht er mit online in der Liste; Aufrufen, Platzieren und Weg funktionieren wie immer, und der Gast sieht es auch auf seinem Handy (abmelden kann er sich dort auch).
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.
- An der Kasse steht über dem Beleg "+ Kundenkarte": Suchen Sie den Kunden nach Name oder Telefonnummer oder legen Sie einen neuen Kunden an (Name, optional Telefon und E-Mail). Danach steht der Name mit dem Punktestand auf dem Beleg.
- Einlösen: Bei genügend Punkten "100 Punkte einlösen: € 5 Rabatt"; bei einer vollen Stempelkarte "Gratis Kaffee" (dieser Kaffee muss auf dem Beleg stehen). Daraus wird eine Rabattzeile; jeder darf sie wieder entfernen.
- Punkte und Stempel werden erst beim Kassieren gutgeschrieben und abgezogen: Punkte auf den Betrag nach Rabatt (ohne verkaufte Gutscheine), Stempel pro Stück eines Artikels mit Stempelkarte (der Gratisartikel zählt nicht).
- Auf dem Kassenbeleg: gesammelt, eingelöst, Punktestand und der Stand der Stempelkarten.
- Bericht → Kunden (Recht Kundenkarte verwalten): Kunden suchen, Daten ändern, Punkte korrigieren (mit Begründung), Verlauf und löschen (DSGVO: Name, Telefon und E-Mail werden entfernt; der Verlauf bleibt anonym). Unten die Stempelkarten pro Artikel (z. B. 10 Kaffee = 1 gratis).
- Eine Retoure macht gesammelte Punkte nicht automatisch rückgängig; korrigieren Sie diese bei Bedarf unter Bericht → Kunden.
- Kundenkarte mit Nummer (optional): Tragen Sie unter Bericht → Kunden → (Kunde) die Kartennummer ein (oder scannen Sie die Karte in dieses Feld). Mit dem Barcodescanner verknüpft ein Scan dieser Karte den Kunden mit dem Beleg, an der Kasse und am Kiosk. Nach der Kartennummer suchen können Sie auch bei + Kundenkarte.
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:
- Im Bestellbildschirm steht unter dem verknüpften Kunden "+ Gästeprofil": Haken Sie VIP an, wählen Sie Ernährungswünsche (vegetarisch, vegan, pescetarisch, halal, koscher) und Allergien (die 14 Allergene) und geben Sie Vorlieben ein (z. B. "fester Tisch am Fenster", höchstens 300 Zeichen). Danach stehen sie beim Kunden im Bestellbildschirm, Allergien in Rot. Auch änderbar unter Bericht → Kunden → (Kunde) → Gästeprofil.
- Tippen Sie einen Artikel mit einem Allergen des Gastes an (siehe Allergene pro Artikel), fragt die Kasse zuerst, ob er trotzdem hinzugefügt werden soll. Es zählt nur, was beim Artikel eingetragen ist; fragen Sie im Zweifel immer die Küche.
- Ein VIP erhält einen ★ im Tischplan: bei einer offenen Rechnung und bei der angezeigten Reservierung dieses Kunden. Kommen die Gäste einer Reservierung an, verknüpft die Kasse den Kunden der Reservierung mit der Rechnung.
- Ernährungswünsche und Allergien (und VIP) erscheinen auf dem Küchenbon für Küche und Bar:
GAST: VIP · Vegetarisch · allergie: Noten. - Ernährungswünsche und Allergien sind Gesundheitsdaten: nur mit Einwilligung des Gastes eintragen. Im Protokoll steht nur, dass das Profil geändert wurde, nicht die Wünsche selbst. Wird der Kunde gelöscht, wird auch das Gästeprofil entfernt.
Favoriten / Schnelltasten
Standardmäßig aus. Einstellungen → Betrieb → Favoriten / Schnelltasten:
- Meistverkauft: Vorne in der Gruppenleiste steht die Taste ★ Favoriten mit den 12 Artikeln, die in den letzten 14 Tagen am meisten verkauft wurden (automatisch aktualisiert). Der Bestellbildschirm öffnet mit den Favoriten.
- Selbst wählen: Halten Sie im Bestellbildschirm einen Artikel lange gedrückt (oder Rechtsklick) und wählen Sie ★ Favorit (Schnelltaste); nochmals = entfernen. Recht Artikel verwalten. Alle Kassen sehen es sofort.
- Eingeben, Optionen, Menüs, Happy Hour und "ausverkauft" funktionieren bei den Favoriten genau wie in den normalen Gruppen.
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).
- Lange drücken (oder Rechtsklick): selbst auswählen. Mit ◀ ▶ blättern Sie zu früheren Runden, pro Artikel ein/aus (z. B. das Essen abwählen) und die Menge mit − / +. Optionen und Bemerkungen werden übernommen.
- Ausverkaufte Artikel und Menüs werden nicht übernommen (Menüs geben Sie separat ein). Funktioniert auch ohne Verbindung.
- Die Zeilen kommen so hinzu, wie sie auf der Rechnung stehen: mit Gleiche Produkte zusammenfassen an eine Zeile pro Produkt (2 Cola), aus jede Zeile einzeln (2-mal 1 Cola).
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:
- Tische öffnen, Artikel eingeben und Bestellen werden auf dem Tablet gespeichert (auch bei einem Neustart) und stehen in der Bestellliste mit gestricheltem Rand ("noch nicht gesendet");
- sobald die Verbindung zurück ist, geht alles der Reihe nach an den Server und erst dann geht der Küchenbon an die Küche. Jedes Paket hat einen Schlüssel, daher kommt nichts doppelt an. Hat inzwischen jemand anderes den Tisch geöffnet, kommen die Artikel zu dieser Bestellung;
- Kassieren, Rabatt, Teilen u. Ä. sind nur mit Verbindung möglich; "Kassieren" wartet, bis alles von diesem Tisch gesendet ist.
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).
- Messpunkte (Administrator): z. B. Kühlzelle, Tiefkühler, Warmhalten, Kerntemperatur nach dem Erhitzen, Rückkühlen und Wareneingang, mit einem Minimum und/oder Maximum in °C und wie oft (jeden Tag, zweimal täglich, jede Woche oder bei Gebrauch). Standardliste hinzufügen legt einen Anfang an (Kühlung bis 7 °C, in Belgien bis 4 °C; Tiefkühler bis -18 °C; Warmhalten ab 60 °C; Erhitzen ab 75 °C).
- Reinigung und Kontrolle: Aufgaben pro Tag, Woche (gegebenenfalls an einem festen Tag) oder Monat, mit Bereich und Anleitung, z. B. Schneidebretter desinfizieren, Fettfilter, Schädlingskontrolle, Thermometer prüfen.
- Erfassen (alle, die angemeldet sind): Taste HACCP in der oberen Leiste, mit der Anzahl, die heute noch offen ist. Temperatur eingeben oder eine Aufgabe abhaken (Erledigt oder Nicht erledigt). Liegt eine Temperatur außerhalb des Grenzwerts, muss eine Korrekturmaßnahme angegeben werden (z. B. "Tür geschlossen, Produkt entsorgt"). Erfassungen können nicht geändert werden; einen Fehler korrigierst du mit einer neuen Erfassung.
- Übersicht (Recht Umsatz pro Zeitraum): pro Zeitraum alle Erfassungen, die Anzahl der Abweichungen und die verpassten Erfassungen pro Tag; als CSV (Excel) oder zum Drucken / als PDF für eine Kontrolle speichern.
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).
- Quellen (Administrator): der Zapfrechner oder das Durchflussmesssystem. Wähle die Marke; die Kasse füllt eine Voreinstellung aus. Aus den Niederlanden und Belgien: Van Duijnen Horeca (Zapfautomatisierung, Dashbar), Beconet (Multi-Tap), TapSystems, Horecatechniek Nederland, Heineken SmartDispense, WeissBeerger / AB InBev und BarTrack; außerdem Gruber, Addimat, WMF / Hogatron (E-Protokoll), Drinkotec (ex-Hartec), , Berg, Easybar, Azbar, Scanabar, PourMyBeer, iPourIt, BeerBoard, US BeerSAVER, Bevchek, Capton/BarVision, Kegtron, Kegbot Kegboard, ein "smarter Zapfhahn" oder ein eigenes System. Es gibt fünf Verbindungsarten (Kegboard: siehe Dosiertes Zapfen und Kegboard unten):
- Felder:
kraan(odertap,plu),ml(odercl,liter,volumemiteenheid) oderporties,id(dieselbe Zapfung zweimal = einmal gebucht),tijdstip,tafel,bediening; eine Zapfung, eine Liste oder{ "taps": [...] }. - Netzwerk (TCP): die Kasse verbindet sich mit dem Zapfcomputer (Adresse und Port) oder lauscht selbst auf einem Port.
- Serielle Schnittstelle: COM-Port oder USB-seriell, 1200–115200 Baud, 8N1, 7E1 oder 7O1.
- Bei Netzwerk und seriell stellen Sie das Nachrichtenformat ein (eine Nachricht pro Zeile oder STX … ETX mit optionaler XOR-Prüfung und ACK/NAK zurück) sowie das Muster einer Nachricht, mit den Teilen
kraanoderpluund ggf.ml,cl,liter,porties,tafel,bedieningundid(z. B.kraan;mloder nur eine PLU pro Glas). Die Lieferanten geben ihr genaues Format nur an Installateure weiter; fragen Sie beim Lieferanten des Zapfcomputers nach. Test-Zapfung sendet eine Zapfung so, wie es der Zapfcomputer tun würde.
- Felder:
- Zapfhähne (Administrator): pro Zapfhahn oder PLU das Produkt und wie es auf den Bon kommt: pro Glas (Glas in ml; eine Zapfung von 520 ml mit Gläsern von 250 ml = 2 Gläser; ab 50% zählt ein Glas) oder pro Liter (der Produktpreis ist der Literpreis; auf dem Bon z. B. "Pils 0,33 l" zum richtigen Betrag).
- Auf dem Bon: meldet der Zapfcomputer einen Tisch, kommt die Zapfung sofort auf die offene Bestellung dieses Tisches. Sonst steht sie unter Gezapft: im Bestellbildschirm erscheint die Leiste "… × gezapft ohne Bon"; wählen Sie die Zapfungen und tippen Sie auf Auf diesen Bon. Die Zeilen stehen sofort auf bestellt (es geht kein Bon mehr an die Bar) und der Bestand wird abgebucht. Die Taste Gezapft in der oberen Leiste zeigt alles, was noch keinen Bon hat.
- Ausbuchen (Recht Storno): Spülen, Bruch, Probieren, Personal, gratis oder Sonstiges (mit Erläuterung); das wird im Protokoll erfasst. Zu wenig für ein Glas (z. B. Spülen) muss ausgebucht werden.
- Übersicht (Recht Umsatz pro Zeitraum): pro Zapfhahn gezapft, auf dem Bon, ausgebucht (pro Grund), storniert und noch offen, in Litern, mit dem verkauften Prozentsatz, und als CSV.
- Gemeldete Zapfungen können nicht geändert werden (nur abgearbeitet).
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).
- Pro Zapfhahn (Administrator, Einstellungen → Zapfsystem → Zapfhähne): Hake Dosiertes Zapfen an und wähle, wie lange der Zapfhahn nach dem Bonieren offen bleiben darf (10–600 Sekunden, standardmäßig 120). Bei Kegboard gibst du auch das Relais (Magnetventil) ein. Dosiertes Zapfen ist nur pro Glas möglich.
- Bonieren: Bei Bestellen (oder direkt bei Kassieren) erstellt die Kasse pro Bonzeile mit diesem Produkt eine Freigabe (Anzahl Gläser × Glas in ml) und sendet sie an den Zapfrechner. Die danach eingehende Zapfung gehört zu dieser Bonzeile. Sie kommt also nicht noch einmal auf den Bon und auch nicht zu Gezapft. Eine Zapfung ohne Freigabe kommt ganz normal zu Gezapft.
- Storno der Zeile, bevor gezapft wurde: Der Zapfhahn schließt wieder. Eine Freigabe, die nicht rechtzeitig gezapft wird, verfällt; der Zapfhahn öffnet nie nachträglich.
- Freigaben im Bestellbildschirm (eine Leiste über dem Bon): sehen, was läuft, Stoppen und Erneut freigeben. Erneut freigeben ist nur möglich, wenn noch nichts gezapft wurde, es wird also nie etwas zusätzlich freigegeben. Test-Freigabe (Administrator) gibt ein Glas ohne Bon frei; das wird im Protokoll vermerkt.
- Wie die Freigabe zum Zapfrechner gelangt:
- Kegboard (Kegbot, Open Source, ESP32 mit Durchflussmessern und Magnetventilen; vollständig offenes Protokoll): Die Kasse gibt einen grant für die Zapfhähne mit diesem Produkt, die Relais und die Menge. Das Board schließt den Zapfhahn selbst, wenn die Menge erreicht oder die Zeit abgelaufen ist.
- Netzwerk/seriell: ein einstellbarer Freigabebefehl mit
{kraan},{ml},{porties},{sec}und{id}(z. B.V{kraan};{ml}), gesendet im Nachrichtenformat der Quelle (Zeile oder STX … ETX mit XOR). Optional gibt es einen Stoppbefehl. Den genauen Befehl nennt der Lieferant.
- Kegboard koppeln: Wählen Sie unter + Quelle die Marke Kegbot Kegboard. Das Board meldet sich bei der Quelle; klicken Sie auf Zulassen (oder Ablehnen). Das Board erhält dann einmalig einen eigenen Schlüssel, den die Kasse nur als Hash speichert. Ein anderes Gerät oder ein falscher Schlüssel ändert nichts an einem gekoppelten Board; hat das Board seinen Schlüssel verloren, verwenden Sie zuerst Kopplung trennen. Die Quelle zeigt Firmware, Zähler und Relais des Boards. Die Zapfhähne sind die Zählernummern (0, 1 …). Eine Karte am Board wird abgelehnt: Bezahlt wird an der Kasse. Ist das Zapfsystem aus, speichert das Board seine Meldungen und sendet sie später.
- Bei der Quelle legen Sie fest, nach wie vielen Sekunden ohne Durchfluss der Zapfhahn schließt (5–300, Standard 30). Pro Zapfhahn tragen Sie die Zählernummer, das Relais (Magnetventil) und die Dauer ein, die der Zapfhahn nach dem Bonieren offen bleiben darf.
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.
- Playlist (Sonos, Bluesound und VLC): die Warteschlange mit dem, was gerade läuft. Auf einen Titel tippen, um ihn abzuspielen; mit Anpassen entfernen Sie Titel (✕), schieben sie nach oben oder unten (↑ ↓; Sonos und Bluesound) oder leeren die Playlist. Mit Andere Musik wählen spielen Sie einen Sonos-Favoriten (z. B. einen Sender oder Tunify-Kanal) oder eine Sonos-Wiedergabeliste ab oder eine BluOS-Voreinstellung.
- Auf einem eigenen Bildschirm: dieselbe Bedienung und die Playlist groß unter
http://<kassaserver>:3000/muziek, z. B. auf einem zweiten Monitor neben der Kasse oder einem Tablet an der Bar (auf demselben Gerät bereits angemeldet, sonst mit einer PIN). - Auf einem Tablet oder Smartphone: ein QR-Code mit der Adresse dieses eigenen Bildschirms im Netzwerk des Betriebs. Ein Mitarbeiter scannt ihn mit dem eigenen Tablet oder Smartphone (im Wi-Fi-Netzwerk des Betriebs) und meldet sich mit der eigenen PIN an; mit Abmelden ist er wieder geschlossen. Siehe Zweiter Bildschirm auf einem Tablet oder Smartphone.
Der Verwalter fügt die Quellen mit + Musikquelle hinzu, wählt, wie sie verbunden sind, und prüft sie mit Testen:
- Soundtrack (soundtrack.io): über die öffentliche API, mit einem API-Token (bei Soundtrack zu beantragen) und einer Soundzone (Zonen laden). Wiedergabe, Pause, weiter, Lautstärke und was gerade läuft.
- Sonos: die IP-Adresse des Lautsprechers (bei einer Gruppe: der Lautsprecher, der die Gruppe führt). Funktioniert mit allem, was auf dem Sonos läuft, z. B. Tunify, Spotify oder Radio.
- Bluesound (BluOS): die IP-Adresse des Players; funktioniert ebenfalls mit allem, was darauf läuft, z. B. Tunify.
- VLC auf dem Musikrechner: die Weboberfläche einschalten (Werkzeuge → Einstellungen → Einstellungen zeigen: Alle → Interface → Hauptinterfaces: Web, mit einem Passwort bei Lua); die IP-Adresse (ggf. mit
:poort, Standard 8080) und das Passwort. - Eigener Musikrechner (Webadressen): für einen Musikrechner oder eine Musikbox mit einer Webadresse pro Taste; GET oder POST und
{volume}(0-100) in der Adresse für die Lautstärke. Ohne Lauter/Leiser-Adresse stellt die Kasse die Lautstärke schrittweise ein. - Webplayer des Musikanbieters: Die Webadresse des Webplayers oder der Steuerungsseite (z. B. der Webplayer von Tunify oder Media Tools) öffnet sich in der Kasse über die Taste Musik; darf der Dienst nicht in einem anderen Bildschirm laufen, dann über In eigenem Fenster öffnen.
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.
- Verbinden Sie das Tablet oder Smartphone mit dem Wi-Fi-Netzwerk des Betriebs.
- Scannen Sie den QR-Code mit der Kamera (oder geben Sie die Adresse im Browser ein).
- 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.
- 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).
- 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. - 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).
- 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:
- Abholbestellungen aus der Kasse, dem Webshop und von Thuisbezorgd (und auf Wunsch auch Bestellungen an der Theke ohne Tisch, beim Schnellverkauf) der letzten 12 Stunden;
- sobald etwas an Küche oder Bar geschickt wurde (oder die Webshop-Bestellung auf in Zubereitung steht), steht die Nummer bei In Zubereitung;
- Fertig wird automatisch gesetzt, wenn der Küchenmonitor die ganze Bestellung als fertig meldet oder die Webshop-Bestellung auf fertig steht. Die Nummer blinkt kurz und der Bildschirm gibt ein Ding-Dong;
- eine fertige Nummer bleibt so viele Minuten stehen wie eingestellt (standardmäßig 10) oder bis Abgeholt;
- Bestellungen vom Kiosk (siehe Selbstbedienungskiosk) stehen immer darauf, sobald sie bezahlt sind oder an der Kasse bezahlt werden, auch bei "hier essen", mit der Abholnummer von ihrem Bon;
- optional auch Bestellungen für Fahrer von Thuisbezorgd, Uber Eats, Deliveroo und HubRise (Häkchen Auch Bestellungen für Fahrer …): mit der Bestellnummer der Plattform und dem Namen der Plattform darunter, damit der Fahrer sieht, wann seine Bestellung bereitsteht. Abgeholt meldet der Plattform dann auch, dass der Fahrer sie hat (wie im Fenster der Plattform).
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):
- Nummer per Stimme ansagen: Bei einer neuen fertigen Nummer sagt der Bildschirm z. B. "Nummer 42, Ihre Bestellung ist fertig." in der gewählten Sprache (Niederländisch, Englisch, Deutsch, Französisch, Spanisch, Italienisch, Portugiesisch, Polnisch, Türkisch oder Arabisch). Die Stimme kommt vom Browser des Bildschirms und klingt je nach Gerät anders; nach dem Öffnen einmal auf den Bildschirm tippen. Nach dem Klingelton, wenn der Ton auch an ist.
- Bestellstatus auf dem Handy: Unter der Abholnummer auf dem Kassenbon erscheint ein QR-Code. Der Gast scannt ihn, sieht seine Nummer und den Stand (bestellt, wird zubereitet, fertig, abgeholt) und bekommt eine Benachrichtigung, wenn die Bestellung fertig ist. Das läuft über das Verwaltungsportal; die Kasse muss damit verbunden sein. Nicht beim Webshop und Thuisbezorgd (die haben einen eigenen Status) und nicht beim Kiosk (der hat eine eigene Einstellung).
In der Kasse gibt es die Schaltfläche Aufrufen (mit der Anzahl, die noch in Zubereitung ist):
- 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.
- Zurück setzt sie wieder auf In Zubereitung.
- 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:
- Aus: nicht verwenden. Schaltest du das Stempeln später aus, ist es nirgends mehr zu sehen, aber die bereits gestempelten Stunden bleiben gespeichert (es wird nichts gelöscht); schaltest du es wieder ein, sind sie wieder da.
- Ein: Mitarbeiter können sich ein- und ausstempeln. Nach der Anmeldung fragt die Kasse, ob Sie sich einstempeln möchten (Nicht jetzt ist möglich). In der oberen Leiste steht dann Einstempeln oder Eingestempelt 17:02; tippen Sie darauf, um sich auszustempeln.
- Pflicht: Nach der Anmeldung zuerst einstempeln, sonst ist die Kasse nicht nutzbar. Ausstempeln meldet Sie sofort ab.
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:
- wer gerade eingestempelt ist (und kann jemanden ausstempeln, der es vergessen hat);
- die gearbeiteten Stunden pro Mitarbeiter pro Zeitraum, mit allen Schichten, und einen Download als CSV (Stunden auch als Dezimalzahl für die Lohnabrechnung);
- Schichten anpassen oder hinzufügen (auf eine Schicht tippen oder + Schicht hinzufügen). Jede Änderung wird mit alten und neuen Zeiten im Protokoll festgehalten.
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.
- Wiegen: Tippen Sie auf ein Produkt mit Kilopreis (die Taste zeigt z. B.
12,95/kg). Das Fenster Wiegen zeigt das Gewicht der Waage (z. B. einer Aclas OS6X oder der Waage, auf der die Kasse selbst läuft) live; grün = ruhig. Legen Sie das Produkt auf die Waage und tippen Sie auf Hinzufügen, sobald das Gewicht ruhig ist. Der Preis ist Kilopreis × Gewicht (auf den Cent gerundet); ein Behälter (Tara) des Produkts wird automatisch abgezogen. Hat das Produkt Optionen, folgen diese danach. - Mehrere Waagen: Gibt es mehrere Waagen, wählen Sie oben im Fenster, auf welcher Sie wiegen. Jede Kasse/jedes Tablet merkt sich die Wahl.
- Von Hand: Keine Waage (oder ist manuelle Eingabe erlaubt), dann tippen Sie das Gewicht ein:
0,512oder1,2ist Kilo,512oder512 gist Gramm. - Etikett der TS6X: Scannen Sie den Barcode des Etiketts mit dem Barcodescanner im Bestellbildschirm (einfach scannen, es muss nichts geöffnet sein), oder tippen Sie auf Etikett und scannen oder tippen Sie die 13 Ziffern ein. Artikel (PLU) und Gewicht kommen vom Etikett. Steht ein Preis auf dem Etikett, berechnet die Kasse genau diesen Preis.
- Auf dem Bildschirm, dem Kassenbeleg und dem Kundendisplay steht das Gewicht dabei, z. B.
Gehakt 6,63mit darunter0,512 kg x € 12,95/kg; auf dem Küchenbon0,512 kg Gehakt. Teilen, Verschieben und Retoure erfolgen in Kilo. - Ein gewogener Artikel ist nur mit Verbindung zum Kassenserver möglich (das Gewicht kommt über den Kassenserver).
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.
- Einschalten, dann Bei Uber Eats anmelden und Geschäft verknüpfen (der Betrieb meldet sich mit seinem eigenen Uber Eats-Konto an). Hat das Konto mehrere Geschäfte, geben Sie die Store-ID ein und melden Sie sich erneut an. Uber Eats muss Pin Voordeel dafür zuerst als Partner freigeben.
- Deliveroo: direkt, über das Portal. Geben Sie die Site-ID (Location-ID) und die Marken-ID (Brand-ID) ein. Ohne Tablet (Standard): Die Kasse nimmt an oder lehnt ab; mit Tablet: Der Betrieb nimmt auf dem Tablet an und das Portal meldet nur, ob die Bestellung in der Kasse ist.
- HubRise: Die Kasse ruft die Bestellungen selbst ab (alle 20 Sekunden, kein Portal nötig).
- Pro Plattform: automatisch annehmen, Küchenbon sofort an Küche/Bar und (Uber Eats, Deliveroo) Menü nach einer Änderung automatisch senden sowie Menü jetzt senden. Im Menü stehen die Produkte, die unter Produkte im Menü von Uber Eats und Deliveroo angehakt sind, mit Auswahloptionen; ausverkauft wird mitgesendet.
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.
- Automaten, mit denen die Kasse selbst spricht:
- CashDro (3, 4+, 5, 7, S Compact; NuKassa, KluisKassa): über das Netzwerk (Webservice). Schalten Sie auf dem CashDro Web Integration ein und legen Sie einen eigenen Benutzer für die Kasse an.
- Cashmatic (SelfPay 460/860/1060; in Belgien Xpos): über das Netzwerk (Port 50301) mit einem Benutzer des Cashmatic.
- Azkoyen Cashlogy (POS1000, POS1500): über den CashlogyConnector auf einem Windows-PC beim Automaten (Port 8092).
- CashKeeper: über CKMonitor auf einem Windows-PC (Port 16501).
- Glory CASHINFINITY (CI-5, CI-10, CI-10X; auch über Cikam): über die Steuerung (FCC) des Automaten. Noch Beta: Lassen Sie die erste Anbindung von Glory oder Ihrem Händler prüfen.
- Extern: Andere Software steuert den Automaten und spricht mit der Kasse (etwa Cikam, ImaCash für 25 Marken, die Software von CashGuard/StrongPoint (Merlin), PayComplete (SUZOHAPP), Gunnebo SafePay oder französische Marken wie CashMag).
- Testautomat: ohne Hardware, zum Üben oder Vorführen. Mit Verbindung testen prüfen Sie Adresse und Anmeldung. Stellen Sie den Automaten ins eigene Netzwerk (niemals offen ins Internet) und verwenden Sie einen eigenen Benutzer für die Kasse, keinen Administrator.
- Kassieren mit Bar: Am Bargeldautomaten bezahlen startet die Zahlung über den Betrag (bar gerundet, wenn das eingeschaltet ist, plus Trinkgeld; beim Teilen der Rechnung der Anteil). Der Bildschirm zeigt, was eingeworfen wurde und was zurückkommt; die Kasse rechnet erst ab, wenn der Automat fertig meldet. Abbrechen = der Automat gibt das Geld zurück. Konnte der Automat nicht das gesamte Wechselgeld herausgeben (zu wenig Münzen), steht dabei, wie viel aus der Kassenschublade kommen muss. Eine erfolgreiche Zahlung, die noch nicht abgerechnet ist (z. B. Tablet ausgefallen), wird bei dieser Bestellung wiedergefunden.
- Bargeld nur über den Automaten (standardmäßig ein): Dann akzeptiert der Kassenserver Bargeld nur mit einer erfolgreichen Zahlung am Automaten für genau diese Bestellung und diesen Betrag. Aus = auch normal bar in die Schublade.
- Kassenschublade (Bericht → Kassenschublade, Recht Kassenschublade verwalten): Bestand abfragen (pro Münze und Schein, bei Cashmatic, Cashlogy, Glory und dem Testautomaten), Auszahlen mit Begründung (z. B. Wechselgeld für die Schublade), Auffüllen und Abschöpfen (Wechselgeld bleibt; bei Cashmatic). Erwartet in der Kassenschublade rechnet das Geld im Automaten nicht mit (das steht separat darunter: Im Bargeldautomaten), wohl aber das Wechselgeld, das aus der Schublade kommen musste.
Die ©-Taste
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:
- Zwischenstand (X): der bisherige Umsatz, ohne den Tag abzuschließen.
- Kassenschublade: Wechselgeld, Geld ein/aus und die Schublade öffnen.
- Tagesabschluss (Z): am Ende des Tages; danach beginnt ein neuer Tag.
- Frühere Z-Berichte, Umsatz pro Zeitraum und Dashboard.
- Protokoll, Gutscheine und Kunden.
Lagerbestand
Standardmäßig aus. Einschalten über Einstellungen → Betrieb → Lagerbestand führen. Aus = nirgends in der Kasse zu sehen.
- Pro Artikel wählen Sie unter Einstellungen → Artikel → (Artikel) → Lagerbestand:
- Nicht: wie bisher;
- Pro Artikel: Jeder Verkauf zieht 1 ab (z. B. Flaschen, Dosen), mit einem Meldebestand für "fast ausverkauft";
- Über Zutaten: ein Rezept, z. B. Hamburger = 1 Brötchen + 150 g Fleisch + 1 Scheibe Käse. Jeder Verkauf zieht die Zutaten ab.
- Einstellungen → Lagerbestand (Recht Lagerbestand verwalten, standardmäßig Manager und Administrator):
- Artikel und Zutaten: der Bestand, mit ausverkauft / fast ausverkauft; Filter "nur (fast) ausverkauft" und Export als CSV.
- Pro Artikel oder Zutat buchen Sie Wareneingang (+) (Lieferung), Zählung (=) (gezählte Menge wird der neue Bestand) oder Ausbuchen (−) (Bruch, abgelaufen; Begründung erforderlich).
- Zutaten mit Einheit (Stk., g, kg, ml, cl, l, Portion, Flasche, Fass) und Meldebestand anlegen.
- Verlauf: alle Bewegungen (Verkauf, Storno, Wareneingang, Zählung, Ausbuchung) mit wer und wann. Verwaltungsaktionen kommen auch ins Protokoll.
- Abgezogen wird beim Bestellen (oder beim Kassieren für das, was direkt kassiert wurde). Ein Storno bucht zurück. Teilen und Verschieben zählen nicht doppelt. Bei Menüs werden die Gerichte abgezogen, nicht die Menüzeile. Retouren (Gutschrift) buchen nicht zurück (Zurückgebrachtes ist meist nicht mehr verkäuflich); buchen Sie das gegebenenfalls als Wareneingang.
- Ist der Bestand aufgebraucht (oder reicht eine Zutat nicht mehr für ein weiteres Mal), steht der Artikel auf allen Kassen automatisch auf ausverkauft. Bei fast aufgebraucht steht noch N auf der Artikeltaste. Nach einem Wareneingang oder einer Zählung ist er sofort wieder bestellbar. Auch der Kassenserver lehnt den Artikel dann ab ("Pils" ist ausverkauft (Bestand 0)), also auch von einem Tablet, das das noch nicht wusste.
- Der Bestand darf unter 0 fallen (z. B. zwei Tablets gleichzeitig oder offline bestellt); die Zählung bringt ihn wieder in Ordnung.
- Bestellliste: Einstellungen → Lagerbestand → Bestellliste. Pro Artikel (pro Artikel) und pro Zutat stellen Sie neben dem Meldebestand auch Auffüllen bis und den Lieferanten ein. Auf der Bestellliste steht alles, was auf oder unter dem Meldebestand liegt (ohne Meldebestand: bei 0), pro Lieferant, mit dem Vorschlag Auffüllen bis − Bestand. Mengen lassen sich anpassen und an-/abhaken. Danach Drucken (Bondrucker), Kopieren (für E-Mail oder WhatsApp), Export (CSV) und nach der Lieferung Geliefert: als Wareneingang buchen (bucht alles auf einmal ein). Mit dem Häkchen oben sehen Sie auch, was noch nicht aufgebraucht ist, um zusätzlich zu bestellen.
- Optionen: Bei einer Optionsgruppe (Einstellungen → Artikel → Optionen) gibt es die Taste Lagerbestand. Geben Sie pro Option die Zutaten pro Stück an, z. B. Extra Käse = 1 Scheibe Käse, Pommes = 150 g Pommes. Wird die Option gewählt, werden diese Zutaten pro Stück abgezogen (auch wenn der Artikel selbst keinen Lagerbestand führt; bei Storno kommen sie zurück). Ist eine Zutat aufgebraucht, steht die Option an der Kasse als (aus) und ist nicht wählbar.
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.
- Lieferanten (Registerkarte Lieferanten): Wählen Sie einen aus der Liste oder legen Sie einen eigenen Lieferanten an. Die Liste enthält Großhändler und Cash & Carry (Sligro, Sligro-ISPC/Sligro-M, HANOS, Makro, De Kweker, Horeca Totaal, Van Zon, zegro, Lekkerland), Foodservice (Bidfood und Bidfood Belgium, Solucious, Chefs Culinar, Java, Q-Food, Agora Culinair, VHC Jongens/Kreko/Actifood, Hocras, Van Hoeckel ...), Getränkegroßhändler (De Klok, Henk Smit, Horesca, De Monnik, Hansen, Dranken Geers ...), Brauereien und Erfrischungsgetränke (Heineken über Sligro, AB InBev/BEES, Alken-Maes, Haacht, Duvel Moortgat, Martens, Coca-Cola, Spadel, Grolsch, Bavaria), Frischelieferanten (Van Gelder, Driessen, FiliusKaas, Bakkers Brigade, Rungis ...), Non-Food (Bunzl, Takeaware, Supplierz), den Online-Weinshop Vinify.nl und Bestellplattformen (Apicbase, Exact Horeko, Growzer, inOne, Cuisin.io, OrderXL). Nur Lieferanten aus dem Land des Betriebs sind enthalten. Wählen Sie einen aus, sind Bestellweg, Datei und Spalten bereits richtig eingestellt; bei jedem Lieferanten steht, wie Sie dort bestellen.
- Pro Lieferant: Kundennummer, Bestellen über:
- E-Mail: die Bestellung als E-Mail (mit Tabelle) an die Bestell-E-Mail-Adresse, optional eine Kopie, mit der Bestellliste als Anhang: CSV, Excel, CSV für Care4Fresh (viele Frischegroßhändler), UBL 2.1 Order (Peppol BIS Order), EANCOM ORDERS (D96A in den Niederlanden, D01B/HO2C in Belgien) oder cXML. Antworten gehen an die E-Mail-Adresse des Betriebs.
- Datei: Die Kasse erstellt die Datei, Sie laden sie im Webshop des Lieferanten hoch (z. B. Bunzl Snel bestellen:
artikel;aantal, Takeaware:SKU,Quantity). Trennzeichen, Kopfzeile und Spalten sind einstellbar (artikel,ean,omschrijving,aantal,eenheid,prijs,totaal; mitartikel=SKUgeben Sie der Spalte im Kopf einen eigenen Namen). - Anbindung (cXML): ein cXML OrderRequest mit Kundennummer und gemeinsamem Geheimnis an die Bestelladresse des Lieferanten, so wie Einkaufssysteme es an Sligro, HANOS und Bidfood senden. Adresse, Kundennummer und Geheimnis erhalten Sie vom Lieferanten (Sligro: koppelingen@sligro.nl). Das Geheimnis wird nie wieder auf dem Bildschirm angezeigt.
- Bei beiden Anbindungen sind auch Benutzername und Passwort (Basic) und zusätzliche Header möglich (einer pro Zeile, z. B.
X-Api-Key: ...). - Upload (SFTP/FTPS): Die Kasse legt die Datei (EANCOM, UBL, CSV, Excel ...) selbst in einem Ordner auf dem Server des Lieferanten ab, so wie viele Großhändler EDI-Bestellungen annehmen. SFTP (SSH), FTPS (explizit auf Port 21 oder implizit auf Port 990) oder, nur im eigenen Netzwerk, FTP. Anmeldung mit Passwort oder SSH-Schlüssel (OpenSSH, PEM oder PuTTY .ppk; ed25519, ECDSA oder RSA). Schlüssel erstellen erzeugt ein Schlüsselpaar in der Kasse; den öffentlichen Schlüssel senden Sie an den Lieferanten. Verbindung testen meldet sich an und sucht den Ordner. Der Fingerabdruck des SFTP-Servers wird bei der ersten Verbindung festgehalten und danach geprüft (ein anderer Server erhält das Passwort nicht); bei FTPS mit eigenem Zertifikat legen Sie den Fingerabdruck des Zertifikats fest. Zusätzliche Software ist dafür nicht nötig.
- Drucken: die Bestellung auf dem Bondrucker, um sie telefonisch durchzugeben.
- Passwörter, Schlüssel, Tokens und Header werden nie wieder auf dem Bildschirm angezeigt (leer lassen = beibehalten, Löschen = entfernen).
- Anbindung anfragen: Für einen Lieferanten erstellt die Kasse eine E-Mail für eine Anbindung (cXML, EDI über SFTP/FTPS, UBL/Peppol oder die eigene API des Lieferanten) mit den Daten des Betriebs (Name, Adresse, USt-IdNr., Kundennummer, GLN) und dem, was benötigt wird; bei EDI mit dem öffentlichen Schlüssel. Anpassen und senden; eine Kopie und die Antworten gehen an die E-Mail-Adresse des Betriebs. Das Datum der Anfrage steht beim Lieferanten. Bei Sligro geht sie an koppelingen@sligro.nl, sonst tragen Sie die Adresse Ihres Account-Managers ein.
- Ein eigener Lieferant (nicht aus der Liste) kann alles außer dem, was der Lieferant selbst anbieten muss: E-Mail, Datei und Drucken funktionieren immer; eine Anbindung oder ein Upload nur mit den Daten dieses Lieferanten.
- Bestelltage und Lieferung: Bestelltage, spätester Zeitpunkt, Lieferzeit (das gewünschte Lieferdatum auf der Bestellung) und ein Mindestbestellwert. Automatisch: An den Bestelltagen ab dieser Uhrzeit stellt die Kasse selbst eine Bestellung bereit (Sie prüfen sie) oder sendet sie sofort (per E-Mail, Upload oder Anbindung; unter dem Mindestbestellwert nur bereitstellen). Einmal pro Tag pro Lieferant.
- Pro Artikel (Einstellungen → Artikel → (Artikel) → Lagerbestand, bei Pro Artikel) und pro Zutat: Bestellen bei (der Lieferant), Bestellnummer bei diesem Lieferanten, EAN, pro Verpackung (Kiste mit 24 = 24), der Name der Verpackung und der Einkaufspreis pro Verpackung. Der Meldebestand ist der Zeitpunkt zum Bestellen; Auffüllen bis gibt an, wie viel dann da sein soll.
- Einkaufsbestellungen (Registerkarte Einkaufsbestellungen):
- Bestellvorschlag pro Lieferant: alles, was auf oder unter dem Meldebestand liegt. Was bereits bestellt und noch nicht eingetroffen ist (unterwegs), wird berücksichtigt, damit Sie nichts doppelt bestellen. Vorschlag = Auffüllen bis − Bestand − unterwegs (ohne Auffüllen bis: bis zum Meldebestand), aufgerundet auf ganze Verpackungen. Mengen anpassen und Bestellung erstellen.
- Eine Bestellung ist zunächst bereitgestellt: Mengen, freie Zeilen (ohne Artikel, z. B. Servietten), Bemerkung und Lieferdatum lassen sich noch ändern. Dann Senden (auf dem Weg des Lieferanten oder ausnahmsweise anders). Schlägt es fehl (z. B. der Lieferant lehnt ab), steht der Grund dabei und Sie können es erneut versuchen.
- Erhalten: pro Zeile die erhaltene Menge (bereits auf die bestellte Menge gesetzt); der Lagerbestand wird pro Verpackung erhöht (2 Kisten mit 24 = 48), mit der Bestellung im Verlauf.
- Jede Datei (CSV, Excel, UBL, EANCOM, cXML) lässt sich auch einzeln herunterladen.
- Gesendet, fehlgeschlagen, erhalten und storniert werden im Protokoll erfasst. Die normale Bestellliste funktioniert weiterhin; ist bei einem Artikel ein Lieferant aus der Liste hinterlegt, steht er dort unter diesem Namen.
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.
- Jeder Betrieb tippt danach nur auf Mit Google verbinden und meldet sich mit dem eigenen Google-Konto des Unternehmensprofils an. Ein Places-Schlüssel kann auch zentral eingerichtet werden (die Kosten trägt dann der Anbieter). Trustpilot gilt pro Betrieb: Jeder Betrieb hat ein eigenes Trustpilot Business-Konto (die API gehört zu einem kostenpflichtigen Abo), aus dem der Schlüssel, das Geheimnis und die Business User ID stammen. In der Kasse steht bei jeder Variante "Wer kümmert sich darum?".
- App des Lieferanten (über das Kundenportal): Sind die Google-App und/oder die Trustpilot-App des Lieferanten im Kundenportal hinterlegt (siehe die README von horecapos-portaal, "Reviews: Apps des Lieferanten"), wählt der Administrator unter Anmeldung und Schlüssel die Option App des Lieferanten (Standard bei einer neuen Verbindung, wenn das Portal die App hat). Der Betrieb tippt auf Mit Google verbinden oder Mit Trustpilot anmelden und meldet sich mit dem eigenen Konto an; die Kasse wartet selbst, bis die Anmeldung abgeschlossen ist (alle 3 Sekunden, höchstens 15 Minuten), und holt die Tokens einmal beim Portal ab. Das Erneuern läuft ebenfalls über das Portal. Keine Client-ID, kein Secret und kein API-Schlüssel in der Kasse nötig; bei Trustpilot aber die Domain und, für Antworten, die business user ID. Trustpilot öffentlich liest dann über den Schlüssel des Portals. Erfordert
PORTAAL_URLundPORTAAL_SLEUTEL. Eigene App oder API-Schlüssel funktioniert weiterhin wie unten beschrieben. - Wem gehören die Bewertungen: Sie bleiben im eigenen Google-Unternehmensprofil und auf der eigenen Trustpilot-Seite des Betriebs, und die Kasse speichert sie nur in der eigenen Kassendatenbank. Antworten erscheinen unter dem Namen des Betriebs. Das Portal leitet nur die Anmeldung weiter (im Arbeitsspeicher, höchstens 15 Minuten, einmal abrufbar) und speichert keine Bewertungen oder Tokens; der Name der App des Lieferanten steht nur auf dem Zustimmungsbildschirm.
- Selbst registrieren: Bei jeder Plattform gibt es einen Link, um selbst ein Google-Unternehmensprofil (business.google.com/create) oder ein Trustpilot Business-Konto (business.trustpilot.com) anzulegen, und bei Trustpilot zu den Tarifen (business.trustpilot.com/plans). Registrierung und Bezahlung erfolgen direkt bei der Plattform; dafür gibt es keine API.
- Danach Mit Google verbinden und mit dem Konto anmelden, das das Unternehmensprofil verwaltet. Ein Standort im Profil = sofort ausgewählt; mehrere = in der Kasse wählen.
- Google Places (nur lesen): mit der Place ID und einem API-Schlüssel der Places API (oder
GOOGLE_PLACES_API_KEY): der Durchschnitt, die Anzahl der Bewertungen und die 5 relevantesten Bewertungen. Antworten ist so nicht möglich. - Trustpilot Business (lesen und beantworten): API-Schlüssel und API-Secret einer Anwendung in Trustpilot Business (Integrations → API; oder
TRUSTPILOT_API_KEYundTRUSTPILOT_API_SECRET), die Domain des Betriebs (die Kasse sucht die Business Unit) und, für Antworten, die Business User ID der antwortenden Person. - Trustpilot öffentlich (nur lesen): nur der API-Schlüssel.
- Die Kasse ruft alle 30 Minuten ab (und direkt nach dem Verbinden; Jetzt abrufen). Die E-Mail-Adresse und die Bestellnummer des Gastes (die Trustpilot mitliefert) speichert die Kasse nicht.
- Bericht → Bewertungen: Durchschnitt, Anzahl pro Stern, ohne Antwort und ungelesen; filtern nach Plattform, Sternen, ohne Antwort und ungelesen. Pro Bewertung Antworten (höchstens 4000 Zeichen; jeder kann es lesen), Antwort ändern, Antwort entfernen und Gelesen. Eine neue oder geänderte Bewertung ist ungelesen. Im Protokoll stehen review_beantwoord und review_antwoord_weg.
- Beim Trennen bleiben die abgerufenen Bewertungen erhalten.
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.
- Einwilligung pro Kunde und pro Kanal: Bei einem neuen Kunden an der Kasse gibt es die Häkchen "Kunde möchte Aktionen per SMS erhalten" und "... per E-Mail erhalten" (standardmäßig aus). Unter Bericht → Kunden sehen und ändern Sie die Einwilligung (mit dem Datum, an dem sie erteilt wurde) und einen Geburtstag (nur Tag und Monat). Abmelden: Häkchen entfernen und speichern.
- Menü sofort aktualisiert: Schalten Sie Marketing oder die Kundenkarte ein oder aus, sendet die Kasse innerhalb weniger Sekunden das Menü erneut an den Webshop (nur wenn sich etwas geändert hat), sodass das Häkchen sofort erscheint oder verschwindet.
- Einwilligung über den Webshop: Hat der Betrieb einen Webshop, steht beim Bezahlen das Häkchen "Ich möchte Angebote per E-Mail/SMS erhalten" (nur die eingeschalteten Kanäle; standardmäßig aus). Kommt eine solche Bestellung herein, sucht die Kasse den Kunden über die Telefonnummer (sonst die E-Mail-Adresse), legt ihn bei Bedarf an und setzt die Einwilligung mit Datum. Eine fehlende Nummer oder Adresse bei einem bestehenden Kunden wird ergänzt; im Protokoll steht klant_toestemming mit der Quelle webshop.
- Bericht → Marketing (Recht Kundenkarte verwalten): oben, wie viele Kunden eine Einwilligung für SMS und für E-Mail gegeben haben.
- Aktionen (einmalig): Name, SMS oder E-Mail, (Betreff,) Text mit
{naam},{zaak}und{punten}, und auf Wunsch nur Kunden, die eine Zeit lang nicht da waren oder mindestens so viele Punkte haben. Ansehen zeigt, an wie viele Kunden es geht, die Nachricht so, wie der Kunde sie erhält, und die Anzahl SMS pro Kunde. Test senden an Ihre eigene Nummer oder Adresse. Danach Senden: Die Kasse sendet im Hintergrund (höchstens 1000 pro Durchgang) und zählt, was gesendet wurde und was fehlgeschlagen ist. Niemand erhält dieselbe Aktion zweimal; bricht die Kasse mittendrin ab, macht Weiter senden bei denen weiter, die noch nichts erhalten haben. - Versenden über Mailchimp oder Klaviyo (mit einer Anbindung mit gewählter Liste, siehe unten): Bei einer Aktion per E-Mail wählen Sie unter Versenden über die Kasse (den eigenen Mailserver, wie oben), Mailchimp oder Klaviyo. Dann aktualisiert die Kasse zuerst die Liste (Abmeldungen, Punkte), erstellt dort eine Kampagne für genau die gewählten Kunden, die auf der Liste stehen (Mailchimp: eine feste Gruppe in der Audience; Klaviyo: eine eigene Liste für die Aktion), und versendet sie mit dem Standardabsender der Audience bzw. des Kontos.
{naam}und{punten}füllt Mailchimp/Klaviyo pro Kunde aus; der Abmeldelink des Dienstes steht darunter. Kein Limit von 1000 pro Durchgang und kein persönlicher Rabattcode ({code}). Klappt es nicht, bleibt die Aktion ein Entwurf mit der Meldung dazu. Den Tab Marketing gibt es auch, wenn nur die Anbindung aktiv ist (dann nur Aktionen über Mailchimp/Klaviyo; Test senden läuft über den Mailserver der Kasse). Automatische Nachrichten versendet die Kasse immer selbst; in Mailchimp/Klaviyo erstellen Sie diese als Customer Journey oder Flow. Klaviyo-Schlüssel: auch Schreibrechte für Campaigns und Templates (wer sich schon angemeldet hat: erneut anmelden). - Als Push-Benachrichtigung über den Webshop (wenn in der Webshop-Verwaltung Push-Benachrichtigungen mit Angeboten eingeschaltet ist): Wählen Sie bei Senden per Push-Benachrichtigung (Webshop als App), mit einem Titel (höchstens 60 Zeichen) und einem kurzen Text (höchstens 200 Zeichen; nur
{zaak}wird eingesetzt, denn der Webshop weiß nicht, wer der Gast ist). Die Kasse sendet die Aktion über das Verwaltungsportal an den Webshop, und dieser sendet sie an die Gäste, die dort Angebote als Benachrichtigung einschalten; Tippen öffnet das Menü des Webshops. Nach einigen Sekunden steht bei der Aktion, wie viele zugestellt wurden. Höchstens 3 pro Tag, zusammen mit dem, was der Betrieb in der Webshop-Verwaltung versendet; sonst bleibt die Aktion ein Entwurf mit dem Grund dazu. Der Tab Marketing ist auch vorhanden, wenn nur dies eingeschaltet ist (ohne Kundenkarte oder E-Mail-Marketing). Kein Rabattcode und keine Auswahl (Tage, Punkte); zum Testen: Schalten Sie auf Ihrem eigenen Telefon im Webshop Angebote als Benachrichtigung ein. - Automatisch: eine Geburtstagsnachricht (am Geburtstag, einmal im Jahr) und "Wir vermissen Sie" (nach so vielen Tagen ohne Besuch, einmal jedes Mal, wenn der Kunde wegbleibt). An/aus pro Nachricht; sie gehen nur tagsüber (10:00–20:00) hinaus.
- Persönlicher Rabattcode (optional, pro Nachricht oder Aktion; nur wenn Rabattcodes unter Einstellungen → Betrieb eingeschaltet sind): Jeder Kunde erhält einen eigenen Code, z. B.
TERUG-7K4Q2M(GeburtstagJARIG-…, AktionACTIE-…), in Prozent oder als fester Betrag, optional mit einem Mindestbestellwert, einmal verwendbar, nach dem Versand so viele Tage gültig wie eingestellt (Standard 30) und an der Kasse und/oder im Webshop. Setzen Sie{code}und{geldig}an die gewünschte Stelle im Text; sonst setzt die Kasse unter die Nachricht "Uw kortingscode: … (10% korting, aan de kassa of in de webshop, geldig t/m …)". Ansehen und Test senden zeigen einen Beispielcode (TERUG-VOORBEELD, funktioniert nicht). Schlägt der Versand fehl, wird der Code nicht angelegt. Bei der Aktion steht, wie viele Codes ausgegeben und verwendet wurden. - Abmelden steht unter jeder Nachricht: bei einer SMS "Abmelden? Rufen Sie ... an oder sagen Sie es bei Ihrem nächsten Besuch", bei einer E-Mail ein Abmeldelink an die E-Mail-Adresse des Betriebs (auch die Schaltfläche Abmelden in Gmail und Outlook). Eine Antwort auf die Mail geht an den Betrieb.
- Datenschutz (DSGVO): nur Kunden mit Einwilligung und einer Nummer oder Adresse; keine Nummern oder Adressen im Protokoll, wohl aber pro Aktion, wie viel gesendet wurde und fehlgeschlagen ist. Löschen Sie einen Kunden, verschwindet er auch aus der Versandliste.
- Kosten: SMS laufen über Ihr eigenes CM.com-Konto (mehr als 160 Zeichen = mehrere SMS pro Kunde). Gmail und andere Mailserver haben ein Tageslimit; senden Sie bei vielen Kunden in Teilen.
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:
| Option | Verteilung |
|---|---|
| Aus (Standard) | nur die Trinkgeldsumme, wie bisher |
| Jeder eigenes Trinkgeld | Trinkgeld der Rechnungen, die jemand selbst kassiert hat |
| Topf nach Stunden | alles Trinkgeld zusammen, nach eingestempelten Stunden in diesem Zeitraum (erfordert Ein- und Ausstempeln; niemand gestempelt = gleich) |
| Topf gleich | alles 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.
- Das Mailen erfolgt im Hintergrund, sodass ein langsamer Mailserver den Tagesabschluss nicht aufhält.
- Fehlgeschlagen oder noch einmal nötig: Bericht → Frühere Z-Berichte → (Bericht) → Erneut mailen (mit dem Vermerk KOPIE).
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):
- Umsatz, Belege und Gäste und der Betrag pro Beleg, im Vergleich zum selben Zeitraum eine Woche zuvor (in Prozent); gab es damals nichts, steht das dabei;
- die 5 meistverkauften Artikel und Auffälligkeiten: Artikel, von denen mindestens 3 mehr oder weniger verkauft wurden als in der Vorwoche;
- die Anzahl der Stornos (im Vergleich zur Vorwoche) und die stärkste Stunde (Belege und Umsatz).
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:
- Umsatz pro Stunde als Grafik: der gewählte Tag (blau) neben demselben Tag der Vorwoche (grau). Heute wird mit der Vorwoche bis zur selben Uhrzeit verglichen, damit der Prozentsatz fair ist. Mit ◀ ▶ oder dem Datum wählen Sie einen anderen Tag.
- Kacheln: Umsatz (± % gegenüber Vorwoche), Belege und Durchschnitt pro Beleg, durchschnittliche Ausgabe pro Gast (nur vor Ort; Abholung/Lieferung zählt nicht) für diesen Tag und für den gewählten Zeitraum.
- Top 10 Artikel und Stoßzeiten über die letzten 7, 28 oder 90 Tage. Stoßzeiten ist eine Heatmap Wochentag × Stunde (durchschnittlicher Umsatz pro Öffnungstag) mit den drei stärksten Stunden darüber, praktisch für den Dienstplan.
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).
- Menu Engineering: pro Artikel, wie oft er verkauft wurde (Anteil an allen verkauften Stück), im Vergleich dazu, was er pro Stück einbringt (Marge = Verkaufspreis ohne MwSt. minus Kostpreis). Jeder Artikel erhält eine Einstufung: Star (beliebt und hohe Marge: so lassen), Arbeitspferd (beliebt, geringe Marge: Preis etwas erhöhen oder günstiger herstellen), Rätsel (wenig verkauft, hohe Marge: besser in Szene setzen) und Hund (wenig verkauft, geringe Marge: von der Karte nehmen oder ersetzen). Beliebt = mindestens 70% eines gleichen Anteils; hohe Marge = mindestens die durchschnittliche Marge pro verkauftem Stück. Der Kostpreis kommt aus Apicbase (Einstellungen → Rezepturen), sonst aus dem Einkaufspreis des Artikels (Einkaufspreis pro Verpackung geteilt durch die Anzahl pro Verpackung), sonst aus dem Rezept aus Zutaten mit Einkaufspreis (Lagerbestand). Artikel ohne Kostpreis stehen separat unten. Optional pro Warengruppe (
?groep=). - Aktionen und Codes: pro Rabattcode, pro Aktion aus Marketing (die persönlichen Codes zusammen) und pro Happy Hour: wie oft genutzt (Belege; bei einer Happy Hour auch die Stückzahl), wie viel Rabatt, der Umsatz und der Durchschnitt pro Beleg.
- Verluste: was vom Lagerbestand ausgebucht wurde (Einstellungen → Lagerbestand, Ausbuchen (−)), pro Grund (Groß-/Kleinschreibung und Leerzeichen spielen keine Rolle) und pro Artikel oder Zutat, mit dem Wert zum Kostpreis; und was storniert wurde, nachdem es bereits an die Küche oder Bar geschickt worden war, mit Verkaufs- und Kostenwert.
Rabatte
Ein Manager oder Administrator sieht im Bestellbildschirm neben der Summe die Taste % Rabatt:
- auf den ganzen Beleg oder auf eine Zeile;
- als Prozentsatz (10, 15, 20, 25, 50, 100% = gratis, oder selbst eingeben) oder als fester Betrag;
- immer mit einer Begründung (Personal, Stammkunde, Reklamation, Aktion, Eigenverbrauch oder selbst eingeben).
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):
- Rabatt in Prozent oder als fester Betrag, eventuell mit einem Mindestbestellwert, gültig von/bis und höchstens so oft (leer = unbegrenzt);
- pro Code: an der Kasse und/oder im Webshop (die Kasse schickt die Codes mit dem Menü mit; die Nutzung zählt für Kasse und Webshop zusammen).
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
Taste Bericht in der oberen Leiste:
- Zwischenstand (X): Umsatz, MwSt., Zahlungsarten, pro Gruppe und die Kassenschublade seit dem letzten Tagesabschluss. Auch druckbar. Schließt nichts ab.
- Tagesabschluss (Z) (Manager oder Administrator): Kassenschublade zählen (Differenz zu Anfangsbestand + bar wird angezeigt), Anfangsbestand für den nächsten Tag eingeben, abschließen. Der Z-Bericht erhält eine fortlaufende Nummer, wird gespeichert und auf dem Bondrucker gedruckt. Nicht möglich, solange Bestellungen offen sind. Optional: Nach Münzen und Scheinen zählen (Zählhilfe) trägt den gezählten Betrag für Sie ein; die Zählung pro Münze/Schein kommt dann auch auf den Z-Bericht. Die Summe selbst eintippen funktioniert wie bisher.
- Kassenschublade (Manager oder Administrator, optional):
- Geld aus der Schublade (Einzahlung bei der Bank, Ausgabe, Trinkgeld ausgezahlt) oder Geld in die Schublade (Wechselgeld) mit Betrag und Begründung. Die Schublade öffnet sich und es wird ein Beleg mit Unterschriftszeile gedruckt, der beim Geld aufbewahrt wird (abschaltbar). Es zählt zu erwartet in der Schublade und steht zeilenweise im X- und Z-Bericht.
- Anfangsbestand von heute eingeben oder korrigieren (normalerweise geben Sie ihn beim Tagesabschluss für den nächsten Tag ein).
- Schublade ohne Verkauf öffnen, mit Begründung.
- Alles kommt ins Protokoll. Nutzen Sie das nicht, funktioniert der Tagesabschluss genau wie bisher (Anfangsbestand + bar = erwartet in der Schublade).
- Unter dem Umsatz stehen die Anzahl der Gäste (Personen der kassierten Bestellungen) und der Durchschnitt pro Gast, auch auf dem gedruckten X/Z-Bericht.
- Umsatz pro Zeitraum (Manager oder Administrator): heute, gestern, diese/letzte Woche, dieser/letzter Monat, dieses Jahr oder selbst von–bis wählen. Zeigt Umsatz, MwSt., Zahlungsarten, Trinkgeld, Gäste, Artikelgruppen, pro Tag und pro Mitarbeiter. Mit Exportieren (Excel/CSV) erhalten Sie eine Datei für den Buchhalter (Semikolons und Dezimalkomma, öffnet direkt in deutschem Excel).
- Frühere Z-Berichte: Liste mit Umsatz und Kassendifferenz; öffnen und eine Kopie drucken (mit dem Vermerk "KOPIE").
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):
| Seite | Was |
|---|---|
| Soll | Einnahmen pro Zahlungsart (bar, Karte, Gutschein, online, sonstige), inkl. Trinkgeld |
| Haben | Umsatz pro MwSt.-Satz (ohne MwSt.) und abzuführende MwSt. pro Satz |
| Haben | Trinkgeld (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:
| Format | Datei | Einlesen in die Software |
|---|---|---|
| Allgemein (CSV) | journaal_…csv | jede Software mit CSV-/Memorialimport (Spalten zuordnen) |
| UBL 2.1 / Peppol (XML), NL und BE | journaal_…_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), NL | journaal_…_xaf.xaf | Auditfile 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), NL | journaal_…_accountview.xml | XML-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.xml | XML 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), NL | journaal_…_asperion.csv | FMUTA-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 BE | journaal_…_dagstaat.html | lesbare 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.csv | Datum; 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.xml | eExact-XML (Thema GLTransactions): pro Tag eine Memorialbuchung (Typ 90) im Journal; Import/Export → XML importieren |
| InformerOnline (TXT), NL | journaal_…_informer.txt | tabulatorgetrenntes Memorial (Geavanceerd → Memoriaal → uploaden); das Journal muss eine Nummer 1–99 sein (sonst 90) |
| KING ERP (XML), NL | journaal_…_king.xml | KING_JOURNAAL: ein Buchungsstapel (nicht endgültig) mit einem Buchungssatz pro Tag |
| KOMAS (CSV), NL | journaal_…_komas.csv | KOMAS freies Format (0401 Importeren journaalposten): Datum; Grootboek; Omschrijving; Bedrag |
| Odoo (CSV), NL und BE | journaal_…_odoo.csv | Buchhaltung → Journal Entries → Import records; Journal und Konto nach Name oder Code |
| Sage BOB 50 (Excel), BE | journaal_…_bob.xlsx | Importation de données externes → Opérations diverses (Spalten einmalig zuordnen) |
| SAP Business One (ZIP), NL und BE | journaal_…_sapb1.zip | Data Transfer Workbench, Journal Entries: JournalEntries.csv und JournalEntries_Lines.csv |
| SnelStart (CSV) | journaal_…_snelstart.csv | Datum; Belegnummer; Beschreibung; Sachkonto; Soll; Haben (TT-MM-JJJJ, Dezimalkomma, ohne BOM); Memorial importieren, das Journal wählen Sie beim Einlesen |
| Twinfield (XML) | journaal_…_twinfield.xml | Journalbuchungen als Entwurf (destiny="temporary"), der Buchhalter macht sie endgültig; tragen Sie den Administrationscode ein (leer = die Administration, in die Sie importieren) |
| Winbooks (CSV), BE | journaal_…_winbooks.csv | K_DOC.CSV, pro Tag ein Beleg im Journal (Winbooks nummeriert selbst) |
| Yuki (XML) | journaal_…_yuki.xml | Journal-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.
| Software | NL | BE | Live | Datei | Anmerkung |
|---|---|---|---|---|---|
| KMU und Freiberufler | |||||
| Accountable | – | ✓ | – | Tagesabrechnung (HTML, für PDF oder E-Mail) | |
| AccountView (Visma) | ✓ | – | auf Anfrage | AccountView (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 Anfrage | Asperion (CSV) | Live nach Anmeldung als API-Partner bei Asperion. |
| Billit | – | ✓ | auf Anfrage | UBL 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 Anfrage | KING 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 Anfrage | XML 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 Anfrage | Winbooks (CSV) | |
| Wolters Kluwer Adsolut | – | ✓ | auf Anfrage | UBL 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 CSV | Keine 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 Anfrage | allgemeine 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 Anfrage | UBL 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.
- Die Liste ist nach Segment gegliedert (KMU und Freiberufler, International, Enterprise und Ketten) und zeigt nur die Programme, die im Land des Betriebs funktionieren; der Server lehnt eine Software aus einem anderen Land ab (400) und bucht nicht damit (409). Direkt darunter erhält der Administrator genau die Felder dieser Software; Verbinden und die Liste der gebuchten Tage stehen unter den Sachkonten, darunter die Übersicht aller Programme für dieses Land. Waren beim Update zwei aktiv (in einer älteren Version war das möglich), bleibt Exact Online aktiv und die andere Software wird ausgeschaltet.
| Software | Land | Verbinden mit | Was die Kasse bucht |
|---|---|---|---|
| Acumulus | NL | Vertragscode, Benutzer und Passwort eines API-Benutzers | pro Tag eine bezahlte Verkaufsrechnung mit einer Zeile je MwSt.-Satz; Fehler sendet Acumulus per E-Mail an ACUMULUS_FOUTMAIL |
| AFAS Profit | NL | Umgebung, Token, Administration | Memorial (FiEntries) |
| Business Central | NL, BE | Tenant, Umgebung, Unternehmen, Client-ID und Geheimnis einer Microsoft Entra-App (API.ReadWrite.All) | Zeilen im allgemeinen Journal mit dem Code aus Journal |
| Exact Online | NL, BE | anmelden (OAuth, eigene App: siehe Exact Online unten; Belgien: start.exactonline.be) | Memorialbuchung im Journal (z. B. 90) |
| Horus | BE | anmelden (OAuth, App unten), optional Mandant | sonstiger Vorgang |
| Moneybird | NL | API-Token, optional Administration | Memorial (general journal document) |
| Odoo | NL, BE | Adresse, Datenbank, Benutzer, API-Schlüssel | Buchungssatz im Journal mit dem Kurzcode (z. B. MISC) |
| QuickBooks Online | NL, BE | anmelden (OAuth, App unten; QUICKBOOKS_OMGEVING) | Journal Entry; Konten nach Nummer |
| SAP Business One | NL, BE | Adresse des Service Layer, Datenbank, Benutzer, Passwort | Buchungssatz (JournalEntries) |
| Silvasoft | NL, BE | Benutzer und API-Schlüssel | Verkaufsbuchung auf den Kontakt Kassaverkopen, eine Zeile je MwSt.-Satz (Zahlungsarten, Trinkgeld und Kassendifferenz werden nicht übertragen) |
| SnelStart | NL | Verbindungsschlüssel und Abonnementschlüssel | Memorial |
| Twinfield | NL | anmelden (OAuth, App unten), optional Büro | Journaltransaktion |
| Xero | NL, BE | anmelden (OAuth, App unten), optional Organisation | Manual Journal; Konten nach Code |
| Yuki | NL, BE | API-Schlüssel, optional Administration | Memorial (GeneralJournal) |
| Zoho Books | NL, BE | anmelden (OAuth, App unten; standardmäßig das europäische Rechenzentrum), optional Organisation | Buchungssatz; Konten nach Code |
- OAuth (Horus, QuickBooks, Twinfield, Xero, Zoho): einmalig eine App bei der Software registrieren.
- Bei einigen Programmen lassen sich die Felder der API nicht vollständig aus der öffentlichen Dokumentation bestätigen (u. a. Horus, Zoho Books, das Vorzeichen bei Business Central und der Aufbau bei SAP Business One): Lassen Sie die erste Buchung immer vom Buchhalter prüfen.
- Exact Online: bucht das Journal als Memorialbuchung in der gewählten Administration.
- Auswählen unter Einstellungen → Buchhaltung → Buchhaltungssoftware → Exact Online (standardmäßig Aus). Belgien: Die Kasse verwendet automatisch
start.exactonline.be. - Einstellungen → Buchhaltung → Exact Online: Mit Exact Online verbinden öffnet die Anmeldung bei Exact; danach steht dort, mit welcher Administration die Kasse verbunden ist. Tragen Sie bei Journal den Code eines Memorials in Exact ein (z. B.
90) und sorgen Sie dafür, dass die Sachkonten in Exact existieren. - Wann: direkt nach dem Tagesabschluss und danach jede Stunde, für alle vergangenen Tage (bis einschließlich gestern) ab Buchen ab (standardmäßig der Tag der Verbindung; frühere Tage hat der Buchhalter schon). Jeder Tag einmal; Tage ohne Umsatz werden übersprungen. Jetzt buchen geht immer.
- Fehler (ein Konto existiert nicht in Exact, der Tag geht nicht auf, kein Internet) stehen mit dem Grund bei diesem Tag; die Kasse versucht es später erneut, und die folgenden Tage warten, bis es geklappt hat (so bleibt die Reihenfolge richtig). Im Protokoll: "exact_geboekt".
- Die MwSt. steht auf den MwSt.-Sachkonten (ohne MwSt.-Code, genau wie im Export). Lassen Sie die ersten Buchungen von Ihrem Buchhalter prüfen.
- Exact: Eine Verbindung funktioniert, solange die Kasse sie nutzt (alle 10 Minuten ein neues Token, jedes Mal ein neues Refresh-Token). Wurde sie widerrufen oder zu lange nicht genutzt, fragt die Kasse nach Erneut verbinden. Entkoppeln löscht die Tokens; was gebucht ist, bleibt.
- Auswählen unter Einstellungen → Buchhaltung → Buchhaltungssoftware → Exact Online (standardmäßig Aus). Belgien: Die Kasse verwendet automatisch
- AFAS Profit: Umgebungsnummer (z. B.
12345; Produktion, Test oder Abnahme), das Token eines App-Connectors mit dem UpdateConnector FiEntries und die Administrationsnummer (Standard 1). Journal = der Code eines Memorials in AFAS (z. B.90). - Journal = Nummer oder Name eines Memorialjournals; gibt es nur ein Memorialjournal, nimmt die Kasse dieses. Sachkonten müssen Nummern sein.
- Twinfield: Anmeldung mit OAuth. Ohne diese App kann die Kasse keine Verbindung herstellen. Die Kasse sucht den Cluster und die Administration (leer = die erste); Journal = der Code eines Memorials (z. B.
MEMO). Bucht endgültig (destiny="final"). - Yuki: API-Schlüssel der Administration (Yuki → Einstellungen → Webservices); Administration leer = die erste zu diesem Schlüssel. Bucht ein Memorial (GeneralJournal); Yuki verwendet keinen Journalcode.
- Wann: direkt nach dem Tagesabschluss und jede Stunde, für alle vergangenen Tage ab Buchen ab (Standard der Tag der Verbindung; bei einer anderen Software erneut ab diesem Tag). Jeder Tag einmal pro Software; Tage ohne Umsatz werden übersprungen; bei einem Fehler steht der Grund bei diesem Tag und die folgenden Tage warten. Jetzt buchen geht immer. Im Protokoll: "boekhoudpakket_geboekt".
- Schlüssel und Tokens werden nie angezeigt (beim erneuten Verbinden leer lassen = beibehalten). Auf der Kopie der Kasse im Portal wird nicht gebucht.
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):
- Stammdaten: der Betrieb (Name, USt-IdNr., Adresse), die MwSt.-Codes, alle Mitarbeiter (mit Rolle und Erstellungsdatum; dazu
SYSTEEMfür das, was die Kasse selbst tut, etwa Webshop und Anbindungen) und alle Artikel mit ihrer Gruppe; - Ereignisse: alles aus dem Protokoll im Zeitraum (An- und Abmelden, Kassenschublade geöffnet, Tagesabschluss, Einstellungen und Preise geändert, Storno, Rabatt, Retoure, Belegkopie, Ein- und Ausstempeln ...) und das Eröffnen des Kassentags mit dem Wechselgeld, jeweils mit dem Code des Belastingdienst (18001 Anmelden, 18003 Schublade, 18006 Änderung der Installation, 18008 Z-Bericht, sonst 18999);
- Kassentransaktionen: jeder Beleg (Verkauf, Retoure und Proforma, mit Belegnummer, Mitarbeiter und dem fiskalischen Status, falls dieser nicht in Ordnung ist) mit allen Positionen (Artikel, Gruppe, Menge, Preis, MwSt.; auch Rabatte, Gutscheine, Menüköpfe und vor dem Abrechnen stornierte Positionen, diese mit Betrag 0), die MwSt. pro Satz, die Rundung, die Zahlungen pro Zahlungsart (bar, Karte, Gutschein, online; Trinkgeld getrennt) und das Geld rein/raus aus der Kassenschublade.
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).
- Kunden: Unter Bericht → Auf Rechnung legen Sie die Geschäftskunden mit den Rechnungsdaten an (Name, Adresse, USt-IdNr., KvK-/Unternehmensnummer, Peppol-ID, E-Mail), optional ein Kreditlimit (wie viel höchstens offen sein darf) und ein eigenes Zahlungsziel (sonst das der Rechnungen) sowie, ob die Rechnung sofort versendet wird.
- Kassieren: Zahlungsart Auf Rechnung, Kunden wählen (mit dem bereits offenen Betrag und dem Kreditlimit). Der Bon ist ein normaler Verkauf: Umsatz und MwSt. an diesem Tag, in Belgien ganz normal über die Blackbox, auf dem Bon "Auf Rechnung". Die Kasse erstellt sofort die Rechnung (UBL/Peppol und zum Drucken) über den noch offenen Betrag mit Fälligkeitsdatum und versendet sie wie bei den Rechnungen eingestellt (E-Mail, Peppol über Billit/Storecove/Banqup oder die eigene Adresse). Auf Rechnung ist ein Betrag für den Rest der Rechnung (vorher einen Teil anders zahlen ist möglich), ohne Trinkgeld; ein Gutschein kann nicht auf Rechnung verkauft werden. Über dem Kreditlimit lehnt die Kasse ab.
- Zahlen: Der Kunde zahlt im Betrieb bar, mit Karte oder Gutschein (Bericht → Auf Rechnung → Zahlung erhalten; auch teilweise). Das ist kein neuer Verkauf und kein neuer Kassenbon: Bargeld kommt als Geld in die Lade (die Lade öffnet sich), alles steht im X- und Z-Bericht unter Auf Rechnung erhalten. Ist alles bezahlt, steht die Rechnung auf "bezahlt". Online-Zahlung gehört nicht dazu.
- Überwiesen: Ist unter Angaben auf der Rechnung eine IBAN hinterlegt, steht sie auf der Rechnung (und in der UBL), mit "Sie können auch im Betrieb bezahlen". Hat der Kunde überwiesen, erfassen Sie das mit Zahlung erhalten → Überwiesen (Bank): nicht in der Kassenlade, aber auf X und Z unter Auf Rechnung erhalten. Ohne IBAN steht dort "Im Betrieb zu bezahlen". In Belgien steht eine strukturierte Mitteilung (+++123/4567/89012+++, aus der Rechnungsnummer) auf der Rechnung und in der UBL, damit die Bank sie mitschickt.
- Bank: Überweisungen ohne Abtippen verbuchen, siehe unten.
- Guthaben (Geld im Voraus): Unter Bericht → Auf Rechnung → Guthaben einzahlen zahlen Sie Geld im Voraus auf das Konto eines Kunden ein, bar (die Schublade öffnet sich) oder per Karte, z. B. für eine Reihe von Mittagessen. Beim nächsten Kauf auf Rechnung wird das Guthaben zuerst von der Rechnung abgezogen; ist der Rechnungsbetrag höher, bleibt der Rest offen. Das Guthaben steht beim Kunden (Guthaben € ...), im X- und Z-Bericht unter Auf Rechnung erhalten (Guthaben eingezahlt, Mit Guthaben des Kunden) und im Buchungsjournal als im Voraus erhalten (standardmäßig 1640 / 460000). In Belgien geht die Einzahlung als Geldeingang (signMoneyInOut) an die Blackbox (UC4100).
- Sammelrechnung (pro Kunde, standardmäßig aus): Mit Eine Rechnung für alle Bons erhält der Kunde bei einem Verkauf auf Rechnung noch keine Rechnung. Der Bon bleibt beim Kunden offen (Noch nicht abgerechnete Bons, zählt zum Limit) und kann schon bezahlt werden. Mit Sammelrechnung erstellen (z. B. am Monatsende) kommen alle offenen Bons auf eine Rechnung, jede Zeile mit der Bonnummer davor; was schon bezahlt ist, steht als bezahlt darauf. Eine Retoure auf Rechnung erscheint als negative Zeilen. Aus = wie immer eine Rechnung pro Verkauf. In Belgien eine Rechnung mit allen Bons bei der Blackbox (signInvoice, UC4121 und UC4122).
- Belgien: Bezahlt der Kunde später einen Kauf auf Rechnung (bar, Karte, Gutschein oder Überweisung), meldet die Kasse das als Zahlungskorrektur auf dem Beleg: von Kundenkredit auf die tatsächliche Zahlungsart (signPaymentCorrection, UC4118).
- Übersicht: offene Rechnungen mit Fälligkeitsdatum (überfällig in Rot), pro Kunde die Rechnungen und Zahlungen. Unter Einstellungen → Rechnungen eine Spalte Offen.
- Buchhaltung: Im Journal geht der Verkauf auf Rechnung an Debitoren (Standard 1300 in den Niederlanden, 400000 in Belgien; einstellbar unter Einstellungen → Buchhaltung) und die Zahlung von Kasse, Karte, Gutschein oder Bank (Standard 1050 / 550000) an Debitoren. XAA: Zahlungsart "Auf Rechnung".
- Recht: Auf Rechnung kassieren und Zahlungen auf Rechnung annehmen (Standard Bedienung nein, Manager ja). Alles wird im Protokoll festgehalten.
- Aus: Kunden, Rechnungen und Zahlungen bleiben erhalten (auch im Backup); der Schalter geht mit in den Konfigurationsexport, die Kunden nicht (die gehören zu einem Betrieb).
- Im Webshop (optional, standardmäßig aus): Mit Auch im Webshop bestellen Geschäftskunden online auf Rechnung (Abholung und Lieferung). Unter Bericht → Auf Rechnung erstellen Sie pro Kunde einen Kundencode und geben ihn dem Kunden; die Kasse speichert nur eine verschlüsselte Version, Sie sehen ihn also nur einmal. Neuer Kundencode = der alte funktioniert nicht mehr; Kundencode entfernen = dieser Kunde kann nicht mehr online auf Rechnung bestellen. Der Webshop hält das Kreditlimit ein. Im Fenster Webshop schließen Sie eine solche Bestellung mit Abschließen (auf Rechnung) ab: Kassieren auf Rechnung, mit sofortiger Rechnung.
Bank: Überweisungen verbuchen
Unter Bericht → Auf Rechnung → Bank sucht die Kasse zu jedem Zahlungseingang die passende Rechnung (Kauf auf Rechnung):
- Kontoauszug einlesen: die Datei aus Ihrem Online-Banking, als CAMT.053 (XML, alle Banken in den Niederlanden und Belgien), MT940 (.sta/.940) oder CODA (.cod, Belgien). Nur Zahlungseingänge; ein Auszug, der zweimal eingelesen wird, ergibt keine doppelten Zeilen.
- Suchen: nach der Rechnungsnummer oder der strukturierten Mitteilung im Verwendungszweck (sicher), sonst nach Betrag (und Name): dann ist es ein Vorschlag. Jede Zeile können Sie verbuchen (beim Vorschlag oder einer anderen Rechnung), ignorieren oder später trotzdem verbuchen. Verbuchen = Überwiesen (Bank) zum Bankdatum, nie mehr als offen ist; nicht in der Kassenlade.
- Bankanbindung (PSD2, optional): Unter Einstellungen → Rechnungen → Bankanbindung ruft die Kasse jede Stunde selbst die Zahlungseingänge über Enable Banking ab (Banken in den Niederlanden, Belgien und im übrigen Europa). Wählen Sie die Bank und melden Sie sich dort an (Geschäftskonto); die Zustimmung gilt 180 Tage, danach erneut verbinden. Trennen widerruft die Zustimmung; die Zahlungseingänge bleiben erhalten. Ohne Vertrag mit Enable Banking funktioniert das nur für Ihre eigenen Konten (restricted production).
- Automatisch verbuchen (standardmäßig aus): Einen Zahlungseingang, der sicher zu einer Rechnung gehört, verbucht die Kasse sofort (auch beim Einlesen).
- Recht: Verbuchen mit Auf Rechnung abrechnen und Zahlungen auf Rechnung annehmen; die Bankanbindung einrichten mit Betrieb, Bezahlen und Drucker einrichten. Einlesen, Verbinden, Abrufen und Verbuchen werden im Protokoll erfasst.
- Aus: Ist Kauf auf Rechnung ausgeschaltet, ruft die Kasse nichts ab; die Zahlungseingänge und die Anbindung bleiben gespeichert (auch im Backup).
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:
- Hikvision, Dahua, Axis und Reolink: eine Kamera oder ein Rekorder (NVR) im Netzwerk: die IP-Adresse (ggf. mit
:poort), ein Benutzer (am besten nur mit Ansichtsrechten) und die Kanäle, z. B.1-8oder1,3,5. Anmeldung mit Basic oder Digest; https mit eigenem Zertifikat ist erlaubt. - Synology Surveillance Station: die Adresse des NAS (Standardport 5000, mit https 5001) und ein Benutzer; Kameras abrufen holt die Kameras mit ihren Namen.
- UniFi Protect: die Adresse der Konsole (https) und ein lokales Konto; Kameras abrufen.
- ONVIF: jede Kamera oder jeder Rekorder mit ONVIF (z. B. Hanwha, Bosch, Uniview, Annke); Kameras abrufen sucht pro Videoquelle die Foto-Adresse.
- Eigene Webadresse: ein Foto (JPEG), ein MJPEG-Stream oder eine
rtsp://-Adresse. - Webseite des Kamerasystems (z. B. Frigate, Blue Iris oder go2rtc): öffnet sich in der Kasse über die Taste Kameras (oder in einem eigenen Fenster).
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.
- Wählen Sie einen Zeitraum (heute, gestern, diese Woche, dieser/letzter Monat oder selbst von–bis), was Sie sehen möchten (standardmäßig Sensible Aktionen, oder z. B. nur Storno und Rabatt, oder Alles) und gegebenenfalls einen Mitarbeiter.
- Oben pro Mitarbeiter: Anzahl und Betrag von Stornos (nach dem Bestellen gestrichen), Rabatten und Retouren, und wie oft die Schublade ohne Verkauf geöffnet wurde, Geld aus der Schublade, Belegkopien, Pro-forma-Belege und manuelle Kartenzahlungen. Tippen Sie auf einen Namen, um nur diesen Mitarbeiter zu sehen. Außerdem die Anzahl falsch eingegebener PINs.
- Darunter jede Aktion mit Zeit, wer, was und einer lesbaren Beschreibung (z. B. "2x Cola nach dem Bestellen gestrichen € 5,60 · Tisch 4 · Grund: Kunde wollte nicht").
- Download (CSV) für Excel.
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:
- Stornos nach der Pro-forma: gestrichen, nachdem der Gast die Rechnung schon gesehen hat;
- Stornos, Rabatte und Retouren: ab einer bestimmten Anzahl, oder zusammen ab einem Betrag (0 = nicht nach Betrag);
- Schublade ohne Verkauf geöffnet (Schaltfläche Schublade öffnen);
- Bon lange offen: bestellt, aber nach einer bestimmten Anzahl Minuten noch nicht bezahlt.
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):
- Umsatz bisher um mehr als die Spanne niedriger (und/oder höher) als normal, erst ab einem eingestellten normalen Umsatz;
- Küchenzeit (Bon an die Küche bis fertig auf dem Küchenmonitor) der letzten Stunde über der Spanne oder über einer festen Anzahl Minuten;
- Stornos heute über der Spanne, erst ab einer Mindestanzahl.
Jede Warnung kommt einmal (pro Regel, Mitarbeiter und Tag; die Küchenzeit höchstens einmal pro Stunde) und geht an:
- die Kasse: Schaltfläche Warnungen (n) in der oberen Leiste mit den Warnungen des letzten Tages, der letzten Woche oder der letzten 30 Tage; Erledigt mit einer Notiz. Andere Bildschirme bekommen nur einen Hinweis ohne Namen;
- Push-Benachrichtigung mit ntfy (kostenlose App; ntfy.sh oder ein eigener Server, Topic und eventuell ein Token), Pushover (API-Token der App und der user key) oder Telegram (Token des Bots und die Chat-ID);
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)
Taste Belege in der oberen Leiste:
- Liste der Belege seit dem letzten Tagesabschluss oder der letzten 7 Tage; einen älteren Beleg suchen Sie über seine Nummer.
- Kopie drucken: derselbe Beleg mit dem Vermerk "KOPIE" (in Belgien mit dem FDM-Block des ursprünglichen Belegs). Wird im Protokoll festgehalten.
- Retoure / Gutschrift (Manager oder Administrator): Wählen Sie pro Zeile, wie viel zurückgeht, eine Begründung und wie das Geld zurückgezahlt wird (bar, Karte, Gutschein, sonstige). Der alte Beleg bleibt unverändert: Es kommt eine neue Gutschrift mit eigener Nummer im Journal hinzu (Ticketart
retour, negative Beträge, in Belgien als NR an das FDM). Es kann nie mehr zurückgehen, als verkauft wurde. Im X- und Z-Bericht zählt die Retoure als Minusumsatz. - Bei CCV oder einem anderen Terminal: zuerst am Terminal selbst erstatten und dann "Bereits am Terminal erstattet" anhaken.
- Bar mit Rundung auf 5 Cent: Der zurückzugebende Betrag wird ebenfalls gerundet.
- Zurück auf die Rechnung (Kauf auf Rechnung): War der Beleg auf Rechnung eines Geschäftskunden, wählen Sie Auf Rechnung. Der Betrag wird von der offenen Rechnung abgezogen und die Kasse erstellt sofort eine Gutschrift (in UBL eine CreditNote, Typ 381, mit Verweis auf die Rechnung; in Belgien signiert mit signInvoice, UC4122). Mehr als auf der Rechnung offen ist, kann nicht auf die Rechnung zurück; zahlen Sie den Rest bar oder per Karte zurück. Die Gutschrift steht unter Rechnungen und wird wie eine Rechnung versendet.
Kassenschublade mit Sensor und Schublade pro Mitarbeiter
Standardmäßig aus. Einstellen unter Einstellungen → Bezahlen → Kassenschublade.
- Sensor: Viele Schubladen melden über den Bondrucker, ob sie offen oder geschlossen sind (ESC/POS
DLE EOT 1, DK-Port Pin 3). Das geht nur mit einem Bondrucker im Netzwerk. Tippen Sie auf Messen: Schublade geschlossen und Messen: Schublade offen; gibt es einen Unterschied, übernehmen Sie die richtige Einstellung (hoch = offen oder niedrig = offen). Kein Unterschied = diese Schublade (oder dieses Kabel) hat keinen Sensor. Keine Antwort vom Drucker = unbekannt, nie "geschlossen".- Nicht abrechnen, solange die Schublade offen ist: Der Kassenserver lehnt dann eine neue Abrechnung ab mit "Die Kassenschublade ist noch offen".
- Eigene Schublade pro Mitarbeiter: Ein Bondrucker kann zwei Schubladen öffnen (Schublade 1 und Schublade 2). Wählen Sie pro Mitarbeiter seine Schublade; die Kasse öffnet dann beim Kassieren mit Bargeld, bei Geld in die/aus der Schublade und bei Schublade öffnen die Schublade des angemeldeten Mitarbeiters. Unter Bericht → Kassenschublade steht dann Schublade pro Mitarbeiter: Wechselgeld pro Mitarbeiter, bar (ohne den Bargeldautomaten), erwartet, Zählen und die Differenz pro Person (im Protokoll als
ladetelling). Der normale Tagesabschluss bleibt, wie er ist. - Schublade 1 testen und Schublade 2 testen öffnen die Schublade zur Kontrolle.
- Schublade ohne Verkauf öffnen wird (mit Begründung) ohnehin immer im Protokoll und im Kassen-Auditfile (XAA) erfasst, wie es die niederländische Steuerbehörde (Belastingdienst) verlangt (Ausnahmen wie "no sale").
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.
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.
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:
- MySQL / MariaDB: ein eigenes Datenbankprogramm (MySQL 8.0 oder neuer, MariaDB 10.6 oder neuer), zum Beispiel auf einem Server oder NAS, den Sie schon haben. Alle Daten stehen dann in normalen Tabellen in MySQL oder MariaDB, lesbar für Ihr eigenes Reporting- oder BI-Programm. Die Kasse rechnet genau wie mit PostgreSQL.
- Integriert (PGlite): steckt in der Kasse selbst, Sie müssen nichts installieren. Für die meisten Betriebe die beste Wahl und die Datenbank unter Android und auf dem Chromebook.
- PostgreSQL: ein eigenes Datenbankprogramm auf dem Kassen-PC oder irgendwo im Netzwerk.
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?
- MySQL 8.0 oder neuer bzw. MariaDB 10.6 oder neuer, erreichbar vom Kassenserver aus.
- Eine eigene Datenbank für die Kasse (oder für die Kassen einer Kette), mit dem Zeichensatz utf8mb4.
- Einen Datenbankbenutzer, der in dieser Datenbank Tabellen anlegen, ändern, umbenennen und löschen darf (CREATE, ALTER, DROP, INDEX, SELECT, INSERT, UPDATE, DELETE), zum Beispiel so:
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:
- 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.
- Tippen Sie auf Verbindung testen: Sie sehen das Programm und die Version oder warum es nicht klappt.
- 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:
- Die Kasse nimmt kurz keine Anfragen an (meist weniger als eine Minute); die Tablets machen danach von selbst weiter.
- Zuerst erstellt die Kasse ein Backup des aktuellen Stands (unter Einstellungen → Backups).
- Alles geht in die neue Datenbank, und die Kasse zählt pro Tabelle, ob alles genau angekommen ist.
- 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
- Öffnen Sie auf jedem Tablet bzw. jeder Kasse die Adresse des Kassenservers, z. B.
http://192.168.1.20:3000, und legen Sie sie als Verknüpfung auf den Startbildschirm (Chrome: Zum Startbildschirm hinzufügen). - Küchendisplay:
http://192.168.1.20:3000/keuken. - Kundendisplay (zum Kunden gerichtet, optional):
http://192.168.1.20:3000/klantscherm, siehe Kundendisplay. - Die Bildschirme finden den Kassenserver von selbst (gleiche Adresse, Port 4000).
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:
- Ruhe (niemand kassiert gerade): der Name des Betriebs und ein eigener Begrüßungstext (Einstellungen → Betrieb; leer = "Willkommen").
- Bestellen: die Artikel mit Menge und Betrag (gleiche Zeilen zusammengefasst, ein Menü als eine Zeile mit den Bestandteilen klein darunter, Rabatt als eine Zeile) und groß die Summe. Bereits Bezahltes bei geteiltem Kassieren steht darunter. Mit Einstellungen → Betrieb → Artikelfotos → auf dem Kundendisplay erscheint pro Artikel ein kleines Foto.
- Kassieren: die Zahlungsart (Kartenzahlung, Bar, Gutschein), das Trinkgeld und groß Zu zahlen. Bar: was der Kunde gibt und was er zurückbekommt, sobald das an der Kasse eingegeben ist. Karte: "Anweisungen am Kartenterminal folgen".
- Danke: nach dem Kassieren ein paar Sekunden "Danke!" mit dem bezahlten Betrag (bar: was der Kunde zurückbekommt), danach wieder der Ruhebildschirm.
Anschließen, auf zwei Arten (beide am Gerät selbst einzurichten):
- Zweiter Monitor am Kassen-PC (Windows, Linux/Raspberry Pi, macOS): automatisch. Bei der Anmeldung und nach der Installation stellt die Kasse das Kundendisplay im Vollbild auf den kleinsten Bildschirm, der nicht der Hauptbildschirm ist (bei gleicher Größe auf den am weitesten rechts); unter Windows immer auf einem anderen Bildschirm als die Kasse (die Kasse läuft auf dem Touchscreen und öffnet sich beim Start auch von selbst). Größe und Position kommen vom System, daher funktioniert jedes Format. Ohne zweiten Bildschirm passiert nichts. Unter Windows kommt ein geschlossenes Kundendisplay von selbst zurück; unter Linux und macOS stellt die Verknüpfung HorecaPOS Kundendisplay im Menü es wieder richtig. Unter Windows öffnet es sich im Kioskmodus von Chrome (oder Edge): im Vollbild, ohne Titelleiste und ohne Taskleiste (schließen mit Alt+F4). Es folgt der Kasse auf demselben PC ohne Kopplungscode.
- In jedem Browser öffnet langes Gedrückthalten nirgends das Browsermenü, und es erscheint keine Frage, die Seite zu übersetzen.
- Kasse zu = Kundendisplay zu. Stoppt die Kassensoftware (Neu starten, ein Update, die Kasse gestoppt oder entfernt), schließt sich das Kundendisplay nach gut 10 Sekunden ebenfalls; läuft die Kasse wieder, kommt es von selbst zurück. Unter Windows schließt es sich auch, wenn du nur das Kassenfenster schließt. Unter Wayland (Linux) kann die Kasse das Fenster nicht selbst schließen.
- Kundendisplay versehentlich geschlossen? Unter Windows kommt es nach ein paar Sekunden von selbst zurück, solange die Kasse geöffnet und der zweite Bildschirm angeschlossen ist.
- Immer nur ein Kundendisplay. Unter Windows steht das Kundendisplay nur im Kioskmodus auf dem zweiten Bildschirm. Ein Kundendisplay im Fenster der Kasse (z. B. von Edge nach einem Stromausfall wiederhergestellt oder mit der Schaltfläche in der Kasse geöffnet) schließt sich innerhalb weniger Sekunden von selbst; das richtige Kundendisplay tritt dann an seine Stelle.
- Niemand angemeldet = nur die Begrüßung. Steht die Kasse auf dem PIN-Bildschirm (auch nach einem Neustart oder Abmelden), zeigt das Kundendisplay nur den Begrüßungstext, nie die Rechnung von vorher.
- Unter Windows lässt sich das automatische Öffnen auch mit dem Häkchen Kundendisplay automatisch öffnen ... im Installer ausschalten.
- Unter Linux verschiebt die Kasse das Fenster mit wmctrl (im Paket enthalten). Unter Wayland (u. a. Raspberry Pi OS mit labwc) geht das nicht: Ziehen Sie das Kundendisplay dann einmal selbst auf den zweiten Bildschirm (der Browser merkt sich das) oder wählen Sie X11 in raspi-config. Unter macOS fragt der Mac beim ersten Mal nach einer Berechtigung unter Bedienungshilfen.
- Manuell: Einstellungen → Betrieb → Kundendisplay → Kundendisplay öffnen (zweiter Monitor). In Chrome und Edge (auch auf einem Chromebook) setzt die Schaltfläche das Fenster direkt auf das Kundendisplay (beim ersten Mal fragt der Browser nach einer Berechtigung); ein Klick auf das Kundendisplay schaltet es in den Vollbildmodus. In anderen Browsern: verschieben und F11.
- Android-Kasse mit eingebautem Kundendisplay (z. B. Sunmi D2/T2) oder ein Monitor über HDMI/USB-C: ebenfalls automatisch. Sobald die App auf einer Kasse installiert ist, erscheint das Kundendisplay auf dem zweiten Bildschirm; Ein- und Ausstecken funktioniert sofort.
- Sunmi T1 mini / T2 mini mit dem kleinen Textdisplay (2 Zeilen): Die App zeigt dort automatisch den Betrag: Summe, Zu zahlen, bei Barzahlung Rückgeld, nach dem Bezahlen Danke! und im Ruhezustand den Namen des Betriebs. Das Kundendisplay muss eingeschaltet sein.
- iPad (Bedienbildschirm) mit einem externen Bildschirm über HDMI/USB-C oder AirPlay: Die App stellt das Kundendisplay automatisch auf diesen Bildschirm (vorbereitet; die iOS-App ist noch nicht erschienen).
- Chromebook: Als Bedienbildschirm in Chrome funktioniert die Schaltfläche Kundendisplay öffnen (zweiter Monitor) wie oben beschrieben. In der Android-App erscheint das Kundendisplay automatisch auf dem zweiten Bildschirm, sobald ChromeOS diesen Bildschirm an Android-Apps weitergibt; ist das nicht der Fall, verwenden Sie ein separates Gerät mit Kopplungscode.
- Separates Gerät (Tablet oder eigener PC neben der Kasse): Öffnen Sie
http://<kassaserver>:3000/klantscherm. Der Bildschirm zeigt rechts unten einen Kopplungscode mit 6 Zeichen. Geben Sie ihn an der Kasse unter Einstellungen → Betrieb → Kundendisplay → Koppeln ein. Entkoppeln setzt den Bildschirm auf den Kopplungscode zurück. Die Kopplung wird pro Kasse gespeichert (im Browser dieser Kasse), sodass jede Kasse ihr eigenes Kundendisplay haben kann.
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.
- Das läuft über das Verwaltungsportal:
https://kassa.<portaal>/__bon/<kassa>/<sleutel>. Die Kasse muss also mit dem Portal verbunden sein; sonst erscheint kein QR-Code und es ändert sich nichts. - Der Schlüssel ist zufällig und nicht zu erraten und gilt 30 Tage. Danach räumt die Kasse ihn automatisch auf. Das Portal speichert nichts.
- Funktioniert mit einem zweiten Monitor und mit einem separaten Kundendisplay. Der Papierbeleg und der Beleg per E-Mail funktionieren weiterhin wie gewohnt.
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):
- Aktionen: die Happy Hours (wenn Happy Hour eingeschaltet ist), mit dem Rabatt, den Tagen und Zeiten und den Artikeln oder Gruppen; die gerade laufenden stehen zuerst, mit "Jetzt!".
- Hervorgehobene Artikel (höchstens 12, zum Beispiel neu auf der Karte), mit Preis und (wenn Artikelfotos auf dem Kundendisplay eingeschaltet sind) dem Foto. Einen ausverkauften Artikel überspringt der Bildschirm.
- Die Treuekarte: Punkte pro Euro, die Prämie und die Stempelkarten (nur wenn die Kundenkarte eingeschaltet ist).
- Eigene Texte: höchstens 5, jeder auf einer eigenen Folie (zum Beispiel "Ab Freitag neu: unsere Sommerkarte").
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.
- Pro Happy Hour: Name (erscheint auf dem Beleg), Tage, von–bis (darf über Mitternacht gehen, z. B. 23:00–01:00), Rabatt in % oder ein Festpreis, und für welche Artikelgruppen und/oder einzelnen Artikel.
- Innerhalb dieses Zeitraums berechnet die Kasse beim Eingeben automatisch den Happy-Hour-Preis (nie teurer als normal; bei einem Festpreis kommen Optionen ganz normal hinzu). Auf der Artikeltaste steht der alte Preis durchgestrichen mit dem neuen Preis und HH; in der Bestellung und auf dem Beleg steht der Name der Happy Hour. Bereits Eingegebenes behält seinen Preis.
- Tagesangebot: Ganztägig ankreuzen (00:00–24:00) und den Tag bzw. die Tage wählen, z. B. jeden Dienstag Spareribs zum Festpreis.
- Saison: Nur in einer Saison (jedes Jahr) ankreuzen und Von und Bis einschließlich wählen (Tag und Monat, z. B. 1. Juni bis 31. August; über den Jahreswechsel ist möglich, z. B. 1. Dezember bis 28. Februar). Außerhalb der Saison gilt die Happy Hour nicht.
- Änderungen werden im Protokoll festgehalten.
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.
- Pro Tagesabschnitt: Name (z. B. Frühstück, Mittagessen, Abendessen, Sommerkarte), Tage, von–bis (darf über Mitternacht gehen; Ganztägig = 00:00–24:00), optional eine Saison (jedes Jahr, Tag und Monat) und welche Warengruppen und/oder einzelnen Artikel dazugehören.
- Artikel und Warengruppen, die in einem oder mehreren Tagesabschnitten stehen, sind nur verkäuflich, solange einer dieser Tagesabschnitte läuft; was in keinem Tagesabschnitt steht, ist immer verkäuflich. Der Bestellbildschirm zeigt nur, was jetzt verkäuflich ist, und wechselt automatisch, wenn ein Tagesabschnitt beginnt oder endet; der Server lehnt den Rest ab ("jetzt nicht verkäuflich, nur bei Frühstück").
- Der Webshop zeigt und berechnet dasselbe Sortiment (zum Zeitpunkt der Bestellung).
- Ein anderer Preis an einem Tag oder in einer Saison ist eine Happy Hour (Tagesangebot, siehe oben).
- Karte pro Standort: Jede Kasse (Filiale) hat ihre eigenen Artikel, Tagesabschnitte und Preise.
- Änderungen werden im Protokoll festgehalten.
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.
- Unter Einstellungen → Artikel pro Artikel: Preis bei Abholung und Preis bei Lieferung (leer = der normale Preis) und Verkauft bei (vor Ort, Abholung, Lieferung; mindestens eine). Bei einer Warengruppe ebenfalls Verkauft bei, für alle Artikel dieser Gruppe.
- Der Bestellbildschirm zeigt bei einer Abhol- oder Lieferbestellung den Preis dieser Bestellart und nur, was dort verkauft wird; der Server berechnet diesen Preis und lehnt den Rest ab. Happy Hour, Menüs und Optionen rechnen mit diesem Preis.
- Der MwSt.-Satz für Abholung (beim Artikel) ist davon unabhängig, wie immer.
- Der Webshop zeigt bei Abholung und Lieferung die Preise und Artikel dieser Wahl (beim Wechseln lädt die Menüseite neu) und am Tisch die von vor Ort.
- Export und Import der Konfiguration (Einstellungen → Import/Export) übernehmen die Preise nach Bestellart, "verkauft bei", die Tagesabschnitte und die Saison von Happy Hours.
Menüs
Standardmäßig aus. Einschalten über Einstellungen → Betrieb → Menüs verwenden.
- Ein Menü ist ein normaler Artikel (mit dem Menüpreis), bei dem Sie unter Einstellungen → Artikel → (Artikel) → Menü Bestandteile festlegen:
- fest: immer dieser Artikel (z. B. "Getränk: Hauswein");
- nach Wahl: 1 (oder mehr) aus einer Artikelgruppe wählen, ggf. beschränkt auf bestimmte Artikel (z. B. "Hauptgericht: 1 aus Hauptgerichte wählen").
- Pro Bestandteil der Gang (1 = sofort, 2/3 = wartet auf Abruf).
- Geben Sie das Menü ein, wählen Sie pro Bestandteil die Gerichte. Pro Gericht (auch bei festen) können Sie die Optionen wie bei einem einzelnen Artikel wählen (Garstufe, extra Käse; Pflichtoptionen müssen gewählt sein) und eine Bemerkung. Aufpreise von Optionen kommen zum Menüpreis hinzu. Das Menü erscheint als eine Zeile mit den Gerichten (und ihren Optionen) darunter.
- Die Gerichte gehen als einzelne Zeilen an Küche/Bar (Küchenbon und Küchendisplay), in ihrem eigenen Gang. Die Menüzeile selbst nicht.
- Der Menüpreis wird für die MwSt. im Verhältnis ihrer normalen Preise auf die Bestandteile verteilt, sodass Essen und Trinken jeweils den richtigen Satz haben. Auf dem Beleg steht das Menü mit dem Gesamtpreis und den Gerichten darunter.
- Hat das Menü selbst Optionen (z. B. Größe), wählen Sie diese oben im Menüfenster. Sie stehen bei der Menüzeile auf dem Beleg und bei jedem Gericht des Menüs auf dem Küchenbon und dem Küchendisplay als "(Menü)".
- Entfernen/Stornieren erfolgt pro ganzem Menü (auf die Menüzeile tippen).
- Teilen / verschieben: Wählen Sie die Menüzeile; die Gerichte gehen mit. Bei 2× demselben Menü können Sie auch 1 verschieben (Kopf und Gerichte werden geteilt).
- Ohne Verbindung können Sie Menüs ganz normal eingeben; sie werden auf dem Tablet gespeichert und gesendet, sobald die Verbindung zurück ist (wie einzelne Artikel).
- Happy Hour kann auch für ein Menü gelten.
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).
- 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.
- 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). - 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).
- 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).
- Eine Liste mit aller Hotelsoftware (Hotelsoftware des Hotels). Eingebaute Anbindungen:
- Mews (Connector API: Client-Token und Access-Token, der Service des Restaurants und pro MwSt.-Satz der MwSt.-Code von Mews), apaleo (eigene App mit Client-ID und Client-Secret, die Property-ID; pro MwSt.-Satz ggf. die MwSt.-Art) und Cloudbeds (API-Schlüssel und Property-ID), jeweils mit einer Test- und einer Live-Umgebung;
- Oracle OPERA Cloud (OHIP), protel (protel I/O), RoomRaccoon, Booking Experts, Amadeus (XMLPOS), VIPS, Stayntouch, Clock PMS+, Guestline (Rezlynx), Hotelogix, eviivo, Little Hotelier, Shiji und Infor HMS (Databridge). Nach der Auswahl erscheinen genau die Felder, die zu dieser Hotelsoftware gehören (Schlüssel, Hotel-ID, ggf. die Adresse ihrer API und pro MwSt.-Satz ihr Code), mit einer kurzen Erklärung, was Sie beim Anbieter anfragen. Diese Anbindungen sind nach der Dokumentation der Anbieter gebaut; lassen Sie die Anbindung vom Anbieter bestätigen und testen Sie zuerst mit Verbindung testen und einem Bon;
- eine Demo (vier Suiten, Zimmer 4 bis 7) zum Ausprobieren;
- Sirvoy, als halbe Anbindung und nur mit Sirvoy Pro. Sirvoy hat keine API, mit der eine Kasse etwas auf eine Buchung setzen kann, auch nicht per Datei (der CSV-Import legt nur neue Buchungen an). Damit kennt die Kasse die Gäste (Zimmer, Name, Anreise, Abreise): Die Suche bei Aufs Zimmer sowie die Selbstbedienung am Kiosk und im Webshop funktionieren ganz normal. Der Beleg gelangt nicht automatisch in Sirvoy: Nach dem Kassieren steht er unter Einstellungen → Hotel bei Noch in Sirvoy eintragen, mit Zimmer, Gast, Belegnummer und Betrag pro MwSt.-Satz. Das Hotel trägt ihn von Hand als Extra in die Buchung ein und klickt auf Ist eingetragen (zurück mit Doch noch nicht). Erforderlich:
- vorzugsweise eine Kasse, die mit dem Verwaltungsportal verbunden ist: Dann läuft die Adresse über das Portal (
https://<portaal>/hotel/<kassa-id>/sirvoy?sleutel=...) und im Hotel muss kein Port geöffnet werden. Sonst muss die Kasse selbst aus dem Internet über https erreichbar sein (eigene Domain mit Zertifikat oder Portweiterleitung; Sirvoy verlangt TLS 1.2 oder höher) und du trägst diese Adresse ein; - Die Adresse ist nur einmal zu sehen; die Kasse speichert nur den Hash. Eine neue Adresse erstellen = die alte funktioniert nicht mehr;
- vorzugsweise eine Kasse, die mit dem Verwaltungsportal verbunden ist: Dann läuft die Adresse über das Portal (
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.
- Selbstbedienung (standardmäßig aus): Der Hotelgast bucht seine Bestellung selbst aufs Zimmer, am Kiosk und/oder im Webshop (Abholung und Lieferung, nicht bei Bestellung am Tisch). Er gibt Zimmernummer und Nachnamen ein; die Kasse prüft bei der Hotelsoftware, ob dieser Gast gerade in diesem Zimmer wohnt. Mit einem Höchstbetrag pro Bestellung (standardmäßig € 150), und nach 5 Fehlversuchen innerhalb einer Viertelstunde muss er erst zur Rezeption. Die Meldung verrät nie, wer in einem Zimmer wohnt.
- Kassieren: Ist die Anbindung eingeschaltet, gibt es die Zahlungsart Aufs Zimmer. Suchen Sie den Gast nach Name oder Zimmernummer (nur Gäste, die gerade im Hotel wohnen) und tippen Sie auf Auf Zimmer ... buchen. Die Kasse bucht den Beleg pro MwSt.-Satz auf die Hotelrechnung des Gastes; der Gast bezahlt beim Auschecken.
- Belgien: Ist die Bestellung bereits am Tisch bei der Blackbox registriert, geht sie zuerst vom Tisch aufs Zimmer (signCostCenterChange auf ROOM, UC4101); der Beleg geht als Zimmerkredit (ROOM_CREDIT) an die Blackbox.
- Klappt das Buchen in der Hotelsoftware nicht (kein Internet), ist der Verkauf trotzdem erfasst und die Buchung steht als Fehlgeschlagen unter Einstellungen → Hotel, mit Erneut versuchen.
- Berichte und Buchhaltung: Aufs Zimmer (Hotel) ist eine eigene Zahlungsart im X- und Z-Bericht, in der Tagesabrechnung und in der Auditdatei (XAA).
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):
- API-ID und API-Schlüssel (
X-Api-IdundX-Api-Key, oderAuthorization: Bearer <id>:<sleutel>); - API-Schlüssel und API-Secret mit einer Signatur:
X-Api-Key,X-TimestampundX-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.
- Bei den Betriebsdaten (Einstellungen → Betrieb, über der Adresse).
- Bei einem Kunden mit Kundenkarte: an der Kasse bei einem neuen Kunden und unter Bericht → Kunden. Kunden erhalten dafür eine (optionale) Adresse: Straße und Hausnummer, PLZ und Ort.
- Die Adressen kommen aus dem kostenlosen Locatieserver von PDOK (die amtlichen Adressen der Niederlande, BAG): kein Konto oder Schlüssel nötig, aber Internet. Ohne Internet oder bei einer belgischen Adresse geben Sie die Adresse einfach selbst ein.
Hinweis bei einer neuen Version
Einschalten unter Einstellungen → Betrieb → Update-Meldung (standardmäßig aus).
- Kasse aktualisiert: Wurde der Kassenserver aktualisiert, während ein Tablet noch die alten Bildschirme geöffnet hat, steht oben "Die Kasse wurde aktualisiert (Version …)" mit Aktualisieren. Das Tablet prüft alle 5 Minuten, wenn der Bildschirm wieder sichtbar wird und nach einem Neustart des Servers.
- Update verfügbar: Ist die Kasse mit dem Verwaltungsportal gekoppelt (
PORTAAL_URL/PORTAAL_SLEUTEL) und ist dortNIEUWSTE_VERSIEeingetragen, sieht, wer Einstellungen verwalten darf, "Update verfügbar: Version …" (mit der Erläuterung ausUPDATE_NOTITIE). Später blendet die Meldung auf diesem Tablet aus, bis es wieder eine neuere Version gibt. Aktualisieren geht wie immer mitscripts\windows\update.cmd(siehe Aktualisieren).
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.
- Land des Betriebs: Sie können nur Plattformen wählen, die im Land des Betriebs funktionieren (Resengo nur in Belgien, OpenTable und Aqqo nur in den Niederlanden). Der Server prüft das ebenfalls.
- Mehrere Plattformen gleichzeitig: Sie können mehrere Plattformen nebeneinander verbinden, zum Beispiel TheFork und Formitable. Zwei Plattformen erhalten nie denselben Tisch im selben Zeitfenster; die zweite Reservierung kommt dann ohne Tisch herein.
- + Plattform verbinden: Plattform wählen und die Daten eingeben. Geheimnisse (Client secret, Rückmeldeschlüssel) erscheinen nie in der Übersicht; leer lassen = behalten, Löschen = entfernen.
- TheFork (öffentliche B2B-API): Restaurant-UUID, Client ID und Client Secret (bei TheFork zu beantragen). Storniert die Kasse, storniert sie auch bei TheFork.
- Formitable, Zenchef, Resengo, OpenTable, PlanPanther, RestoManager, Aqqo: ihre API ist nur für Partner oder nicht öffentlich (PlanPanther, RestoManager und Aqqo: eine Kassenanbindung erfolgt in Absprache mit ihnen). Formitable-Events (
booking.created,.changed,.canceled,.checkin,.checkout) werden erkannt. - Auf dem Tischplan: Heißt ein Tisch in der Kasse genauso wie der Tisch der Plattform und ist er in diesem Zeitfenster frei, kommt die Reservierung auf diesen Tisch; sonst ohne Tisch (bei Ankunft wählen). Eine erneut eingehende Reservierung wird aktualisiert, nicht doppelt angelegt. In der Übersicht steht "über TheFork".
- Status: Storniert die Plattform oder meldet sie einen No-Show, übernimmt die Kasse das. Was in der Kasse bereits angekommen ist, bleibt angekommen.
- Rückmeldung (No-Shows zurück): Geben Sie eine Rückmeldeadresse ein (zum Beispiel Ihres Integrationsdienstes). Die Kasse sendet jede Änderung aus der Kasse (angekommen, No-Show, storniert, bezahlt mit Betrag) als JSON:
{ platform, id, status, statusEn, bedrag, valuta, tafel, tijdstip, gemeldOp }(Betrag in Cent, nur bei bezahlt), mitAuthorization: Bearer <terugmeld-sleutel>, wenn Sie einen eingeben. Klappt es nicht, versucht die Kasse es jede Minute erneut und der Fehler steht bei der Plattform. Was von der Plattform selbst kam, wird nicht zurückgesendet. - Testreservierung: erstellt eine Reservierung so, wie die Plattform sie senden würde.
- Entfernen: Verbindung und Schlüssel sind weg; die Reservierungen bleiben.
- Alle Änderungen stehen im Protokoll (ohne Geheimnisse).
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.
- Mehrere gleichzeitig: In Belgien können Piggy und Joyn zusammen aktiv sein, jeweils mit eigenen Daten (Plattform wählen, ausfüllen, Speichern; Ändern und Löschen pro Plattform). Der Gast erhält pro Programm einen eigenen QR-Code auf dem Beleg, einen eigenen Link im gemailten Beleg und eine eigene Schaltfläche im Webshop und sammelt pro Programm einmal pro Bestellung. Was bereits eingerichtet war, funktioniert einfach weiter.
- QR-Code auf dem Beleg: Nach dem Bezahlen steht unter dem Beleg ein QR-Code mit "Scannen und Punkte sammeln bei ...". Im per E-Mail gesendeten Beleg steht ein Link, und im Webshop (Abholung und Lieferung) gibt es eine Schaltfläche auf der Bestellseite und einen Link in der Bestätigungs-E-Mail. Eine Bestellung bringt nur einmal Punkte: Beleg, E-Mail und Webshop verwenden denselben eindeutigen Code (die Bestellnummer). "QR-Code auf dem gedruckten Beleg" können Sie ausschalten; E-Mail und Webshop erhalten den Link dann trotzdem.
- Piggy, Methode "QR-Code und Link": Geben Sie die Adresse Ihres Piggy-Kundenportals, die Shop UUID und das Account secret ein (Piggy Business Dashboard). Funktioniert ohne Internet: Die Kasse erstellt den Link selbst.
- Piggy, Methode "Sofort gutschreiben": Geben Sie zusätzlich ein personal access token ein (Piggy → Marketplace → Private App). Sendet die Kasse den Beleg per E-Mail und ist der Gast mit dieser E-Mail-Adresse bereits Mitglied, schreibt die Kasse die Punkte sofort gut; auf dem Beleg steht dann "Punkte bei Piggy gutgeschrieben". Die Kasse legt nie ein neues Mitglied an; kein Mitglied (oder keine E-Mail-Adresse) = der QR-Code.
- Joyn, Methode "QR-Code und Link": mit dem partner key, der shop reference und dem shared secret von Joyn (anzufordern über api-integration@joyn.be). Funktioniert ohne Internet. Der QR-Code ist 2 Stunden gültig.
- Joyn, Methode "Über die API": mit dem shop API key (Verbindung im Joyn-Händlerportal aktivieren). Die Kasse fordert beim Bezahlen einen Punktecode bei Joyn an. Eingelöst wird wie immer auf dem Joyn-iPad.
- Beispiellink erstellen: prüft, ob die Daten stimmen (ein Link über 10 €; nur zum Ansehen öffnen).
- Nur die Plattformen des Landes des Betriebs sind wählbar; die Geheimnisse stehen nur in der Datenbank und erscheinen nie auf dem Bildschirm (leer lassen = beibehalten).
Um Bewertungen bitten: nach dem Besuch eine E-Mail mit einer Schaltfläche zu Google und/oder Trustpilot.
- Einige Stunden später (einstellbar, Standard 3) erhält der Gast die E-Mail, in der Sprache des Belegs.
- Webshop: Bei Abholung und Lieferung sendet der Webshop die E-Mail selbst, einige Stunden nachdem die Bestellung in der Kasse abgeschlossen wurde, in der Sprache des Gastes.
- Google: Fügen Sie den Bewertungslink aus Ihrem Unternehmensprofil ein (Google → Ihr Unternehmensprofil → Um Rezensionen bitten,
https://g.page/r/.../review) oder geben Sie die Place ID ein. - Trustpilot: Geben Sie die Domain Ihres Betriebs ein (die Schaltfläche führt zu
trustpilot.com/evaluate/<domein>). Haben Sie bei Trustpilot eine Einladungsadresse (Automatic Feedback Service,...@invite.trustpilot.com), geben Sie sie ebenfalls ein: Die E-Mail geht dann in Blindkopie (BCC) an Trustpilot, mit unsichtbarem Namen, E-Mail-Adresse und Belegnummer, und Trustpilot sendet die Einladung selbst (dann keine eigene Trustpilot-Schaltfläche). Nur Trustpilot mit Einladungsadresse: Die Kasse mailt nur für Trustpilot. - Nicht zu oft: Derselbe Gast (E-Mail-Adresse) erhält höchstens eine Anfrage pro Zeitraum (Standard 90 Tage; 0 = jedes Mal). Die Kasse speichert dafür nur einen Hash der Adresse; die E-Mail-Adresse selbst wird gelöscht, sobald die E-Mail versendet ist (klappt das nicht, nach drei Versuchen, und sonst nach 14 Tagen).
- QR-Code auf dem Beleg (optional): auch ein QR-Code für eine Bewertung unter dem gedruckten Beleg.
- Beispiel der E-Mail und Wartende E-Mails löschen (die Adressen werden dann sofort gelöscht). Das Protokoll zeigt review_gevraagd mit a***@domain.de.
- Google und Trustpilot verbieten Belohnungen für Bewertungen und das Fragen nur zufriedener Gäste ("review gating"). Die Kasse fragt deshalb alle gleich und gibt nichts für eine Bewertung zurück.
- Bewertungen in der Kasse lesen und beantworten: siehe Bewertungsverwaltung unten.
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.
- Verbinden: mit einem API-Schlüssel (Mailchimp: Profiel → Extra → API keys; Klaviyo: ein privater Schlüssel
pk_…mit Schreibrechten für Lists, Profiles, Subscriptions, Events, Campaigns und Templates). Das Client-Geheimnis und der Schlüssel werden nie wieder angezeigt (leer lassen = beibehalten). Danach wählen Sie die Liste (Mailchimp: audience). - Kunden: Wer E-Mails zugestimmt hat, kommt in die Liste (angemeldet), mit Vorname, Nachname, Telefon, Geburtstag und Treuepunkten (Mailchimp: Feld
PUNTEN, legt die Kasse selbst an; Klaviyo: Eigenschaftpunten). Einwilligung widerrufen, E-Mail-Adresse geändert oder Kunde gelöscht: abgemeldet. Nur was sich geändert hat, wird erneut übertragen. Mit einer Anbindung fragt die Kasse (und das Häkchen "Angebote" im Webshop) neue Kunden auch nach der Einwilligung für E-Mails, und diese lässt sich unter Bericht → Kunden ändern, auch ohne das eigene E-Mail-Marketing. - Abmelden: Wer sich in Mailchimp oder Klaviyo abmeldet, hat auch in der Kasse keine Einwilligung für E-Mails mehr (Protokoll: "abgemeldet in Mailchimp"). Wer sich selbst abgemeldet hat, meldet die Kasse nicht erneut an.
- Bestellungen: Jeder bezahlte Bon eines Kunden auf der Liste wird als Ereignis übertragen (Mailchimp:
bestelling, mit Betrag, Bonnummer und Anzahl; Klaviyo:Placed Order, mit dem Wert in Euro). Damit erstellen Sie im Mailprogramm automatische Mails, z. B. nach der ersten Bestellung oder wenn jemand einen Monat nicht da war. Bons von vor der Wahl der Liste werden nicht übertragen. - Aktionen: Unter Bericht → Marketing versenden Sie eine Aktion auch über Mailchimp oder Klaviyo (siehe SMS- und E-Mail-Marketing); die Kasse erstellt dann dort die Kampagne und versendet sie.
- Aktualisieren: alle 5 Minuten oder mit Jetzt aktualisieren. Trennen: aus der Kasse entfernt; in Mailchimp und Klaviyo bleibt alles erhalten. Schlüssel liegen in der Datenbank (im Backup enthalten, nicht im Konfigurationsexport).
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.
- Daten: Bons (auch Gutschriften), verkaufte Produkte (Bonzeilen), Zahlungen, Umsatz pro Tag, Umsatz pro Stunde, Stornos, Produkte, Mitarbeiter (ohne PIN) und gearbeitete Stunden. Beträge in Euro mit einem Punkt als Dezimaltrennzeichen, Uhrzeiten in der Ortszeit des Betriebs.
- + Anbindung: Wählen Sie das Programm und die Art. Jedes Programm unterstützt eine oder mehrere Arten; Sie können mehrere Anbindungen gleichzeitig haben (auch für dasselbe Programm).
- Das Programm ruft selbst ab (API): Die Kasse gibt einmalig einen Leseschlüssel aus. Zeitraum mit
?van=&tot=(JJJJ-MM-TT) oder eine feste Adresse mit?periode=(heute, gestern, 7d, 30d, 90d, 365d, Woche, Monat, Vormonat, Jahr); höchstens 366 Tage, höchstens 200.000 Zeilen. Der Schlüssel inAuthorization: Bearer,X-Sleuteloder?sleutel=. - Über das Portal: Ist die Kasse mit dem Kundenportal verbunden, funktioniert dieselbe Adresse auch von außerhalb des Betriebs, ohne einen Port zu öffnen:
https://<portaal>/bi/<kassa-id>/<gegevens>?periode=90d&formaat=csv&sleutel=.... So aktualisiert der Power BI-Dienst sie nach Zeitplan (ohne Gateway), und Google Sheets kann sie mit=IMPORTDATA("...")abrufen (auch die Quelle für Looker Studio). Die Kasse zeigt die Adresse bei der Anbindung an. - Kettenübersicht über das Kundenportal (mehrere Betriebe): eine Adresse und ein Schlüssel für alle Ihre Kassen gemeinsam. Schalten Sie in jeder Kasse, die mitmachen soll, Kettenübersicht über das Kundenportal ein (unter dem BI-Schalter) und erstellen Sie im Kundenportal unter Meine Kassen → BI für alle Ihre Betriebe einen Schlüssel. Dann:
https://<portaal>/bi/keten/<gegevens>?periode=90d&formaat=csv&sleutel=hpk_.... Das Portal ruft die Daten bei jeder Kasse ab und führt sie zusammen, mitkassaIdundzaakin jeder Zeile. Kassen, die offline sind oder nicht mitmachen, stehen inontbrekend(JSON) und im HeaderX-Ontbrekend. Die Kasse selbst braucht dafür keinen eigenen Schlüssel; Ausschalten in der Kasse oder im Kundenportal beendet es. - Mit einem Token wird dieses als
Authorization: Bearermitgesendet, und inX-HorecaPOS-Handtekeningsteht eine Signatur (sha256=HMAC des Inhalts). Klappt es nicht, versucht die Kasse es jede Minute erneut; nichts wird doppelt gesendet. Mit ab sendet sie auch ältere Bons. - Die Kasse liefert Dateien: jeden Tag (zu einer Uhrzeit, der Vortag; verpasste Tage werden nachgeholt) oder jede Stunde (heute bis jetzt), als CSV (Komma oder Semikolon für niederländisches Excel) oder JSON, in einen Ordner auf dem Kassen-PC (zum Beispiel einen OneDrive- oder SharePoint-Ordner für Power BI oder Excel), auf einen FTP(S)- oder SFTP-Server oder per E-Mail. Dateinamen:
horecapos_<gegevens>_<datum>.csv. - Test senden (Push) und Jetzt exportieren (Datei) bei der Anbindung.
- Selbst herunterladen: Daten, Zeitraum und Format wählen.
- Power BI-Vorlage (
.pbit): ein fertiger Bericht für Power BI Desktop, über Power BI-Vorlage herunterladen bei BI und Datenexport. Legen Sie zuerst eine API-Verbindung (Power BI) an. Im Modell: eine Tabelle pro Datensatz mit den richtigen Typen, ein Kalender (Jahr, Monat, Woche, Wochentag), Beziehungen (Datum → Kalender, Bonpositionen → Produkte, gearbeitete Stunden → Mitarbeiter) und Measures (Umsatz inkl. und exkl. MwSt., MwSt., Trinkgeld, Bons, Gäste, Durchschnitt pro Bon und pro Gast, verkaufte Menge, Produktumsatz, bezahlt, Stornos, gearbeitete Stunden, Umsatz pro gearbeitete Stunde). Drei Seiten: Übersicht (Kennzahlen, Umsatz pro Tag, Wochentag und Stunde, Zahlungsarten), Produkte (pro Gruppe und pro Produkt) und Personal (Stunden und Umsatz pro Mitarbeiter). Über das Portal aktualisiert der Power BI-Dienst ihn auch nach Zeitplan. - Geheimnisse (Token, Passwort, Schlüssel) stehen nie in der Übersicht; leer lassen = behalten, Löschen = entfernen. Alles steht im Protokoll (ohne Geheimnisse).
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:
- Lohnabrechnung (payroll): Wählen Sie die Lohnsoftware oder (Belgien) das Sozialsekretariat, füllen Sie deren Felder aus und pro Mitarbeiter seine Personalnummer in dieser Software. Danach erstellen Sie für einen Zeitraum die Datei mit den gearbeiteten Stunden (abgeschlossene Schichten, pro Mitarbeiter pro Tag des Einstempelns) und dem Umsatz pro Mitarbeiter (ohne MwSt., was er/sie abgerechnet hat): fertig für Loket.nl (Variabele gegevens, Summe pro Mitarbeiter über den Zeitraum, Kopfzeile
aanslnr;persnr;ploeg;<looncomponent>) und SD Worx Belgien (Tijdsregistratie, feste Positionen, pro Mitarbeiter pro Tag), sonst die Stundenliste (CSV: Datum; Personalnummer; Name; Stunden; Umsatz ohne MwSt.). Mitarbeiter ohne Personalnummer kommen nicht in die Datei für Loket oder SD Worx; die Kasse meldet, wer das ist. - Personalplanung (WFM): Wählen Sie das Dienstplansystem. Erneutes Senden überschreibt. Daneben die Umsatzliste (CSV pro Tag und Stunde, ohne und mit MwSt.) und für Strobbo die Excel-Datei für Importeer omzet.
- Nur Pakete, die im Land des Betriebs funktionieren, nach Gruppe und alphabetisch; der Server lehnt ein Paket aus einem anderen Land ab (400).
- Schlüssel und Tokens werden nie auf dem Bildschirm angezeigt.
- Betrifft die Buchhaltung: Die Lohnkosten bucht die Lohnsoftware in der Buchhaltung, den Umsatz bucht die Kasse (Einstellungen → Buchhaltung). AFAS Payroll und Exact Online Loon liegen in derselben Umgebung wie die Buchhaltung von AFAS und Exact.
- Auf der Kopie der Kasse im Portal geht das nicht (die Kasse im Betrieb erledigt das).
- Bei einigen Paketen ist die API nicht öffentlich oder nur für Partner (u. a. Loket, Nmbrs, Nostradamus, Employes, Shyfter, Planday, Eitje): Diese stehen auf Anfrage; bis dahin die Datei. Der Aufbau für SD Worx und Strobbo stammt aus deren Dokumentation: Lassen Sie den ersten Import prüfen.
| Software | NL | BE | Live | Datei | Anmerkung |
|---|---|---|---|---|---|
| Lohnsoftware und Lohnabrechnungsdienste | |||||
| ADP | ✓ | ✓ | auf Anfrage | Stundenliste pro Mitarbeiter und Tag (CSV) | Anbindung über ADP (auf Anfrage); bis dahin die Stundenliste pro Mitarbeiter und Tag. |
| AFAS Payroll | ✓ | – | auf Anfrage | Stundenliste 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 Anfrage | Stundenliste pro Mitarbeiter und Tag (CSV) | Anbindung über BCS (auf Anfrage); bis dahin die Stundenliste. |
| Buddee | ✓ | – | auf Anfrage | Stundenliste pro Mitarbeiter und Tag (CSV) | HR- und Lohnsoftware; Anbindung auf Anfrage, bis dahin die Stundenliste pro Mitarbeiter und Tag. |
| Employes | ✓ | – | auf Anfrage | Stundenliste 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 Anfrage | Stundenliste 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 Anfrage | Stundenliste pro Mitarbeiter und Tag (CSV) | Anbindung über Humanwave (auf Anfrage); bis dahin die Stundenliste. |
| Loket.nl | ✓ | – | auf Anfrage | Loket.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 Anfrage | Stundenliste 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 Anfrage | Stundenliste pro Mitarbeiter und Tag (CSV) | Sozialsekretariat: Den Aufbau der Leistungsdatei erhalten Sie von Acerta; bis dahin die Stundenliste. |
| Group S | – | ✓ | auf Anfrage | Stundenliste pro Mitarbeiter und Tag (CSV) | Sozialsekretariat: Den Aufbau der Leistungsdatei erhalten Sie von Group S; bis dahin die Stundenliste. |
| Liantis | – | ✓ | auf Anfrage | Stundenliste pro Mitarbeiter und Tag (CSV) | Sozialsekretariat mit einer API, die Liantis pro Unternehmen freigibt; bis dahin die Stundenliste. |
| Partena Professional | – | ✓ | auf Anfrage | Stundenliste 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 Anfrage | Stundenliste pro Mitarbeiter und Tag (CSV) | Sozialsekretariat: Anbindungen laufen über Partner; bis dahin die Stundenliste. |
| Dienstplanung und Zeiterfassung | |||||
| Book'u | – | ✓ | auf Anfrage | Umsatz 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 Anfrage | Umsatz pro Tag und Stunde (CSV) | Eitje bindet über sein Partnerprogramm an; bis dahin die Umsatzliste pro Tag und Stunde. |
| Exact Horeko | ✓ | – | auf Anfrage | Umsatz pro Tag und Stunde (CSV) | Anbindung über Horeko (auf Anfrage); bis dahin die Umsatzliste. |
| Fooks | ✓ | – | auf Anfrage | Umsatz pro Tag und Stunde (CSV) | Fooks baut Kassenanbindungen selbst; bis dahin die Umsatzliste pro Tag und Stunde. |
| L1NDA | ✓ | – | auf Anfrage | Umsatz pro Tag und Stunde (CSV) | L1NDA baut Kassenanbindungen gemeinsam mit Partnern; bis dahin die Umsatzliste pro Tag und Stunde. |
| Mr. Einstein | ✓ | – | auf Anfrage | Umsatz 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 Anfrage | Umsatz 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 Anfrage | Umsatz pro Tag und Stunde (CSV) | Plan-Me übernimmt die Dimona-Meldungen; eine Kassenanbindung gibt es auf Anfrage. Bis dahin die Umsatzliste. |
| Planday | ✓ | ✓ | auf Anfrage | Umsatz 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 Anfrage | Umsatz 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 Anfrage | Umsatz 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 Anfrage | Umsatz 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):
| Land | Anforderung | HorecaPOS |
|---|---|---|
| Belgien | Registriertes 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 € |
| Belgien | E-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 darunter | Export 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) |
| Belgien | MwSt. 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 |
| Niederlande | Alkoholgesetz: 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 |
| Niederlande | Einwegbecher und -schalen (SUP): seit 2024 ein separater, sichtbarer Preis für Einwegverpackungen aus Plastik bei Abholung und Lieferung | Einwegabgabe pro Produkt, als eigene Zeile auf dem Bon (MwSt. des Produkts) und separat im Umsatz |
| Niederlande | Pfand auf Dosen und Plastikflaschen | Pfand pro Produkt (0,15 € / 0,25 €), eigene Zeile ohne MwSt. bei Abholung und Lieferung, separat im Umsatz |
| Niederlande | Barzahlung: seit dem 1. Januar 2026 keine 3.000 € oder mehr in bar für Waren | Warnung bei Abholung und Lieferung (auch am Geldautomaten); Bestätigen ist möglich und wird protokolliert |
| Niederlande und Belgien | MwSt.-Änderung: ein Satz oder ein Produkt erhält ab einem Datum einen anderen MwSt.-Prozentsatz | MwSt.-Änderung planen: Die Kasse führt sie am Tag selbst aus (in Belgien pro Produkt, die Buchstaben A/B/C/D sind festgelegt) |
| Niederlande | Beherbergung (Übernachtungen) 21 % seit dem 1. Januar 2026 | MwSt.-Satz pro Produkt einstellbar |
| EU | Omnibus-Richtlinie: ein durchgestrichener "statt"-Preis darf nur der niedrigste Preis der letzten 30 Tage sein | Der Webshop streicht nur gegen den niedrigsten Preis von 30 Tagen durch (die Kasse speichert den Preisverlauf; wöchentlich wiederkehrende Happy Hours zählen mit) |
| EU | European 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) |
| Niederlande | XML 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 Pflicht | Export als XAF 4.0 (Buchhaltungsexport) |
| Niederlande | Zuverlä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 |
| Belgien | Anwesenheitserfassung bei einem registrierten Kassensystem: Beginn und Ende der Arbeitszeit der Arbeitnehmer im Kassensystem registrieren | Ein- und Ausstempeln des Personals (Einstellungen → Betrieb; Pflicht = zuerst einstempeln) wird in der Blackbox registriert |
| Belgien | Dimona: jede Beschäftigung (auch Flexi-Jobs und Studenten) vor Beginn beim RSZ melden | das 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) |
| Niederlande | Erfassung 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 Belgien | HACCP / 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 Belgien | Aufbewahrungspflicht (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.
- Alterskontrolle Alkohol (18+): Unter Produkte Enthält Alkohol ankreuzen (oder den MwSt.-Assistenten verwenden). Bei Abholung und Lieferung mit Alkohol steht "18+" auf dem Küchenbon, dem Kassenbon und im Bestellbildschirm. Im Webshop bestätigt der Kunde selbst, mindestens 18 Jahre alt zu sein (das Kästchen ist nicht vorausgewählt), und sieht, dass das Alter bei Übergabe geprüft wird.
- Einwegabgabe (Niederlande): pro Produkt ein Betrag (Richtpreise: Becher 0,25 €, Menüschale 0,50 €, kleine Schale 0,05 €). Bei Abholung und Lieferung setzt die Kasse automatisch eine Zeile "Einwegabgabe" auf den Bon (mit der MwSt. des Produkts); sie geht automatisch mit den Produkten mit (die Datenbank verfolgt sie, auch nach Stornieren, Verschieben oder einer anderen Bestellart) und steht separat im Umsatz. Vor Ort keine Abgabe. Thuisbezorgd.nl und der Webshop berechnen ihre eigene Abgabe.
- Pfand (Niederlande): pro Produkt (0,15 € Dose/Flasche, 0,25 € große Flasche), Zeile "Pfand" ohne MwSt., nur bei Abholung und Lieferung.
- Bar ab 3.000 € (Niederlande, seit 1.1.2026 für Waren verboten): bei Abholung und Lieferung eine Meldung beim Bezahlen und am Geldautomaten; der Mitarbeiter kann bestätigen (z. B. Catering als Dienstleistung), das wird protokolliert. Essen und Trinken vor Ort ist eine Dienstleistung: keine Meldung.
- MwSt.-Assistent: pro Produkt die Art (Mahlzeit, alkoholfreies Getränk, alkoholisches Getränk, Lebensmittel ohne Zubereitung, Sonstiges; zunächst eine Schätzung anhand des Namens und der Gruppe). Die Kasse zeigt den richtigen Satz vor Ort und bei Abholung (Belgien seit 1.3.2026: Mahlzeiten und Softdrinks 12 %, auch zum Mitnehmen; Alkohol 21 %; Lebensmittel ohne Zubereitung 6 %. Niederlande: 9 % und 21 %) und wendet ihn an, sofort oder ab einem Datum.
- MwSt.-Änderung planen: ein Produkt auf einen anderen Satz oder (nur Niederlande) ein Satz mit einem neuen Prozentsatz, ab einem Datum. Die Kasse führt sie an diesem Tag selbst aus (Prüfung jede Viertelstunde und beim Start).
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.
- Rechnungen für Geschäftskunden: Belege → Beleg wählen → Rechnung. Kunden eingeben (oder einen früheren Kunden wählen); die Kasse erstellt eine Rechnung mit Nummer (z. B. F2026-0001, pro Jahr fortlaufend), als UBL nach Peppol BIS Billing 3.0 und als Rechnung zum Drucken oder Speichern als PDF. Versand per E-Mail (beides als Anhang, optional mit Kopie an den Buchhalter), über Billit an das Peppol-Netzwerk (
BILLIT_API_KEY,BILLIT_PARTY_ID), über Storecove (STORECOVE_API_KEY,STORECOVE_LEGAL_ENTITY_ID; der Empfänger ergibt sich aus der Peppol-ID des Kunden, z. B. 0208 → BE:EN, 0106 → NL:KVK, sonst per E-Mail über Storecove) oder über Banqup von Unifiedpost (BANQUP_CLIENT_ID,BANQUP_CLIENT_SECRET,BANQUP_SPACE_ID;BANQUP_SANDBOX=1für die Testumgebung; Banqup prüft die UBL und stellt sie selbst zu), an eine eigene Adresse (FACTUUR_HTTP_URL, z. B. ein Buchhaltungsprogramm oder ein anderer Peppol-Dienst) oder herunterladen. Eine Rechnung pro Beleg; der Beleg ist bereits bezahlt, also "beglichen". KvK-/Unternehmensnummer, IBAN, Peppol-ID, Präfix und Zahlungsfrist unter Angaben auf der Rechnung. Alle Rechnungen unten im Tab (Recht Umsatz pro Zeitraum). - Schlüssel, Secrets und Header werden nie angezeigt (nur "ausgefüllt"; leer lassen = beibehalten, Löschen = entfernen) und nicht ins Protokoll geschrieben (nur welche Felder sich geändert haben). Sie liegen in der Datenbank (
vestiging.peppol_gegevens): in Backups enthalten, nicht im Konfigurationsexport.
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.
- Wähle, was der Gast wählen kann: Hier essen und/oder Mitnehmen (Mitnehmen rechnet mit dem Abholpreis und dem MwSt.-Satz für Abholung, falls eingestellt).
- Begrüßungstext, nach wie vielen Sekunden ohne Berührung der Kiosk zum Anfang zurückgeht (der Warenkorb wird dann geleert) und welche Produktgruppen auf dem Kiosk stehen (nichts angehakt = alle).
- Noch etwas dazu?: hake Produktgruppen an (z. B. Getränke, Desserts); beim Warenkorb schlägt der Kiosk dann einige Produkte daraus vor.
- Bezahlen, pro Kiosk (siehe Kiosk hinzufügen und koppeln):
- An der Kasse (Standard, wie beim alten Kiosk): Der Gast bestellt, erhält eine Abholnummer und bezahlt an der Kasse. Am Kiosk ist kein Kartenterminal nötig.
- Mit Karte am Kiosk: Der Gast zahlt am Kartenterminal beim Kiosk.
- Der Gast wählt: an der Kasse oder mit Karte. Hat der Kiosk kein Kartenterminal, dann an der Kasse.
- In die Küche (beim Bezahlen an der Kasse): sofort nach der Bestellung am Kiosk (Standard) oder erst, wenn an der Kasse bezahlt ist.
- Kassenbon: auf dem Drucker des Kiosks (Standard), auf dem Bondrucker der Kasse oder kein Bon (nur die Nummer auf dem Bildschirm). Beim Bezahlen an der Kasse druckt der Kiosk einen Bon mit der Nummer und noch nicht bezahlt; der Kassenbon kommt beim Abrechnen an der Kasse.
- Bestellstatus auf dem Handy (optional, standardmäßig aus): Auf dem Bon des Kiosks und auf dem Abschlussbildschirm erscheint ein QR-Code. Der Gast scannt ihn, sieht seine Nummer und den Stand (bestellt, wird zubereitet, fertig) und bekommt eine Benachrichtigung, wenn die Bestellung fertig ist. Das läuft über das Verwaltungsportal; die Kasse muss damit verbunden sein.
- Alkohol und Produkte pro Kilo stehen nie auf dem Kiosk: ohne Personal kann das Alter nicht geprüft werden und es gibt keine Waage.
- Barcodescanner (optional, standardmäßig alles aus): Haken Sie an, was ein Scan am Kiosk tun darf:
- einen Artikel in den Warenkorb (der Code beim Artikel);
- einen Rabattcode;
- eine Kundenkarte (der Gast sammelt Punkte);
- einen Gutschein oder eine Guthabenkarte als Zahlung. Reicht das Guthaben, ist die Bestellung sofort bezahlt. Sonst bezahlt der Gutschein einen Teil, und der Gast bezahlt den Rest mit Karte oder an der Kasse (das ist dann auch an einem Kiosk nur mit Kartenzahlung erlaubt). Nach einer solchen Teilzahlung kann der Gast nicht mehr abbrechen; die Bestellung steht in der Kasse als Kiosk … · Nummer.
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.
- Guthaben aufladen (optional, standardmäßig aus; funktioniert nur, wenn aufladbares Guthaben eingeschaltet ist): Auf dem Startbildschirm des Kiosks steht dann Guthaben aufladen. Der Gast scannt seine Karte oder seinen Gutschein (oder gibt den Code ein), sieht das Guthaben und wählt einen Betrag. Die Beträge legen Sie selbst fest (1 bis 6, standardmäßig € 10, € 20 und € 50). Bezahlt wird wie beim Kiosk eingestellt: mit Karte oder an der Kasse mit der Abholnummer. Nach dem Kassieren ist der Betrag im Guthaben. Eine solche Aufladung geht nicht in die Küche, erscheint nicht auf dem Abholbildschirm und bekommt keinen QR-Code. Das höchste Guthaben für aufladbares Guthaben gilt auch hier.
- Auf mein Zimmer (Hotelanbindung, standardmäßig aus; Einstellungen → Hotel → Selbstbedienung): Beim Warenkorb steht dann Auf mein Zimmer buchen. Der Hotelgast gibt Zimmernummer und Nachnamen ein; passt das zu einem Gast, der gerade in diesem Zimmer wohnt, geht die Bestellung an die Küche und steht bezahlt auf dem Zimmer (siehe Hotelsoftware: aufs Zimmer buchen).
- Belgien (Blackbox): Was noch nicht mit der Blackbox getestet ist, ist am Kiosk automatisch aus (Gutschein oder Guthaben als Zahlung, Aufladen, Rabattcode, Menüs, Optionen mit Aufpreis, Happy Hour), genau wie an der Kasse.
Kiosk hinzufügen und koppeln
- 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).
- 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).
- Ö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.
- im Betrieb: in der App unter Verwaltung → Vast adres die Adresse, die bei der Einstellung steht, z. B.
- 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
- Startbildschirm mit dem Begrüßungstext; der Gast wählt seine Sprache (alle Sprachen der Kasse) und tippt zum Bestellen.
- Hier essen oder mitnehmen.
- 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.
- Der Warenkorb: Mengen anpassen und eventuell Noch etwas dazu?.
- 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.
- 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.
- 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:
- Teams, Slack, Discord, ntfy, Home Assistant, Make oder Zapier) und eine Meldung hersteld, wenn es wieder funktioniert. Mit Testmelding sturen prüfst du die Adresse.
- Notmodus: Der Kiosk speichert eine einfache Karte, die die Kioskseite weitergibt: Artikel ohne Auswahl oder Menüs, mit dem Preis für Hier essen (oder Mitnehmen, wenn das die einzige Wahl ist).
- Ist die Kasse eine Zeit lang weg (standardmäßig 60 Sekunden), bestellt der Gast von dieser Karte.
- Der Gast bezahlt mit Karte oder an der Theke. Kartenzahlung geht nur, wenn Pinbetaling in der App eingeschaltet ist.
- Es gibt zwei Notbons: einen für den Gast (N1, N2 …) und einen für Theke/Küche. Darauf steht, dass es kein Kassenbon ist.
- Kommt die Kasse zurück, setzt die Kioskseite die Notbestellungen als Nood N… <Kiosk> in die Kasse. Sie gehen nicht in die Küche (die hatte den Notbon schon) und stehen nicht auf dem Abholbildschirm.
- Mit Karte bezahlt und derselbe Betrag wie in der Kasse: abgerechnet als Manuelle Kartenzahlung. Sonst (Bezahlen an der Theke oder ein anderer Betrag) bleibt die Bestellung offen für die Bedienung.
- Alles steht im Protokoll.
- Belgien: Mit dem registrierten Kassensystem (GKS, Blackbox) muss jeder Verkauf sofort über die Kasse und das FDM laufen. Der Notmodus ist dann wahrscheinlich nicht erlaubt; kläre das zuerst. Die Kiosk-App schaltet ihn in Belgien nur nach einer zusätzlichen Bestätigung ein, und die Kasse warnt beim Kiosk.
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.
- Pro Warengruppe die Artikel mit Preis, in der Reihenfolge der Kasse. Wählen Sie selbst, welche Gruppen (und in welcher Reihenfolge), 1 bis 4 Spalten, dunkel oder hell, eine eigene Überschrift (leer = der Name des Betriebs), Artikelfotos und Allergene.
- Immer aktuell: Die Tafel ruft alle 10 Sekunden die Karte ab (und sofort bei einer Änderung), daher erscheinen ein ausverkaufter Artikel (durchgestrichen mit Ausverkauft oder von der Tafel genommen), ein leerer Lagerbestand, eine Happy Hour (Aktionspreis mit durchgestrichenem Normalpreis, dazu Name und Endzeit oben) und die Tagesabschnitte (nur was jetzt erhältlich ist) automatisch richtig.
- Passt nicht alles auf den Bildschirm, wechseln die Seiten (standardmäßig alle 12 Sekunden, einstellbar von 5 bis 120).
Personal und PINs
Einstellungen → Personal (nur Administrator): Mitarbeiter hinzufügen, Name, Rolle und PIN ändern und auf inaktiv setzen.
- Rollen: Bedienung (bestellen, kassieren, X-Bericht), Manager (zusätzlich Rabatt, Retoure, Tagesabschluss, Kassenschublade und Protokoll) und Administrator (alles, auch alle Einstellungen). Das ist der Standard; was Bedienung und Manager dürfen, lässt sich anpassen (siehe Rechte pro Rolle).
- PIN mit 4 bis 8 Ziffern, eindeutig unter den aktiven Mitarbeitern. PINs werden nur verschlüsselt (Hash) in der Datenbank gespeichert und sind nicht auslesbar.
- Endgültig löschen ist nicht möglich (Belege und Protokoll verweisen auf den Mitarbeiter); inaktiv = kann sich nicht mehr anmelden.
- Es bleibt immer mindestens ein aktiver Administrator übrig.
- Andere Rolle, neue PIN oder inaktiv: Laufende Sitzungen dieses Mitarbeiters werden sofort beendet.
- Belgien: optional die Nationalregisternummer für die Personalregistrierung.
- Sprache: die Sprache der Bildschirme für diesen Mitarbeiter (oder "Sprache des Geräts"). Nach der Anmeldung ist die Kasse sofort in dieser Sprache; der Mitarbeiter kann sie auch selbst über das Fähnchen unten rechts ändern (siehe Sprachen).
- Tipp: Ersetzen Sie die Demo-PINs 1111 und 2222, bevor die Kasse live geht.
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.
- Koppeln: Tippen Sie auf den Mitarbeiter, dann auf Karte koppeln, und halten Sie die Karte an den Leser. Eine Karte gehört zu einem Mitarbeiter. Karte entfernen, wenn sie verloren gegangen ist.
- Anmelden: Halten Sie im Anmeldebildschirm die Karte an den Leser. Die PIN funktioniert weiterhin ganz normal.
- Ein- und Ausstempeln (wenn aktiviert): im Anmeldebildschirm Ein- / ausstempeln und die Karte an den Leser halten.
- Die Nummer der Karte wird nur verschlüsselt (Hash) in der Datenbank gespeichert, genau wie die PIN. Inaktive Mitarbeiter können sich auch mit ihrer Karte nicht anmelden.
- Aus: Anmelden nur mit der PIN, wie immer. Gekoppelte Karten bleiben gespeichert.
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.
| Recht | Bedienung | Manager |
|---|---|---|
| Zeilen nach dem Bestellen streichen (Storno) | ja | ja |
| Rabatt gewähren / Rabatt entfernen | nein | ja |
| Artikel auf "aus" setzen | ja | ja |
| Kopie eines Belegs drucken | ja | ja |
| Retoure (Gutschrift) | nein | ja |
| Auf Rechnung kassieren und Zahlungen auf Rechnung annehmen (nur mit Kauf auf Rechnung an) | nein | ja |
| Zwischenstand (X-Bericht) | ja | ja |
| Tagesabschluss (Z-Bericht) | nein | ja |
| Umsatz pro Zeitraum | nein | ja |
| Kassenschublade verwalten | nein | ja |
| Gutscheine verwalten (nur bei Gutscheinen mit Guthaben) | nein | ja |
| Bewertungen lesen und beantworten (nur mit Bewertungsverwaltung an) | nein | ja |
| Kundenkarte verwalten (nur mit Kundenkarte an) | nein | ja |
| Protokoll einsehen | nein | ja |
| Kamerabilder ansehen (nur mit aktivierten Kamerabildern) | nein | ja |
| Lagerbestand verwalten (nur bei aktiviertem Lagerbestand) | nein | ja |
| Artikel verwalten | nein | nein |
| Tischpläne verwalten | nein | nein |
| Betrieb, Bezahlen und Drucker einrichten | nein | nein |
| Arbeitszeiten einsehen und anpassen | nein | nein |
- Der Administrator darf immer alles. Personal und Rechte ändern bleibt immer dem Administrator vorbehalten (sonst könnte sich jemand selbst mehr Rechte geben).
- Tasten und Tabs, die eine Rolle nicht darf, sind für diese Rolle ausgeblendet; der Kassenserver prüft das zusätzlich. Erhält ein Manager z. B. Artikel verwalten, sieht er die Taste Einstellungen nur mit dem Tab Artikel.
- Änderungen gelten sofort auf allen Kassen und kommen ins Protokoll. Auf Standard zurücksetzen stellt alles wieder so ein, wie es war.
Daten des Betriebs
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
Melden Sie sich als Administrator an und wählen Sie Einstellungen → Artikel.
- Artikelgruppen und Artikel hinzufügen, ändern (Name, Preis, Gruppe, MwSt.-Satz vor Ort und Abholung, Name auf dem Beleg, Code, ausverkauft) und löschen. Gruppen und Artikel können eine eigene Farbe bekommen; ein Artikel mit Farbe erhält eine farbige Taste im Bestellbildschirm (Text automatisch weiß oder dunkel für die Lesbarkeit).
- Reihenfolge ändern, indem Sie eine Gruppe oder einen Artikel an ≡ ziehen. Das funktioniert mit der Maus und mit dem Finger auf einem Tablet. Genau diese Reihenfolge erscheint danach im Bestellbildschirm; geöffnete Kassenbildschirme aktualisieren sich sofort.
- Löschen entfernt einen Artikel aus der Kasse, aber alte Bestellungen und das fiskalische Journal kennen den Artikel weiterhin. Eine Gruppe können Sie erst löschen, wenn sie leer ist.
- Optionen: Öffnen Sie einen Artikel oder eine Artikelgruppe und fügen Sie unter "Optionen" Optionsgruppen hinzu, z. B. "Garstufe" (genau eine, Pflicht), "Soße" (höchstens eine) oder "Extra" (mehrere, mit Minimum und Maximum; leeres Maximum = unbegrenzt). Jede Option hat einen Namen und einen Aufpreis (darf negativ sein, z. B. -0,50). Optionsgruppen einer Artikelgruppe gelten für alle Artikel dieser Gruppe, zusätzlich zu den eigenen Optionen des Artikels. Reihenfolge mit ▲▼. Löschen ist immer möglich: Bestehende Bestellungen und Belege speichern die gewählten Optionen selbst. Der Server prüft Pflichtoptionen und das Maximum ebenfalls.
- Foto pro Artikel: siehe Artikelfotos.
- Preis pro Kilo, PLU-Nummer und Tara (nur wenn die Waage eingeschaltet ist): siehe Waage einrichten. Ohne Häkchen bleibt ein Artikel ganz normal pro Stück.
Artikelfotos
Jeder Artikel kann ein Foto bekommen.
- Foto hinzufügen: Einstellungen → Artikel → Artikel wählen → Foto wählen (auf einem Tablet oder Telefon geht das auch direkt mit der Kamera). Das Foto wird im Browser auf höchstens 512 × 512 Pixel verkleinert (JPEG, meist 20–80 kB) und direkt gespeichert; Anderes Foto ersetzt es, Foto löschen entfernt es. In der Artikelliste steht ein kleines Foto vor dem Namen. Nur mit dem Recht Artikel verwalten; jpg, png und webp, höchstens 512 kB.
- Anzeigen legt der Administrator unter Einstellungen → Betrieb → Artikelfotos fest, unabhängig voneinander und standardmäßig aus:
- Artikelfoto auf den Tasten des Bestellbildschirms: das Foto oben auf der Artikeltaste, mit Name und Preis darunter.
- Artikelfoto bei den Artikeln auf dem Kundendisplay: ein kleines Foto vor jeder Zeile auf dem Kundendisplay (das Kundendisplay selbst muss ebenfalls eingeschaltet sein). Artikel ohne Foto bleiben, wie sie sind; ist es ausgeschaltet, funktioniert alles genau wie bisher.
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:
- Artikel auf den Beleg: der Artikel mit diesem Code (Einstellungen → Artikel, Feld Code; z. B. der EAN-Barcode der Verpackung). Bei Auswahlen, einem Menü oder einem Preis pro Kilo öffnet sich zuerst das Auswahlfenster oder die Waage, wie beim Antippen. Das macht auch Scannen im Bestellbildschirm bei Etiketten drucken; das funktioniert weiterhin wie gewohnt.
- Rabattcode auf den Beleg (wenn Rabattcodes eingeschaltet sind).
- Kundenkarte: Der Kunde mit dieser Kartennummer kommt auf den Beleg (wenn die Kundenkarte eingeschaltet ist). Scannen Sie einen unbekannten Code auf einem Beleg mit Kunde, fragt die Kasse, ob es seine neue Karte ist.
- Gutschein oder Guthabenkarte: Die Kasse zeigt das Guthaben (wenn Gutscheine mit Guthaben eingeschaltet sind). Bezahlt wird unter Kassieren → Gutschein; dort können Sie den Gutschein auch scannen.
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:
- Stellen Sie den Scanner auf Tastatur (USB-HID), mit einem Enter nach dem Code. Bei den meisten Scannern ist das schon so.
- Einen eingebauten Scanner (z. B. einer Sunmi-Kasse) stellen Sie in den Scannereinstellungen des Geräts auf Tastatureingabe.
- Die Etiketten der TS6X-Waage (Gewicht und Preis) übernimmt die Waage selbst, auch bei eingeschaltetem Scanner.
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.
- Einstellungen → Artikel → (Artikel) → Etiketten: Anzahl wählen und Drucken.
- Einkauf → (erhaltene Bestellung) → Etiketten drucken: für jeden Artikel so viele Etiketten, wie eingegangen sind (erhaltene Bestelleinheiten × Menge pro Bestelleinheit; keine Zutaten). Höchstens 500 Etiketten auf einmal.
- Die Kasse öffnet den Druckdialog: Wählen Sie dort den Etikettendrucker und das Papierformat der Rolle. Jedes Etikett ist eine Seite.
- Der Barcode ist der Code des Artikels (Einstellungen → Artikel): 8 oder 13 Ziffern mit gültiger Prüfziffer = EAN (12 Ziffern: die Prüfziffer wird ergänzt), sonst Code 128 (Buchstaben, Ziffern und Satzzeichen, bis zu 30 Zeichen). Ohne Code kein Barcode.
- Scannen im Bestellbildschirm (Häkchen, standardmäßig aus): Ein Barcodescanner, der als Tastatur arbeitet, fügt den Artikel mit diesem Code hinzu, mit den üblichen Auswahlen (Optionen, Waage, Allergie). Nicht zusammen mit der TS6X-Waage, die eigene Etiketten mit Gewicht und Preis hat.
- Recht: Artikel verwalten oder Lagerbestand verwalten.
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):
- läuft die Kasse(nserver) selbst auf einer Aclas-PC- oder KI-Waage (TS6X, TS3X, TS5EX/NX/GX, iS6X, iS2X, iR6X, Ti6X, iL8X; Marke/Modell des Geräts: Windows über WMI, Android über
getprop, Linux über DMI) und antwortet das Aclas Scale Module? Dann wird diese Waage als Auf diesem Gerät eingerichtet, die Etikettenwaage ebenfalls; unter Linux (kein Scale Module) die eingebaute Waage am gefundenen internen Port (/dev/ttyS...) als "TS6X (ingebouwd)", mit dem Modell; - hängt eine OS6X an einem COM-/USB-Port? Jeder Port wird mit 9600, 4800, 2400 und 19200 Baud probiert: zuerst kurz lauschen (kontinuierlich), dann
Wsenden (Toledo) und sonst Dialog 06 (9600, 7 Datenbits, ungerade Parität: Status abfragen).
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:
- Auf diesem Gerät (einmal einrichten): Die Kasse läuft auf der Waage (PC- oder KI-Waage). Mit Windows oder Android wiegt sie über das Aclas Scale Module, ohne Port, Geschwindigkeit oder Protokoll; mit Linux (kein Scale Module) über den internen Port der Waage (meist
/dev/ttyS0oder/dev/ttyS1), mit Port, Geschwindigkeit und Protokoll. Davon gibt es nur eine pro Kasse; die Suche findet sie automatisch. Eine PC- oder KI-Waage (TS6X, iS6X ...) ist immer Auf diesem Gerät: Sie kann nur einmal in der Liste stehen, die anderen PC-/KI-Modelle sind dann nicht mehr wählbar. Eine TS6X an anderer Stelle im Betrieb kann trotzdem Etiketten drucken (dann nur Etiketten scannen einschalten). - Angeschlossen (mehrere gleichzeitig): die Waage hängt per Kabel (RS232/USB), Bluetooth oder über das Netzwerk am Kassenserver. So viele wie nötig (höchstens 8), jede mit eigenem Namen.
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.
| Modell | Art | Anschlüsse | In der Kasse |
|---|---|---|---|
| OS6X | POS-Waage | RS232, USB, Bluetooth | angeschlossen, mehrere gleichzeitig |
| OS2X | POS-Waage | RS232, USB | angeschlossen, mehrere gleichzeitig |
| CS6X, CS3X | Kassenwaage | RS232, USB, Ethernet, wifi | angeschlossen, mehrere gleichzeitig |
| TS6X, TS3X, TS5EX, TS5NX, TS5GX | PC-Waage (Windows, Android, Linux) | RS232, USB, Ethernet, wifi | auf diesem Gerät (1x), auch als Etikettenwaage |
| iS6X, iS2X, iR6X, Ti6X, iL8X | KI-Waage mit Produkterkennung (Windows, Android, Linux) | RS232, USB, Ethernet, wifi | auf diesem Gerät (1x), auch als Etikettenwaage |
| iS5X, OiT2X | KI-Waage (nur Linux) | RS232, USB, Ethernet | angeschlossen oder als Etikettenwaage |
| LS2S, LS2RX, LS2CX, LS2NX, LS5SX, LS5RX, LS5CX, LS5NX, LS6CX, LS6RX, LS6NX | Etikettenwaage | RS232, Ethernet, wifi | Etiketten scannen und PLUs |
| PS1CX, PS1DX, PS6CX, PS6DX | Preisrechnende Waage | RS232 | angeschlossen, mehrere gleichzeitig |
| PS1BX | Preisrechnende Waage ohne Anschluss | keine | Gewicht von Hand |
| LH15X | Hängewaage mit Etikettendrucker | RS232, Ethernet, wifi | angeschlossen 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:
| Marke | Modell | Art | Anschluss | Protokoll (ab Werk) | In der Kasse |
|---|---|---|---|---|---|
| A&D | EK-i (u. a. EK-610i), HV-WP | Kassenwaage (nur Gewicht) | RS232, EK-i auch USB | Kontinuierlich (Modus stream), 2400 Baud, 7E1 | angeschlossen, mehrere gleichzeitig |
| Adam Equipment | Swift | Preisrechnende Waage | RS232, USB (Option) | Kontinuierlich (kontinuierlich an PC), 9600 8N1 (zu testen) | angeschlossen, mehrere gleichzeitig |
| Avery Berkel | FX110, FX120, FX131 (Einbau mit Scanner) | Kassenwaage | RS232, FX131 auch USB | Mettler Toledo 82/7 = Toledo 8217 (Kasse sendet W), 9600 Baud, 7E1 | angeschlossen, mehrere gleichzeitig |
| Avery Berkel | FX125 | Preisrechnende Waage | RS232 | Checkout-Dialog 06 (9600, 7O1) | angeschlossen, mehrere gleichzeitig |
| Avery Berkel | Xs, XTs, XTi | Etikettenwaage | Ethernet, WLAN, USB | eigene PLUs auf der Waage | Etiketten scannen |
| Avery Weigh-Tronix | 7820, 7829, ZP900 | Kassenwaage | RS232, 7820 auch USB, ZP900 auch USB und Ethernet | NCI (Kasse sendet W), 9600 Baud, 7E1 | angeschlossen, mehrere gleichzeitig |
| Balanzas Marques | BM1000P TOP | Kassenwaage (nur Gewicht) | RS232 | METTLER (Kasse sendet W, Toledo), 9600 Baud, 7E1 | angeschlossen, mehrere gleichzeitig |
| Balanzas Marques | BM5 Junior Tower Label, BM500 ETQ | Etikettenwaage | Ethernet, USB, RS232, BM500 ETQ auch wifi | eigene PLUs auf der Waage | Etiketten scannen |
| Baxtran | TW, VW, XTA, XTA-P | Preisrechnende Waage | RS232 | Toledo (Kasse sendet W), 9600 Baud, 7E1 | angeschlossen, mehrere gleichzeitig |
| Bizerba | CS 300 (auch Einbau) | Kassenwaage | RS232 | Checkout-Dialog 06 (9600, 7O1) | angeschlossen, mehrere gleichzeitig |
| Bizerba | K-Class Flex, KH II | Etikettenwaage | Ethernet | eigene PLUs auf der Waage | Etiketten scannen |
| Brecknell | 6702U, 6710U, 6720U | Kassenwaage | RS232, USB (virtueller COM-Port) | NCI (Kasse sendet W), 9600 Baud, 7E1 | angeschlossen, mehrere gleichzeitig |
| CAS | PD-II, PDN, PDI, PDS-B | Kassenwaage | RS232, PDN auch USB und Bluetooth, PDI auch USB | ECR type 2 = Toledo (Kasse sendet W), 9600 Baud, 7E1 | angeschlossen, mehrere gleichzeitig |
| CAS | CL3000, CL5500, CL7200 | Etikettenwaage | Ethernet, USB, RS232, CL5500 und CL7200 auch wifi | eigene PLUs auf der Waage | Etiketten scannen |
| Datalogic | Magellan 9300i, 9400i, 9800i (Scanner mit Waage) | Kassenwaage | RS232 (separater Waagenport), USB | Mettler Toledo 8217 (Kasse sendet W), 9600 Baud, 7E1 | angeschlossen, mehrere gleichzeitig |
| Dibal | KS-400, D-POS 400 | Kassenwaage | RS232, D-POS 400 auch USB | Checkout-Dialog 06 (9600, 7O1) | angeschlossen, mehrere gleichzeitig |
| Dibal | G-325, PI-100 | Preisrechnende Waage | RS232 | Checkout-Dialog 06 (9600, 7O1) | angeschlossen, mehrere gleichzeitig |
| Dibal | M-500 (Mistral), D-900, CS-2200 | Etikettenwaage | Ethernet, WLAN, USB | eigene PLUs auf der Waage | Etiketten scannen |
| DIGI | DS-781 | Preisrechnende Waage | RS232 | DIGI Type B (Kasse sendet ENQ), 9600 8N1 | angeschlossen, mehrere gleichzeitig |
| DIGI | SM-120, SM-6000 | Etikettenwaage | Ethernet, WLAN | eigene PLUs auf der Waage | Etiketten scannen |
| Dini Argeo | DFW, DGT, 3590E | Kassenwaage (nur Gewicht) | RS232, USB, Ethernet, DFW und 3590E auch wifi | Kontinuierlich (ST,GS, 0.512,kg), 9600 8N1 | angeschlossen, mehrere gleichzeitig |
| Excell Precision | TPE, AM4, FD4-P, FDP4-P, GE4, GEP4 | Preisrechnende Waage | RS232 | Kontinuierlich (ST,GS,+0.876kg), 9600 8N1 (außer TPE zu testen) | angeschlossen, mehrere gleichzeitig |
| Gram | XFOC RS, XFOC+ RS, ZFOC RS | Preisrechnende Waage | RS232, USB (Kabel von Gram) | Gram (Kasse sendet ENQ, dann DC1), 9600 8N1 (XFOC zu testen) | angeschlossen, mehrere gleichzeitig |
| Ishida | Uni-3, Uni-5, Uni-7, Uni-9 | Etikettenwaage | Ethernet, WLAN, USB | eigene PLUs auf der Waage | Etiketten scannen |
| Kern & Sohn | RPB, RFC | Preisrechnende Waage | RS232, USB | Checkout-Dialog 06 (Prot = DLG-06, 9600, 7O1) | angeschlossen, mehrere gleichzeitig |
| Kern & Sohn | RFE (Preis), IFB, EOC | Preisrechnende Waage / Kassenwaage | RS232 | Kontinuierlich, 9600 8N1 | angeschlossen, mehrere gleichzeitig |
| Mettler Toledo | Ariva-S | Kassenwaage | RS232, USB (virtueller COM-Port) | Toledo 8217 (Kasse sendet W), 9600 Baud, 7E1 | angeschlossen, mehrere gleichzeitig |
| Mettler Toledo | Viva | Kassenwaage | RS232 | Toledo 8217, 9600 Baud, 7E1 | angeschlossen, mehrere gleichzeitig |
| Mettler Toledo | bPlus, UC Evo | Etikettenwaage | Ethernet, WLAN | eigene PLUs auf der Waage | Etiketten scannen |
| Minebea Intec | Signum, Combics, Midrics, Puro | Kassenwaage (nur Gewicht) | RS232, USB, Signum und Combics auch Ethernet | Kontinuierlich (SBI, automatisch drucken), 9600 8N1 | angeschlossen, mehrere gleichzeitig |
| Ohaus | Aviator 7000 | Preisrechnende Waage | RS232 oder USB | Checkout-Dialog 06 (9600, 7O1) | angeschlossen, mehrere gleichzeitig |
| Ohaus | Valor 7000, Ranger 3000, Ranger 4000, Ranger 7000, Defender 3000 | Kassenwaage (nur Gewicht) | RS232, USB, Ethernet | Kontinuierlich (Auto Print Continuous), 9600 8N1 | angeschlossen, mehrere gleichzeitig |
| Precia Molen | DP400 | Kassenwaage | RS232, USB | Checkout-Dialog 06 (9600, 7O1) | angeschlossen, mehrere gleichzeitig |
| Precia Molen | DPOS CR, C 210 B, C 210 C | Preisrechnende Waage | RS232 | Checkout-Dialog 06 (9600, 7O1; C 210 zu testen) | angeschlossen, mehrere gleichzeitig |
| Precia Molen | Corail 500 | Etikettenwaage | Ethernet, WLAN | eigene PLUs auf der Waage | Etiketten scannen |
| Precisa | XB, XT, LS, LX (Präzisionswaagen) | Kassenwaage (nur Gewicht) | RS232, LS und LX auch USB | Kontinuierlich (Druckmodus CONTINUOUS), 9600 8N1 | angeschlossen, mehrere gleichzeitig |
| Rice Lake | BenchPro BP-S, BenchPro BP-R | Kassenwaage | RS232 | BP-S Toledo 8213, BP-R NCI (beide: Kasse sendet W), 9600 Baud, 7E1 (zu testen) | angeschlossen, mehrere gleichzeitig |
| Rongta | RLS1000, RLS1100 | Etikettenwaage | Ethernet, RS232, wifi | eigene PLUs auf der Waage | Etiketten scannen |
| Sartorius | Entris, Quintix | Kassenwaage (nur Gewicht) | RS232, USB | Kontinuierlich (SBI, automatisch drucken), 9600 8N1 | angeschlossen, mehrere gleichzeitig |
| Star Micronics | mG-T12, mG-T30, mG-T60, mG-S8200 | Kassenwaage (nur Gewicht) | RS232, USB (virtueller COM-Port) | Kontinuierlich, 9600 8N1 (zu testen) | angeschlossen, mehrere gleichzeitig |
| T-Scale | PA10, PA15, PEA10 | Etikettenwaage | Ethernet | eigene PLUs auf der Waage | Etiketten scannen |
| UWE | ASEP | Preisrechnende Waage | RS232 | Kontinuierlich, 9600 8N1 (zu testen) | angeschlossen, mehrere gleichzeitig |
| Wedderburn | TSDS983 | Kassenwaage | RS232 | DIGI Type B (Kasse sendet ENQ), 9600 8N1 (zu testen) | angeschlossen, mehrere gleichzeitig |
| Wedderburn | TSDS781T, TSDS782T | Preisrechnende Waage | RS232 | DIGI Type B, 9600 8N1 (zu testen) | angeschlossen, mehrere gleichzeitig |
| Wedderburn | TSSM120 | Etikettenwaage | Ethernet, RS232 | eigene PLUs auf der Waage | Etiketten scannen |
| Wintec | ScalePOS ACS-S60E (Kasse mit eingebauter Waage) | Kassenwaage | intern COM6 (Windows) oder COM4 (Android) | Kontinuierlich, 9600 8N1 (zu testen) | angeschlossen |
| Zebra | MP7000, MP72 (Scanner mit Waage) | Kassenwaage | RS232 (AUX-Port) | SASI = Toledo (Kasse sendet W), 9600 Baud, 7E1 (zu testen) | angeschlossen, mehrere gleichzeitig |
- A&D EK-i und HV-WP: Stellen Sie die Waage auf stream (EK-i:
prt 0; ab Werk steht sie auf der PRINT-Taste) und die Kasse auf Kontinuierlich mit 2400 Baud und 7E1 (so ist A&D ab Werk eingestellt). Die Meldung lautetST,+00512.00 g(US= bewegt sich,OL= zu schwer). - Adam Equipment Swift: Stellen Sie die Waage auf kontinuierlich an PC (8N1); die Kasse steht dann auf Kontinuierlich.
- Avery Berkel FX110, FX120 und FX131: Wählen Sie an der Waage das Protokoll Mettler Toledo 82/7 und stellen Sie die Kasse auf Abfragen (Toledo) mit 7E1 (9600 Baud). Dialog 06 geht auch. Die FX125 (mit Preisanzeige) kennt kein Toledo: dort Dialog 06. Das stellt die Kasse automatisch ein, wenn Sie das Modell wählen.
- Avery Weigh-Tronix 7820, 7829 und ZP900 und Brecknell 6702U, 6710U und 6720U: NCI, das Protokoll von Weigh-Tronix. Die Kasse sendet
W(wie bei Toledo), die Waage antwortet mit dem Gewicht (1.234KG) und einer Statuszeile; diese sagt, ob sie sich bewegt, zu schwer oder zu leicht ist. Die Kasse steht auf Abfragen (Toledo) mit 7E1 (9600 Baud). USB funktioniert als virtueller COM-Port. Bei der ZP900 die Kasse an Port 2 anschließen (NCI). Bei der 67xxU kann an der Waage auch 8213 (SCP03) eingestellt werden. - Balanzas Marques BM1000P TOP: Wählen Sie beim COM-Port das Protokoll B (METTLER) und 9600 Baud, 7 Datenbits, gerade Parität; die Kasse steht dann auf Abfragen (Toledo) mit 7E1.
- Baxtran TW, VW, XTA und XTA-P (preisrechnende Waagen; VW und XTA-P mit Säule): Wählen Sie im Menü RS232 der Waage das Protokoll Toledo, 9600 Baud und 7 Datenbits mit gerader Parität (7E1); die Kasse steht dann auf Abfragen (Toledo) mit 7E1. Das stellt die Kasse automatisch ein, wenn Sie das Modell wählen. CONT (die Waage sendet selbst) funktioniert auch: Stellen Sie die Kasse dann auf Kontinuierlich mit derselben Geschwindigkeit und denselben Datenbits. Anschluss mit dem RS232-Kabel (9-polig) oder einem USB-auf-RS232-Kabel.
- Bizerba CS 300: Checkout-Dialog 06 (die Bizerba-Spezifikation): Die Kasse sendet den Kilopreis, die geeichte Waage berechnet den Betrag. Fragt die Waage nach Kontrollcodes, erhalten Sie diese von Bizerba oder dem Lieferanten.
- CAS PD-II, PDN, PDI und PDS-B (die PDS-B u. a. bei LRE): Wählen Sie an der Waage ECR type 2 (Toledo) und stellen Sie die Kasse auf Abfragen (Toledo) mit 7E1 (9600 Baud).
- Datalogic Magellan 9300i, 9400i und 9800i: Stellen Sie den Scale Interface Type des separaten Waagenports auf Mettler Toledo 8217 und die Kasse auf Abfragen (Toledo) mit 7E1.
- Dibal KS-400, D-POS 400, G-325 und PI-100: Wählen Sie an der Waage das Protokoll Checkout_Dialog06 (Protokoll 24) und 9600 Baud, 7 Datenbits, ungerade Parität (Parametertyp 5); die Kasse steht dann auf Dialog 06. Die D-POS 400 geht auch über USB.
- DIGI DS-781: Stellen Sie die Waage auf Type B / Standardbefehl (Data Transmission
00011); die Kasse sendetENQund erhält Netto, Tara, Kilopreis und Betrag zurück. - Dini Argeo DFW, DGT und 3590E: Stellen Sie den seriellen Port auf kontinuierliches Senden (9600 8N1); die Kasse steht dann auf Kontinuierlich.
- Excell Precision TPE (und die 4. Generation AM4, FD4-P, FDP4-P, GE4, GEP4): Stellen Sie die RS232-Ausgabe auf kontinuierlich (9600 8N1); die Kasse steht dann auf Kontinuierlich.
- Gram XFOC RS, XFOC+ RS und ZFOC RS: Protokoll Gram (9600 8N1). Die Kasse sendet
ENQ, die Waage antwortetACK, die Kasse sendetDC1und die Waage sendet das Gewicht:SOH STX S/U/F teken gewicht eenheid BCC ETX EOT(S= stabil,U= bewegt sich,F= Fehler; BCC = XOR vom Status bis einschließlich der Einheit). Anschluss mit RS232 oder dem USB-Kabel von Gram. - Kern & Sohn RPB und RFC: Stellen Sie an der Waage
Prot = DLG-06ein (der Kassenanschluss ist Option 965-419); die Kasse steht dann auf Dialog 06. RFE, IFB und EOC: kontinuierliches Senden (8N1), die Kasse auf Kontinuierlich. - Mettler Toledo Ariva/Viva: Stellen Sie die Waage auf das Toledo-Protokoll (8217) und die Kasse auf Abfragen (Toledo) mit Datenbits / Parität = 7E1 (Mettler: 9600 Baud, 7 Datenbits, gerade Parität; die Ariva geht auch über USB als virtueller COM-Port). Das stellt die Kasse automatisch ein, wenn Sie das Modell wählen.
- Minebea Intec Signum, Combics, Midrics und Puro und Sartorius Entris und Quintix: SBI mit automatisch drucken (9600 8N1); die Kasse steht dann auf Kontinuierlich. Die Meldung lautet
N + 0.512 kg; ohne Einheit bewegt sie sich noch. - Ohaus Aviator 7000: Wählen Sie in den Einstellungen der Waage (Schritt 20) das Protokoll Dialog 06; die Kasse steht dann auf Dialog 06. RS232 oder USB, je nach Kabel.
- Ohaus Valor 7000, Ranger 3000/4000/7000 und Defender 3000 (Wiegen ohne Preis): Stellen Sie die Waage auf Auto Print Continuous (9600 Baud, 8N1) und die Kasse auf Kontinuierlich. Die Waage sendet
0.512 kg G; ein?nach dem Gewicht bedeutet, dass sie sich noch bewegt. Die Ranger 7000 geht auch über Ethernet (TCP-Port 9761). - Precia Molen DP400, DPOS CR und C 210 (die Ladenwaagen gehören seit 2025 zu Dibal): Dialog 06 (9600 7O1), wie bei Dibal. Funktioniert es bei der C 210 nicht, versuchen Sie Abfragen (Toledo) mit 7E1.
- Precisa XB, XT, LS und LX: Stellen Sie den Druckmodus auf CONTINUOUS und 9600 8N1, ohne Datum, Uhrzeit und ID in der Zeile; die Kasse steht dann auf Kontinuierlich. Ohne Einheit bewegt sich das Gewicht noch.
- Rice Lake BenchPro BP-S (Toledo 8213) und BP-R (NCI): Die Kasse steht auf Abfragen (Toledo) mit 7E1.
- Star Micronics mG-T und mG-S8200: über RS232 oder USB (virtueller COM-Port, mit dem Treiber von Star) auf Kontinuierlich.
- UWE ASEP: RS232 an PC/Kasse, die Kasse auf Kontinuierlich (zu testen).
- Wedderburn TSDS983, TSDS781T und TSDS782T sind DIGI-Waagen unter eigener Nummer: DIGI (Type B), wie die DIGI DS-781. Funktioniert das nicht, versuchen Sie Abfragen (Toledo) mit 7E1.
- Wintec ScalePOS ACS-S60E: Die Kasse läuft auf dem ScalePOS selbst; die eingebaute Waage liegt an COM6 (Windows) oder COM4 (Android), 9600 8N1. Wählen Sie Kontinuierlich; sendet sie nichts, findet Suchen das richtige Protokoll.
- Zebra MP7000 und MP72: Der RS232-AUX-Port steht ab Werk auf SASI (9600 7E1, die Kasse sendet
W): die Kasse auf Abfragen (Toledo) mit 7E1. - Etikettenwaagen dieser Marken (Avery Berkel, Balanzas Marques, Bizerba, CAS, Dibal, DIGI, Ishida, Mettler Toledo, Precia Molen, Rongta, T-Scale, Wedderburn) sind eigenständige Systeme mit eigener PLU-Datei. Schalten Sie bei der Waage Etiketten scannen ein und stellen Sie denselben Barcode wie auf der Waage ein (EAN-13, Beginn 20–29, PLU und Gewicht oder Preis). Die PLUs stellen Sie an der Waage selbst oder mit der Software der Marke ein; An TS6X senden und PLU-Datei herunterladen gibt es nur für Aclas.
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.
- Android: die Aclas-App AclasScaleDriver (
com.aclas.aclasscaledriver) ist meist schon auf der Waage; falls nicht, installieren Sieaclas-android/AclasScaleDriver.apk. Die HorecaPOS-App spricht direkt mit dem Dienst dieser App, es ist also keine zusätzliche Bibliothek nötig. - Linux: Aclas hat kein Scale Module für Linux. Wählen Sie einfach das Modell (z. B. TS6X): Der Anschluss wird dann Auf diesem Gerät (interner Port) an
/dev/ttyS0, 9600 Baud, Toledo. Die eingebaute Waage hängt meist an/dev/ttyS0oder/dev/ttyS1; die Suche probiert sie und trägt den richtigen Port, die Geschwindigkeit und das Protokoll ein. Auch hier nur einmal möglich.
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:
- Schalten Sie bei der Waage Etiketten scannen mit demselben Strichcode wie im Plugin ein. Empfehlung: beginnt mit
27, PLU 5 Ziffern, Gewicht (Aclas-Typ 17): Die Kasse rechnet dann selbst mit dem Kilopreis. Mit dem Preis (Typ 12, beginnt mit22) geht es auch. - Schalten Sie bei dieser Waage An der Kasse wiegen aus: Das Plugin und das Scale Module können nicht gleichzeitig auf die Waage zugreifen. Das Gewicht kommt aus dem Strichcode. Antwortet das Plugin bei Suchen, schlägt die Kasse es so vor und startet das Scale Module nicht. Ohne Aktivierungscode wiegt das Plugin zwar und berechnet den Betrag, erkennt aber keine Produkte.
- Im Plugin selbst: den Strichcode unter Scale and Barcode Format Settings → Default Barcode Format (Typ 17) und in den Fenstereinstellungen den Punkt, an dem das Plugin klickt und den Code eintippt. Wählen Sie dafür eine leere Stelle im Bestellbildschirm, nicht auf einer Taste. Neue Produkte bringt der Betrieb dem Plugin selbst auf der Waage bei (KI-Training).
- Geben Sie den wiegbaren Produkten eine PLU-Nummer und senden Sie die PLUs an die Waage (An TS6X senden oder die PLU-Datei); das Plugin erkennt anhand der PLU-Nummer.
- Die Kasse lässt das Plugin nur erkennen, solange der Bestellbildschirm auf der Waage selbst geöffnet ist (
POST /aiplugin/resume, beim Schließen/aiplugin/suspend, Port 5003 auf der Waage; beim ersten Mal auch EmployeeMode: Das Kundendisplay der Waage zeigt keine Produkte). Auf anderen Kassen und Tablets und über das Verwaltungsportal passiert nichts. - Das Plugin startet immer in Resume und kann seinen Zustand nicht melden. Deshalb sendet der Bestellbildschirm alle 30 Sekunden erneut resume; bleibt das aus (Bildschirm geschlossen, Plugin oder Waage neu gestartet), setzt die Kasse das Plugin innerhalb einer Minute auf Suspend und hält es dort.
- Das Plugin benötigt pro Waage einen Aktivierungscode von Aclas (an die Seriennummer gebunden). Funktioniert jetzt unter Windows; die Android-Version von Aclas folgt (die Kasse macht dort dasselbe).
Aclas OS6X (POS-Waage an der Kasse, RS232/USB; so funktionieren auch die anderen angeschlossenen Waagen):
- Eine oder mehrere Waagen (höchstens 8), jede mit einem Namen (z. B. Theke, Bar) und einem eigenen Anschluss: COM-Port / USB (
COM3unter Windows,/dev/ttyUSB0unter Linux/Android) mit der Geschwindigkeit, oder Netzwerk über einen Seriell-zu-Netzwerk-Wandler (IP-Adresse und TCP-Port, z. B. 4001). - Protokoll: Abfragen (Toledo) = die Kasse sendet
Wund die Waage antwortet mit dem Gewicht (Toledo 8217, so steht die OS6X meistens; auch die Statusmeldungen nicht stabil/überlastet/unter null) oder Kontinuierlich = die Waage sendet selbst ständig das Gewicht (ST,GS, 0.512kg,US= nicht stabil) oder Dialog 06 (geeicht), siehe unten, oder DIGI (Type B) = die Kasse sendetENQund die DIGI antwortet mit Status, Netto, Tara, Kilopreis und Betrag (37 Zeichen:<status> <toestand> CR 0<netto> CR 4<tarra> CR U<kiloprijs> CR T<bedrag> CR LF; Zustand Bit 1 = stabil, Bit 2 = unter null, Bit 3 = zu schwer, Bit 4 = zu leicht), oder Gram = die Kasse sendetENQ, wartet aufACK, sendetDC1und liestSOH STX <S/U/F> <teken> <gewicht> <eenheid> <BCC> ETX EOT. Stellen Sie auf der Waage dasselbe Protokoll und dieselbe Geschwindigkeit ein. Datenbits / Parität: 8N1 (Aclas, Adam Equipment, DIGI, Dini Argeo, Excell Precision, Gram, Kern & Sohn, Minebea Intec, Ohaus, Precisa, Sartorius, Star Micronics, UWE, Wedderburn, Wintec) oder 7E1 (A&D, Avery Berkel, Avery Weigh-Tronix, Balanzas Marques, Baxtran, Brecknell, CAS, Datalogic, Mettler Toledo 8217, Rice Lake, Zebra); Dialog 06 ist immer 7O1. Abfragen liest auch NCI (Avery Weigh-Tronix, Brecknell, Rice Lake BP-R): AufWantwortet die WaageLF 1.234KG CR LF S00 CR ETX; die Statuszeile (S+ 2 oder 3 Bytes) sagt, ob sie sich bewegt (Byte 1 Bit 0), zu leicht (Byte 2 Bit 0) oder zu schwer ist (Byte 2 Bit 1);^^^^^= zu schwer,_____= zu leicht. - Dialog 06 (Checkout-Dialog 06, das europäische Protokoll für eine geeichte Waage an einer Kasse): Die Kasse sendet den Kilopreis (und die Tara des Artikels) an die Waage; die Waage wiegt, berechnet selbst den Betrag und zeigt Kilopreis, Gewicht und Betrag auf ihrem eigenen (geeichten) Display. Die Kasse übernimmt Gewicht und Betrag; im Wiegefenster steht "von der Waage berechnet". Immer 9600 Baud, 7 Datenbits, ungerade Parität, 1 Stoppbit (die Geschwindigkeit in der Einstellung gilt dann nicht). Ablauf:
EOT STX 01 ESC <kiloprijs 6> ESC ETX(mit Tara: Datensatz03mit 4 Ziffern Gramm) → ACK;ENQ→STX 02 ESC 3 ESC <gram 5> ESC <kiloprijs 6> ESC <bedrag 6> ETX; NAK →EOT STX 08 ETX→STX 09 ESC <code> ETX(22 = noch nicht bereit, dann nach 100 ms erneut; 20 = bewegt sich; 21 = zuerst anheben; 30/31 = zu leicht; 32 = zu schwer; 11 = Preis ungültig). Kontrollcodes: Viele Dialog-06-Waagen verlangen ab und zu (z. B. alle 30 Wägungen) die Kontrollcodes der Kassensoftware (Datensatz 11 → Datensatz 10). Diese Codes und wie sie berechnet werden, gibt der Hersteller der Waage nur an den Kassenlieferanten weiter. Tragen Sie sie unter Kontrollcodes ein (Paare aus 4 Hexadezimalzeichen, z. B.74AE 1B2C); die Kasse sendet sie, wenn die Waage danach fragt. Rechnet die Waage mit einer wechselnden Zahl (Z) und stimmen feste Codes daher nicht, meldet die Kasse das; bitten Sie dann den Lieferanten, die Waage ohne diese Kontrolle einzurichten, oder verwenden Sie Toledo. - Die Waagen hängen an dem PC oder Gerät, auf dem der Kassenserver läuft; alle Kassen und Tablets wiegen über den Kassenserver und wählen im Wiegefenster, welche Waage sie verwenden. Testen wiegt einmal.
- Netzwerk funktioniert überall.
- Gewicht auch manuell eintippen: ein = auch mit einer Waage darf das Gewicht eingetippt werden; ohne OS6X ist es immer möglich.
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):
- IP-Adresse: nur nötig für Naar TS6X sturen. Wiegen und Etiketten scannen funktionieren ohne. Läuft die Kasse auf der TS6X selbst, lassen Sie sie leer: die Kasse sendet dann an sich selbst (127.0.0.1). Wiegt dieselbe Waage auch an der Kasse, stehen beide Häkchen bei derselben Waage (die Suche richtet es so ein).
- Etiketten scannen: Etiketten auf dem Bestellbildschirm scannen. Stellen Sie ein, wie der Strichcode aussieht, genau wie auf der TS6X: beginnt mit (20–29, Standard
28), Anzahl Ziffern für die PLU (4, 5 oder 6) und danach das Gewicht in Gramm oder der Preis in Cent, plus Prüfziffer (EAN-13). Unter der Einstellung steht ein Beispiel. - PLU-Nummern: Unter Einstellungen → Artikel erhält ein wiegbarer Artikel einen Preis pro Kilo, ggf. eine Tara und eine PLU-Nummer (eindeutig). Die PLU-Nummer wählen Sie aus einer Liste (Keine PLU, nächste freie, Andere Nummer…); beim Anhaken von Preis pro Kilo ist die nächste freie Nummer schon eingetragen. Nur nötig für die Etiketten und PLUs der TS6X: ohne TS6X darf es bei Keine PLU bleiben.
- Direkt senden geht unter Windows und Linux; unter Android und macOS die PLU-Datei verwenden. Prüfen Sie bei der ersten Installation die Feldnamen der PLU-Datei und die Codes in
aclas-plu.ps1anhand des SDK-Handbuchs der gelieferten Waage (eine Stelle zum Anpassen:ACLAS_PLU_KOLOMMENinpackages/shared/src/weegschaal.ts).
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):
- Thuisbezorgd verwenden einschalten (wirkt sofort, unabhängig von Speichern).
- 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.
- 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.
- Ö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. - 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:
- Happy Hour: Der Webshop berechnet denselben Preis wie die Kasse zu diesem Zeitpunkt (durchgestrichener Normalpreis und der Name der Happy Hour), auch mit Saison.
- Tagesabschnitte und Bestellart (wenn eingeschaltet): Der Webshop zeigt nur, was jetzt verkäuflich ist, und bei Abholung und Lieferung den Preis und die Artikel dieser Wahl (am Tisch: vor Ort). Das Menü erhält pro Artikel
prijzen(afhalen,bezorgen) undnietBijsowie die Listedagdelen. - Menüs: Der Gast wählt die Gerichte (fest und zur Auswahl, mit ihren Optionen); in der Kasse erscheint es als Menüzeile mit den Gerichten darunter und dem aufgeteilten Menüpreis (MwSt. pro Gericht stimmt). Gerichte, die nur zu einem Menü gehören, gehen als
menuArtikelenmit. Ein alter Webshop ohne Auswahl: Das Menü erscheint als normaler Artikel auf dem Beleg, wie bisher. - Bestand leer = ausverkauft, auch Auswahloptionen mit einer aufgebrauchten Zutat.
- Allergene: in der Kasse aus = nicht im Webshop.
- Kundenkarte: Der Gast kann beim Bezahlen mitsammeln (per Telefonnummer oder E-Mail); die Kasse verknüpft den Kunden mit der Bestellung, die Punkte werden beim Kassieren gutgeschrieben (Einlösen erfolgt im Betrieb). Der Webshop zeigt den Punktestand.
- Gutscheine (Einstellungen → Betrieb → Gutscheine → Gutscheine im Webshop verkaufen, nur mit Guthaben): Der Gast kauft einen Gutschein und bezahlt online; die Kasse erstellt den Gutschein, der sofort aktiv ist, und der Code geht über das Portal zurück an den Webshop (Status und E-Mail). Ist auch Gutschein als Zahlungsart eingeschaltet, kann der Gast bei Abholung "mit einem Gutschein vor Ort" wählen.
- Rabattcodes (Einstellungen → Rabattcodes, mit dem Schalter bei Betrieb): pro Code an der Kasse und/oder im Webshop; die Nutzung zählt für beide zusammen.
- Pause und Hochbetrieb: Taste Webshop in der oberen Leiste: Webshop pausieren (mit einem Text für den Gast) und Hochbetrieb (Extraminuten). Kommt innerhalb weniger Sekunden im Webshop an.
- Online-Reservierung mit den Regeln der Kasse (Einstellungen → Betrieb → Reservierungen): max. Personen, Tage im Voraus, Zeitslot, Mindestvorlauf und die Zeiten pro Wochentag.
- Lieferung und Zeitfenster: siehe Der Webshop folgt der Kasse unter Lieferung und Zeitfenster.
- All-you-can-eat am Tisch (Einstellungen → Betrieb → All-you-can-eat → Auch bei Bestellung am Tisch über den QR-Code): Läuft am Tisch ein Arrangement, sieht der Gast die dazugehörigen Gerichte als Inklusive für € 0, mit den Runden, dem Maximum pro Person, der Wartezeit und dem Zeitlimit. Den Rest bezahlt er ganz normal; alles kommt auf die Rechnung des Tisches. Hat sich der Stand am Tisch gerade geändert, lehnt die Kasse die Bestellung ab und der Gast bestellt neu.
- Auf Rechnung (Einstellungen → Rechnungen → Kauf auf Rechnung → Auch im Webshop): siehe Im Webshop unter Kauf auf Rechnung.
- Online auf die Warteliste (Einstellungen → Betrieb → Warteliste): siehe Online auf die Warteliste unter Warteliste für Walk-ins.
- Upselling: "Noch etwas dazu?" (optional, standardmäßig aus; Einstellungen → Betrieb → Kassieren → Upselling im Webshop): Wählen Sie die Warengruppen (z. B. Getränke, Saucen, Desserts) und wie viele Vorschläge. Im Webshop erscheinen dann beim Warenkorb und beim Bezahlen Produkte aus diesen Gruppen, die noch nicht im Warenkorb sind (nur was jetzt erhältlich ist, nicht ausverkauft und ohne Pflichtauswahl); der Gast fügt sie mit einem Tippen hinzu. Keine Gruppen gewählt = aus, wie bisher. Der Kiosk hat ein eigenes Upselling (siehe Selbstbedienungskiosk).
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):
- Terminals: pro Terminal ein Name, die Terminal-ID und der eigene API-Schlüssel aus PinPortal (Klant → Bewerk klant → Overige → API Keys). Nach dem Speichern ist vom Schlüssel nur noch das Ende sichtbar; er geht nie zurück an den Browser. Mit Verbindung testen prüfen Sie Schlüssel und Terminal.
- Testmodus: simuliert ein Terminal (nach ca. 7 s erfolgreich; ein Betrag, der auf 13 Cent endet, wird abgelehnt). Praktisch, um ohne Kartenterminal zu testen.
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
Einstellungen → Tischpläne (nur Administrator):
- Tischpläne hinzufügen (z. B. Saal, Terrasse, Wintergarten), umbenennen, löschen und mit ◀ ▶ die Reihenfolge ändern.
- Tische mit den Tasten über dem Raster hinzufügen (rund, quadratisch, lang, Stehtisch) und mit Maus oder Finger an ihren Platz ziehen. Die blaue Ecke eines ausgewählten Tisches macht ihn größer oder kleiner.
- Pro Tisch Name/Nummer, Personenzahl (die Stühlchen um den Tisch zählen mit) und Form einstellen; duplizieren oder löschen.
- Mit der Tastatur: Pfeiltasten verschieben (Umschalt = größerer Schritt), Entf löscht.
- Änderungen gelten erst nach Speichern; "Rückgängig" setzt alles zurück.
- Ein Tisch oder Tischplan mit einer offenen Bestellung kann nicht entfernt werden. Gelöschte Tische bleiben in alten Bestellungen erhalten.
Konfiguration auf einen zweiten Betrieb übertragen
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:
- Artikel: Gruppen, Artikel, Preise (auch nach Bestellart), MwSt., Optionen, Menüs, Happy Hours (mit Saison), Tagesabschnitte, Allergene, Zutaten/Rezepte, Stempelkarten, die All-you-can-eat-Arrangements und die Artikelfotos.
- Tischpläne: Räume und Tische.
- Sonstige Einstellungen: alle Optionen des Betriebs, Drucker (ohne IP-Adresse), Rechte pro Rolle und Buchhaltung.
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.
- Was: Artikel (Name, Preis inkl. MwSt., MwSt., Gruppe, Code/PLU, Lagerbestand) oder Kunden der Kundenkarte (Name, Telefon, E-Mail, Punkte, Adresse, PLZ, Ort; Vor- und Nachname werden zusammengeführt).
- Datei: ein Export Ihrer bisherigen Kasse (Dobizzz/DoPos, Lightspeed, MplusKASSA, unTill, Tebi ...) oder eine eigene Liste: CSV (; , Tab oder |; UTF-8 oder Excel-Niederländisch) oder Excel (.xlsx), das erste Blatt, mit den Spaltennamen in der ersten Zeile. Eine alte .xls-Datei zuerst als .xlsx oder CSV speichern.
- Vorschau: Die Kasse erkennt die Spalten an ihrem Namen (Omschrijving, Verkoopprijs incl. BTW, BTW %, Omzetgroep, Artikelnummer, GSM, Spaarpunten ...) und zeigt die ersten 10 Zeilen. Passt eine Spalte nicht, wählen Sie selbst. Geändert wird erst bei Importieren.
- Artikel: Preise als 3,50, € 3,50 oder 1.234,50; MwSt. als 21, 9%, 0,09, hoch oder niedrig (unbekannt oder leer: der Satz, den Sie wählen, standardmäßig der höchste). Warengruppen, die es noch nicht gibt, werden angelegt (ohne Gruppe: "Importiert").
- Lagerbestand (Spalte Voorraad, Stock, Aantal ...): Ist Lagerbestand führen eingeschaltet (Einstellungen → Betrieb), führt das Produkt Lagerbestand und der Bestand wird auf diese Anzahl gesetzt (eine Zählung im Bestandsverlauf, Grund "Importiert"). Leer: Der Bestand bleibt, wie er ist.
- Beispieldatei (CSV): eine Liste zum selbst Ausfüllen (Naam;Productgroep;Prijs;Btw;Voorraad;Code), zum Beispiel in Excel.
- Kunden: Punkte kommen als Korrektur "Aus einer anderen Kasse importiert" dazu (sichtbar im Verlauf). Die Einwilligung für SMS oder E-Mail wird nicht übernommen (DSGVO): Diese erfragen Sie erneut. Schalten Sie zuerst die Kundenkarte ein.
- Bestehende Artikel (gleicher Code oder ohne Code gleicher Name) und Kunden (gleiche Telefonnummer oder E-Mail) werden übersprungen oder aktualisiert, wenn Sie das ankreuzen (bei Produkten Name, Preis, MwSt., Gruppe und Lagerbestand). Doppelte Zeilen in der Datei werden einmal übernommen.
- Danach: wie viele neu, aktualisiert und übersprungen sind, mit je Zeile, was nicht stimmte (z. B. kein Preis). Höchstens 5000 Zeilen pro Durchgang. Im Protokoll steht es als "Konfiguration importiert".
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.
- Pro Mitarbeiter: Die gewählte Sprache wird beim angemeldeten Mitarbeiter gespeichert (
gebruiker.taal). Meldet sich jemand mit einer anderen Sprache an, schaltet die Kasse sofort um. Auf dem Gerät selbst wird die zuletzt verwendete Sprache gespeichert, sodass auch der PIN-Bildschirm schon in dieser Sprache erscheint. Wählen Sie eine Sprache (im PIN-Bildschirm oder angemeldet) und melden Sie sich innerhalb von 10 Minuten (erneut) an, hat diese Wahl Vorrang und wird zur Sprache dieses Mitarbeiters. Ein Wechsel lädt den Bildschirm neu; Sie bleiben angemeldet und die offene Rechnung bleibt offen. - Erstes Mal auf einem Gerät: Ist auf einem Tablet oder PC noch keine Sprache eingestellt, startet die Kasse in der Sprache, die bei der Installation gewählt wurde. Wurde keine Sprache gewählt, dann in der Sprache des Geräts selbst (Browser oder Betriebssystem, auch in der Android-App), und falls diese nicht dabei ist, auf Niederländisch. Danach merkt sich jedes Gerät seine eigene Wahl.
- Osteuropa: Polnisch, Tschechisch, Slowakisch, Ungarisch, Rumänisch, Bulgarisch, Kroatisch (auch für Bosnisch), Litauisch, Lettisch, Ukrainisch und Russisch: die Sprachen der meisten Arbeitsmigranten aus Mittel- und Osteuropa in den Niederlanden und Belgien.
- Balkan: Serbisch (in lateinischer Schrift, wie die meisten Serben in den Niederlanden und Belgien es schreiben; auch für Montenegrinisch) und Albanisch (Albanien, Kosovo und Nordmazedonien).
- Horn von Afrika: Tigrinya (Eritrea) und Amharisch (Äthiopien), beide in Ge'ez-Schrift, und Somali (in lateinischer Schrift).
- Iran: Persisch (Farsi). Ein Gerät auf afghanischem Persisch (fa-AF) erhält Dari, alle anderen Farsi.
- Karibische Niederlande und Suriname: Papiamento (Papiamentu, Schreibweise von Curaçao und Bonaire; auch für Aruba) und Sranantongo.
- Asien: Hindi (Devanagari; auch für Sarnami Hindustani), Urdu (von rechts nach links), Indonesisch und Vietnamesisch (lateinische Schrift, auch auf dem Bon).
- Marokkanisch: Darija (Marokkanisch-Arabisch, die Umgangssprache) in arabischer und in lateinischer Schrift (so, wie viele marokkanischstämmige Niederländer es in Chats schreiben), neben dem Hocharabischen. Berberisch: Tarifit (Riffisch, in lateinischer Schrift; die meisten marokkanischstämmigen Niederländer stammen aus dem Rif) und marokkanisches Standard-Tamazight in Tifinagh-Schrift.
- Von rechts nach links: Arabisch (Hocharabisch), Urdu, Darija in arabischer Schrift, Dari und Paschtu (Afghanistan), Persisch (Farsi, Iran), Kurdisch Soranî (Irak/Iran) und Syrisch-Aramäisch (Suryoyo, in syrischer Schrift). Beträge, Codes und die Zifferntasten bleiben von links nach rechts. Kurdisch Kurmancî (Türkei/Syrien) wird in lateinischer Schrift dargestellt.
- Küchenbon (Küche/Bar): standardmäßig in der Sprache des Mitarbeiters, der die Bestellung aufgibt. Pro Drucker ist unter Einstellungen → Drucker → Sprache des Küchenbons auch eine feste Sprache möglich (z. B. die des Kochs), in lateinischer Schrift: Nederlands, Čeština, Darija, Deutsch, English, Español, Français, Hrvatski, Italiano, Kurdî, Latviešu, Lietuvių, Magyar, Papiamentu, Polski, Português, Română, Shqip, Slovenčina, Soomaali, Sranantongo, Srpski, Tarifit, Tiếng Việt, Bahasa Indonesia oder Türkçe. Bulgarisch, Russisch und Ukrainisch kommen auf dem Küchenbon in lateinischer Umschrift (der Bondrucker kennt kein Kyrillisch). Arabische, syrische, Devanagari-, Ge'ez- und Tifinagh-Schrift und Chinesisch sind auf einem Bondrucker nicht möglich: Dann kommt Darija in lateinischer Schrift, Tamazight als Tarifit und der Rest auf Niederländisch. Die festen Texte (TISCH, Gang, WARTET auf Abruf, ABRUF GANG, SPÄTER GEDRUCKT, Abholung, Theke) werden übersetzt; Artikelnamen und Bemerkungen bleiben so, wie sie eingegeben wurden. Drucker, die auf Niederländisch standen, folgen dem Mitarbeiter.
- Kassenbon (für alle Kunden): standardmäßig Niederländisch, unabhängig von der Sprache der Bildschirme. Eine andere Sprache wählen Sie unter Einstellungen → Betrieb → Sprache des Kassenbons (direkt unter dem Text unten auf dem Beleg), nur Sprachen in lateinischer Schrift. Das gilt auch für Pro-forma-Beleg, Retourenbeleg, Kopie, Gutschein und den Beleg per E-Mail. Beträge, MwSt.-Codes, die USt-IdNr. des Betriebs und die fiskalischen Zeilen (Belgien) bleiben gleich; ein eigener Text unten auf dem Beleg bleibt so, wie der Betrieb ihn eingibt.
- Artikel, Gruppen und Optionen heißen so, wie der Betrieb sie eingibt; sie werden nicht übersetzt.
- Die Sprache pro Mitarbeiter stellen Sie auch unter Einstellungen → Personal ein.
- Einführung und Handbuch gibt es ebenfalls in all diesen Sprachen. Über die ©-Schaltfläche öffnen sie sich in der Sprache der Kasse; oben wählen Sie mit den Flaggen eine andere Sprache (das ändert nichts an der Kasse).
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.
- Drucker: So viele Drucker hinzufügen, wie der Betrieb hat (z. B. Kasse, Küche, Bar, Pizza), jeweils mit einer Verbindung (meist das Netzwerk: IP-Adresse und Port 9100) und Papierbreite. Mit Testbon prüfen Sie, ob er funktioniert. Oben wählen Sie, welcher Drucker Kassenbon und Pro forma druckt (und die Kassenschublade öffnet). Pro Drucker wählen Sie auch die Sprache des Küchenbons (siehe Sprachen); der Kassenbon bleibt niederländisch.
- Verbindung pro Drucker:
- Netzwerk (IP-Adresse): IP-Adresse und Port (meist 9100). So hat es immer funktioniert, und so funktioniert es weiter: Bestehende Drucker stehen automatisch auf Netzwerk.
- USB: unter Linux das Gerät, zum Beispiel
/dev/usb/lp0. Unter Android der USB-Drucker am Gerät (OTG-Kabel; leer = der erste USB-Drucker). Unter Windows und macOS wählen Sie Systemdrucker. - Seriell (COM / ttyUSB): ein COM-Port (Windows),
/dev/ttyUSB0oder/dev/ttyS0(Linux, Android) oder/dev/cu.…(macOS), mit der Geschwindigkeit (meist 9600, 19200 oder 38400 baud). Auch für einen Bluetooth-Drucker, den Windows oder Linux als COM-Port oder/dev/rfcomm0koppelt. - Bluetooth: in der HorecaPOS-App unter Android, mit der Bluetooth-Adresse des gekoppelten Druckers (z. B. eines mobilen Bondruckers). Koppeln Sie den Drucker zuerst in den Bluetooth-Einstellungen von Android.
- Systemdrucker (Windows / CUPS): der Drucker, wie Windows oder CUPS (Linux, macOS) ihn kennt, mit seinem eigenen Treiber oder als Generic / Text Only. Der Bon geht roh (RAW) an den Drucker, ohne Formatierung durch den Treiber.
- Eingebaut (Sunmi, iMin ...): der Drucker in einer Android-Kasse selbst.
- Suchen zeigt die Drucker und Ports, die die Kasse sieht. Wählen Sie einen aus, und die Adresse ist ausgefüllt.
- Protokoll: ESC/POS (fast alle Bondrucker, auch Star-Drucker im ESC/POS-Modus) oder Star (Star Line Mode). Bei Star wandelt die Kasse den Bon selbst um; der Bon sieht gleich aus.
- Bediengerät mit eigenem Drucker: Ein Android-Bediengerät mit der HorecaPOS-App (z. B. ein Handterminal mit einem mobilen Bluetooth-Drucker oder ein Sunmi als Bediengerät) kann selbst drucken. Melden Sie es auf dem Gerät selbst an (Einstellungen → Drucker → Bediengeräte mit eigenem Drucker) und wählen Sie beim Drucker Angeschlossen an. Das Bediengerät holt seine Bons bei der Kasse ab; lassen Sie die App dort geöffnet. Klappt das nicht (App geschlossen, außerhalb der WLAN-Reichweite), kommt ein Küchenbon in die Druckwarteschlange, genau wie bei einem ausgeschalteten Netzwerkdrucker. Gerät abmelden setzt die Drucker wieder auf die Kasse selbst.
- Drucker pro Gruppe / Artikel: Pro Artikelgruppe wählen, auf welchem Drucker der Küchenbon erscheint. Pro Artikel können Sie das mit einem eigenen Drucker oder "Kein Küchenbon" überschreiben.
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