Skip to main content

Notable changes

  • Id has been renamed to ExternalId in all incoming schemas to better reflect differences between external system identifiers and ONELOX identifiers
  • DeliveryNote ShippingAddress has been removed in favor of separate Customer and Address nodes
  • Shipment may now contain multiple TrackingCode, TrackingLink and ShippingMethod nodes in case no accurate package information is available

Incoming data

Tracking data

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
  xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:simpleType name="uuid">
    <xs:restriction base="xs:string">
      <xs:length value="36" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="nullableDateTime">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:length value="0" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:dateTime" />
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:element name="Tracking">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Shipment">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="ExternalId" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>Optional external system ID</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="255" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="Status">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:enumeration value="open" />
                    <xs:enumeration value="shipped" />
                    <xs:enumeration value="in_delivery" />
                    <xs:enumeration value="delivered" />
                    <xs:enumeration value="cancelled" />
                    <xs:enumeration value="failed" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="TrackingCodes" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>One or multiple Tracking Codes. It is strongly recommended to
                    provide one Shipment with a single Tracking Code and the appropriate positions
                    for each package that was shipped</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="TrackingCode" minOccurs="0" maxOccurs="unbounded">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:maxLength value="255" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="TrackingLinks" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>One or multiple Tracking Links. It is strongly recommended to
                    provide one Shipment with a single Tracking Link and the appropriate positions
                    for each package that was shipped</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="TrackingLink" minOccurs="0" maxOccurs="unbounded">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:maxLength value="1000" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="ShippingMethods" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>One or multiple Shipping Methods. It is strongly recommended to
                    provide one Shipment with a single Shipping Method and the appropriate positions
                    for each package that was shipped</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="ShippingMethod" minOccurs="0" maxOccurs="unbounded">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:maxLength value="100" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element type="nullableDateTime" name="ShippedAt" minOccurs="0" />
              <xs:element type="nullableDateTime" name="DeliveredAt" minOccurs="0" />
              <xs:element type="nullableDateTime" name="CancelledAt" minOccurs="0" />
              <xs:element name="Positions">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Position" minOccurs="0" maxOccurs="unbounded">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="ExternalId" minOccurs="0">
                            <xs:annotation>
                              <xs:documentation>Optional external system ID</xs:documentation>
                            </xs:annotation>
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="255" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="DeliveryNotePositionId" minOccurs="0">
                            <xs:annotation>
                              <xs:documentation>Optional original ONELOX Delivery Note Position
                                UUID. It is recommended to always provide an original position ID</xs:documentation>
                            </xs:annotation>
                            <xs:simpleType>
                              <xs:union>
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:length value="0" />
                                  </xs:restriction>
                                </xs:simpleType>
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:length value="36" />
                                  </xs:restriction>
                                </xs:simpleType>
                              </xs:union>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="Sku">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="100" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="Batch" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="50" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="SellByDate" minOccurs="0">
                            <xs:simpleType>
                              <xs:union>
                                <xs:simpleType>
                                  <xs:restriction base="xs:string">
                                    <xs:length value="0" />
                                  </xs:restriction>
                                </xs:simpleType>
                                <xs:simpleType>
                                  <xs:restriction base="xs:date" />
                                </xs:simpleType>
                              </xs:union>
                            </xs:simpleType>
                          </xs:element>
                          <xs:element name="SerialNumbers" minOccurs="0">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="SerialNumber" minOccurs="0" maxOccurs="unbounded">
                                  <xs:simpleType>
                                    <xs:restriction base="xs:string">
                                      <xs:maxLength value="50" />
                                    </xs:restriction>
                                  </xs:simpleType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element type="xs:unsignedInt" name="Quantity" />
                          <xs:element name="Comment" minOccurs="0">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="255" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="DeliveryNote">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Id" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>Optional original ONELOX Delivery Note UUID. Providing an ID is
                    recommended when fulfilling for multiple Customers that are allowed to have
                    overlapping Delivery Note numbers</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                  <xs:union>
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:length value="0" />
                      </xs:restriction>
                    </xs:simpleType>
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:length value="36" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:union>
                </xs:simpleType>
              </xs:element>
              <xs:element name="Number">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="100" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

