Zur Startseite Live-Demo

Preis- und Rabattregeln

Wozu dient das?#

Das Modul Preis- und Rabattregeln (PricingRulesScreen.tsx) dient Inhabern und Betriebsleitern zur automatisierten Konfiguration zeitgesteuerter Preisnachlässe und Aktionen. Anstelle manueller Preisnachlässe an der Kasse hinterlegen Sie Regeln für wiederkehrende Zeitfenster wie Happy Hours, Wochenend-Tarife oder Sortimentsrabatte. Beim Bonieren an jedem angebundenen Kassen-Terminal erkennt das System aktive Regeln anhand der aktuellen Uhrzeit und wendet die Vergünstigung vollautomatisch auf berechtigte Artikel an.

Voraussetzungen#

  • Der Artikelkatalog (→ Kapitel 21) ist eingerichtet; die zu rabattierenden Artikel oder Kategorien sind im System vorhanden.
  • Die Systemuhren der Kassen-Terminals sind synchronisiert, damit Zeitfenster auf die Minute genau greifen.
  • Ein Benutzerkonto im Backoffice mit der Berechtigung zur Preis- und Stammdatenpflege (Owner oder Manager).

Rollen & Berechtigungen#

RolleRegeln anlegen & bearbeitenAktivieren / DeaktivierenRegeln löschenAnwendung am Terminal
Owner (Inhaber)JaJaJaAutomatisch
ManagerJaJaJaAutomatisch
Staff (Servicekraft)NeinNeinNeinAutomatisch
Accounting (Buchhaltung)LeserechteNeinNeinKeine

Schritt für Schritt#

1. Preisregel anlegen (pricing.rule.create)#

  1. Melden Sie sich im Kassen-Backoffice an und wählen Sie den Menüpunkt Preis- & Rabattregeln (t("promotion_rules")).
  2. Klicken Sie oben rechts auf Regel hinzufügen (t("add_rule")).
  3. Der Dialog Neue Preisregel (t("new_promotion_rule")) öffnet sich.
  4. Tragen Sie im Feld Name der Regel (t("rule_name")) eine eindeutige Bezeichnung ein (z. B. t("e_g_happy_hour_friday")).
  5. Wählen Sie unter Geltungsbereich (t("applies_to")), für welche Produkte die Vergünstigung gilt:
    • Alle Artikel (t("all_items")): Der Rabatt gilt für das gesamte Sortiment.
    • Bestimmte Kategorie (t("specific_category")): Der Rabatt gilt für alle Artikel einer Warengruppe. Wählen Sie die Zielgruppe unter Zielartikel / Kategorie (t("target_item")).
    • Bestimmtes Produkt (t("specific_product")): Der Rabatt gilt ausschließlich für einen einzelnen ausgewählten Artikel.
  6. Bestimmen Sie unter Aktive Wochentage (t("active_days")) die Wochentage durch Anklicken der Schalter:
    • Mo (t("day_mon")), Di (t("day_tue")), Mi (t("day_wed")), Do (t("day_thu")), Fr (t("day_fri")), Sa (t("day_sat")), So (t("day_sun")).
  7. Stellen Sie unter Zeitfenster (t("time_window")) Beginn und Ende ein (z. B. 17:00 bis 19:00).
  8. Wählen Sie unter Rabatttyp (t("discount_type")):
    • Prozentsatz (t("percentage")): Prozentualer Abzug vom regulären Verkaufspreis.
    • Fester Betrag (t("fixed_amount")): Fester Euro-Betrag, der pro bestellter Einheit abgezogen wird.
  9. Geben Sie den Betrag oder Prozentsatz im Feld Wert (t("value")) ein (z. B. 20 für 20 % oder 1.50 für 1,50 €).
  10. Klicken Sie auf Regel speichern (t("save_rule")). Nach erfolgreichem Speichern bestätigt das System die Aktion mit Regel erfolgreich gespeichert (t("rule_saved_successfully")).

