Formatbeschreibung: Order

Allgemeines

Das XML-Format für Orders basiert auf dem Standardformat für XML-Kataloge. In einer Bestellung ist eine Bestellposition genau eine mögliche Konfiguration eines Lieferbereichs, der im Katalog definiert wurde.

Es wird zwischen konfigurierbaren und einfachen Produkten unterschieden.

Einfache (nicht konfigurierbare) Produkte

Solche Produkte können bestellt werden, indem Sie die gewünschte Menge angeben ohne Auswahl bestimmter Produktfeatures. Eine articleID beschreibt genau ein bestimmtes Produkt mit klar definierten Produkt-Eigenschaften (Merkmalen).

Beispiel:

„Wöhlk ContactCare Kombilösung - 360ml“

Konfigurierbare Produkte

Solche Produkte (Kontaktlinsen, Brillengläser, Fassungen) sind mit unterschiedlichen Kombinationen von Produkt-Eigenschaften erhältlich.

Beispiel:

Kontaktlinse: sphere, diameter, radiusBasecurve

Fassung: colour, size, templeLength

Für eine gültige Bestellung, müssen alle bestellrelevanten Produkt-Eigenschaften (includeInOrder=true) in der Bestellung unter Konfiguration definiert werden.

Aufbau des Bestellformates (Order.xml)

Im Element Order werden allgemeine Informationen zur Bestellung definiert. Es gliedert sich in die zwei Bereiche Client und OrderItems.

Die Validierung erfolgt auf Basis der jeweils aktuellsten Schema-Version. Diese ist unter folgender Url erreichbar:

https://templates.look4optics.com/v_1_13/order.xsd

Unter Client besteht die Möglichkeit optional Adressinformationen zum Besteller anzugeben.

Im Anschluss erfolgt die Beschreibung der einzelnen Auftragspositionen. Hier sind nur Produktmerkmale enthalten, die im Katalog als bestellrelevant (includeInOrder=true) definiert sind. Jede Auftragsposition enthält eine gültige Konfiguration aus den im Katalog definierten Konfigurationsvarianten.

Liste der Standard Produkteigenschaften

Die Liste der FeatureTemplates finden Sie in dem Dokument ‚Übersicht der Feature Templates‘.

Das Element Order

Das Element Order enthält die Elemente Client (Informationen zum Besteller) und OrderItems (Bestellpositionen).

Das Element Order beginnt mit der Definition allgemeiner Informationen zur Bestellung.

Die Werte ‚schemaMajorVersionID‘ und ‚schemaMinorVersionID‘ sollten beim Schreiben fest in der Bestellsoftware hinterlegt sein, da sie zeigen, welche Version des Standards beim Aufbau des Dokuments verwendet wird. So können sich andere Programme beim Parsen des Dokuments darauf einstellen. Die Werte können in der Sendersoftware hochgesetzt werden, wenn es eine neue Standard-Version gibt und das Programm auf Kompatibilität geprüft wurde.

Für die Beschreibung stehen nachfolgende Attribute zur Verfügung:

Attribute

Type / Use

Description / Example

catalogID

xs:string required

Version des Katalogformates auf dessen Basis die Erfassung der Auftragspositionen erfolgte (z.B. Schema_Catalog_1_6)

catalogName

xs:string optional

Name des Kataloges auf dessen Basis die Erfassung erfolgte (z.B. Catalog 1.6)

clientOrderID

xs:string required

ID der Bestellung (des Übertragungssatzes) auf Senderseite (z.B. 00023-345785)

originalClientOrderID

xs:string optional

Bestellnummer des ursprünglichen Kunden, z.B. bei Bestellungen von Home Delivery Services (z.B. 00023-345785)

clientSupplierID

xs:string optional

ID des Herstellers beim Kunden (z.B. Woehlk-123456)

currency

xs:string optional

Währung (z.B. EURO)

generationDate

xs:dateTime optional

Datum und Zeit der Auftragserstellung (z.B. 2011-02-11T11:48:34)

