Format description: SalesReport

General

The SalesReport document is used for the reporting of sales of articles at the optician to the supplier. The constant data exchange between points of sale (shops/stores) and the manufacturer guarantees that the manufacturer always knows the exact amount of products at the customer site and so can ensure that the desired quantity of products at the customer site is available and can be used for statistical purposes.

Structure of the format for exchanging sales data

The format for the exchange of sales data is based on the catalog format Catalog.xml.

Only a small amount of information is required for a simple implementation of the sales report. Additional information can be passed for the different use cases.

The document SalesReport serves to exchange information of sales during a period for statistics and stock control. There are two use cases possible. The first (standard case) is the Sales report for one specific shop or business unit. The second case is the sales report for a chain. In this case the sales report contains sales information for all or a group of business units (shops) of a chain. In this case each salesItem has a clientID to identify the corresponding business unit (shop/branch). The extract of the sales for one specific business unit (shop) is possible by sorting on a clientID.

A sales report always refers to a specific time, which must be specified in the document.

The validation is performed on the basis of the most up-to-date schema version. This is available at the following URL:

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

Document structure

The document SalesReport consists of the three main elements SalesReport, SalesReportItem and Client.

Detailed format description

Element SalesReport

The element SalesReport at least consists of the attributes generationDate, salesReportID, salesStartDate, salesEndDate, schemaMajorVersionID, supplierID and schemaMajorVersionID as well as the elements Client and SalesItems. The element SalesItems can consist of one or more elements SalesItem.

Generally, articles can be described in two ways. Either with an unique ID that defines exactly a variant (SKU) (e.g., EAN or UPC code) or with an article ID (model number at frames) and the features that are required to identify the variant (in the catalog as order relevant defined product features).

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 Corporate office type (e.g. headquarter)
currency xs:string Currency (e.g. EURO)
generationDate xs:dateTime required Date and time of generation (e.g. 2011-02-11T11:48:34)
generatorInfo xs:string required Information about the generation software (e.g. Look4 Webservices Test)
salesEndDate xs:dateTime required Start date for the sales (e.g. 2011-05-28T22:09:00.0000000+02:00)
salesReportID xs:string required Id for this sales report document (e.g. SR-2011-03-21-campain summertime)
salesReportName xs:string optional Describing name for this sales report (e.g. Sales report for campain "summertime")
salesStartDate xs:dateTime required End date for the sales (e.g. 2011-07-28T22:12:00.0000000+02:00)
schemaMajorVersionID xs:integer required Major version number for the description of the current schema version (e.g. 1.x) (e.g. 1)
schemaMinorVersionID xs:integer required Minor version number for the description of the current schema version (e.g. x.6) (e.g. 0)
supplierID xs:string required Supplier ID (e.g. 012345)

Note: Future versions will only allow letters, digits, hyphens and underscores for the attribute salesReportID. The attribut must be unique per supplier and client ID.

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 Article group code at supplier (e.g. B-451)
articleGroupCodeRetailer xs:string optional Code for the article group at the retailer (e.g. CL-soft)
articleGroupDescription xs:string optional Description of the article group (e.g. C-2716)
articleID xs:string required Unique article number at supplier (e.g. A2780)
articleName xs:string optional Article name (e.g. Smith Optics Ltd.)
brand xs:string optional Brand of the product (e.g. Zeiss)
clientID xs:string client ID (e.g. 012345)
clientName xs:string optional Client name (e.g. Smith Optics Ltd.)
grossUnitPrice xs:decimal optional Gross price per unit (to be paid) (e.g. 12)
purchasePrice xs:decimal optional Purchase price (e.g. 10)
quantitySold xs:decimal required Sold quantity (e.g. 10)
recommendedRetailPrice xs:decimal optional Recommended retail price (e.g. 20,50)
retailPrice xs:decimal optional Retail price (e.g. 14)
storeReceiptNumber xs:string optional Store receipt number (e.g. ST-312-)
transactionType xs:NMTOKEN optional TransactionType (sale, return,damage,..) (e.g. sale)

Note: In element SalesReportItem, attributes clientID und clientName are deprecated will be removed in future versions.

Standard values for the attribute TransactionType

With the attribute TransactionType more information can be provided to the manufacturer, besides the classic inventory list, which enables him to know or to calculate the exact stock on hand at the optician. Operations that affect the stock, as theft or withdraw of an already sold article, therefore can be reported to the supplier.

sale:Sales (used for each sale of an article / analog or alternative to the exchange in the SalesReport also in InventoryReport possible)
returnOfRegularSale:
 Redemption of already sold goods (purchased goods returned by the customer)
recallConfirmation:
 Confirmation of reshipment to manufacturer (is used to specify the number of items returned to manufacturer)
damagedItem:Damaged goods (used when a product is damaged. Manufacturer is hereby informed that a replacement must come to the branch)
stolenItem:Stolen goods (is used to report a theft)
negativeShipmentAdjustment:
 Insufficient quantity at delivery (used when a part is missing in the delivery. Reducing the stock temporarily, until replacement arrives.)
positiveShipmentAdjustment:
 Superset of delivery (used if more articles were delivered as ordered. It temporarily increases the inventory.)
physicalInventory:
 Actual inventory (stock after performed inventory)
transferToOtherShop:
 Delivery to other branch (used when a product of the customer is transferred from a branch into a different branch. This lowers the issuing store inventory recorded in the system and therefore enables a correct replenishment)
transferFromOtherShop:
 Delivery of other branch (used when a product is transferred from a different branch in the reporting branch. This increases the store inventory recorded in the system.)

Note: For each transaction between two client branches, affecting a model version (SKU), it may be useful, to transfer transferToOtherShop as well as transferFromOtherShop.

Element Client

The element Client includes all information on the purchaser of the shipped goods. It consists of a subelement Addresses with at least one subelement Address in which one address is specified.

Example XML code:

<Client clientID="31024" clientName="Eyewear Solutions LTD">
    <Addresses>
        <Address addressID="1" addressType="MainAddress"
          name="Eyewear Solutions LTD" street="152 Chiswick High Road" zip="W4 1PR"
          city="London" isoCountryCode="UK" phone="+44 208 4517 123"
          fax="+44 208 4517 123" email="infotest@optik-friedrich.de"
          clientBranchID="1598523698521" clientType="Retailer"/>
    </Addresses>
</Client>

Attributes of the element Client

Attribute Type / Use Description / Example
clientID xs:string required Client ID (e.g. 012345)
clientGlnCode xs:string Client GLN code. (e.g. 4312345678902)
clientName xs:string optional Client name (e.g. Smith Optics Ltd.)
clientBranchID xs:string optional Branch no. (e.g. B-1234)
clientType xs:NMTOKEN optional Client type: Consumer, Branch, Retailer (e.g. Retailer)
responseMail xs:string optional E-mail address for responses to this message (e.g. response@optician-test-smith.co.uk)