2. Preisregel bearbeiten (pricing.rule.update)#

  1. Suchen Sie die gewünschte Regel in der Übersichtskarte.
  2. Klicken Sie auf das Stift-Symbol Regel bearbeiten (t("edit_rule")).
  3. Das Bearbeitungsfenster Preisregel bearbeiten (t("edit_promotion_rule")) öffnet sich mit allen aktuell hinterlegten Parametern.
  4. Passen Sie die gewünschten Werte (Name, Zeiten, Tage, Betrag) an und bestätigen Sie mit Regel speichern (t("save_rule")).
  5. Schnell-Umschaltung ohne Bearbeitungsdialog:
    • Klicken Sie auf das Kreissymbol der Regel (Regel deaktivieren t("deactivate_rule") bzw. Regel aktivieren t("activate_rule")), um eine Aktion sofort zu pausieren oder wieder in Kraft zu setzen.
    • Deaktivierte Regeln werden im Dashboard ausgegraut und als Inaktiv (t("inactive")) markiert.

3. Preisregel löschen (pricing.rule.delete)#

  1. Klicken Sie in der Regelkarte auf das Papierkorb-Symbol Regel löschen (t("delete_rule")).
  2. Der Sicherheitsdialog Preisregel löschen (t("delete_pricing_rule")) fragt nach: Möchten Sie diese Regel wirklich löschen? Diese Aktion kann nicht rückgängig gemacht werden. (t("delete_rule_confirm_message")).
  3. Klicken Sie auf Löschen (t("delete")), um die Regel endgültig aus der Datenbank zu entfernen.
  4. Das System meldet Regel erfolgreich gelöscht (t("rule_deleted_successfully")).

Bildschirm für Bildschirm (PricingRulesScreen.tsx)#

Preisregeln Backoffice-Bereich Preis- und Rabattregeln mit der Schaltfläche Regel hinzufügen, einer Regelkarte mit Zeitfenster, Wochentagen und Rabatt sowie der Maske Neue Preisregel mit Name der Regel, Geltungsbereich, Aktive Wochentage, Zeitfenster, Rabatttyp und Wert. BACKOFFICE VERLASSEN >_ BACKOFFICE Verwaltung PRODUKT-LAYOUT MENÜ-EDITOR LAGERVERWALTUNG PREIS- & RABATTREGELN RAUMPLAN-EDITOR TISCH-LEBENSZYKLUS GESCHÄFT FISKAL DRUCKEN GERÄTE ROLLEN & BERECHTIGUNGEN KI-ASSISTENT INHABER-DASHBOARD SCHICHTVERWALTUNG KARTENABSTIMMUNG DATENEXPORTE NEUER MANDANT QR-CODES KUNDEN STANDORTE GUTSCHEINE ARBEITSZEIT KORRIGIEREN MARKETING PMS FRANCHISE BRANDING Preis- & Rabattregeln Automatische zeitbasierte Rabatte und Happy-Hour-Aktionen Regel hinzufügen Happy Hour Freitag AKTIV 17:00 – 19:00 · Fr · 20 % Rabatt Gilt für: Drinks Neue Preisregel Name der Regel z. B. Happy Hour Freitag Geltungsbereich Alle Artikel Kategorie Produkt Aktive Wochentage Mo Di Mi Do Fr Sa So Zeitfenster 17:00 bis 19:00 Rabatttyp Prozentsatz Fester Betrag REGEL SPEICHERN 1 2 3 4 5 6 7 8
Preisregeln mit Regelkarte und der Maske Neue Preisregel
  • 1 Regel hinzufügen öffnet die Maske Neue Preisregel.
  • 2 Eine Regelkarte zeigt den Namen, den Status Aktiv oder Inaktiv, Zeitfenster, Wochentage, den Rabatt (% Rabatt oder Betrag) und Gilt für:.
  • 3 Die drei Symbole der Karte: Regel deaktivieren (oder Regel aktivieren), Regel bearbeiten und Regel löschen. Vor dem Löschen fragt Preisregel löschen nach.
  • 4 Name der Regel, zum Beispiel „Happy Hour Freitag“.
  • 5 Geltungsbereich: Alle Artikel, Bestimmte Kategorie oder Bestimmtes Produkt. Bei Kategorie und Produkt wählen Sie unter Zielartikel / Kategorie das Ziel.
  • 6 Aktive Wochentage von Mo bis So. Die Kürzel Jeden Tag, Mo – Fr und Wochenende wählen mehrere Tage auf einmal.
  • 7 Zeitfenster mit Beginn und Ende (bis).
  • 8 Rabatttyp: Prozentsatz oder Fester Betrag, dazu der Wert. REGEL SPEICHERN legt die Regel an.
  • Kopfbereich:
    • Titel: Preis- & Rabattregeln (t("promotion_rules")).
    • Untertitel: Automatische zeitbasierte Rabatte und Happy-Hour-Aktionen (t("automatic_time_based_discounts_and_happy")).
    • Aktions-Button: Regel hinzufügen (t("add_rule")) mit Plus-Symbol.
  • Leerzustand (No Rules):
    • Zeigt ein Preisschild-Icon und die Meldung Noch keine Preisregeln vorhanden (t("no_pricing_rules_yet")) sowie den Hinweis Erstellen Sie Regeln für automatische Happy Hours oder Rabatte. (t("create_rules_to_automate_happy_hours")).
  • Regelkarten-Liste:
    • Icon & Name: Preisschild-Symbol, Name der Regel und Status-Badge (Aktiv t("active") in Grün oder Inaktiv t("inactive") in Grau).
    • Wochentage: Kalender-Icon mit zusammenfassender Anzeige (Jeden Tag t("every_day"), Mo – Fr t("mon_fri"), Wochenende t("weekends") oder Aufzählung einzelner Tage).
    • Uhrzeit: Uhr-Icon mit Angabe des Zeitfensters (time_from – time_to).
    • Rabatt-Badge: Prozent-Icon mit Rabatthöhe (z. B. 20% % Rabatt t("percent_off") oder €1.50 € Rabatt t("amount_off")).
    • Geltungsbereich-Badge: Zeigt Gilt für: (t("applies_to_label")) gefolgt von der Kategorie, dem Artikel oder dem Hinweis auf alle Artikel.
    • Aktionsschaltflächen:
      • Schnellschalter: Aktivieren (t("activate_rule")) / Deaktivieren (t("deactivate_rule")).
      • Stift: Bearbeiten (t("edit_rule")).
      • Papierkorb: Löschen (t("delete_rule")).
  • Eingabe- und Bearbeitungsdialog (RuleForm):
    • Modaler Dialog über abgedunkeltem Hintergrund.
    • Titelleiste mit Neue Preisregel (t("new_promotion_rule")) bzw. Preisregel bearbeiten (t("edit_promotion_rule")).
    • Eingabefelder für Name, Geltungsbereich, Zielauswahl, Wochentagstasten, Zeitfenster (t("time_to_label")), Rabatttyp und Wert.
    • Schaltflächen Abbrechen (t("cancel")) und Regel speichern (t("save_rule")).