generatorInfo

xs:string optional

Information zur Generierungsquelle, Bezeichnung bzw. Version der Software (z.B. Look4 Webservices Test)

schemaMajorVersionID

xs:integer required

Hauptversionsnummer für die Beschreibung der aktuellen Schema Version (z.B. 1)

schemaMinorVersionID

xs:integer required

Unterversionsnummer für die Beschreibung der aktuellen Schema Version (z.B. 0)

supplierID

xs:string required

UstID des Herstellers an den die Bestellung gesendet wird, Land und Nummer ohne Trennzeichen (z.B. DE813058544)

supplierName

xs:string optional

Name des Herstellers an den die Bestellung gesendet wird (z.B. Woehlk)

vatRate

xs:decimal optional

Mehrwertsteuersatz in % (z.B. 19)

Beispiel XML-Code:

<Order catalogID="catalog_de_de.xml" supplierID="DE813058544"
  generatorInfo="Look4 Webservices Test" generationDate="2017-02-11T11:48:34"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:noNamespaceSchemaLocation=
  "https://templates.look4optics.com/v_1_13/order.xsd"
  clientOrderID="00023-345785" schemaMajorVersionID="1"
  schemaMinorVersionID="13" >
</Order>

Das Element Client

Das Element Client enthält die zwei Attribute clientID (Kundennummer beim Lieferanten) und clientName (Firmenname). Optional kann über responseMail die Mailadresse mitgegeben werden, an die Statusmeldungen für diesen Auftrag versendet werden sollen. Außerdem können optional noch Adressangaben gemacht werden (z.B. Lieferadresse ggf. auch für Endkunden falls diese nicht mit der Bestelladresse übereinstimmt).

Attribute

Type / Use

Description / Example

clientID

xs:string required

Kundennummer beim Lieferanten (z.B. 012345)

clientName

xs:string optional

Firmenname des Kunden (z.B. Schmidt Optik GmbH)

responseMail

xs:string optional

Mailadresse für Statusmeldungen (z.B. antwort@optik-test-schmidt.de)

Das Element Address hat folgende Attribute:

Im Element Address können mehrere Adressen mitgegeben werden. Diese Angaben sind optional. Für die Mitgabe von abweichenden Lieferadressen wird die Lieferadresse hier mitgegeben und kann unter OrderItems einzelnen Auftragspositionen zugeordnet werden. Somit können beispielsweise durch die Firmen-Zentrale Bestellungen für mehrere Filialen in einem Auftrag versendet werden. Mit der Adresse können auch die zugehörigen clientID (Kundennummer der Filiale beim Lieferanten) übergeben werden.

Das Handling für abweichende Lieferadressen ist bei den Herstellern unterschiedlich und sollte deshalb immer mit LOOK4 oder den betreffenden Lieferanten abgestimmt bzw. in der Testphase umfassend getestet werden.

Attribute

Type / Use

Description / Example

addressID

xs:string required

Eindeutige ID für eine Adresse. Diese kann später einem oder mehreren Aufträgen zugeordnet werden - abweichende Lieferadresse (z.B. 123456)

addressType

xs:NMTOKEN required

Adresstyp, Standardwerte: MainAddress, ShippingAddress, BillingAddress (z.B. MainAddress)

city

xs:string required

Stadt (z.B. Berlin)

clientBranchID

xs:string optional

Filialnummer des Kunden (z.B. 1234)

clientID

xs:string optional

Kundennummer (z.B. 123423)

clientType

xs:NMTOKEN optional

Kundenart, Standardwerte: Consumer, Branch, Retailer (z.B. Retailer)

email

xs:string optional

E-Mail-Adresse (z.B. mail@optician-test-smith.co.uk)

fax

xs:string optional

Fax (z.B. +0044 1302 344 321)

isoCountryCode

xs:language required

ISO Länderkennzeichen (z.B. GB)

name

xs:string required

Name (z.B. Schmidt Optik GmbH)

name2

xs:string optional

