Aktuelle Beiträge Zum Blog

Ein Kabel wird im Katalog in Metern geführt, kommt in Ringen zu 50 Metern aus dem Lager und wird vom Einkauf nach Stück abgerufen. Bestellt jemand 120 Meter, muss der Shop entscheiden, ob daraus zwei Ringe, drei Ringe oder eine Fehlermeldung werden. Diese Entscheidung fällt an drei Stellen gleichzeitig - im Artikelstamm, im Warenkorb und bei der Übergabe an die Warenwirtschaft - und sie fällt in vielen Projekten an jeder Stelle anders aus. Dieser Beitrag trennt Mengeneinheit, Verpackungseinheit, Mindestbestellmenge und Staffelung, zeigt die Felder, die ein B2B-Shop dafür vorsieht, und ordnet ein, wann neben dem Gesamtpreis auch ein Grundpreis anzugeben ist.

Vier Mengenbegriffe, die nicht dasselbe meinen

In der Alltagssprache eines Betriebs heißt alles Menge. Im Artikelstamm sind es mindestens vier verschiedene Angaben, und sie beantworten vier verschiedene Fragen. Die Inhaltseinheit sagt, worin der Artikel gemessen wird - Meter, Kilogramm, Stück. Die Bestelleinheit sagt, worin bestellt werden kann - Ring, Karton, Palette. Die Verpackungsmenge sagt, wie viele Inhaltseinheiten in einer Bestelleinheit stecken. Und die Mindestbestellmenge sagt, ab wie vielen Bestelleinheiten eine Bestellung überhaupt zustande kommt. Wer zwei dieser vier Angaben in dasselbe Feld schreibt, bekommt einen Shop, der rechnerisch schlüssig wirkt und im Lager nicht aufgeht.

Das Katalogformat BMEcat, mit dem Hersteller und Händler Produktdaten austauschen, hält diese Trennung durch. Es führt die Bestelleinheit im Element ORDER_UNIT, die Einheit des Artikels in CONTENT_UNIT und das Verhältnis zwischen beiden in NO_CU_PER_OU. Die Beschreibung im Standard nennt außerdem den Punkt, an dem die meisten Umrechnungsfehler entstehen: Der Preis hängt an der Bestelleinheit, nicht an der Inhaltseinheit. Wer Kataloge einliest oder ausgibt, findet die Feldnamen und ihre Bedeutung im Beitrag zu BMEcat und ETIM wieder.

Wird dieses Element nicht angegeben, so bezieht sich der Preis auf die im Element ORDER_UNIT enthaltene Bestelleinheit.

BMEcat 2005.2, Element PRICE_QUANTITY

Aus diesem einen Satz folgt die halbe Preislogik eines B2B-Shops. Steht am Artikel ein Preis von 89 Euro und ist die Bestelleinheit der Ring, dann kostet der Ring 89 Euro und nicht der Meter. Soll sich der Preis auf eine andere Menge beziehen - etwa auf 100 Meter statt auf einen Ring -, gibt es dafür ein eigenes Feld, die Preisbezugsmenge. Sie einfach im Preis zu verrechnen, funktioniert bis zur ersten Staffel; danach rechnet jede Auswertung daneben. Wie Staffeln und kundenindividuelle Konditionen sauber aus der Warenwirtschaft kommen, steht im Beitrag zu Kundenpreisen aus dem ERP.

Vier Fragen an jeden Artikel

Bevor ein Artikel in den Shop geht, sollten vier Antworten feststehen: Worin wird der Artikel gemessen? Worin wird er bestellt? Wie viele Messeinheiten stecken in einer Bestelleinheit? Und ab welcher Zahl von Bestelleinheiten nimmt der Shop die Bestellung an? Erst wenn diese vier Antworten getrennt in vier Feldern stehen, lässt sich die fünfte Frage beantworten - worauf sich der Preis bezieht. Ein Artikel, bei dem eine der vier Antworten fehlt, erzeugt erfahrungsgemäß später eine Korrekturbuchung im Lager.

Wo die Umrechnung im Artikelstamm sitzt

Die Umrechnung gehört an genau eine Stelle: in den Artikelstamm. Jede zweite Stelle - ein Plugin im Warenkorb, ein Skript im Export, eine Regel in der Preisliste - ist eine zweite Wahrheit, die irgendwann von der ersten abweicht. Praktisch heißt das: Der Artikel trägt Bestelleinheit, Inhaltseinheit, Verpackungsmenge, Mindestmenge und Staffelung als eigene Felder, und alle nachgelagerten Systeme lesen sie, statt sie neu zu berechnen.