„2 für 1“-Aktionen (BOGO)#

Neben den Preisregeln kennt die Plattform „2 für 1“-Aktionen (englisch BOGO, „buy one, get one“). Für sie gibt es in der Kasse keine Bedienoberfläche: Weder im Backoffice unter PREIS- & RABATTREGELN noch an der Kasse finden Sie eine Maske, um eine solche Aktion anzulegen, zu ändern oder zu löschen. Die Aktionen lassen sich nur über die Schnittstelle der Plattform verwalten. Administratoren und Manager dürfen sie anlegen und ändern, das Löschen ist Administratoren vorbehalten. Wenn Sie eine „2 für 1“-Aktion brauchen, wenden Sie sich an Ihren Betreuer oder an einen Entwickler, der die Schnittstelle bedient (→ Kapitel 37). Bis dahin nutzen Sie die Preisregeln dieses Kapitels.

Vollständiges Praxisbeispiel: Happy-Hour-Aktion#

Das Szenario#

Eine Bar bietet freitags von 18:00 bis 20:00 Uhr eine Happy Hour auf alle Cocktails an. Der reguläre Verkaufspreis für einen „Mojito“ beträgt 9,50 Euro.

Die Regel wird wie folgt konfiguriert:

  • Name der Regel: Happy Hour Freitag
  • Geltungsbereich: Bestimmte Kategorie → Kategorie Cocktails
  • Aktive Wochentage: Nur Fr aktiviert
  • Zeitfenster: 18:00 bis 20:00
  • Rabatttyp: Prozentsatz
  • Wert: 20 (entspricht 20 %)