Name 2 (z.B. Augenoptik und mehr)

phone

xs:string optional

Telefon (z.B. +0044 1302 344 123)

street

xs:string required

Strasse (z.B. Hauptstrasse 123)

zip

xs:string required

PLZ (z.B. 12345)

Beispiel XML-Code:

<Addresses>
    <Address clientType="Branch" addressID="1" addressType="MainAddress"
      name="Schmidt Optik GmbH" name2="Augenoptik und mehr"
      zip="10995" city="Berlin" isoCountryCode="DE" phone="+0049 030 123459-0"
      fax="+0049 030 123459-1" email="filiale@optik-test-schmidt.de" />
    <!-- Adresse der Filiale -->
    <Address clientType="Retailer" addressID="2" addressType="BillingAddress"
      name="Schmidt Optik GmbH Verwaltung" name2="Augenoptik und mehr"
      zip="10999" city="Berlin" isoCountryCode="DE" phone="+0049 030 123456-0"
      fax="+0049 030 123456-1" email="zentrale@optik-test-schmidt.de" />
    <!-- Adresse der Zentrale -->
    <Address clientType="Consumer" addressID="3" addressType="ShippingAddress"
      name="Heinrich Kiefer" street="Kurze Straße 1" zip="41235" city="Frankfurt"
      isoCountryCode="DE" phone="+0049 069 123459-0"
      email="mail@Heinrich-Kiefer-Test.de" />
    <!-- Adresse des Endkunden -->
</Addresses>

Das Element OrderItems

Jedes Element OrderItems kann aus einem oder mehreren Elementen OrderItem bestehen. Jede OrderItem beschreibt eine Bestellposition. Die Referenzierung für die Statusabfrage und Zuordnung einzelner Auftragspositionen erfolgt über das Attribut clientOrderItemID. Dieses Feld muss bei Bestellungen per Webservice immer gefüllt sein. Zur Beschreibung werden die folgenden Attribute verwendet:

Attribute

Type / Use

Description / Example

addressID

xs:string optional

ID der zugehörigen Adresse (z.B. 123456)

articleID

xs:string required

Artikelnummer beim Lieferant (z.B. A2780)

articleName

xs:string optional

Artikelname (z.B. Contact Life Spheric Box)

clientArticleID

xs:string optional

Kundenartikelnummer (z.B. CL-CLSB-1234)

clientArticleName

xs:string optional

Artikelbezeichnung des Kunden (z.B. Woehlk - Contact Life Spheric Box)

clientOrderItemID

xs:string required

ID die (eindeutig) das OrderItem auf Senderseite bezeichnet. (z.B. LOOK4-WLK-01)

originalClientOrderItemID

xs:string optional

Kundennummer des ursprünglichen Kunden, z.B. bei Bestellungen von Home Delivery Services. (z.B. 23425234)

deliveryDate

xs:dateTime optional

Gewünschter Liefertermin (z.B. 2011-02-12T09:00:00)

eanCode

xs:string optional

EAN-Code, 13 Ziffern (z.B. 7234567891234)

netPurchasePrice

xs:decimal optional

Netto-Einkaufspreis (z.B. 20.00)

orderItemType

xs:NMTOKEN optional

Positionsart, Standardwerte: standard, freeOfCharge, returns (z.B. standard)

referenceName

xs:string optional

Kommission, Kunde / Auftragsnummer AO (z.B. Lager)

unitOfMeasure

xs:NMTOKEN optional

Bestellmengeneinheit, Standardwerte: bottles, boxes, pieces (z.B. boxes)

upcCode

xs:string optional

UPC-Code, 12 Ziffern (z.B. 723456789123)

vatRate

xs:decimal optional

Mehrwertsteuersatz in % (z.B. 19)

Beispiel XML-Code:

