youorder.de - API-Bestellsystem

Inhaltsübersicht

Grundlagen

Das Bestellsystem basiert auf der bekannten youorder-XML-API. Durch das Senden eines POST-Requests mit einer vordefinierten XML-Struktur können automatisiert Bestellungen in unserem System aufgegeben werden. Für diesen Dienst müssen Sie zunächst freigeschaltet werden, wenden Sie sich dafür über das Kontaktformular an uns.

API-Methode und XML-Struktur

Die Bestellung wird über die spezielle API-Methode sendRequest ausgelöst. Wie bei allen anderen Anfragen an unsere API müssen auch hier die Authentifizierungs-Parameter in der URL übertragen werden. Im Gegensatz zu den anderen Methoden benötigt sendRequest aber eine POST-Anfrage mit einem Parameter xml, der die Bestelldetails als XML mit UTF-8-Kodierung enthält.

Eine solche XML sieht beispielsweise wie folgt aus:

<?xml version="1.0" encoding="UTF-8"?>
<request>
    <items>
        <item>
            <productID>1215</productID>
        </item>
        <item>
            <articleNumber>rkue 304015</articleNumber>
<amount>2</amount>
        </item>
    </items>
</request>

Dies würde 1x den Artikel mit der ID "1215" und 2x den Artikel mit der Artikelnummer "rkue 304015" zu der Standardlieferzeit von 2 Werktagen an Ihre Standardadressen bestellen. Sie erhalten eine Bestätigungs-E-Mail, sofern Sie in Ihrem youorder-Account den Empfang von Status-E-Mails aktiviert haben.

Eine XML mit sehr umfangreicher Struktur kann auch wie folgt aussehen. Dort werden einige Optionen sowie individuelle Versand- und Rechnungsanschriften angegeben.

<?xml version="1.0" encoding="UTF-8"?>
<request>
<errorEMail>1</errorEMail>
    <allowIncomplete>0</allowIncomplete>
    <checkPrice>0</checkPrice>
    <commission>Huber</commission>
    <shipDate>YYYY-MM-DD</shipDate>
    <requestType>1</requestType>
    <requestComments></requestComments>
<shipAddressID>0</shipAddressID>
    <shipAddress>
        <company>StockWerk42</company>
        <userTitle>Herr</userTitle>
        <firstName>Max</firstName>
        <lastName>Muster</lastName>
<division>Abteilung X</division>
        <street>Musterstraße 3</street>
<addressAddition>- Lieferanteneingang -</addressAddition>
        <postcode>90012</postcode>
        <residence>Musterstadt</residence>
        <country>Deutschland</country>
    </shipAddress>
<invoiceAddressID>0</invoiceAddressID>
    <invoiceAddress>
        <company>StockWerk42</company>
        <userTitle>Herr</userTitle>
        <firstName>Max</firstName>
        <lastName>Muster</lastName>
<division>Rechnungsstelle</division>
        <street>Musterstraße 3</street>
<addressAddition>- Rechnungsstelle -</addressAddition>
        <postcode>90012</postcode>
        <residence>Musterstadt</residence>
        <country>Deutschland</country>
    </invoiceAddress>
    <items>
        <item>
            <productID>1215</productID>
            <versionID>0</versionID>
<articleNumber>rkue 012345</articleNumber>
<eanCode>0123456789012</eanCode>
            <amount>1</amount>
            <price></price>
            <comment></comment>
        </item>
    </items>
</request>

Elemente der Bestellung

Im Folgenden werden die einzelnen Elemente beschrieben. Sofern nicht anders angegeben, sind alle Elemente optional. Um den Ablauf zu testen und keine tatsächliche Bestellung auszulösen, kann als weiterer GET-Parameter &inDevMode=1 angehängt werden. In diesem Fall wird die Bestellung nur an unseren Testserver geleitet und nicht ausgeliefert.

Element: Wert-Typ: Standardwert: Beschreibung:
errorEMail boolean (0/1) 1 Falls nicht alle Produkte gefunden werden oder Preise nicht übereinstimmen (mit Parameter "checkPrice"), wird eine E-Mail an die in youorder hinterlegte Adresse gesendet.
allowIncomplete boolean (0/1) 0 Gibt an, ob eine Bestellung auch dann abgesendet werden soll,
wenn mindestens ein Produkt nicht gefunden wird oder ungültig ist.
checkPrice boolean (0/1) 0 Wenn dieser Parameter wahr ist, wird das Produkt nur bestellt, wenn der angegebene Nettopreis mit dem aktuell im System hinterlegten Preis übereinstimmt.
Siehe dazu auch den Parameter price der Artikel.
commission string   Kommission.
shipDate Datum nach XSD-Standard
(YYYY-MM-DD)
2-5 Werktage oder
individuelle Versand-Tour, falls hinterlegt

Gibt das gewünschte Lieferdatum an.
Üblicherweise je nach Lieferant 2-5 Werktage in der Zukunft. Samstage und Sonntage können nicht gewählt werden.

