Formatbeschreibung: SalesReport

Allgemeines

Das Dokument SalesReport dient zur Meldung von Abverkäufen von Artikeln beim Optiker an den Lieferanten. Der beständige Datenaustausch zwischen Verkaufsstellen (Geschäften/Filialen) und dem Hersteller garantiert, dass der Hersteller stets die exakte Menge an Produkten beim Kunden vor Ort kennt und kann so sicher stellen, dass die gewünschte Menge an Artikeln beim Kunden vor Ort verfügbar ist und für Statistikzwecke genutzt werden kann.

Aufbau des Formates für Austausch von Abverkäufen

Das Format für den Statusaustausch basiert auf dem Katalog-Format Catalog.xml.

Für eine einfache Realisierung der Abverkaufsmeldung ist nur eine kleine Anzahl von Informationen erforderlich. Für die verschiedenen Anwendungsfälle können zusätzlich weitere Informationen übergeben werden.

Das Dokument SalesReport dient dem Austausch von Verkaufs-Informationen während eines bestimmten Zeitraum für die Statistik und die Lagerverwaltung. Es gibt zwei möglich Anwendungsfälle. Der erste Fall (Standardfall) ist der SalesReport für ein bestimmtes Geschäft oder eine Geschäftseinheit. Der zweite Fall ist der SalesReport für eine Kette. In diesem Fall beinhaltet der SalesReport Verkaufsinformationen für alle oder eine Gruppe von Geschäftseinheiten (Läden) einer Kette. In diesem Fall hat jede Verkaufsstelle eine clientID um die entsprechende Geschäftseinheit (Laden/Filiale) zu identifizieren. Der Extrakt der Verkäufe für eine bestimmte Geschäftseinheit (Laden) ist durch das Sortieren nach einer ClientID möglich.

Eine Abverkaufsmeldung bezieht sich immer auf einen bestimmten Zeitraum, der im Dokument angegeben werden muss.

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

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

Dokumenten-Aufbau

Das Dokument SalesReport besteht aus den drei Haupt-Elementen SalesReport, SalesReportItem und Client.

Detaillierte Formatbeschreibung

Element SalesReport

Das Element SalesReport besteht mindestens aus den Attributen generationDate, salesReportID, salesStartDate, salesEndDate, schemaMajorVersionID, supplierID und schemaMajorVersionID sowie den Elementen Client und SalesItems. Das Element SalesItems kann aus einem oder mehreren Elementen SalesItem bestehen.

Generell können Artikel auf zwei Arten beschrieben werden. Entweder über eine eindeutige ID, die genau eine Variante (SKU) definiert (z.B. EAN oder UPC-Code) oder über die Artikel-ID (Modellnummer bei Fassungen) und die zur Identifizierung der Variante erforderlichen Features (im Katalog als bestellrelevant definierten Produkteigenschaften).

Example XML-Code:

<SalesReport xsi:noNamespaceSchemaLocation=
  "https://templates.look4optics.com/v_1_13/SalesReport.xsd"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  schemaMajorVersionID="1" schemaMinorVersionID="13"
  generationDate="2017-02-11T09:52:23.9305444+02:00"
  salesStartDate="2017-02-01T00:00:00+02:00"
  salesEndDate="2017-02-28T23:29:59+02:00"
  salesReportID="SR-20101221105912-123"
  supplierID="DE813058544"
  generatorInfo="MySoftware v1.2.3">
    <Client clientID="31024" />
    <SalesReportItems>
        <SalesReportItem articleID="L0505" quantitySold="100">
            <Configuration>
                <Feature templateID="Diameter" selectedValue="14.20"/>
                <Feature templateID="RadiusBasecurve" selectedValue="8.70"/>
                <Feature templateID="Sphere" selectedValue="-9.00"/>
            </Configuration>
        </SalesReportItem>
        <SalesReportItem articleID="L0220" quantitySold="110">
            <Configuration>
                <Feature templateID="Diameter" selectedValue="14.40"/>
                <Feature templateID="RadiusBasecurve" selectedValue="8.80"/>
                <Feature templateID="Sphere" selectedValue="-7.00"/>
                <Feature templateID="Cylinder" selectedValue="-1.25"/>
                <Feature templateID="AxisCylinder" selectedValue="70"/>
            </Configuration>
        </SalesReportItem>
                    <SalesReportItem articleID="02030" quantitySold="100">
            <Configuration>
                <Feature templateID="FrameColour" selectedValue="silver"/>
                <Feature templateID="LensColour" selectedValue="polar gray"/>
                <Feature templateID="FrameTempleLength" selectedValue="125"/>
            </Configuration>
        </SalesReportItem>
                    <SalesReportItem articleID="L7928" quantitySold="80">
            <Configuration>
                <Feature templateID="EanCode" selectedValue="4026587082069"/>
            </Configuration>
        </SalesReportItem>
    </SalesReportItems>
