youorder.de - API-Bestellsystem
Inhaltsübersicht
- Grundlagen
- API-Methode und XML-Struktur, Beispiele
- Elemente der Bestellung
- Elemente eines Artikels
- Elemente einer Adresse
- Rückgabewerte
- Einschränkungen
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. |
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&dAuth=example.com&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.