Wo diese Felder gepflegt werden, ist eine Frage der Systemlandschaft. Führt ein PIM-System die Produktdaten, gehören sie dorthin und wandern von dort in den Shop. Kommt die Wahrheit aus der Warenwirtschaft, führt der Weg über die Artikelschnittstelle. Entscheidend ist weniger, welches System gewinnt, als dass die Entscheidung einmal getroffen und aufgeschrieben wird. Was bei der Einführung eines solchen Systems zu klären ist, behandelt der Beitrag zur PIM-Einführung.

  • Inhaltseinheit - worin der Artikel gemessen wird. Im Katalogformat CONTENT_UNIT, dort beschrieben als Einheit des Produktes innerhalb einer Bestelleinheit.
  • Bestelleinheit - worin bestellt wird. Im Katalogformat ORDER_UNIT, beschrieben als Einheit, in der bestellt werden kann, und zugleich die Bezugsgröße des Preises.
  • Verpackungsmenge - wie viele Inhaltseinheiten eine Bestelleinheit enthält. Im Katalogformat NO_CU_PER_OU, beschrieben als Anzahl der Inhaltseinheiten pro Bestelleinheit des Artikels.
  • Preisbezugsmenge - auf welches Vielfache oder welchen Bruchteil der Bestelleinheit der Preis lautet. Im Katalogformat PRICE_QUANTITY.
  • Mindestbestellmenge - ab wie vielen Bestelleinheiten eine Bestellung angenommen wird. Im Katalogformat QUANTITY_MIN.
  • Staffelung - in welchen Schritten darüber hinaus bestellt werden kann. Im Katalogformat QUANTITY_INTERVAL.

Ein siebtes Feld lohnt sich, sobald sich die Verpackung mit der Menge ändert. Das Katalogformat sieht dafür einen eigenen Bereich vor, der die Abhängigkeit der Verpackungseinheit von der Bestellmenge beschreibt. Das Beispiel im Standard ist Druckerpapier: Bestelleinheit ist der Pack, bei 5 Pack wird daraus ein Karton, bei 50 Pack eine Umverpackung, bei 500 Pack eine Palette. Für den Shop ist das zunächst eine Anzeigefrage, für Versand und Frachtkosten eine Kalkulationsfrage. Wie sich das auf sperrige und schwere Sendungen auswirkt, steht im Beitrag zum Speditionsversand.

Eine Wahrheit, ein Feld

Jede Mengenangabe hat genau ein führendes System und genau ein Feld. Sobald dieselbe Zahl an zwei Stellen gepflegt werden kann, ist die Frage nicht mehr, ob sie auseinanderläuft, sondern wann. Ein kurzer Abgleich - welches System führt welches Feld, und wer darf es ändern - kostet in der Regel einen Vormittag und erspart die spätere Suche nach der Stelle, an der aus 50 Metern 500 wurden.

Mindestmenge, Staffelung und Rundung auf das Gebinde

Mindestbestellmenge und Staffelung werden im Alltag oft in einen Topf geworfen, tun aber Verschiedenes. Die Mindestmenge ist der Einstiegspunkt: darunter kommt keine Bestellung zustande. Die Staffelung ist die Schrittweite darüber; sie sagt, welche Mengen zwischen dem Einstiegspunkt und der Höchstmenge zulässig sind. Der Standard beschreibt sie als Angabe der Staffelung, in der das Produkt bestellt werden kann, und hält ausdrücklich fest, dass die Zählung bei der Mindestbestellmenge beginnt.

Der Unterschied wird an den Beispielen des Standards greifbar: Staffelung 1 erlaubt 5, 6, 7 Kisten, Staffelung 2 erlaubt 4, 6, 8 Kisten. Beide Konfigurationen wirken im Formular ähnlich, führen aber zu völlig verschiedenen Fehlermeldungen, wenn jemand 7 eintippt. Wer Schnellerfassungsmasken anbietet, sollte die Regel dort ebenso durchsetzen wie im normalen Warenkorb - dazu passt der Beitrag zur Schnellbestellung für Stammkunden.

