Beschreibung von Gegenständen
Der Elementtyp cac:ItemType wird verwendet um Gegenstände zu beschreiben. Dazu werden folgende Elemente verwendet:
Name | Typ/Vorkommen | Beschreibung |
---|---|---|
cbc:Description | cbc:TextType? | Text, der den Artikel beschreibt |
cbc:PackQuantity | cbc:QuantityType? | Verpackungseinheit |
cbc:PackSizeNumeric | udt:NumericType? | Anzahl in Verpackungseinheit |
cac:BuyersItemIdentification | cbc:IdentifierType? | Artikelkennzeichnung des Käufers |
cac:SellersItemIdentification | cbc:IdentifierType? | Artikelkennzeichnung des Verkäufers |
cac:StandardItemIdentification | cbc:IdentifierType? | Artikelkennzeichnung nach Standards, bevorzugt EAN. |
cac:ManufacturersItemIdentification | cbc:IdentifierType? | Artikelnummer des Herstellers. |
cac:TaxCategory | cac:TaxCategoryType? | optionale Kennzeichnung von Umsatzsteuersätzen |
cac:BasePrice | cac:BasePriceType* | Basispreis(netto), mehrere Angaben möglich zur Darstellung von Staffelpreisen |
cac:RecommendedRetailPrice | cac:BasePriceType? | empfohlener Verkaufpreis(brutto) |
vcc:ItemInformation | vcc:ItemInformation? | Weitergehende Informationen zum Artikel, wie z.B. Bilder, Explosionszeichnungen, Warengruppen etc. |
Regel ItemType
Für veloconnect-konforme Implementierungen gelten folgende Regeln:
Das Element cbc:Description ist mit einem Text zu füllen, der es einem sachkundigen Leser erlaubt, den Gegenstand zu erkennen, der beschrieben wird.
Das Element cac:SellersItemIdentification enthält die Kennzeichnung des Gegenstands durch den Verkäufer und darf nicht leer sein, es sei denn es handelt sich um ein Item innerhalb einer Position im Modul receipt (Belegverwaltung).
Das Element cac:BuyersItemIdentification kann die interne Kennzeichnung des Gegenstands durch den Verkäufer enthalten.
Falls für den Gegenstand ein EAN-Code bekannt ist, ist dieser durch das Element cac:StandardItemIdentfication mitzuteilen. Das hat unabhängig davon zu geschehen, ob eine der beiden anderen Gegenstandskennzeichnungen schon ein EAN-Code ist.
Sollte kein EAN-Code bekannt sein, aber die Artikelnummer des Herstellers, ist diese durch das Element cac:ManufacturersItemIdentfication mitzuteilen. Der Hersteller ist über das Kind-Element cac:IssuerParty dieses Elements anzugeben. Entweder über eine ID im Kind-Element PartyIdentification, bei der die Identifzierung des Herstellers über eine öffentliche Datenbank möglich ist (z.B. ILN/GLN), oder über den Namen im Kind-Element PartyName.
Falls Mengenangaben für den Gegenstand in der Einheit Paket verwendet werden, ist entweder im Element PackQuantity anzugeben, welche Menge einem Paket in einer anderen Einheit enspricht oder im Element PackSizeNumeric anzugeben aus wieviel Stück ein Paket besteht. Von diesen beiden Elementen darf höchstens eines verwendet werden. Insbesondere ist die Verwendung von
<PackSizeNumeric>x</PackSizeNumeric>
äquivalent zur Verwendung von
<PackQuantity quantityUnitCode="EA">x</PackQuantity>.
(Hierbei steht x für eine beliebige Zahl).
Es ist mindestens ein cac:BasePrice-Element vorhanden.
Die in den cac:BasePrice-Elementen angegebenen Preise sind immer Nettopreise und haben alle die gleiche Mengeneinheit.
Falls die Einheit der cac:BasePrice-Elemente die Einheit Paket ist, so muss die Umrechnung in eine andere diskrete Einheit oder in eine physikalische Einheit im Element cbc:PackQuantity oder cbc:PackSizeNumeric angegeben werden.
Die durch die cac:BasePrice-Elemente definierte Preisfunktion ist für alle Mengenangaben mit positiven Werten definiert, deren Einheit mit der Einheit der cac:BasePrice-Elemente vergleichbar ist.
Der in RecommendedRetailPrice angegebene Preis ist ein Bruttopreis, es sei denn der Server teilt in seinem veloconnect Profil vermöge der Eigenschaft
RecommendedRetailPrice.Netto
mit, dass er hierfür Nettopreise verwendet. Ferner wird eine Mengeneinheit verwendet, die vergleichbar ist zur Einheit der BasePrice-Elemente.Das optionale Element ItemInformation ist gemäß Regel: ItemInformation zu verwenden.
Sofern unterschiedliche Umsatzsteuersätze Anwendung finden, kann der für den Gegenstand geltende Steuersatz mittels des optionalen Elements TaxCategory mitgeteilt werden. Hierbei wird als ID für den vollen Steuersatz FULL und für den ermässigten Steuersatz REDUCED verwendet. Als ID des TaxScheme-Elements wird VAT verwendet. Bei komplexeren Steuersätzen kann zur Eindeutigkeit der Steuersatz mittels des Percent-Elements mitgeteilt werden.
Aus den bisherigen Forderungen ergibt sich, dass für einen Gegenstand stets mindestens eine Einheit explizit angegeben wird. Falls die Einheit Paket darunter ist, so ist auch die Umrechnung in eine andere diskrete Einheit oder eine physikalische Maßeinheit gegeben.
Welche Einheiten ein Verkäufer für seine Artikel verwendet, ist letztlich dessen Entscheidung und hängt auch davon ab, ob sein Warenwirtschaftssystem in der Lage ist, mit Einheiten umzugehen. Es ist also durchaus möglich, dass jeder Artikel als Stück betrachtet wird, obwohl eine andere Einheit angemessener wäre. Warenwirtschaftssysteme der Einzelhändler sind im allgemeinen in der Lage, mit dieser Situation umzugehen: der Benutzer muss letztlich pro Artikel einen Umrechnungsfaktor angeben, um die für den Verkauf verwendeten Einheiten mit den Einheiten für die Bestellung zu harmonisieren. Das ist natürlich eine Quelle von Fehlern und Mißverständnissen.
Es ist davon auszugehen, dass für die beteiligten sachkundigen Personen bei jedem Gegenstand klar ist, welches die korrekte Einheit ist. Die Beschreibung von Gegenständen durch Elemente vom Typ cac:ItemType ermöglicht es, diese Informationen explizit in einer Weise mitzuteilen, dass die maschinelle Umrechung von Einheiten ermöglicht wird. Dass diese Information nicht zur Verfügung gestellt wird, kann letztlich nur daran liegen, dass diese Informationen im Warenwirtschaftssystem nicht zur Verfügung stehen.
Regel: Benutzung von Einheiten.
Ein veloconnect konformer Server muss genau eine der folgenden Forderungen erfüllen:
Für alle Gegenstände werden die korrrekten Einheiten benützt, wobei es erlaubt ist, auf die Differenzierung in Stück, Paar und Set zu verzichten und als diskrete Einheiten nur die Einheiten Stück und Paket zu verwenden. Welche Einheit korrekt ist, ist nach den Katalogen und Unterlagen zu entscheiden, die den Kunden üblicherweise zur Verfügung stehen Falls ein Artikel nur in bestimmten Vielfachen der Basiseinheit zu bestellen ist, muss die Einheit Paket definiert werden, sonst ist auf die Einheit Paket zu verzichten.
Es wird für alle Artikel die Einheit Stück verwendet, und der Server teilt diese Einschränkung in seinem veloconnect Profil über die Eigenschaft
quantityUnitCode.EA
mit.
Übermittelt der Client eine Mengenangabe für einen Gegenstand, die eine Einheit verwendet, die nicht mit den in der Beschreibung des Gegenstands verwendeten Einheiten vergleichbar ist, ersetzt der Server diese Einheit wie folgt: Wird das Element PackQuantity verwendet, durch die dort verwendete Einheit, ansonsten durch die in den BasePrice-Elementen verwendetete Einheit. Der Client hat die Antwort des Servers unter diesem Aspekt auszuwerten und gegebenenfalls den Benutzer auf die Diskrepanz in den verwendeten Einheiten aufmerksam zu machen.
Hier noch zwei beliebte Beispiele aus der Fahrradbranche, um zu illustrieren, welchen Vorteil der korrekte Umgang mit Einheiten hat:
Der Hersteller verpackt Speichen in Kartons zu je 72 Stück und verkauft diese in diesen Einheiten. Der Einzelhändler kauft Speichen in diesen Einheiten ein und verkauft sie stückweise an den Endkunden. Der Großhändler verwendet also die Einheit Paket zur Mengenangabe und gibt z.B. mittels <PacksizeNumeric>72</PacksizeNumeric>
bekannt, dass ein Paket 72 Stück entspricht. Unter diesen Voraussetzungen kann der Kunde 1440 Stück Speichen bestellen und erhält eine Auftragsbestätigung über 20 Pakete Speichen, ohne dass für diese "Korrektur" ein Eingriff durch Menschen erforderlich wäre. Das geht natürlich nicht, wenn die Information über die Packungsgröße bloß in der Artikelbeschreibung steht, und der Großhändler ein Paket von 72 Speichen in seinem Warenwirtschaftssystem als ein Stück behandelt.
Ein Großhändler verkauft Schaltseilzüge. Dieses Seil ist in Rollen zu je 30 Meter konfektioniert. Der Einzelhändler verarbeitet und verkauft das Seil nach Länge. Der Großhändler verwendet also für die Rolle Bremsseil die Einheit Paket und gibt mittels
<PackageQuantity quantityUnitCode="MTR">30</PackageQuantity>
bekannt, dass ein Paket einer Länge von 30 Metern entspricht. Unter diesen Voraussetzungen kann also der Einzelhändler 180 Meter Bremsseil bestellen und erhält eine Auftragsbestätigung über 6 Rollen Bremsseil, in der beispielsweise der Einkaufspreis als Preis pro Rolle und der empfohlene Verkaufspreis als Meterpreis angegeben ist.
Um Mißverständnissen vorzubeugen, ein weiteres Beispiel: Ein Großhändler verkauft Bremszüge. Diese sind an einem Ende mit einem Nippel versehen und sind in Längen von 2 Metern und 4 Metern zu haben. Diese Bremszüge werden in Paketen zu je 50 Stück verkauft. Die Längenangabe von 2 bzw. 4 Metern sollte nicht zu dem Schluß verleiten, dass es sich bei dem Paket um eine Menge von 100 bzw. 200 Metern handelt! Ein Paket sind und bleiben 50 Stück, die Länge ist ein Merkmal des Artikels und wird im allgemeinen dadurch erfasst, dass zur Unterscheidung verschiedene Artikelnummern verwendet werden.
In der Praxis gibt es Online-Bestellschnittstellen, die folgendes fertigbringen: Eine Zeile einer Auftragsbestätigung enthält im wesentlichen die bestellte Anzahl (als Zahl), die Artikelnummer und einen Einzelpreis (auch nur als Zahl). Es kann vorkommen, dass der betreffende Artikel ein Paket aus 100 Stück ist, die Menge die Anzahl der Pakete angibt und der Einzelpreis tatsächlich der Preis eines Stücks und nicht der Preis eines Pakets ist. Für andere Paketartikel wiederum ist der Einzelpreis tatsächlich der Preis eines Pakets. Offensichtlich ist das unbrauchbar, es wird einfach zu wenig Information übertragen bzw. die Implementierung der Schnittstelle ist nicht in der Lage, die fehlenden Informationen dadurch zu ersetzen, dass sie eine allgemeine Regel einhält, wie z.B. dass der Einzelpreis sich immer auf die gleiche Menge bezieht wie die Anzahl.