</SalesReport>

Attribute

Type / Use

Description / Example

corporateOfficeType

xs:NMTOKEN optional

(z.B. headquarter)

currency

xs:string

(z.B. EURO)

generationDate

xs:dateTime required

(z.B. 2011-02-11T11:48:34)

generatorInfo

xs:string required

(z.B. Look4 Webservices Test)

salesEndDate

xs:dateTime required

(z.B. 2011-05-28T22:09:00.0000000+02:00)

salesReportID

xs:string required

(z.B. SR-2011-03-21-campain summertime)

salesReportName

xs:string optional

(z.B. Sales report for campain "summertime")

salesStartDate

xs:dateTime required

(z.B. 2011-07-28T22:12:00.0000000+02:00)

schemaMajorVersionID

xs:integer required

(z.B. 1)

schemaMinorVersionID

xs:integer required

(z.B. 0)

supplierID

xs:string required

(z.B. 012345)

Hinweis: In zukünftigen Versionen werden für das Attribut salesReportID nur noch Buchstaben, Ziffern, Bindestrich und Unterstrich zugelassen sein. Das Attribut muss einmalig je Lieferant und Kundennummer sein.

Element SalesReportItem

Example XML-Code:

<SalesReportItem articleID="L0505" articleName="Biomedics 1 day UV (30er Box)"
  recommendedRetailPrice="23.12" articleGroupCode="AGBC"
      articleGroupDescription="contact lenses"
  articleGroupCodeRetailer="123456" brand="Biomedics" purchasePrice="40" quantitySold="100"
      retailPrice="23.12">
    <Configuration>
        <Feature templateID="Diameter" selectedValue="14.20"/>
        <Feature templateID="RadiusBasecurve" selectedValue="8.70"/>
        <Feature templateID="Sphere" selectedValue="-9.00"/>
    </Configuration>
</SalesReportItem>

Attribute

Type / Use

Description / Example

articleGroupCode

xs:string optional

(z.B. B-451)

articleGroupCodeRetailer

xs:string optional

(z.B. CL-soft)

articleGroupDescription

xs:string optional

(z.B. C-2716)

articleID

xs:string required

(z.B. A2780)

articleName

xs:string optional

(z.B. Smith Optics Ltd.)

brand

xs:string optional

(z.B. Zeiss)

clientID

xs:string

(z.B. 012345)

clientName

xs:string optional

(z.B. Smith Optics Ltd.)

grossUnitPrice

xs:decimal optional

(z.B. 12)

purchasePrice

xs:decimal optional

(z.B. 10)

quantitySold

xs:decimal required

(z.B. 10)

recommendedRetailPrice

xs:decimal optional

(z.B. 20,50)

retailPrice

xs:decimal optional

(z.B. 14)

storeReceiptNumber

xs:string optional

(z.B. ST-312-)

transactionType

xs:NMTOKEN optional

(z.B. sale)

