XML-Beschreibung

image_pdfimage_print

Automatischer Datenimport/-export

Mit unserem Modul Wemalo XML kann ein automatischer Datenaustausch eingerichtet werden.

Dabei können die folgenden Daten ausgetauscht werden:

  • Produktstammdaten als XML nach Wemalo
    (siehe dazu Datenabgleich für Fashion(Multivarianten)-Produkte)
  • Warenausgangsaufträge als XML nach Wemalo
    (siehe dazu Import Aufträge)
  • Versendete Pakete inkl. Trackingnummern von Wemalo als XML
    (siehe dazu Rückmeldung versendeter Pakete)
  • Bestandsänderungen (Waren- und Retouren-Eingang) von Wemalo als XML
    (siehe dazu Rückmeldung Wareneingang und Rückmeldung Retoure)

Der Ablauf sieht wie folgt aus:

  • In regelmäßigen Abständen (z.B. alle 15 Minuten) sieht Wemalo auf einem FTP-Server nach, ob es neue Dateien (Produkte oder Warenausgangsaufträge) gibt, die importiert werden müssen.
  • Diese XML-Dateien werden heruntergeladen und in Wemalo eingespielt.
  • Anschließend erstellt Wemalo für das Zurückspielen von Informationen (versendete Pakete oder Bestandsänderungen) ebenfalls XML-Dateien und lädt diese auf den FTP-Server hoch.

wemalo-xml ist eine Schnittstelle zum Austausch von Stammdaten über einen XML-Austausch.

Produktstammdaten

Für den Abgleich von Produktstammdaten steht eine XML-Schnittstelle zur Verfügung.

Alle Formate haben die Bedingung, dass die SKU der Produkte eindeutig sein muss. Ferner wird empfohlen, auch die EAN-Nummern eindeutig zu pflegen, damit diese beim Scannen eindeutig ermittelt werden kann.

Datenabgleich für Fashion(Multivarianten)-Produkte

Wemalo bietet eine XML-Schnittstelle für den Austausch von Produktstammdaten an. Diese Schnittstelle kann für Fashion- als auch für Fulfillment-Mandanten eingesetzt werden. In letzterem Fall kann der Teil ab <Colours> freigelassen werden.

Für Fashion-Mandanten ermöglicht diese XML-Struktur eine Separierung zwischen verschiedenen Modellen, Farben und Größen erlaubt. Die SKU wird hierbei jeweils automatisch generiert.

Der folgende Ausschnitt zeigt eine Fashion-XML:

 

<?xml version="1.0" encoding="utf-8"?>
<productsType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 <Client>
  <!-- ExtId ist leer, wenn es mehrere Farben/Größen gibt 
    in einer Datei können mehrere Produkte in der Kategorie Models angegeben werden 
    
    Description optionale Produktbeschreibung
    ExtId externe Produktreferenz    
    -->
  <Models>
   <Model Description="Produktbeschreibung" ExtId="PROD-1">
    <Name>Produktname</Name> <!-- Produktbeschreibung (wird beim Picken/Packen angezeigt) -->
    <SKU>PROD-SKU-1</SKU>
    <EAN>123456789</EAN> <!-- optionale EAN -->
    <EAN2></EAN2> <!-- optionale EAN 2 -->
    <EAN3></EAN3> <!-- optionale EAN 3 -->
    <GrossWeight>650</GrossWeight> <!-- Bruttogewicht in Gramm (double) -->
    <NetWeight>500</NetWeight> <!-- Nettogewicht in Gramm (double) --> 
    <Depth>17</Depth> <!-- Tiefe in cm (double) -->
    <Width>12.5</Width> <!-- Breite in cm (double) -->
    <Height>6.5</Height> <!-- Höhe in cm (double) -->
    <Volume>1381.25</Volume> <!-- Volumen in cm (double). Optional, da durch wemalo ermittelt. -->
    <ProductImageUrl>http://img.todownload.com</ProductImageUrl> <!-- optionale Produktbild-URL -->
    <ProducerName>optionaler Herstellername</ProducerName>
    <ProductGroup>optionale Produktgruppe</ProductGroup>
    <CustomsTariffNumber>optionale Zolltarifnummer</CustomsTariffNumber>
    <OriginCountry>optionales Herstellungsland</OriginCountry>
   </Model>
  </Models>
 </Client>
