← Zurück zu den Artikeln
Kapitel 2: Preisregeln
Veröffentlicht: 31. 3. 2026 Autor: Michal Keller preisregelnbilling-categoryprioritätAPI

Kapitel 2: Preisregeln

Preisregeln verbinden Kunden und Gruppen mit Preislisten. Erfahren Sie, wie das Matching funktioniert, was billing_category bedeutet, wie Priorität angewendet wird und warum ein Datensatz mehrere Bewertungen erhalten kann.


Was sind Preisregeln?

Preisregeln sind Einträge, die der Engine mitteilen: „Für diesen Kunden (oder diese Gruppe), innerhalb dieses Zeitfensters, verwende diese Preisliste." Sie verbinden einen Kunden oder eine Kundengruppe mit einer bestimmten Preisliste und definieren die Preiskategorie — zum Beispiel ob es sich um einen Einzelhandelspreis, einen Großhandelstarif oder einen internen Kostenpreis handelt.

Eine Preisregel enthält keine Bedingungen für Datensatzattribute. Die Auswahl der konkreten Preislistenposition übernimmt die Rating-Engine automatisch anhand des Codes (code) des Datensatzes.

Struktur einer Preisregel

Eine Preisregel besteht aus folgenden Feldern:

FeldPflichtBeschreibung
nameVerständlicher Name der Regel
codeRegelcode (identifiziert die Dienstkategorie)
billing_categoryPreistyp: cost, retail, wholesale, reseller
price_list_idID der zu verwendenden Preisliste
valid_fromRegelgültigkeit ab (ISO-Datum)
valid_toRegelablauf (NULL = unbegrenzt)
customer_idID eines bestimmten Kunden (NULL = gilt für alle)
group_idID einer Kundengruppe
priorityGanzzahl, Standard 0 — höhere Zahl = höhere Priorität
scopeself (Standard), children, subtree
is_activeBoolean, Standard true

Beispiel — Regel über die API erstellen:

POST /api/v1/pricing-rules
Content-Type: application/json

{
  "name": "VIP-Kunden — Einzelhandelspreise 2026",
  "code": "VIP-RETAIL-2026",
  "billing_category": "retail",
  "price_list_id": "uuid-vip-preisliste",
  "group_id": "uuid-vip-gruppe",
  "priority": 100,
  "valid_from": "2026-01-01",
  "valid_to": null
}

Wie wählt die Engine Regeln aus?

Bei der Bewertung jedes Datensatzes (DR) durchläuft die Engine folgende Schritte:

1. Kundengruppen laden Ermittelt, zu welchen Gruppen der Kunde gehört.

2. Alle aktiven Regeln des Partners laden Filtert nur Regeln mit is_active = true.

3. Anwendbare Regeln filtern Eine Regel gilt als anwendbar, wenn eine der folgenden Bedingungen erfüllt ist:

Und der DR muss im Gültigkeitsfenster der Regel liegen:

4. Nach Priorität absteigend sortieren Die Regel mit der höchsten Prioritätszahl wird zuerst verarbeitet.

5. Für jede anwendbare Regel Preislistenposition suchen Sucht nach einer Position mit demselben code wie der Datensatz (dr.code → price_list_item.code). Wenn gefunden, wird der Preis berechnet und ein bewerteter Eintrag erstellt. Wenn nicht, wird zur nächsten Regel übergegangen.

Mehrfachbewertung eines Datensatzes

Wichtige Eigenschaft: die Engine stoppt nicht nach der ersten übereinstimmenden Regel. Sie verarbeitet alle anwendbaren Regeln, und für jede, bei der eine passende Preislistenposition gefunden wird, erstellt sie einen separaten bewerteten Eintrag.

Das ermöglicht, dass ein DR gleichzeitig erhält:

Beide Einträge entstehen aus demselben DR, jeder mit einer anderen Regel und einer anderen Preisliste.

Billing Category

Das Feld billing_category definiert den Typ der Preisebene. Unterstützte Werte:

WertVerwendung
costKostenpreis — was der Betreiber dem Lieferanten zahlt
retailEinzelhandelspreis — was der Kunde dem Betreiber zahlt
wholesaleGroßhandelspreis — für B2B-Verkauf
resellerHändlerpreis — für Vertriebspartner

Eine typische Konfiguration für einen Telekommunikationsbetreiber hat zwei Regeln pro Datensatztyp: eine cost (mit Kostenpreisliste) und eine retail (mit Kundenpreisliste). Das ergibt einen vollständigen Margenbericht.

Priorität

Priorität ist eine Ganzzahl — höhere Zahl bedeutet höhere Priorität, Regeln werden absteigend ausgewertet. Standard ist 0.

Beispiel-Prioritätshierarchie:

PrioritätKunde / GruppeBilling categoryPreisliste
200bestimmter KunderetailIndividualliste
100VIP-GrupperetailVIP-Liste
10(Standard)retailStandardliste
5(Standard)costKostenliste

Gültigkeitsfenster der Regel

Im Gegensatz zu Preislistenversionen hat eine Preisregel ihr eigenes Zeitfenster: valid_from und valid_to. Das ermöglicht:

Regel deaktivieren

Um eine Regel vorübergehend zu deaktivieren ohne sie zu löschen:

PUT /api/v1/pricing-rules/{id}
Content-Type: application/json

{ "is_active": false }

Standardregel (Fallback)

Eine Regel ohne customer_id und group_id gilt für alle Kunden des Partners:

{
  "name": "Standard-Retail — alle Kunden",
  "code": "DEFAULT-RETAIL",
  "billing_category": "retail",
  "price_list_id": "uuid-standardliste",
  "customer_id": null,
  "group_id": null,
  "priority": 0,
  "valid_from": "2026-01-01"
}

Best Practices

Immer eine Standardregel. Ein Kunde ohne passende Regel erzeugt eine leere Bewertung — das erscheint als Fehler im Reporting.

Prioritäten systematisch setzen. Konvention empfohlen: z.B. 1–9 Standard, 10–99 Gruppe, 100+ individueller Kunde.

valid_to statt löschen. Eine Regel mit vergangenem valid_to ist historisch nachvollziehbar. Eine gelöschte Regel fehlt in der Geschichte.

Regeln verständlich benennen. "VIP-Gruppe — Retail Q1 2026" ist in einem Jahr noch verständlich.

Kombinationen testen. Prüfen Sie, dass jeder DR genau eine retail-Bewertung erhält.

Fazit

Preisregeln sind ein flexibles Werkzeug zur Zuweisung von Preislisten an Kunden und Gruppen, mit Unterstützung für mehrere Preiskategorien, Zeitgültigkeit und Priorität. Im Gegensatz zu Systemen mit dynamischen Bedingungen arbeiten sie nach dem direkten Zuordnungsprinzip — Kunde/Gruppe → Preisliste — klar und ohne Nebeneffekte. Kapitel 3 behandelt Kundengruppen als Grundlage der Segmentierung.

← Zurück zu den Artikeln Zurück zur Startseite