Hinweis: Im Element SalesReportItem sind die Attribute clientID und clientName deprecated und werden in zukünftigen Versionen entfernt.

Standardwerte für das Attribut TransactionType

Das Attribut TransactionType ermöglicht es, neben der klassischen Inventursliste weitere Informationen an den Hersteller zu übermitteln, die es diesem ermöglicht den genauen Lagerbestand beim Optiker zu kennen bzw. zu berechnen. Vorgänge, die den Lagerbestand beeinflussen, wie Diebstahl oder Rücknahme eines bereits verkauften Artikels können so dem Lieferanten gemeldet werden.

sale:

Abverkauf (wird für jeden Abverkauf eines Artikels verwendet / analog bzw. alternativ zum Austausch im SalesReport auch in InventoryReport möglich)

returnOfRegularSale:

Rücknahme bereits verkaufter Ware (gekaufte Ware vom Endkunden retourniert)

recallConfirmation:

Rücksendebestätigung an Hersteller (wird verwendet, um die Anzahl der an Hersteller retournierten Artikel anzugeben)

damagedItem:

Beschädigte Ware (wird verwendet, wenn ein Produkt beschädigt ist. Hersteller wird hiermit in Kenntnis gesetzt, dass der Filiale ein Ersatz zukommen muss)

stolenItem:

Gestohlene Ware (wird verwendet, um einen Diebstahl zu melden)

negativeShipmentAdjustment:

Mindermenge bei Lieferung (wird verwendet, wenn ein Teil der Lieferung fehlt. Es verringert vorübergehend den Lagerbestand, bis Ersatz eintrifft.)

positiveShipmentAdjustment:

Übermenge bei Lieferung (wird verwendet, wenn mehr Artikel geliefert wurden wie bestellt. Es erhöht vorübergehend den Lagerbestand.)

physicalInventory:

Tatsächlicher Lager-Bestand (Lagerbestand nach durchgeführter Inventur)

transferToOtherShop:

Lieferung an andere Filiale (wird verwendet, wenn ein Produkt von einer Filiale in eine andere Filiale des Kunden überführt wird. Dies senkt den im System erfassten Lagerbestand der ausgebenden Filiale und ermöglicht so eine korrekte Nachlieferung)

transferFromOtherShop:

Lieferung von anderer Filiale (wird verwendet, wenn ein Produkt von einer anderen Filiale in die berichtende Filiale überführt wird. Dies erhöht den im System erfassten Lagerbestand der Filiale.)

Hinweis: Für jede Transaktion zwischen zwei Kunden-Filialen, die eine Modelvariante (SKU) betreffen, kann es sinnvoll sein, sowohl Transaktion transferToOtherShop als auch transferFromOtherShop zu übermitteln.

Element Client

Das Element Client beinhaltet alle Informationen zum Kunden an den die Ware versendet wird. Es beinhaltet ein Unter-Element Addresses mit mindestens einem Unter-Element Address in dem die Adresse definiert wird.

Example XML-Code:

<Client clientID="31024" clientName="Karl Friedrich GmbH">
    <Addresses>
        <Address addressID="1" addressType="MainAddress"
          name="Karl Friedrich GmbH" street="Strasse 123" zip="54332"
          city="Koeln" isoCountryCode="DE" phone="+49-12345-65498"
          fax="+49-12345-65498" email="infotest@optik-friedrich.de"
          clientBranchID="1598523698521" clientType="Retailer"/>
    </Addresses>
</Client>

Attribute des Elements Client

Attribute

Type / Use

Description / Example

clientID

xs:string required

(z.B. 012345)

clientGlnCode

xs:string

(z.B. 4312345678902)

clientName

xs:string optional

(z.B. Smith Optics Ltd.)

clientBranchID

xs:string optional

(z.B. B-1234)

clientType

xs:NMTOKEN optional

(z.B. Retailer)

responseMail

xs:string optional

(z.B. response@optician-test-smith.co.uk)