Preise & Einheiten

Überblick
Vier Module greifen bei der Preisfindung ineinander. Sie zu unterscheiden erspart die häufigste Frage überhaupt — warum steht da dieser Preis?
| Fläche | Was sie festlegt |
|---|---|
| Staffelpreise | mengenabhängige Preise je Artikel — global, je Preisliste oder je Kundengruppe |
| Individualpreise | kundenindividuelle Preislisten mit Konditionen je Artikel oder Kategorie |
| Kundengruppen | Gruppen mit Rabatten, Preisregeln, Preisdarstellung und Sichtbarkeit |
| Verpackungseinheiten | Mengeneinheiten, Gebinde je Artikel und freie Umrechnungen |
Kernaufgaben
Staffelpreise pflegen. Staffel-Sets legen fest, ab welcher Menge welcher Preis gilt. Der Geltungsbereich entscheidet über die Reichweite: global für alle, je Preisliste oder je Kundengruppe.
Individualpreise vergeben. Kundenindividuelle Preislisten mit Konditionen je Artikel oder je Kategorie. Die Kategorie-Kondition ist der wirksamere Hebel — sie gilt auch für Artikel, die es heute noch nicht gibt.
Kundengruppen einrichten. Eine Gruppe fasst Mitglieder zusammen und trägt Preisregeln, die Preisdarstellung und die Sichtbarkeit. Sie ist das Mittel gegen hundert Einzelvereinbarungen.
Einheiten und Gebinde pflegen. Mengeneinheiten mit Dimension, Basisfaktor und Nachkommastellen; Gebinde je Artikel; freie Umrechnungen global oder artikelbezogen — artikelbezogen auch dimensionsübergreifend, etwa „1 Stück = 250 g". Genau diese Umrechnung braucht jeder, der Stückware wiegt oder Gewichtsware stückweise verkauft.
Felder im Detail
Die Reihenfolge der Preisfindung entscheidet, welcher Preis am Ende auf dem Beleg steht: Ein Kundenpreis schlägt eine Staffel, eine Staffel schlägt den Katalogpreis. Eine Aktion kommt zusätzlich obendrauf.
Staffelpreise
| Feld | Pflicht | Werte / Format | Was es bewirkt |
|---|---|---|---|
Artikel productId | ja | bestehender Artikel | Für welchen Artikel die Staffel gilt. |
Geltung scope | nein | allgemein, Preisliste, Kundengruppe | Für wen. Allgemein gilt für alle, die anderen beiden für eine bestimmte Liste bzw. Gruppe. |
Bezug refId | bei Liste/Gruppe | die jeweilige Liste bzw. Gruppe | Welche Liste oder Gruppe gemeint ist. |
Mengenbezug qtyBasis | nein | je Position oder ganzer Beleg | Woran die Menge gemessen wird. Ganzer Beleg rechnet gleiche Artikel über mehrere Zeilen zusammen — der Unterschied, der bei zwei Positionen desselben Artikels über die Staffel entscheidet. |
Stufen tiers | ja | Menge und Preis je Stufe | Die Staffel selbst: ab welcher Menge welcher Preis gilt. |
Rang priority | nein | Zahl | Was gewinnt, wenn zwei Staffeln passen. |
Gültig von / bis validFrom, validTo | nein | Datum | Zeitliche Begrenzung. Leer heißt: unbefristet. |
Marke brandId | nein | eine Ihrer Marken | Für welche Marke die Staffel gilt. |
Aktiv active | nein | Ja/Nein | Ob die Staffel greift. |
Kundenpreisliste
| Feld | Pflicht | Werte / Format | Was es bewirkt |
|---|---|---|---|
Kunde customerUlid | ja | bestehender Kunde | Wessen Preise. |
Name name | nein | Text, max. 100 Zeichen | Wie die Liste heißt, etwa „Rahmenvertrag 2026". |
Preise prices | ja | Artikel mit Preis | Die vereinbarten Preise. Sie schlagen alles andere — deshalb gehört hier hinein, was vertraglich zugesagt ist, und nichts sonst. |
Gültig von / bis validFrom, validTo | nein | Datum | Laufzeit der Vereinbarung. Nach dem Ablauf greift wieder die normale Preisfindung, ohne dass jemand die Liste löschen muss. |
Bemerkung note | nein | Text | Worauf die Preise beruhen. |
Marke brandId | nein | eine Ihrer Marken | Für welche Marke. |
Aktiv active | nein | Ja/Nein | Ob die Liste greift. |
Kundengruppe
| Feld | Pflicht | Werte / Format | Was es bewirkt |
|---|---|---|---|
Name name | ja | Text, max. 100 Zeichen | Wie die Gruppe heißt, etwa „Wiederverkäufer". |
Schlüssel key | nein | Text, max. 50 Zeichen | Die technische Kennung für Import und Automation. Nicht mehr ändern, sobald Kunden zugeordnet sind. |
Standard-Rabatt (%) defaultDiscountPct | nein | Prozentsatz | Nachlass, den jedes Mitglied ohne weitere Regel bekommt. Er wirkt vor Staffeln und Aktionen. |
Preisliste priceListId | nein | bestehende Preisliste | Welche Preise für die Gruppe gelten. Über die Gruppe greifen Staffeln und Preise für alle gemeinsam — der Weg, Konditionen zu pflegen, ohne sie je Kunde zu wiederholen. |
Preisanzeige taxDisplay | nein | Netto, Brutto, steuerfrei | Ob Mitgliedern Netto- oder Bruttopreise gezeigt werden. Bei Wiederverkäufern netto, bei Endkunden brutto — die Voreinstellung für jeden Beleg dieser Gruppe. |
Automatische Zuordnung autoAssignRule | nein | Bedingungen | Wer von selbst in die Gruppe kommt, etwa ab einem Jahresumsatz. Ohne Regel wird von Hand zugeordnet. |
Aktiv active | nein | Ja/Nein | Ob die Gruppe wirkt. |
Einstellungen & Rechte
- Vier Module, vier Flags:
module.price_tiers,module.customer_prices,
module.customer_groups, module.packaging.
- Rechte je Fläche:
pricetiers.tier.view/manage,customerprices.price.view/manage,
customergroups.group.view/manage, packaging.units.view/manage.
- Gerechnet wird im Kern. Die Reihenfolge, in der Staffel, Individualpreis und Gruppenrabatt
greifen, bestimmt der Commerce-Kernel — nicht das einzelne Modul.
- Die UVP ist nie Teil der Preisfindung, siehe Produkte.
FAQ & Fehlerbilder
Der Preis auf dem Angebot ist nicht der erwartete. Gehen Sie die Kette durch: Individualpreis des Kunden, dann Kundengruppe, dann Staffel, dann Listenpreis. Der speziellere Eintrag gewinnt.
Eine Staffel wirkt nicht. Prüfen Sie den Geltungsbereich — ein Set je Kundengruppe wirkt nur für deren Mitglieder.
Eine Umrechnung wird abgewiesen. Dimensionsübergreifende Umrechnungen sind nur artikelbezogen möglich, nicht global. Ein globales „Stück = Gramm" hätte keine allgemeingültige Bedeutung.
Neue Artikel bekommen den Kundenrabatt nicht. Dann ist die Kondition je Artikel statt je Kategorie gepflegt.