AngabeWas sie festlegtFeld im KatalogformatWirkung im Warenkorb
Inhaltseinheitworin der Artikel gemessen wirdCONTENT_UNITAnzeige der Gesamtmenge in Metern, Litern oder Stück
Bestelleinheitworin bestellt wird und worauf der Preis lautetORDER_UNITMengenfeld zählt Gebinde, nicht Messeinheiten
Verpackungsmengewie viele Inhaltseinheiten ein Gebinde enthältNO_CU_PER_OUUmrechnung zwischen beiden Anzeigen
Preisbezugsmengeauf welches Vielfache der Bestelleinheit der Preis lautetPRICE_QUANTITYGrundlage jeder Positionssumme
Mindestbestellmengeab welcher Menge eine Bestellung zustande kommtQUANTITY_MINUntergrenze im Mengenfeld
Staffelungin welchen Schritten darüber hinaus bestellt wirdQUANTITY_INTERVALSchrittweite des Mengenfelds

Die Rundung auf das nächste Gebinde ist keine dieser sechs Angaben, sondern eine Regel, die aus ihnen folgt. Sie greift, wenn ein Kunde in Inhaltseinheiten denkt und der Shop in Bestelleinheiten liefert. Fachlich gibt es dafür drei tragfähige Antworten: aufrunden, ablehnen, oder eine anteilige Abgabe anbieten. Was erfahrungsgemäß Ärger erzeugt, ist die stille Variante - den Wunsch annehmen, die Menge intern verändern und beides nicht anzeigen. Ähnlich gelagert ist die Frage bei zusammengesetzten Artikeln, die der Beitrag zu Produktbundles und Set-Artikeln behandelt.

Aufrunden ändert den Preis

Wer 120 Meter bestellt und drei Ringe zu je 50 Metern bekommt, zahlt 150 Meter. Die Aufrundung ist damit keine Darstellungsfrage, sondern eine Preisänderung, und sie gehört dort sichtbar gemacht, wo sie geschieht: im Mengenfeld selbst, nicht erst in der Bestellbestätigung. Bewährt hat sich ein Hinweis direkt unter dem Feld, der die gerundete Menge, die Zahl der Gebinde und die daraus folgende Positionssumme zusammen nennt. Auch die Versandkosten entstehen dann auf der gerundeten Menge - was das für die Kalkulation bedeutet, steht im Beitrag zu den Versandkostenmodellen.

Grundpreis: wann er fällig wird und wann nicht

Sobald ein Shop nach Gewicht, Volumen, Länge oder Fläche verkauft, steht die Frage nach dem Grundpreis im Raum. Die Preisangabenverordnung regelt die Angabe von Preisen für Waren oder Leistungen von Unternehmern gegenüber Verbrauchern (§ 1 Absatz 1 PAngV) - der Anwendungsbereich ist also an den Verbraucherbegriff geknüpft, und Verbraucher ist nach § 2 Nummer 9 PAngV jede natürliche Person im Sinne des § 13 des Bürgerlichen Gesetzbuchs. Ein Shop, der ausschließlich an gewerbliche Besteller liefert und das auch technisch durchsetzt, bewegt sich damit außerhalb dieses Anwendungsbereichs. Ein Shop mit gemischtem Publikum tut das nicht.

Fällt der Verkauf in den Anwendungsbereich, verlangt § 4 Absatz 1 PAngV neben dem Gesamtpreis auch den Grundpreis, und zwar unmissverständlich, klar erkennbar und gut lesbar. Der Grundpreis ist dabei nach § 2 Nummer 4 PAngV der Preis je Mengeneinheit einer Ware einschließlich der Umsatzsteuer und sonstiger Preisbestandteile. § 4 Absatz 3 PAngV nimmt bestimmte Waren von dieser Pflicht aus; für einen technischen Händler sind vor allem diese Fälle einschlägig:

  • Waren, die über ein Nenngewicht oder Nennvolumen von weniger als 10 Gramm oder 10 Milliliter verfügen (§ 4 Absatz 3 Nummer 1 PAngV).
  • Waren, die verschiedenartige Erzeugnisse enthalten, die nicht miteinander vermischt oder vermengt sind - der Fall des Sortimentskastens (§ 4 Absatz 3 Nummer 2 PAngV).
  • Waren, die im Rahmen einer Dienstleistung angeboten werden (§ 4 Absatz 3 Nummer 4 PAngV).
  • Waren, die in Getränke- und Verpflegungsautomaten angeboten werden (§ 4 Absatz 3 Nummer 5 PAngV).