Was bei der Bonierung am POS passiert#

  1. Bestellung um 17:45 Uhr (vor Beginn):
    • Die Servicekraft bucht 1x „Mojito“.
    • Das System prüft die Uhrzeit (17:45 < 18:00). Die Regel greift nicht.
    • Der Artikel wird zum regulären Preis von 9,50 Euro boniert.
  2. Bestellung um 18:15 Uhr (im aktiven Zeitfenster):
    • Die Servicekraft bucht 1x „Mojito“.
    • Das System prüft die Uhrzeit (18:00 <= 18:15 < 20:00) und den Wochentag (Freitag).
    • Die Rabattregel greift: 20 % von 9,50 Euro = 1,90 Euro Nachlass.
    • Auf dem Terminal erscheint der „Mojito“ mit dem rabattierten Endpreis von 7,60 Euro. Auf dem Rechnungsbeleg wird der reguläre Preis mit dem Aktionsabzug transparent ausgewiesen.
  3. Bestellung um 20:05 Uhr (nach Ende):
    • Das Zeitfenster ist abgelaufen. Neu angebuchte Artikel erhalten wieder den regulären Preis von 9,50 Euro.

Was passiert im Hintergrund#

  • Regelauflösung (PricingService.resolve_discount): Beim Hinzufügen einer Bestellposition ruft die Kasse den Rabattdienst auf. Dieser filtert alle aktiven Regeln des Mandanten (is_active = True), vergleicht Wochentag und Systemuhrzeit und prüft, ob der Artikel oder seine Warengruppe der Regel unterliegt.
  • Prioritätssteuerung: Treffen mehrere Regeln gleichzeitig zu, entscheidet das Prioritätsfeld (priority) der Regel. Die Regel mit der höchsten Priorität wird angewendet; es kommt zu keinen unkontrollierten Mehrfachrabatten.
  • Kaufmännische Rundung: Prozentuale Rabatte werden kaufmännisch auf ganze Centbeträge gerundet (round_half_up), um Rundungsdifferenzen und Bruchteile von Cents im Kassenbuch auszuschließen.
  • Kappung bei festen Beträgen: Übersteigt ein Festbetragsrabatt den regulären Verkaufspreis des Artikels, wird der Nachlass auf den Artikelpreis begrenzt (min(discount_cents, unit_price_cents)). Ein Artikel kann durch eine Preisregel niemals einen negativen Verkaufspreis annehmen.
  • Fiskalisierung & GoBD: Der gewährte Rabatt wird unmittelbar in der Bestellposition (order_items) festgeschrieben und fließt unveränderbar in die TSE-Signatur und das Kassenprotokoll ein. Nachträgliche Änderungen an einer Preisregel verändern keine bereits abgeschlossenen Bestellungen oder historischen Kassenabschlüsse.

Häufige Probleme#

  • Regel greift während der Geschäftszeit nicht
    • Ursache 1: Der Wochentag der Kassenstation stimmt nicht mit den konfigurierten Tagen überein, oder die Uhrzeit liegt knapp außerhalb des Intervalls time_from / time_to.
    • Ursache 2: Die Regel ist auf Inaktiv geschaltet.
    • Lösung: Öffnen Sie Preis- & Rabattregeln im Backoffice, prüfen Sie den grünen Status Aktiv und vergleichen Sie die Terminalzeit mit dem Zeitfenster.
  • Pricing rule not found
    • Ursache: Eine Regel wurde gelöscht, während ein Kassen-Terminal noch einen veralteten Datenbestand im Speicher hielt.
    • Lösung: Laden Sie die Kassenoberfläche neu, damit die aktuellen Preisstammdaten geladen werden.
  • Rabatt gilt für falsche Artikel
    • Ursache: Im Feld Geltungsbereich wurde versehentlich Alle Artikel statt Bestimmte Kategorie ausgewählt, oder der Artikel ist im Katalog der falschen Kategorie zugeordnet.
    • Lösung: Prüfen Sie die Kategoriezuordnung des Artikels in der Speisekarte (→ Kapitel 21) und passen Sie den Geltungsbereich der Preisregel an.

Grenzen#

  • Keine Staffelpreise / BOGO: Mengenstaffeln wie „Nimm 3, zahle 2“ werden nicht über dieses Formular abgewickelt, sondern erfordern gesonderte Aktionskonfigurationen.
  • Gutscheine und Wertkarten: Personenbezogene Rabatt-Codes oder Gutscheinkarten werden nicht hier hinterlegt, sondern über das Modul Gutscheine verwaltet (→ Kapitel 30d).
  • Keine automatische Rückwirkung: Preisregeln gelten ausschließlich für Buchungen, die während der Gültigkeit neu erfasst werden; offene Tische, die vor Beginn des Zeitfensters anboniert wurden, behalten ihren ursprünglichen Buchungspreis.

Dieses Kapitel gehört zum Merkuron-Handbuch für Inhaber und Servicepersonal.