</productsType>

Pflichtfelder sind die Produkt-SKU, die externe ID und der Produktname.

Der Dateiname muss products enthalten und auf xml enden, z.B. products_160517.xml.

 

Abgleich Warenausgang

Zunächst können Lieferscheine bzw. Warenausgangsaufträge an Wemalo übergeben werden. Im Laufe des Workflows generiert Wemalo Meldungen über versendete Pakete und meldet Trackingnummern zurück.

Import von Warenausgangsaufträgen

Der folgende Ausschnitt zeigt anhand eines Beispiels, wie die Importdatei für Warenausgangsaufträge aussehen kann.


<?xml version="1.0" encoding="utf-8"?>
<ordersType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<!-- 
eine Datei kann mehrere Warenausgangsaufträge beinhalten
OrderNr Mandantenauftragsnummer
OrderExtId die externe ID wird für das Matching des WA-Auftrages verwendet -->
 <Order OrderNr="AUF-102" OrderExtId="102">
  <HeaderData>
   <DispatcherProfile ExtId="dhl-1"/> <!-- ExtId für Matching Versandprofil. Optional! -->
   <PickingNotice>picking info (Optional)</PickingNotice>
   <TotalPriceNetCent>11000</TotalPriceNetCent> <!-- optionaler Nettopreis (für Nachname wichtig) -->
   <TotalPriceGrossCent>0</TotalPriceGrossCent> <!-- optionaler Bruttobetrag (für Nachname wichtig) -->
   <TotalVatCent>322</TotalVatCent> <!-- optionaler Mehrwertsteuerbetrag -->
   <TotalInvoiceCent>11322</TotalInvoiceCent> <!-- optioner Rechnungsbetrag -->
   <Currency>EUR</Currency> <!-- optionale Währung -->
   <DescriptionOfGoods>Diverse (Optional)</DescriptionOfGoods>
   <B2B>1</B2B> <!-- B2C=0, B2B=1. Angabe ist optional -->
   <Blocked>0</Blocked> <!-- z.B. um Vorkasse zu blockieren. Angabe ist optional -->
   <ExtraInfo>info 1 (Optional)</ExtraInfo>
   <ExtraInfo2>info 2 (Optional)</ExtraInfo2>
   <ExtraInfo3>info 3 (Optional)</ExtraInfo3>
   <ExtraInfo4>info 4 (Optional)</ExtraInfo4>
   <CustomerNumber>cust1234 (Optional)</CustomerNumber>
  </HeaderData>
  <Receiver>
   <Name1>Firma XYZ AG</Name1> <!-- je nach Shopsystem steht in Name1 der Vorname und in Name2 der Nachname -->
   <Name2>z.Hd. Herr Max Mustermann</Name2>
   <Str>Musterstraße</Str> <!-- Straße -->
   <StrNr>14a</StrNr> <!-- Hausnummer -->
   <CountryCode>DE</CountryCode> <!-- TwoLetter Country Code --> 
   <Zip>11111</Zip> <!-- Postleitzahl -->
   <City>Musterstadt</City> <!-- Stadt --> 
   <Tel>0123456789</Tel> <!-- Telefon (optional, allerdings oftmals von Versanddienstleistern benötigt) -->
   <Email>mail@mail.mail</Email> <!-- E-Mail (optional) -->
  </Receiver>
  <Article>