Steht die Pflicht fest, legt § 5 PAngV die Bezugsgröße fest. Die Mengeneinheit für den Grundpreis ist jeweils 1 Kilogramm, 1 Liter, 1 Kubikmeter, 1 Meter oder 1 Quadratmeter der Ware. Für Waren, die üblicherweise in Mengen von 100 Liter und mehr, 50 Kilogramm und mehr oder 100 Meter und mehr abgegeben werden, ist stattdessen die Mengeneinheit zu verwenden, die der allgemeinen Verkehrsauffassung entspricht - im Kabelhandel also eher 100 Meter als 1 Meter. Für die Shopseite heißt das: Der Grundpreis wird aus Preis, Preisbezugsmenge und Verpackungsmenge gerechnet und nicht als eigenes Feld gepflegt. Wie sich das mit Rabattdarstellungen verträgt, behandelt der Beitrag zu Streichpreisen und der PAngV.

Einheiten codieren statt benennen

Ring, Rolle, Gebinde, VE - im Freitextfeld einer Artikeltabelle steht alles davon, und keine zwei Systeme verstehen dasselbe darunter. Für den maschinellen Austausch gibt es eine abgestimmte Liste: die Empfehlung 20 der UN/CEFACT für Maßeinheiten, ergänzt um die Verpackungscodes der Empfehlung 21, die mit einem vorangestellten X geführt werden. Die von Peppol veröffentlichte Fassung dieser Liste trägt die Bezeichnung Recommendation 20, including Recommendation 21 codes - prefixed with X (UN/ECE) und die Version Revision 11e. Dieselbe Liste steht hinter der elektronischen Rechnung, sodass Bestellung, Lieferschein und Rechnung dieselben Codes tragen können.

C62 - one

Der Code für die dimensionslose Zähleinheit. Die Liste führt ihn mit dem Zusatz Synonym: unit. In Katalogen steht er typischerweise dort, wo umgangssprachlich Stück gemeint ist.

H87 - piece

Der zweite Code für Stückzahlen, in der Liste beschrieben als a unit of count defining the number of pieces. Welcher der beiden verwendet wird, sollte je Katalog einmal festgelegt werden.

XPK - Package

Ein Verpackungscode aus der Empfehlung 21, in der Liste knapp beschrieben als standard packaging unit. Für konkrete Gebinde gibt es eigene Codes, etwa XRG für den Ring, XCT für den Karton und XPX für die Palette.

MTR, KGM, LTR

Meter, Kilogramm und Liter - Codes für genau die Mengeneinheiten, die § 5 Absatz 1 PAngV für den Grundpreis vorsieht. Wer sie im Artikelstamm führt, kann den Grundpreis rechnen statt ihn zu pflegen.

Der Gewinn liegt nicht in der Liste selbst, sondern in der Eindeutigkeit an den Schnittstellen. Ein Katalog, der XRG schreibt, sagt jedem Empfänger dasselbe; ein Katalog, der Ring schreibt, sagt jedem Empfänger etwas anderes. Für Bestellungen, die aus dem Beschaffungssystem des Kunden heraus ausgelöst werden, ist das keine Feinheit, sondern die Voraussetzung dafür, dass die Position beim Rücksprung überhaupt zugeordnet werden kann - siehe dazu den Beitrag zu Punchout-Katalogen.

Drei Stellen im Bestellweg, an denen umgerechnet wird

Die Umrechnung passiert nicht einmal, sondern dreimal: bei der Anzeige am Artikel, bei der Aufnahme in den Warenkorb und bei der Übergabe der Bestellung. An jeder dieser Stellen kann eine andere Zahl entstehen, wenn die Regel nicht aus derselben Quelle kommt. Die Reihenfolge ist dabei fest: Der Wunsch des Kunden kommt in Inhaltseinheiten oder Bestelleinheiten herein, wird auf die Bestelleinheit normalisiert, gegen Mindestmenge und Staffelung geprüft, gegebenenfalls aufgerundet, und erst danach wird gerechnet.

Die Zählung für diese Staffelung beginnt stets mit der angegebenen Mindestbestellmenge.

BMEcat 2005.2, Element QUANTITY_INTERVAL