Inventory Data

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
  xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:simpleType name="uuid">
    <xs:restriction base="xs:string">
      <xs:length value="36" />
    </xs:restriction>
  </xs:simpleType>
  <xs:element name="Inventories">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Inventory" minOccurs="0" maxOccurs="unbounded">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="WarehouseId" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>ONELOX Warehouse ID. Must be a valid Warehouse for the
                    Integration. Defaults to the Integration's configured default Warehouse</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                  <xs:union>
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:length value="0" />
                      </xs:restriction>
                    </xs:simpleType>
                    <xs:simpleType>
                      <xs:restriction base="uuid" />
                    </xs:simpleType>
                  </xs:union>
                </xs:simpleType>
              </xs:element>
              <xs:element name="Sku">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="100" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="Type" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>The stock type. Default: A</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:enumeration value="" />
                    <xs:enumeration value="A">
                      <xs:annotation>
                        <xs:documentation>regular stock</xs:documentation>
                      </xs:annotation>
                    </xs:enumeration>
                    <xs:enumeration value="B">
                      <xs:annotation>
                        <xs:documentation>B-stock</xs:documentation>
                      </xs:annotation>
                    </xs:enumeration>
                    <xs:enumeration value="C">
                      <xs:annotation>
                        <xs:documentation>C/damaged/defective/used, unsellable stock</xs:documentation>
                      </xs:annotation>
                    </xs:enumeration>
                    <xs:enumeration value="R">
                      <xs:annotation>
                        <xs:documentation>returned stock</xs:documentation>
                      </xs:annotation>
                    </xs:enumeration>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="Status" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>The stock status. Default: stored</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:enumeration value="" />
                    <xs:enumeration value="approved">
                      <xs:annotation>
                        <xs:documentation>incoming stock, not yet sellable</xs:documentation>
                      </xs:annotation>
                    </xs:enumeration>
                    <xs:enumeration value="stored">
                      <xs:annotation>
                        <xs:documentation>regular, sellable stock</xs:documentation>
                      </xs:annotation>
                    </xs:enumeration>
                    <xs:enumeration value="blocked">
                      <xs:annotation>
                        <xs:documentation>blocked stock, e.g. due to defects or quality control, not
                          sellable</xs:documentation>
                      </xs:annotation>
                    </xs:enumeration>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="Shelf" minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="50" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="Batch" minOccurs="0">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="50" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="SellByDate" minOccurs="0">
                <xs:simpleType>
                  <xs:union>
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:length value="0" />
                      </xs:restriction>
                    </xs:simpleType>
                    <xs:simpleType>
                      <xs:restriction base="xs:date" />
                    </xs:simpleType>
                  </xs:union>
                </xs:simpleType>
              </xs:element>
              <xs:element type="xs:unsignedInt" name="Quantity" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

Outgoing data