<!-- kann mehrere Positionen beinahlten 
ExtId externe Produktreferenz
SerialNumber optionale Möglichkeit Produkte einer bestimmten Seriennummer zu bestellen
-->
   <Item ExtId="PROD-1" SKU="PROD-SKU-1" SerialNumber="">
    <Quantity>2</Quantity> <!-- Menge -->
    <Price>111000</Price> <!-- optionaler Price (z.B. bei Generierungs Zolldokumente benötigt) -->
    <Discount>0</Discount> <!-- optionaler Rabatt -->
    <VAT>322.0</VAT> <!-- optionale Mehrwertsteuer -->
    <Currency>EUR</Currency> <!-- optionale Währung -->
   </Item>
  </Article>
 </Order>
</ordersType>

Der Dateiname muss goodsorders enthalten und auf xml enden, z.B. goodsorders_160517.xml.

Rückmeldung versendeter Pakete

Bei der Rückmeldung von versendeten Paketen wird ein Bezug zum Lieferschein, dem verwendeten Versandprofil und der Trackingnummer hergestellt. Außerdem wird der Paketinhalt das Gesamtgewicht des Paketes in Gramm übertragen.

 

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ordersInfoType>
  <!--
    beinhaltet mehrere "Order" => je Auftrag ein Order-Knoten
    
    ID interne ID aus wemalo
    OrderNr Mandantenauftragsnummer                      
    ExtID externe Auftrags-ID 
    Status Auftragsstatus: SENT=komplett versendet FULFILLMENT=Teilversand
  -->
    <Order ID="37273" OrderNr="94351" ExtID="487543" Status="SENT">
        <!-- ein Auftrag kann aus mehreren OrderParcel bestehen 
        ID interne ID aus wemalo
        -->
        <OrderParcel ID="1212">
            <Weight>0 <!-- Paketgewicht --></Weight>
            <TrackingNumber>112233445566778899  <!-- Trackingnummer (Optional) --></TrackingNumber>
             <!-- gewählter Versanddienstleister (Optional) 
             DispatcherName Name des Versanddienstleisters
             DispatcherProduct gewähltes Versandprodukt
             -->
            <DispatcherProfile DispatcherName="DHL" DispatcherProduct="V01PAK"  />
            <Article>
              <!-- ein Paket kann mehrere Artikel beinhalten 
               ExtId externe Produkt-Referenz
               SKU
              -->
                <Item ExtId="210639" SKU="5705260048438">
                    <Quantity>1</Quantity> <!-- enthaltene Menge -->
                    <Serialnumber><!-- optionale Seriennummer - wenn Seriennummer vorhanden, dann ist Quantity immer 1 --></Serialnumber>
                </Item>
            </Article>
            <HandoverDate>15.10.2018 17:07:55</HandoverDate> <!-- Versanddatum -->
        </OrderParcel>
        <!--
          weitere Header- und Empfänger-Informationen aus Ursprungsauftrag
        -->
        <ExtraInfo>info 1 (Optional)</ExtraInfo>
        <ExtraInfo2>info 2 (Optional)</ExtraInfo2>
        <ExtraInfo3>info 3 (Optional)</ExtraInfo3>
        <ExtraInfo4>info 4 (Optional)</ExtraInfo4>
        <DepartmentNumber></DepartmentNumber>
        <CustomerNumber></CustomerNumber>
        <Receiver>
            <Name1>Firma XYZ AG</Name1>
            <Name2>z.Hd. Herr Max Mustermann</Name2>
            <Name3></Name3>
            <Str>Musterstraߟe</Str>
            <StrNr>14a</StrNr>
            <Addition></Addition>
            <CountryCode>DE</CountryCode>
            <Zip>11111</Zip>
            <City>Musterstadt</City>
        </Receiver>
    </Order>
    <Order ID="37325" OrderNr="AUF-102" ExtID="102" Status="SENT">
        <OrderParcel ID="1225">
            <Weight>0</Weight>
            <TrackingNumber>222201030000119801</TrackingNumber>
            <DispatcherProfile DispatcherName="DHL WS" DispatcherProduct="V01PAK"/>
            <Article>
                <Item ExtId="PROD-1" SKU="PROD-SKU-1">
                    <Quantity>1</Quantity>
                    <Serialnumber></Serialnumber>
                </Item>
                <Item ExtId="" SKU="Heftchen (Beilage)">
                    <Quantity>1</Quantity>
                    <Serialnumber></Serialnumber>
                </Item>
                <Item ExtId="PROD-1" SKU="PROD-SKU-1">
                    <Quantity>1</Quantity>
                    <Serialnumber></Serialnumber>
                </Item>
            </Article>
            <HandoverDate>29.10.2018 18:39:06</HandoverDate>
        </OrderParcel>
        <ExtraInfo>info 1 (Optional)</ExtraInfo>
        <ExtraInfo2>info 2 (Optional)</ExtraInfo2>
        <ExtraInfo3>info 3 (Optional)</ExtraInfo3>
        <ExtraInfo4>info 4 (Optional)</ExtraInfo4>
        <DepartmentNumber></DepartmentNumber>
        <CustomerNumber></CustomerNumber>
        <Receiver>
            <Name1>Firma XYZ AG</Name1>
            <Name2>z.Hd. Herr Max Mustermann</Name2>
            <Name3></Name3>
            <Str>Musterstraße</Str>
            <StrNr>14a</StrNr>
            <Addition></Addition>
            <CountryCode>DE</CountryCode>
            <Zip>11111</Zip>
            <City>Musterstadt</City>
        </Receiver>