requestType int (1-4) 1 (Bestellung) Gibt die Art der Bestellung (bzw. Anfrage) an.
1 = Bestellung
2 = Angebotsanfrage
3 = Lager-/Lieferanfrage
4 = Sonstige Anfrage
requestComments string   Kommentare zur Bestellung, individuelle Mitteilungen, etc.
shipAddressID int Ihre in youorder angegebene
Standard-Versandadresse
Gibt die ID der Versandadresse an. Wird ignoriert, falls das Element "shipAddress" existiert.
Die IDs Ihrer Adressen können über die Methode getAddresses ermittelt werden.
Die IDs sind im gesamten System eindeutig und verändern sich nicht.
invoiceAddressID int Ihre in youorder angegebene
Standard-Rechnungsadresse
Gibt die ID der Rechnungsadresse an. Wird ignoriert, falls das Element "invoiceAddress" existiert.
Siehe auch shipAddressID.
shipAddress
invoiceAddress
XML-Kindelement,
siehe unten
  Angabe einer neuen, benutzerdefinierten Versand-/Rechnungsadresse.
Unternehmen/Nachname, Straße, PLZ und Ort sind dann erforderlich.
Detaillierte Beschreibung siehe unten.
items
(Erforderlich)
XML-Kindelement,
siehe unten
  Enthält die Artikel des Auftrags.
Detaillierte Beschreibung siehe unten.

Elemente eines Artikels

Element: Wert-Typ: Standardwert: Beschreibung:
productID int   Produkt-ID des Artikels.
Sollte die Produkt-ID mehrfach vorkommen, werden die Artikel zusammengefasst.
Es ist entweder die Produkt-ID, die Artikelnummer oder der EAN-Code erforderlich.
versionID
(Veraltet)
int   (Veraltet) Ausführungs-ID des Artikels.
Aus Gründen der Abwärtskompatibilität noch vorhanden, kann in Zukunft entfernt werden.
articleNumber string   Artikelnummer des Artikels.
eanCode string   EAN-Code des Artikels.
amount int 1 Bestellmenge.
price float   Produktpreis (Netto).
Nur relevant in Verbindung mit der Option "checkPrice".
Die englische, XML-konforme Notation von Zahlen ist zu verwenden:
Kein Tausender-Trennzeichen, Punkt als Dezimaltrennzeichen.
comment string   Zusatzangaben zum Artikel.

Anmerkung: Für einen Artikel muss entweder eine ID, eine Artikelnummer oder der EAN-Code angegeben werden. Sind mehrere dieser Felder vorhanden, so lautet die Priorität: Ausführungs-ID, Produkt-ID, Artikelnummer, EAN-Code. In diesem Fall findet keine Prüfung der Konsistenz mit den anderen angegebenen Feldern (IDs, Artikelnummern, EAN) statt.

Derzeit sind im youorder-System Artikelnummern und EAN-Codes nicht für alle Artikel korrekt und eindeutig gepflegt. Sollte eine Artikelnummer / ein EAN-Code nicht oder mehrfach gefunden werden, wird ein entsprechender Fehler zurückgegeben und der Artikel nicht bestellt.

Es ist darüber hinaus wichtig, die Artikelnummern anzugeben, wie sie im youorder-System hinterlegt sind, z.B. "asca VN10XBEXPTSKL" für einen Artikel von AstraCast oder "rkue 304015" für einen Artikel von rKüchentechnik.

Elemente einer Versand- oder Rechnungsadresse

Falls eine benutzerdefinierte Versand- oder Rechnungsadresse angegeben wird, gilt für diese Elemente:

Element: Wert-Typ: Standardwert: Beschreibung:
company
(Erforderlich)
string   Unternehmen
Nur erforderlich, wenn kein Nachname angegeben wird.
userTitle string (Herr / Frau)   Anrede
firstName string   Vorname
lastName
(Erforderlich)
string   Nachname
Nur erforderlich, wenn kein Unternehmen angegeben wird.
division string   Abteilung
street
(Erforderlich)
string   Straße und Hausnummer
addressAddition string   Adresszusatz
postcode
(Erforderlich)
string   Postleitzahl
residence
(Erforderlich)
string   Ort
country string Deutschland Land

Rückgabewerte

Sie erhalten als Antwort eine XML nach dem youorder-Standard. Sollte kein Fehler aufgetreten sein, erhalten Sie zusätzlich die Bestell-ID sowie einen API-Link, um eine Bestellbestätigung als PDF herunterzuladen.

Es ist zu beachten, dass der Link für die Bestellbestätigung nur am selben Tag gültig ist, da auch hier die youorder-API genutzt wird.

Eine Antwort sieht beispielsweise wie folgt aus:

<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>
    <function>sendRequest</function>
    <version>1.0</version>
    <message>Die Anfrage war erfolgreich.</message>
    <messageCode>0</messageCode>
    <inDevMode>0</inDevMode>
  </status>
  <request>
    <requestID>123456789</requestID>
    <requestNr>201601-123456789</requestNr>
    <requestPDF>https://api.youorder.de/getRequestPDF?requestID=123456789&amp;dAuth=example.com&amp;dHash=XXXX</requestPDF>
    <requestPDFSpare>https://api.youorder.de/getRequestPDF?requestID=123456789</requestPDFSpare>
  </request>
</response>

Einschränkungen

Bitte haben Sie Verständnis dafür, dass Konfigurator-Produkte zum jetzigen Zeitpunkt nicht über die API bestellt werden können.