Product data

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
  xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:simpleType name="uuid">
    <xs:restriction base="xs:string">
      <xs:length value="36" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="nullableDecimal">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:length value="0" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:decimal" />
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:element name="Product">
    <xs:complexType>
      <xs:sequence>
        <xs:element type="uuid" name="Id" />
        <xs:element name="Sku">
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:maxLength value="100" />
            </xs:restriction>
          </xs:simpleType>
        </xs:element>
        <xs:element name="Name">
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:maxLength value="255" />
            </xs:restriction>
          </xs:simpleType>
        </xs:element>
        <xs:element name="Eans">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Ean" minOccurs="0" maxOccurs="25">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="100" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="Isbn">
          <xs:annotation>
            <xs:documentation>10 or 13 digit ISBN. Digit groups may be separated with a whitespace
              or dash character</xs:documentation>
          </xs:annotation>
          <xs:simpleType>
            <xs:union>
              <xs:simpleType>
                <xs:restriction base="xs:string">
                  <xs:length value="0" />
                </xs:restriction>
              </xs:simpleType>
              <xs:simpleType>
                <xs:restriction base="xs:string">
                  <xs:minLength value="10" />
                  <xs:maxLength value="17" />
                  <xs:pattern value="(\d{3}(\s|-)?)?[\d\-\s]{10,13}" />
                </xs:restriction>
              </xs:simpleType>
            </xs:union>
          </xs:simpleType>
        </xs:element>
        <xs:element name="Asin">
          <xs:annotation>
            <xs:documentation>10 character alpha-numeric Amazon ASIN</xs:documentation>
          </xs:annotation>
          <xs:simpleType>
            <xs:union>
              <xs:simpleType>
                <xs:restriction base="xs:string">
                  <xs:length value="0" />
                </xs:restriction>
              </xs:simpleType>
              <xs:simpleType>
                <xs:restriction base="xs:string">
                  <xs:length value="10" />
                </xs:restriction>
              </xs:simpleType>
            </xs:union>
          </xs:simpleType>
        </xs:element>
        <xs:element name="HsCode">
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:maxLength value="12" />
            </xs:restriction>
          </xs:simpleType>
        </xs:element>
        <xs:element name="Vendor">
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:maxLength value="100" />
            </xs:restriction>
          </xs:simpleType>
        </xs:element>
        <xs:element name="Origin">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="CountryCode">
                <xs:annotation>
                  <xs:documentation>ISO 3166-1 alpha-2 code, e.g. DE</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                  <xs:union>
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:length value="0" />
                      </xs:restriction>
                    </xs:simpleType>
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:length value="2" />
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:union>
                </xs:simpleType>
              </xs:element>
              <xs:element name="ProvinceCode">
                <xs:annotation>
                  <xs:documentation>ISO 3166-2 code, e.g. DE-BE</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="6" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element type="nullableDecimal" name="Weight">
          <xs:annotation>
            <xs:documentation>Weight in grams with milligrams as decimal</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element type="nullableDecimal" name="Length">
          <xs:annotation>
            <xs:documentation>Length in centimeters with millimeters as decimal</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element type="nullableDecimal" name="Width">
          <xs:annotation>
            <xs:documentation>Width in centimeters with millimeters as decimal</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element type="nullableDecimal" name="Height">
          <xs:annotation>
            <xs:documentation>Height in centimeters with millimeters as decimal</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="Price">
          <xs:simpleType>
            <xs:union>
              <xs:simpleType>
                <xs:restriction base="xs:string">
                  <xs:length value="0" />
                </xs:restriction>
              </xs:simpleType>
              <xs:simpleType>
                <xs:restriction base="xs:string">
                  <xs:maxLength value="50" />
                  <xs:pattern value="[0-9]+(\.([0-9]{2}))?" />
                </xs:restriction>
              </xs:simpleType>
            </xs:union>
          </xs:simpleType>
        </xs:element>
        <xs:element name="PackagingUnit">
          <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
              <xs:minInclusive value="1" />
            </xs:restriction>
          </xs:simpleType>
        </xs:element>
        <xs:element name="ShippingUnit">
          <xs:simpleType>
            <xs:union>
              <xs:simpleType>
                <xs:restriction base="xs:string">
                  <xs:length value="0" />
                </xs:restriction>
              </xs:simpleType>
              <xs:simpleType>
                <xs:restriction base="xs:unsignedInt" />
              </xs:simpleType>
            </xs:union>
          </xs:simpleType>
        </xs:element>
        <xs:element name="ShippingType">
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:enumeration value="" />
              <xs:enumeration value="bag" />
              <xs:enumeration value="box" />
              <xs:enumeration value="bulk" />
              <xs:enumeration value="loose" />
            </xs:restriction>
          </xs:simpleType>
        </xs:element>
        <xs:element type="xs:boolean" name="Refrigerated" />
        <xs:element type="xs:boolean" name="DangerousGoods" />
        <xs:element type="xs:boolean" name="Battery" />
        <xs:element type="xs:boolean" name="Fragile" />
        <xs:element type="xs:boolean" name="Batchable" />
        <xs:element type="xs:boolean" name="Perishable" />
        <xs:element type="xs:boolean" name="HasSerialNumbers" />
        <xs:element type="xs:boolean" name="Storable" />
        <xs:element name="Attributes">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Attribute" minOccurs="0" maxOccurs="100">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Key">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:maxLength value="100" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="Value">
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:extension base="xs:string">
                            <xs:attribute type="xs:string" name="type" />
                          </xs:extension>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:attribute type="xs:dateTime" name="lastChange" />
    </xs:complexType>
  </xs:element>
</xs:schema>

