Table of Contents | ||
---|---|---|
|
Der Elementtyp The element type cac:ItemType wird verwendet um Gegenstände zu beschreiben. Dazu werden folgende Elemente verwendetis used to describe objects. The following elements are used here:
Name | TypType/Vorkommenoccurrence | BeschreibungDescription |
---|---|---|
cbc:Description | cbc:TextType? | Text , der den Artikel beschreibtdescribing the article. |
cbc:PackQuantity | cbc:QuantityType? | VerpackungseinheitPackaging unit. |
cbc:PackSizeNumeric | udt:NumericType? | Anzahl Number in Verpackungseinheitpackaging unit. |
cac:BuyersItemIdentification | cbc:IdentifierType?Artikelkennzeichnung des Käufers | Buyer's article ID. |
cac:SellersItemIdentification | cbc:IdentifierType?Artikelkennzeichnung des Verkäufers | Seller's article ID. |
cac:StandardItemIdentification | cbc:IdentifierType? | Artikelkennzeichnung nach Standards, bevorzugt Article ID according to standards, preferably EAN. |
cac:ManufacturersItemIdentification | cbc:IdentifierType? | Artikelnummer des HerstellersManufacturer's article number. |
cac:TaxCategory | cac:TaxCategoryType?optionale Kennzeichnung von Umsatzsteuersätzen | Optional identification of turnover tax rates. |
cac:BasePrice | cac:BasePriceType* | BasispreisBase price (netto), mehrere Angaben möglich zur Darstellung von Staffelpreisennet); graduated prices can be represented in several ways. |
cac:RecommendedRetailPrice | cac:BasePriceType? | empfohlener Verkaufpreis(brutto)Recommended sales price (gross). |
vcc:ItemInformation | vcc:ItemInformation? | Weitergehende Informationen zum Artikel, wie z.B. Bilder, Explosionszeichnungen, Warengruppen Further information about the article, such as pictures, exploded drawings, product groups etc. |
...
Rule: 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
Code Block |
---|
<PackSizeNumeric>x</PackSizeNumeric> |
...
The following rules apply to Veloconnect-compliant implementations:
The element cbc:Description must be filled with a text which allows the knowledgeable reader to recognize the item being described.
The element cac:SellersItemIdentification contains the seller's identification of the item, and must not be empty unless it signifies an item within a position in the receipt modul (document management).
The element cac:BuyersItemIdentification may contain the seller's internal identification of the item.
If an EAN code is known for the item, it must be communicated by the element cac:StandardItemIdentfication. This has to be done regardless of whether one of the other two item identifiers is already an EAN code.
If no EAN code is known, but the manufacturer's article number is, it must be communicated by the element cac:ManufacturersItemIdentfication. The manufacturer must be specified via this element's child cac:IssuerParty. This is done either via an ID in the PartyIdentification child element, where the manufacturer can be identified via a public database (e.g. ILN/GLN), or via the name in the PartyName child element.
If quantity indicators for the item are used in the package unit, either the PackQuantity element must indicate which quantity corresponds to a package in another unit, or the PackSizeNumeric element must specify how many pieces a package contains. No more than one of these two elements may be used. In particular, a use of
Code Block <PackSizeNumeric>x</PackSizeNumeric>
is equivalent to a use of
Code Block <PackQuantity quantityUnitCode="EA">x</PackQuantity>.
(Hierbei steht x für eine beliebige Zahlx represents any number).
Es ist mindestens ein At least one cac:BasePrice -Element vorhandenelement is present.Die
The prices specified in den the 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.
...
elements are always net prices, and all have the same unit of quantity.
If the unit of cac:BasePrice elements is package, conversion into another discrete unit or physical unit must be specified in the element cbc:PackQuantity or cbc:PackSizeNumeric.
The price function is defined by the cac:BasePrice elements for all quantity indications with positive values whose unit is comparable to the unit of the cac:BasePrice elements.
The price specified in RecommendedRetailPrice is gross, unless the server's Veloconnect profile property
RecommendedRetailPrice.Netto
indicates that net prices are being used. Also used is a quantity unit comparable to the unit of the BasePrice elements.The optional element ItemInformation should be used according to Rule: ItemInformation.
If different turnover tax rates are applicable, the tax rate valid for the concerned item can be communicated using the optional TaxCategory element. Here, the FULL ID is used for the full tax rate, and the REDUCED ID is used for the reduced tax rate. VAT is used as the ID of the TaxScheme element. For clarity, more complex tax rates can be communicated using the percent element.
From the requirements so far, it follows that at least one unit is always explicitly indicated for an item. If the package unit is included, conversion into another discrete unit or physical unit of measure is also given.
Which units a seller uses for their articles is ultimately their decision, and also depends on whether their merchandise management system is able to handle units. It is therefore quite possible for an article to be considered as a single piece, even though a different unit would be more appropriate. Retailers' merchandise management systems are generally able to deal with this situation: The user must ultimately specify a conversion factor per article, in order to harmonize the units used for sale with the units used for the purchase order. Of course, this is a source of mistakes and misunderstandings.
The correct unit for each article is assumed to be clear for the experts involved. Describing objects by means of elements of type cac:ItemType makes it possible to explicitly communicate this information so as to allow automatic conversion of units. A lack of this information can ultimately only be due to the fact that the information is not available in the merchandise management system.
Rule: Use of units.
A Veloconnect-compliant server must fulfil exactly one of the following requirements:
The correct units are used for all articles, a differentiation between piece, pair and set being dispensable, and piece and package being permissible for exclusive use as discrete units. Which unit is correct must be decided on the basis of the catalogues and documents usually available to customers. If an article is to be ordered only in certain multiples of the base unit, then package must be defined as the unit, otherwise package must be dispensed with.verzichten.
Piece is used as a unit for all articles, and the server communicates this limitation in its Veloconnect Profile via the attribute
quantityUnitCode.EA
.
If the client submits a quantity for an object which uses a unit not comparable to the units used in the description of the object, the server replaces the unit as follows:
To illustrate the advantage of handling units correctly, here are two popular examples from the bicycle industry:
The manufacturer packs spokes in cartons of 72 pieces each and sells these as units. The retailer buys the spokes in these units and then sells them individually to end customers. The wholesaler accordingly uses package as a unit for indicating quantities and declares by means of <PacksizeNumeric>72</PacksizeNumeric>
, for example, that a package corresponds to 72 pieces. Under such conditions, a customer could order 1440 spokes and receive an order confirmation for 20 packs of spokes, without this "correction" requiring human intervention. Of course, this is not possible if the package size is mentioned simply in the article description, and the wholesaler's merchandise management system treats a package of 72 spokes as one unit.
A wholesaler sells gearshift cables each configured as a roll 30 metres long. The retailer processes and sells the cables in the required length. Accordingly, a wholesaler uses package as a unit for the gearshift cable and declares via
Code Block |
---|
<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 Anzahlthat a package corresponds to a length of 30 metres. Under these conditions, the retailer can therefore order 180 metres of gearshift cable, and receives an order confirmation for 6 rolls of such cable, the purchase price being specified here per roll, and the recommended selling price being specified per meter, for example.
Provided next is a further example to avoid misunderstandings: A wholesaler sells brake cables. These are furnished with a nipple at one end, and available in lengths of 2 metres and 4 metres. These brake cables are sold in packages of 50 pieces each. The length of 2 or 4 meters should not lead to the conclusion that the package comprises a quantity of 100 or 200 meters respectively! A package still comprises 50 pieces, length being a characteristic of the article, and registered generally through a use of different article numbers.
Existent in practice are online ordering interfaces which enable the following: An order confirmation line essentially indicates the ordered quantity (in numeric format), the article number, and a unit price (also in just numeric format). It is possible for the concerned article to comprise a package of 100 pieces, for the quantity to indicate the number of packages, and for the unit price to be actually the price of a piece, and not the price of a package. For other packaged articles, however, the unit price is actually the price of a package. That is obviously impractical, simply insufficient information is conveyed, and the implemented interface is unable to replace the missing information through compliance with a general rule, such as the unit price always referring to the same quantity as the number.