</ordersInfoType>

Es werden die versendeten Pakete übermittelt. Im Tag Order ist zu sehen, in welchem Status sich der Auftrag befindet. Dabei steht FULFILLMENT für einen teilweise versendeten Auftrag und SENT für einen vollständigen Versand.

Der Dateiname sieht z.B. wie folgt aus: sentorder_97_ftp_20181029_180000.xml

Er besteht aus der XML-Art (hier sentorder), der internen wemalo Mandanten-ID, der Übertragungsart (ftp) und einem Zeitstempel.

Übermittlung Bestandsänderungen

Der Aufbau der XML-Datei sieht wie folgt aus:

 

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<incomingStockType StockType="STOCK">
<!-- kann mehrere Lieferungen beinhalten
OrderId wemalo interne Auftrags-ID
ExtId externe Auftrags-ID, falls Wareneingang avisiert worden ist
-->
 <Delivery OrderId="243976" ExtId="">
<!-- wird durch wemalo gesetzt -->
  <Storage>0</Storage>
<!-- wird durch wemalo gesetzt -->
  <Client>0</Client>
<!-- ein Autrag kann mehrere Artikel beinhalten.
Zu beachten ist, dass hierbei die gebuchten Positionen zurückgemeldet werden, und der
Target-Actual-Abgleich anhand der Avise ausgegeben wird. Es wird nicht der aktuelle
Lagerbestand gemeldet. -->
   <Products>
<!-- Jedes Item entspricht einer Position im Wareneingangsauftrag
ExtId externe Produktreferenz
SKU 
-->
    <Item ExtId="PROD-1" SKU="PROD-SKU-1">
<!-- wird immer 0 sein, da über XML keine Avise stattfindet -->
     <TargetQuantity>0</TargetQuantity>
<!-- gebuchte Anzahl -->
     <ActualQuantity>38</ActualQuantity>
<!-- wemalo interne Gebinde-ID -->
     <ProductUnitId>0</ProductUnitId>
    </Item>
    <Item ExtId="PROD-1" SKU="PROD-SKU-1">
     <TargetQuantity>0</TargetQuantity>
     <ActualQuantity>12</ActualQuantity>
     <ProductUnitId>0</ProductUnitId>
    </Item>
    <Item ExtId="PROD-2" SKU="PROD-SKU-2">
     <TargetQuantity>0</TargetQuantity>
     <ActualQuantity>50</ActualQuantity>
     <ProductUnitId>0</ProductUnitId>
    </Item>
   </Products>
  </Delivery>
</incomingStockType>

Dateiname: incoming_ftp_97_20181024_152602_.xml
Er besteht aus der XML-Art (hier incoming), der internen wemalo Mandanten-ID, der Übertragungsart (ftp) und einem Zeitstempel.

Sidebar