Delivery Note data

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
  xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:simpleType name="uuid">
    <xs:restriction base="xs:string">
      <xs:length value="36" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="nullableDateTime">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:length value="0" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:dateTime" />
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="attributeValue">
    <xs:restriction base="xs:string">
      <xs:maxLength value="100" />
    </xs:restriction>
  </xs:simpleType>
  <xs:element name="DeliveryNote">
    <xs:complexType>
      <xs:sequence>
        <xs:element type="uuid" name="Id" />
        <xs:element name="Status">
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:enumeration value="open" />
              <xs:enumeration value="pending" />
              <xs:enumeration value="in_picking" />
              <xs:enumeration value="packed" />
              <xs:enumeration value="shipped" />
              <xs:enumeration value="invalid" />
              <xs:enumeration value="error" />
              <xs:enumeration value="cancelled" />
            </xs:restriction>
          </xs:simpleType>
        </xs:element>
        <xs:element type="xs:date" name="OrderDate" />
        <xs:element name="OrderNumber">
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:maxLength value="100" />
            </xs:restriction>
          </xs:simpleType>
        </xs:element>
        <xs:element name="Number">
          <xs:annotation>
            <xs:documentation>Unique per DataSourceId</xs:documentation>
          </xs:annotation>
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:maxLength value="100" />
            </xs:restriction>
          </xs:simpleType>
        </xs:element>
        <xs:element name="DeliveryDate">
          <xs:annotation>
            <xs:documentation>The delivery date requested by the customer</xs:documentation>
          </xs:annotation>
          <xs:simpleType>
            <xs:union>
              <xs:simpleType>
                <xs:restriction base="xs:string">
                  <xs:length value="0" />
                </xs:restriction>
              </xs:simpleType>
              <xs:simpleType>
                <xs:restriction base="xs:date" />
              </xs:simpleType>
            </xs:union>
          </xs:simpleType>
        </xs:element>
        <xs:element type="uuid" name="DataSourceId">
          <xs:annotation>
            <xs:documentation>ONELOX DataSource ID. Contains the ID of the Delivery Note's source
              Integration</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="Warehouse">
          <xs:complexType>
            <xs:sequence>
              <xs:element type="uuid" name="Id">
                <xs:annotation>
                  <xs:documentation>ONELOX Warehouse ID</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="externalId">
              <xs:annotation>
                <xs:documentation>Optional original external system warehouse ID, if configured in
                  ONELOX</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:string">
                  <xs:maxLength value="255" />
                </xs:restriction>
              </xs:simpleType>
            </xs:attribute>
          </xs:complexType>
        </xs:element>
        <xs:element name="Customer">
          <xs:complexType>
            <xs:sequence>
              <xs:element type="uuid" name="Id">
                <xs:annotation>
                  <xs:documentation>ONELOX Customer ID</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="Number">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="100" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="Name">
                <xs:annotation>
                  <xs:documentation>Company name for B2B customers or full name for B2C customers.
                    This value depends on the Delivery Note's source Integration capabilities and
                    should be treated as a freetext field</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="255" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="Email">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="255" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="Address">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Company">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="255" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="FirstName">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="255" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="LastName">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="255" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="Email">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="255" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="Phone">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="15" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="Street">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="255" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="AddressAddition">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="255" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="ZipCode">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="20" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="City">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="100" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="Province">
                <xs:annotation>
                  <xs:documentation>Province name or ISO 3166-2 code. This value depends on the
                    Delivery Note's source Integration capabilities and should be treated as a
                    freetext field</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="100" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="Country">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="100" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="CountryCode">
                <xs:annotation>
                  <xs:documentation>ISO 3166-1 alpha-2 code</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:length value="2" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="ShippingMethod">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Name">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="100" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="Carrier">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="100" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="ExternalComment">
          <xs:annotation>
            <xs:documentation>Comment directed at the Fulfiller. May contain information relevant
              for fulfillment</xs:documentation>
          </xs:annotation>
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:maxLength value="1000" />
            </xs:restriction>
          </xs:simpleType>
        </xs:element>
        <xs:element name="InternalComment">
          <xs:annotation>
            <xs:documentation>Comment for internal use. May contain information regarding the
              Delivery Note or Order, e.g. for customer support</xs:documentation>
          </xs:annotation>
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:maxLength value="1000" />
            </xs:restriction>
          </xs:simpleType>
        </xs:element>
        <xs:element name="Attributes">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Attribute" minOccurs="0" maxOccurs="100">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Key">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:maxLength value="100" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="Value">
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:extension base="attributeValue">
                            <xs:attribute type="xs:string" name="type" />
                          </xs:extension>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="Positions">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Position" minOccurs="1" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element type="uuid" name="Id" />
                    <xs:element name="ParentId">
                      <xs:annotation>
                        <xs:documentation>Optional grouping parent position UUID</xs:documentation>
                      </xs:annotation>
                      <xs:simpleType>
                        <xs:union>
                          <xs:simpleType>
                            <xs:restriction base="xs:string">
                              <xs:length value="0" />
                            </xs:restriction>
                          </xs:simpleType>
                          <xs:simpleType>
                            <xs:restriction base="uuid" />
                          </xs:simpleType>
                        </xs:union>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="ProductId">
                      <xs:annotation>
                        <xs:documentation>ONELOX Product ID. Optional only if isVirtual is true</xs:documentation>
                      </xs:annotation>
                      <xs:simpleType>
                        <xs:union>
                          <xs:simpleType>
                            <xs:restriction base="xs:string">
                              <xs:length value="0" />
                            </xs:restriction>
                          </xs:simpleType>
                          <xs:simpleType>
                            <xs:restriction base="uuid" />
                          </xs:simpleType>
                        </xs:union>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="Sku">
                      <xs:annotation>
                        <xs:documentation>Optional only if isVirtual is true</xs:documentation>
                      </xs:annotation>
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:maxLength value="100" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="Title">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:maxLength value="255" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element type="xs:nonNegativeInteger" name="Quantity" />
                    <xs:element name="FulfilledQuantity">
                      <xs:simpleType>
                        <xs:union>
                          <xs:simpleType>
                            <xs:restriction base="xs:string">
                              <xs:length value="0" />
                            </xs:restriction>
                          </xs:simpleType>
                          <xs:simpleType>
                            <xs:restriction base="xs:nonNegativeInteger" />
                          </xs:simpleType>
                        </xs:union>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="Price">
                      <xs:simpleType>
                        <xs:union>
                          <xs:simpleType>
                            <xs:restriction base="xs:string">
                              <xs:length value="0" />
                            </xs:restriction>
                          </xs:simpleType>
                          <xs:simpleType>
                            <xs:restriction base="xs:string">
                              <xs:maxLength value="50" />
                              <xs:pattern value="[0-9]+(\.([0-9]{2}))?" />
                            </xs:restriction>
                          </xs:simpleType>
                        </xs:union>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="RequestedBatch">
                      <xs:simpleType>
                        <xs:union>
                          <xs:simpleType>
                            <xs:restriction base="xs:string">
                              <xs:length value="0" />
                            </xs:restriction>
                          </xs:simpleType>
                          <xs:simpleType>
                            <xs:restriction base="xs:string">
                              <xs:maxLength value="50" />
                            </xs:restriction>
                          </xs:simpleType>
                        </xs:union>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="RequestedSerialNumbers">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="RequestedSerialNumber" minOccurs="0"
                            maxOccurs="unbounded">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:maxLength value="50" />
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Comment">
                      <xs:annotation>
                        <xs:documentation>Comment directed at the Fulfiller. May contain information
                          relevant for fulfillment, e.g. specific packing instructions</xs:documentation>
                      </xs:annotation>
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:maxLength value="255" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                  </xs:sequence>
                  <xs:attribute type="xs:boolean" name="isGrouping" use="optional" />
                  <xs:attribute type="xs:boolean" name="isVirtual" use="optional" />
                  <xs:attribute type="xs:boolean" name="isFulfilled" use="optional" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="Documents" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Documents attached to the Delivery Note. Document transfer must be
              enabled in the Integration</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Document" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Type">
                      <xs:annotation>
                        <xs:documentation>The Document type. Types are unique, i.e. only a single
                          delivery_note Document will be available per Delivery Note. Untyped
                          Documents (type is empty) are not limited</xs:documentation>
                      </xs:annotation>
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:enumeration value="" />
                          <xs:enumeration value="delivery_note" />
                          <xs:enumeration value="invoice" />
                          <xs:enumeration value="pro_forma_invoice" />
                          <xs:enumeration value="shipping_label" />
                          <xs:enumeration value="sscc_label" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="FileName">
                      <xs:annotation>
                        <xs:documentation>The visible file name for the Document</xs:documentation>
                      </xs:annotation>
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:maxLength value="255" />
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element type="xs:base64Binary" name="Content">
                      <xs:annotation>
                        <xs:documentation>The base64 encoded file content</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:attribute type="xs:dateTime" name="lastChange" />
      <xs:attribute type="nullableDateTime" name="cancelledAt" />
      <xs:attribute type="nullableDateTime" name="closedAt" />
    </xs:complexType>
  </xs:element>
</xs:schema>