Dieser Satz entscheidet über die Rundung nach oben. Ist die Mindestmenge 4 und die Staffelung 2, dann ist 5 keine zulässige Menge und 6 die nächste. Ein Warenkorb, der einfach auf das nächste Vielfache der Staffelung rundet, landet bei 6 - was hier zufällig stimmt. Ist die Mindestmenge 5 und die Staffelung 2, sind 5, 7 und 9 zulässig, und dieselbe naive Rundung liefert 6 und damit eine Menge, die die Warenwirtschaft zurückweist. Der Bestand dahinter wird ebenfalls in Bestelleinheiten geführt - zur Zählung und ihren Tücken passt der Beitrag zur Inventur zum Jahreswechsel.

Bei der Übergabe an die Warenwirtschaft gilt dieselbe Regel noch einmal, und zwar unabhängig davon, ob die Bestellung über den Warenkorb, über eine Schnellerfassung oder über eine Schnittstelle hereinkommt. Sinnvoll ist deshalb, die Prüfung als eine Funktion zu halten und sie von allen drei Wegen aufzurufen, statt sie in jedem Weg nachzubauen. Welche Systeme dabei zusammenspielen, zeigt die Übersicht zu den Schnittstellen.

Die Rundung als eine Funktion, die ihre Entscheidung mitgibt

Der Kern ist kurz und hat trotzdem ein paar Kanten. Die Funktion bekommt den Wunsch, die Verpackungsmenge, die Mindestmenge und die Staffelung, und sie gibt nicht nur eine Zahl zurück, sondern die Entscheidung: wie viele Gebinde, wie viele Inhaltseinheiten, und ob aufgerundet wurde. Nur mit dieser Zusatzangabe lässt sich der Hinweis im Formular erzeugen, ohne die Rechnung ein zweites Mal zu führen. Für Umsetzungen dieser Art im vorhandenen Shop steht die Programmierung bereit.

gebinde.php
<?php
// Wunsch in Inhaltseinheiten -> Bestellmenge in Bestelleinheiten.
// Mindestmenge und Staffelung zählen in Bestelleinheiten (ORDER_UNIT).

function gebindeMenge(
    float $wunschInhalt,
    float $inhaltJeGebinde,
    float $mindestGebinde,
    float $staffelGebinde
): array {
    if ($inhaltJeGebinde <= 0 || $staffelGebinde <= 0) {
        throw new InvalidArgumentException('Verpackungsmenge und Staffelung müssen positiv sein.');
    }

    $roh = $wunschInhalt / $inhaltJeGebinde;

    // Die Zählung beginnt bei der Mindestmenge, nicht bei null.
    $schritte = $roh <= $mindestGebinde
        ? 0
        : (int) ceil(($roh - $mindestGebinde) / $staffelGebinde - 1e-9);

    $gebinde = $mindestGebinde + $schritte * $staffelGebinde;
    $inhalt = $gebinde * $inhaltJeGebinde;

    return [
        'gebinde' => $gebinde,
        'inhalt' => $inhalt,
        'aufgerundet' => abs($inhalt - $wunschInhalt) > 1e-9,
    ];
}

// 120 m bei 50 m je Ring, Mindestmenge 1, Staffelung 1
// ergibt 3 Gebinde, 150 m Inhalt, aufgerundet

Der Toleranzwert im Vergleich ist kein Schönheitsfehler, sondern nötig: Wer Meter in Ringe teilt, arbeitet mit Gleitkommazahlen, und 120 geteilt durch 50 ergibt nicht in jedem Fall exakt 2,4. Ohne Toleranz rundet die Funktion bei einem Wunsch, der genau auf einer Staffelstufe liegt, gelegentlich eine Stufe zu weit. In Systemen, die mit Dezimalzahlen fester Genauigkeit rechnen, entfällt das - dann sollte die Menge auch dort und nicht als Fließkommazahl geführt werden.

Terminal
$ php gebinde.php --wunsch 120 --inhalt 50 --min 1 --staffel 1
gebinde=3 inhalt=150 aufgerundet=ja
$ php gebinde.php --wunsch 100 --inhalt 50 --min 1 --staffel 1
gebinde=2 inhalt=100 aufgerundet=nein
$ xmllint --xpath '//PRODUCT_ORDER_DETAILS' katalog.xml
<PRODUCT_ORDER_DETAILS> <ORDER_UNIT>XRG</ORDER_UNIT> <CONTENT_UNIT>MTR</CONTENT_UNIT> <NO_CU_PER_OU>50</NO_CU_PER_OU> <PRICE_QUANTITY>1</PRICE_QUANTITY> <QUANTITY_MIN>1</QUANTITY_MIN> <QUANTITY_INTERVAL>1</QUANTITY_INTERVAL> </PRODUCT_ORDER_DETAILS>