<OrderItems>
    <OrderItem articleID="A2780" articleName="Contact Life Spheric Box"
      clientOrderItemID="LOOK4-WLK-01" deliveryDate="2017-02-12T09:00:00"
      referenceName="Stock" unitOfMeasure="boxes">
        <Configuration quantity="1">
            <Feature templateID="Diameter" selectedValue="13.6"/>
            <Feature templateID="RadiusBasecurve" selectedValue="8.3"/>
            <Feature templateID="Sphere" selectedValue="-3"/>
        </Configuration>
    </OrderItem>
    <OrderItem articleID="A2780" articleName="Contact Life Spheric Box"
      clientOrderItemID="LOOK4-WLK-02" deliveryDate="2011-02-12T09:00:00"
      referenceName="Stock" unitOfMeasure="boxes">
        <Configuration quantity="1">
            <Feature templateID="Diameter" selectedValue="14.2"/>
            <Feature templateID="RadiusBasecurve" selectedValue="8.8"/>
            <Feature templateID="Sphere" selectedValue="0.25"/>
        </Configuration>
    </OrderItem>
    <OrderItem articleID="A3380" articleName="Premium Spheric 6er Box"
    clientOrderItemID="LOOK4-WLK-03" deliveryDate="2011-02-12T09:00:00"
    referenceName="Stock" unitOfMeasure="boxes">
        <Configuration quantity="1">
            <Feature templateID="Diameter" selectedValue="13.6"/>
            <Feature templateID="RadiusBasecurve" selectedValue="8.3"/>
            <Feature templateID="Sphere" selectedValue="-2.5"/>
        </Configuration>
    </OrderItem>
</OrderItems>

Das Element Configuration

Im Element Configuration wird die Konfiguration des Artikels beschrieben. Über das Attribut quantity wird die gewünschte Stückzahl dieser Konfiguration angegeben. Jede Konfiguration enthält eine Aufzählung der bestellrelevanten Produktmerkmale (Features). Die Gültigkeiten für den jeweiligen Artikel sind über den Katalog definiert.

Attribute

Type / Use

Description / Example

quantity

xs:positiveInteger required

Gewünschte Menge (z.B. 1)

Beispiel XML-Code:

(alle Produkt-Features im Catalog mit includeInOrder=true gekennzeichnet)

<Configuration quantity="1">
    <Feature templateID="Diameter" selectedValue="14.20"/>
    <Feature templateID="RadiusBasecurve" selectedValue="8.70"/>
    <Feature templateID="Sphere" selectedValue="-9.00"/>
</Configuration>

Das Element AdditionalData

Das seit Version 1.8 verfügbare optionale Element AdditionalData ermöglicht die Mitgabe von Zusatzinformationen zum Auftrag wie z.B. Keratografendaten für Kontaktlinsen oder Formdaten für Fassungen.

Attribute

Type / Use

Description / Example

dataDescription

xs:string optional

Beschreibung des Dateninhalts (z.B. SUFG4656)

dataFormat

xs:string required

Beschreibung des Datenformats (jpg, oma, dat) (z.B. dat)

dataSourceType

xs:string required

Beschreibung der Quelle oder des für die Messung benutzten Geräts (z.B. Topcon 231)

dataSourceVersion

xs:string required

Version der benutzten Quelle oder des Geräts (z.B. TR14)

dataType

xs:string required

Datentyp (z.B. Keratograph)

Das Element Feature

Attribute

Type / Use

Description / Example

selectedValue

xs:string required

Werte zum jeweiligen Parameter (z.B. 14.2)

templateID

xs:string required

Name des Parameters (z.B. Diameter)

Hier müssen alle im Katalog als bestellrelevant (includeInOrder=true) definierten Produkteigenschaften (Features) angegeben werden. Alle im Standard definierten Features finden Sie im Dokument ‚Übersicht der Feature Templates‘.

Beispiel XML-Code für eine komplette Bestellung

