Kundenprofile, Stammkunden und Gutscheine
Gutschein verkaufen und einlösen#
Beides geschieht als Position auf einer Bestellung an der Kasse — nur so wird der Vorgang steuerlich korrekt erfasst.
- Öffnen Sie den Tisch und tippen Sie in der Seitenleiste auf Gutschein.
- Wählen Sie Verkaufen oder Einlösen.
- Geben Sie den Gutscheincode ein. Beim Einlösen können Sie mit Prüfen das aktuelle Guthaben anzeigen lassen, bevor Sie fortfahren.
- Beim Verkauf wählen Sie die Gutscheinart: Einzweck oder Mehrzweck.
- Tragen Sie den Betrag ein und bestätigen Sie.
Zur Gutscheinart: Einzweckgutscheine werden beim Verkauf versteuert, Mehrzweckgutscheine erst bei der Einlösung. Den Steuersatz setzt das System anhand der gewählten Art — die Einordnung eines konkreten Gutscheins besprechen Sie im Zweifel mit Ihrer Steuerberatung.
Reicht das Guthaben nicht aus, ist der Gutschein abgelaufen oder bereits aktiv, zeigt das Fenster die Meldung des Systems an. Brechen Sie in diesem Fall ab und prüfen Sie den Gutschein über Backoffice → Gutscheine.
Wozu dient das?#
Das Modul für Kunden und Stammkunden dient der Pflege digitaler Gästeakten (CRM), der Zuordnung von Kunden zu aktiven Rechnungen an der Kasse, der automatisierten Nachverfolgung von Besuchs- und Umsatzstatistiken sowie der rechtlich und steuerlich einwandfreien Verwaltung von Geschenkgutscheinen (Einzweck- und Mehrzweckgutscheine).
Rollen#
- Servicepersonal (Kellner / Waiter): Sucht Kunden an der Kasse, verknüpft sie mit aktiven Tischbons, legt neue Gästeprofile spontan an und führt Gutschein-Einlösungen beim Bezahlvorgang durch.
- Schichtleiter & Manager (Manager / Admin): Pflegen Stammdaten im Backoffice, vergeben Notizen und Tags (z. B. VIP, Allergien), stellen Geschenkgutscheine manuell aus und werten Kundenumsätze aus.
Voraussetzungen#
- Eine aktive Bediener-Schicht an der Kasse (→ Kapitel 12).
- Für die Kundensuche und -zuweisung am Bon: Mindestens Benutzerrolle
waiter. - Für die Stammdatenpflege und Gutscheinausgabe im Backoffice: Benutzerrolle
manageroderadmin.
Bildschirm für Bildschirm#
1. Kassen-Suchmaske: Kunden zuweisen (CustomerSearch)#
Das Suchfenster öffnet sich an der Kasse beim Tippen auf Kunde zuweisen (t("attach_customer")).
- Kopfzeile: Zeigt den Fenstertitel Kunde zuweisen (
t("attach_customer")) sowie die Schließen-Schaltfläche (X). - Banner für aktuell zugewiesenen Kunden: Ist dem Bon bereits ein Kunde zugewiesen, erscheint ein farblich hervorgehobener Bereich mit dem Namen des Kunden und der Beschriftung Aktuell zugewiesen (
t("currently_attached")). Daneben befindet sich die Schaltfläche Zuweisung aufheben (t("detach")). - Suchfeld: Eingabefeld mit dem Platzhalter Suche nach Name, Telefon oder E-Mail... (
t("search_by_name_phone_or_email")). Die Suche beginnt automatisch ab der Eingabe von 2 Zeichen. - Ergebnisliste: Zeigt übereinstimmende Kundenprofile mit Name, Telefonnummer und Datum des letzten Besuchs.
- Keine Treffer: Wird kein Kunde gefunden, erscheint die Meldung Keine Kunden gefunden für "{{query}}" (
t("no_customers_found_matching")). - Neukunden-Schaltfläche: Tippen auf Neuen Kunden hinzufügen (
t("add_new_customer")) wechselt in das Schnell-Formular. - Schnell-Formular: Eingabefelder für Vollständiger Name (
t("full_name")) und Telefonnummer (t("phone_number")). Enthält die Schaltflächen Zurück (t("back")) und Erstellen & Anhängen (t("create_and_attach")).
2. Backoffice: Kundenkartei & Profilverwaltung#
- 1 Das Suchfeld Suche nach Name, Telefon, E-Mail oder Tags....
- 2 Kunde hinzufügen öffnet die Maske Neuer Kunde mit Vollständiger Name, Telefonnummer und E-Mail-Adresse; Profil erstellen legt das Profil an.
- 3 Die Tabelle mit KUNDE, KONTAKT, BESUCHE, GESAMTAUSGABEN und LETZTER BESUCH.
- 4 Ein Tipp auf eine Zeile öffnet das Gästeprofil mit Lifetime Value, Punkte, Kontaktinformationen, Tags, Interne Notizen und den Letzten Bestellungen. Änderungen speichern sichert das Profil.
Im Backoffice unter dem Menüpunkt Kunden verwalten Administratoren die zentrale Gästedatenbank.
- Kunden-Tabelle: Auflistung aller registrierten Kunden mit Name, Telefon, E-Mail, Gesamtzahl der Besuche (
visit_count), kumuliertem Gesamtumsatz (total_spent_cents) und Zeitstempel des letzten Besuchs (last_visit_at). - Profil-Detailansicht: Eingabemaske für persönliche Einstellungen, Präferenzen, Notizen (z. B. "Bevorzugt Tisch am Fenster") sowie Tags (JSON-Stichwörter wie
VIP,Vegetarier,Nussallergie).
3. Gutschein-Verkauf & Einlösungsmaske#
- Gutschein-Verkaufsdialog: Erfassung beim Verkauf einer Gutschein-Position im Bon. Erfordert die Eingabe der eindeutigen Gutschein-Nummer (
gutschein_nr), die Auswahl des Gutscheintyps (EinzweckgutscheinoderMehrzweckgutschein) und den Gutscheinwert. - Gutschein-Einlösedialog: Auswahl beim Bezahlvorgang. Ermöglicht das Scannen des Barcodes oder die manuelle Eingabe der Gutschein-Nummer zur Restguthaben-Prüfung.
Schritt für Schritt (inklusive Betriebsverzweigungen)#
Hauptpfad A: Bestehenden Kunden an der Kasse suchen und zuweisen#
- Tippen Sie in der Bon-Seitenleiste auf Kunde zuweisen (
t("attach_customer")). - Geben Sie im Suchfeld Suche nach Name, Telefon oder E-Mail... (
t("search_by_name_phone_or_email")) mindestens 2 Zeichen ein. - Verzweigung A1 — Kunde wird in der Liste gefunden: Tippen Sie auf den Kundeneintrag. Das System verknüpft das Profil sofort mit dem Bon. In der Bon-Ansicht erscheint das Banner Aktuell zugewiesen (
t("currently_attached")). - Verzweigung A2 — Kunde ist noch nicht registriert: Das System zeigt Keine Kunden gefunden für "{{query}}" (
t("no_customers_found_matching")). Fahren Sie mit Hauptpfad B fort.
Hauptpfad B: Neuen Kunden spontan an der Kasse anlegen#
- Tippen Sie im Suchfenster auf Neuen Kunden hinzufügen (
t("add_new_customer")). - Geben Sie im Feld Vollständiger Name (
t("full_name")) den Namen des Gastes ein. - Geben Sie im Feld Telefonnummer (
t("phone_number")) die Telefonnummer ein. - Tippen Sie auf Erstellen & Anhängen (
t("create_and_attach")). - Das System legt das Profil in der Datenbank an und verknüpft es ohne Zwischenschritt mit dem aktuellen Bon.
Hauptpfad C: Kundenzuweisung aufheben#
- Öffnen Sie das Kundenfenster an einem Bon, dem bereits ein Kunde zugewiesen ist.
- Tippen Sie im Banner Aktuell zugewiesen (
t("currently_attached")) auf Zuweisung aufheben (t("detach")). - Die Verknüpfung wird gelöst und der Besuchszähler des Kunden wird im Hintergrund korrigiert.
Hauptpfad D: Geschenkgutscheine verkaufen (Einzweck- vs. Mehrzweckgutschein)#
WICHTIGER HINWEIS ZUR UMSATZSTEUER (KEINE STEUERBERATUNG): Die steuerliche Einordnung von Gutscheinen ist gesetzlich geregelt (§ 3 Abs. 13 bis 15 UStG). Das Kassensystem unterstützt beide Gutscheintypen technisch vollumfänglich. Die Entscheidung, welcher Gutscheintyp für Ihr Angebot gilt, obliegt allein dem Betrieb. Wenden Sie sich für eine rechtssichere Klassifizierung zwingend an Ihren Steuerberater.
- Funktionsweise Einzweckgutschein (
EinzweckgutscheinKauf): Ein Gutschein ist ein Einzweckgutschein, wenn bereits beim Verkauf der Ort der Leistung und die geschuldete Umsatzsteuer (z. B. 19% MwSt. für Speisen/Getränke im Restaurant) feststehen. Die Umsatzsteuer entsteht sofort im Zeitpunkt des Verkaufs. Das Kassensystem berechnet beim Verkauf automatisch 19% MwSt. (USt-Schlüssel 1). - Funktionsweise Mehrzweckgutschein (
MehrzweckgutscheinKauf): Steht der Steuersatz beim Verkauf noch nicht fest (beispielsweise weil der Gutschein wahlweise für Speisen mit 7% MwSt. oder Getränke mit 19% MwSt. eingelöst werden kann), liegt ein Mehrzweckgutschein vor. Der Verkauf ist ein reiner Geldumtausch und erfolgt steuerfrei (0% MwSt., USt-Schlüssel 5). Die Versteuerung erfolgt erst im Zeitpunkt der tatsächlichen Einlösung gegen konkrete Waren. - Verkaufsablauf: Erfassen Sie den Gutschein im Verkaufscenter mit Betrag und eindeutiger Gutschein-Nummer (
gutschein_nr). Nach vollständigem Bezahlen des Bons wird der Gutschein im System aktiviert (is_active = True).
Hauptpfad E: Gutschein einlösen#
- Wählen Sie beim Bezahlvorgang die Einlöse-Position (
EinzweckgutscheinEinloesungoderMehrzweckgutscheinEinloesung). - Erfassen oder scannen Sie die Gutschein-Nummer (
gutschein_nr). - Das System prüft Aktivität, Ablaufdatum und Restguthaben.
- Verzweigung E1 — Guthaben deckt Rechnungsbetrag vollständig: Der Rechnungsbetrag wird auf 0,00 EUR reduziert. Das Restguthaben des Gutscheins verbleibt im System.
- Verzweigung E2 — Teil-Einlösung / Restbetrag offen: Das gesamte Gutscheinguthaben wird aufgebraucht. Der verbleibende Restbetrag der Rechnung wird mit einem weiteren Zahlungsmittel (z. B. Bar oder Karte) beglichen.
Hauptpfad F: Stornierung oder Rückerstattung eines Gutschein-Bons#
- Verzweigung F1 — Storno eines unbezahlten Entwurfs: Die Gutschein-Aktivierung wird verworfen.
- Verzweigung F2 — Rückerstattung einer Gutschein-Einlösung: Wird ein bezahlter Bon mit Gutschein-Einlösung storniert, bucht das System den Einlösebetrag automatisch auf das Guthaben des Gutscheins zurück (
reversal) und stellt den ursprünglichen Stand wieder her.
Treue-Einstellungen#
Administratoren stellen das Punkteprogramm unter Treue-Einstellungen ein: Cent je Punkt beim Sammeln, Cent-Wert eines Punktes beim Einlösen und die Gültigkeit in Tagen (leer = verfällt nie). Die Änderung wird im Audit-Protokoll festgehalten. Punkte gibt es nur auf Ware: Gutscheinkauf und -einlösung zählen nicht. Abgelaufene Punkte verfallen in einem nächtlichen Lauf und erscheinen als Eintrag expiry im Punktekonto. Auf dem Kundenbeleg stehen gesammelte und eingelöste Punkte, der Punktestand und das Restguthaben eingelöster Gutscheine (Code nur mit den letzten vier Stellen) im Block KUNDENINFORMATION, getrennt vom steuerlichen Beleg; ein eingelöster Treuerabatt erscheint als Zeile Treuerabatt.
Was passiert im Hintergrund#
- Automatische Synchronisation von Besuchs- und Umsatzkennzahlen:
- Zuweisung: Beim Anhängen eines Kunden an einen offenen Bon wird dessen
visit_countsofort um 1 erhöht undlast_visit_atauf die aktuelle UTC-Zeit gesetzt. - Kundenwechsel / Detach: Wird der Kunde am Bon gewechselt oder getrennt, wird der Besuchszähler des vorherigen Kunden automatisch wieder um 1 verringert.
- Rechnungsabschluss: Sobald der Bon den Status
CLOSEDerreicht, wird der Nettobetrag der Rechnung automatisch zum kumulierten Gesamtumsatz (total_spent_cents) des Kunden addiert. - Storno / Rückerstattung: Wird ein bezahlter Bon storniert oder zurückerstattet, zieht das System den Rechnungsbetrag wieder von
total_spent_centsab und verringertvisit_count.
- Zuweisung: Beim Anhängen eines Kunden an einen offenen Bon wird dessen
- Gutschein-Hauptbuch (
GiftCardTransaction): Jede Gutscheinbewegung (Ausgabe, Einlösung, Rückbuchung, Ablauf) schreibt einen unveränderlichen Hauptbucheintrag. Die Datenbank garantiert über eine Zeilensperre (SELECT FOR UPDATE), dass das Guthaben bei zeitgleichen Zugriffen nicht überzogen werden kann. - DSFinV-K Export-Konformität: In den DSFinV-K Exportdateien (
lines.csv) werden Gutscheintransaktionen in der SpalteGUTSCHEIN_NRsowie den USt-Schlüsseln (Schlüssel 1 für 19% Einzweckgutscheine, Schlüssel 5 für 0% Mehrzweckgutscheine) protokolliert (→ Kapitel 23b).
Häufige Probleme#
1. Customer not found#
- Ursache: Die eingegebene Kunden-ID oder der Suchbegriff existiert nicht in der Datenbank des aktuellen Mandanten.
- Lösung: Überprüfen Sie die Schreibweise oder legen Sie den Kunden über Neuen Kunden hinzufügen (
t("add_new_customer")) neu an.
2. Cannot modify a finalized order#
- Ursache: Es wurde versucht, einer bereits bezahlten, geschlossenen oder stornierten Rechnung (
PAID,CLOSED,VOIDED,REFUNDED) nachträglich einen Kunden zuzuweisen oder zu entfernen. - Lösung: Kundenzuweisungen können nur an aktiven, noch nicht abgerechneten Bons vorgenommen werden.
3. Gift card not found#
- Ursache: Die eingegebene Gutschein-Nummer (
gutschein_nr) existiert nicht im Gutscheinbestand des Mandanten. - Lösung: Überprüfen Sie die Gutschein-Nummer auf Tippfehler oder prüfen Sie den Gutschein-Code im Backoffice.
4. Gift card is not active#
- Ursache: Der Gutschein wurde im System noch nicht aktiviert (beispielsweise weil der Verkaufsbon noch nicht vollständig bezahlt wurde) oder wurde im Backoffice manuell deaktiviert.
- Lösung: Schließen Sie den ursprünglichen Verkaufsbon ab oder aktivieren Sie den Gutschein in der Backoffice-Gutscheinverwaltung.
5. Gift card has expired#
- Ursache: Das Gültigkeitsdatum (
expired_at) des Gutscheins liegt vor dem aktuellen Systemdatum. - Lösung: Ein abgelaufener Gutschein kann nicht mehr eingelöst werden. Ein Administrator kann das Ablaufdatum im Backoffice bei Bedarf anpassen.
6. Insufficient gift card balance ({card.current_balance_cents} cents available, {amount_cents} requested)#
- Ursache: Der gewünschte Einlösebetrag ist größer als das verbleibende Restguthaben des Gutscheins.
- Lösung: Reduzieren Sie den Einlösebetrag auf das verfügbare Guthaben und begleichen Sie den Restbetrag der Rechnung mit einem anderen Zahlungsmittel.
7. Gift card code (gutschein_nr) is required for redemption#
- Ursache: Beim Auswählen der Einlöse-Position wurde das Feld für die Gutschein-Nummer leer gelassen.
- Lösung: Erfassen oder scannen Sie die Gutschein-Nummer, bevor Sie die Einlösung bestätigen.
8. Gift card voucher type {type}#
- Ursache: Es wurde versucht, einen Einzweckgutschein als Mehrzweckgutschein einzulösen (oder umgekehrt). Die gewählte Einlöse-Position passt nicht zum registrierten Gutscheintyp.
- Lösung: Wählen Sie an der Kasse die exakt passende Einlöse-Position (
EinzweckgutscheinEinloesungbzw.MehrzweckgutscheinEinloesung), die dem Typ des Gutscheins entspricht.
9. Order not found#
- Ursache: Die im Kassensystem aufgerufene Bestell-ID existiert nicht oder gehört zu einem anderen Standort/Mandanten.
- Lösung: Öffnen Sie den Bon erneut über die Tischübersicht oder Rechnungsliste.
Gastprofil löschen (Anonymisieren nach Art. 17 DSGVO)#
Bittet ein Gast darum, seine Daten zu löschen, kann ein Administrator das Gastprofil anonymisieren. Für diesen Vorgang gibt es keine Bedienoberfläche: In der Kundenliste und im Gastprofil steht keine Schaltfläche Löschen oder Anonymisieren. Der Vorgang läuft nur über die Schnittstelle der Plattform (→ Kapitel 37).
- Das Profil verliert seine persönlichen Angaben. Die Gast-Angaben in Reservierungen und die Empfängerzeilen von Kampagnen dieses Gastes werden mit anonymisiert.
- Belege, Bestellungen und Zahlungen bleiben erhalten, denn sie sind steuerlich aufzubewahren. Sie zeigen den Gast danach nur noch als anonymes Profil.
- Jede Anonymisierung steht im Löschprotokoll mit Akteur, Zahl der Datensätze, dem Anlass „Betroffenenantrag“ und der Gast-Kennung als Bezug, nie mit dem Inhalt. Ein zweiter Antrag für ein schon anonymes Profil schreibt nichts mehr.
- Das Lesen des Löschprotokolls ist ebenfalls nur über die Schnittstelle möglich.
Löschfristen und Löschprotokoll#
Personenbezogene Daten löscht das System selbst, sobald ihre Frist abgelaufen ist. Ein Lauf im Hintergrund arbeitet die Fristentabelle ab; Sie müssen nichts anstoßen.
- Was wann gelöscht wird (Auswahl): Gastdaten einer Reservierung (Name, E-Mail, Telefon, Notiz) nach 90 Tagen; Gastprofile ohne Besuch nach drei Jahren; der Freitext einer Gastbewertung nach einem Jahr (die Sterne bleiben); Versandzeilen von Kampagnen nach einem Jahr; Arbeitszeiten und Dienstpläne nach acht Jahren.
- Was nicht gelöscht wird: Kassenaufzeichnungen, Belege, das Änderungsprotokoll und die Bediener in den Kassendaten unterliegen den Aufbewahrungsfristen der AO (8 bzw. 10 Jahre). Der Fristlauf fasst sie nie an.
- Löschung auf Antrag des Gastes: Das Anonymisieren eines Gastprofils (Art. 17 DSGVO) wird ebenso eingetragen, mit Anlass „Betroffenenantrag“.
- Löschprotokoll: Jede Löschung steht mit Zeitpunkt, Datenart, Anzahl der Datensätze und Anlass im Protokoll, nie mit dem gelöschten Inhalt. Eine Ansicht dafür gibt es im Programm noch nicht.
Grenzen#
- Treuepunkte-Funktion (
loyalty_points): Das Datenbankfeldloyalty_pointsist im Datenmodell vorhanden, jedoch in der aktuellen Softwareversion als Platzhalter ohne automatische Sammel- oder Prämien-Logik hinterlegt. - Eine automatische Kunden-Segmentierung (z. B. automatische Zuordnung von Rabattstufen nach Umsatzklasse) findet im Kassen-Frontend nicht statt; dies erfolgt bei Bedarf regelbasiert über das Marketing-Modul im Backoffice (→ Kapitel 30b).
Dieses Kapitel gehört zum Merkuron-Handbuch für Inhaber und Servicepersonal.