Zwei Prüfungen decken die häufigsten Fehler ab. Die erste vergleicht für jeden Artikel die Einheiten gegeneinander: Eine Bestelleinheit, die mit der Inhaltseinheit übereinstimmt, aber eine Verpackungsmenge größer als eins trägt, ist in aller Regel ein Pflegefehler. Die zweite prüft den Katalogexport gegen die Codeliste: Jeder Wert in ORDER_UNIT und CONTENT_UNIT muss dort vorkommen, sonst weist der Empfänger den Katalog zurück oder liest ihn falsch.

  • Bestelleinheit, Inhaltseinheit und Verpackungsmenge stehen in drei getrennten Feldern.
  • Die Preisbezugsmenge ist gesetzt, wo der Preis nicht auf einer Bestelleinheit lautet.
  • Mindestmenge und Staffelung zählen in Bestelleinheiten, nicht in Inhaltseinheiten.
  • Die Rundung ist im Mengenfeld sichtbar, bevor die Position im Warenkorb landet.
  • Alle Einheitencodes stammen aus der abgestimmten Liste, nicht aus dem Freitext.
  • Der Grundpreis wird gerechnet und nicht als eigenes Feld gepflegt.
  • Schnellerfassung und Schnittstelle rufen dieselbe Prüfung auf wie der Warenkorb.

Übergabe an Warenwirtschaft und Katalogformate

Am Ende verlässt die Bestellung den Shop, und spätestens dort zeigt sich, ob die Trennung durchgehalten wurde. Übergeben wird die Menge in Bestelleinheiten, zusammen mit dem Code der Bestelleinheit; die Inhaltsmenge ist daraus ableitbar und nicht das führende Feld. Umgekehrt kommt der Katalog des Lieferanten mit denselben Feldern herein. Ein Katalogexport, der eine der beiden Einheiten weglässt, zwingt den Empfänger zum Raten - und das Raten fällt in Warenwirtschaften unterschiedlich aus.

  1. Menge in Bestelleinheiten, ganzzahlig oder mit der im Artikel hinterlegten Genauigkeit.
  2. Code der Bestelleinheit aus der abgestimmten Liste, nicht der Anzeigename.
  3. Verpackungsmenge, damit der Empfänger die Inhaltsmenge nachrechnen kann.
  4. Preisbezugsmenge und Positionspreis, damit die Summe ohne Rückfrage prüfbar ist.
  5. Die Angabe, ob aufgerundet wurde, als eigenes Feld statt als Kommentar im Freitext.

Womit man anfängt

Der erste Schritt ist keine Entwicklung, sondern eine Zählung: Wie viele Artikel haben überhaupt eine Bestelleinheit, die von der Inhaltseinheit abweicht? In vielen Sortimenten ist es ein kleiner Teil, und dieser Teil trägt die meisten Rückfragen. Für diese Artikel werden die genannten Felder befüllt, danach die Rundungsregel eingebaut, und erst dann die Anzeige verfeinert. Wer die Reihenfolge umdreht, baut eine hübsche Anzeige über Daten, die sie nicht tragen.

Der zweite Schritt ist die Codeliste. Sie einmal als Auswahlliste in den Artikelstamm zu legen, kostet wenig und beendet die Freitextvarianten dauerhaft. Der dritte Schritt ist die Prüfung des Katalogexports gegen dieselbe Liste, damit ein Pflegefehler auffällt, bevor er beim Kunden ankommt. Danach ist die Mengenlogik eine Datenfrage und keine Programmierfrage mehr - und genau das ist der Zustand, in dem ein Sortiment wachsen kann, ohne dass jede neue Artikelgruppe eine eigene Sonderregel braucht.

Quellen und Rechtsgrundlagen