<Order catalogID="catalog_de_de.xml" supplierID="DE813058544"
  generatorInfo="Look4 Webservices Test" generationDate="2017-02-11T11:48:34"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:noNamespaceSchemaLocation=
  "https://templates.look4optics.com/v_1_13/order.xsd"
  clientOrderID="00023-345785" schemaMajorVersionID="1"
  schemaMinorVersionID="13" >
    <Client clientID="00011" clientName="Testkunde11" responseMail="info@look4.de">
    <Addresses>
    <Address clientType="Branch" addressID="1" addressType="MainAddress"
      name="Schmidt Optik GmbH" name2="Augenoptik und mehr"
      zip="10995" city="Berlin" isoCountryCode="DE" phone="+0049 030 123459-0"
      fax="+0049 030 123459-1" email="filiale@optik-test-schmidt.de" />
    <!-- Adresse der Filiale -->
    <Address clientType="Retailer" addressID="2" addressType="BillingAddress"
      name="Schmidt Optik GmbH Verwaltung" name2="Augenoptik und mehr"
      zip="10999" city="Berlin" isoCountryCode="DE" phone="+0049 030 123456-0"
      fax="+0049 030 123456-1" email="zentrale@optik-test-schmidt.de" />
    <!-- Adresse der Zentrale -->
    <Address clientType="Consumer" addressID="3" addressType="ShippingAddress"
      name="Heinrich Kiefer" street="Kurze Straße 1" zip="41235" city="Frankfurt"
      isoCountryCode="DE" phone="+0049 069 123459-0"
      email="mail@Heinrich-Kiefer-Test.de" />
    <!-- Adresse des Endkunden -->
</Addresses>
    </Client>
    <OrderItems>
        <OrderItem articleID="A2780" articleName="Contact Life Spheric Box"
          clientOrderItemID="LOOK4-WLK-01" deliveryDate="2017-02-12T09:00:00"
          referenceName="Stock" unitOfMeasure="boxes">
                <Configuration quantity="1">
                <Feature templateID="Diameter" selectedValue="13.6"/>
                <Feature templateID="RadiusBasecurve" selectedValue="8.3"/>
                <Feature templateID="Sphere" selectedValue="-3"/>
            </Configuration>
        </OrderItem>
        <OrderItem articleID="A2780" articleName="Contact Life Spheric Box"
          clientOrderItemID="LOOK4-WLK-02" deliveryDate="2017-02-12T09:00:00"
          referenceName="Stock" unitOfMeasure="boxes">
            <Configuration quantity="1">
                <Feature templateID="Diameter" selectedValue="14.2"/>
                <Feature templateID="RadiusBasecurve" selectedValue="8.8"/>
                <Feature templateID="Sphere" selectedValue="0.25"/>
            </Configuration>
        </OrderItem>
        <OrderItem articleID="A3380" articleName="Premium Spheric 6er Box"
          clientOrderItemID="LOOK4-WLK-03" deliveryDate="2017-02-12T09:00:00"
          referenceName="Stock" unitOfMeasure="boxes">
            <Configuration quantity="1">
                <Feature templateID="Diameter" selectedValue="13.6"/>
                <Feature templateID="RadiusBasecurve" selectedValue="8.3"/>
                <Feature templateID="Sphere" selectedValue="-2.5"/>
            </Configuration>
        </OrderItem>
    </OrderItems>
</Order>

Vorankündigung für Schema 2.0

Die beiden IDs clientOrderID und clientOrderItemID werden verpflichtend. Dabei müssen die beiden IDs nicht für sich genommen unique sein, aber in Kombination.

So werden auch nach Teilannahme und Korrektur gesplittete Aufträge unterstützt.

Übertragung der Bestellung

Das Format ist unabhängig von der Art der Datenübertragung. Die Übertragung erfolgt per Webservice mit einer HTTP-Anforderung (POST). Die Bestellung über die Webservices von LOOK4Optics erfolgt an folgende URL:

** Produktiv: ** http://www.look4optics.de/OrderService/PlaceOrder.ashx

Für detaillierte Informationen kontaktieren Sie bitte den LOOK4 Support oder direkt den Lieferanten. Die URLs für Hersteller die eigene Webservices betreiben, finden Sie in den jeweiligen Katalogen im Element WebServices.