Dieser Beitrag stützt sich auf die Preisangabenverordnung vom 12. November 2021 in der auf Gesetze im Internet veröffentlichten Fassung, insbesondere auf § 1 Absatz 1, § 2 Nummern 4 und 9, § 4 Absätze 1 und 3 sowie § 5 Absatz 1. Die Feldbeschreibungen zu Bestelleinheit, Inhaltseinheit, Verpackungsmenge, Preisbezugsmenge, Mindestmenge und Staffelung stammen aus der Spezifikation BMEcat 2005.2 des BME e.V., Element PRODUCT_ORDER_DETAILS. Die Einheiten- und Verpackungscodes stammen aus der Empfehlung 20 der UN/CEFACT einschließlich der mit einem X vorangestellten Codes der Empfehlung 21; herangezogen wurde die von Peppol im Rahmen von Peppol BIS Billing 3.0 veröffentlichte Fassung der Codeliste in der Version Revision 11e. Die genannten Feldnamen und Codes beziehen sich auf diese Fassungen; ältere und neuere Stände können abweichen. Der Beitrag ersetzt keine Rechtsberatung im Einzelfall.

Die Mengeneinheit - im Katalogformat die Inhaltseinheit - sagt, worin der Artikel gemessen wird: Meter, Kilogramm, Stück. Die Verpackungs- oder Bestelleinheit sagt, worin er das Lager verlässt: Ring, Karton, Palette. Beide gehören in getrennte Felder, weil ein drittes Feld das Verhältnis zwischen ihnen trägt, die Verpackungsmenge. Der Preis bezieht sich dabei in der Regel auf die Bestelleinheit; im Katalogformat BMEcat ist das ausdrücklich so beschrieben.

Die Preisangabenverordnung regelt die Angabe von Preisen von Unternehmern gegenüber Verbrauchern (§ 1 Absatz 1 PAngV), und Verbraucher ist nach § 2 Nummer 9 PAngV jede natürliche Person im Sinne des § 13 des Bürgerlichen Gesetzbuchs. Ein Shop, der nur an gewerbliche Besteller liefert und den Zugang entsprechend beschränkt, bewegt sich außerhalb dieses Anwendungsbereichs. Sobald auch Verbraucher bestellen können, greift § 4 Absatz 1 PAngV. Weil die Abgrenzung vom Einzelfall abhängt, ist eine rechtliche Prüfung des eigenen Auftritts sinnvoll; dieser Beitrag ersetzt sie nicht.

Nach § 5 Absatz 1 PAngV ist die Mengeneinheit für den Grundpreis 1 Kilogramm, 1 Liter, 1 Kubikmeter, 1 Meter oder 1 Quadratmeter der Ware. Bei Waren, die üblicherweise in Mengen von 100 Meter und mehr abgegeben werden, tritt an diese Stelle die Mengeneinheit, die der allgemeinen Verkehrsauffassung entspricht. Bei Kabeln und Schläuchen ist das typischerweise eine Angabe je 100 Meter. Gerechnet wird der Wert aus Preis, Preisbezugsmenge und Verpackungsmenge, statt ihn als eigenes Feld zu pflegen.

Technisch ja, kommunikativ nur sichtbar. Die Aufrundung ändert die Menge und damit den Preis, deshalb gehört sie an die Stelle, an der der Besteller sie noch korrigieren kann: in das Mengenfeld selbst, nicht in die Bestellbestätigung. Bewährt hat sich ein Hinweis, der die gerundete Menge, die Zahl der Gebinde und die Positionssumme zusammen nennt. Wer lieber ablehnt statt aufrundet, sollte in der Meldung die nächste zulässige Menge nennen, sonst probiert der Besteller sie durch.

Werte aus der Empfehlung 20 der UN/CEFACT, ergänzt um die mit X vorangestellten Verpackungscodes der Empfehlung 21. Gängig sind MTR für Meter, KGM für Kilogramm, LTR für Liter, C62 oder H87 für Stückzahlen sowie XCT für Karton, XRG für Ring und XPX für Palette. Wichtiger als die Auswahl im Einzelfall ist die Festlegung je Katalog: Zwei Codes für dieselbe Sache im selben Bestand kosten den Empfänger genauso viel Arbeit wie Freitext.

Die Mindestmenge ist der Einstiegspunkt, die Staffelung die Schrittweite darüber. Die Spezifikation BMEcat hält fest, dass die Zählung der Staffelung bei der angegebenen Mindestbestellmenge beginnt. Bei Mindestmenge 5 und Staffelung 2 sind also 5, 7 und 9 zulässig, nicht 6 und 8. Beide Werte zählen in Bestelleinheiten. Für eine Einschätzung des eigenen Artikelstamms genügt zunächst ein Gespräch, siehe Kontakt.