Zum Hauptinhalt springen
Mit dem WS-Bestellgenerator lösen Sie automatisierte Bestellungen im Shop aus. Die Daten eines Auftrags werden als XML übergeben. Die Schnittstelle eignet sich besonders für wiederkehrende Bestellungen im B2B-Umfeld und ist für das Abo-Modul Voraussetzung.

Die beiden Übergabewege

Manuell über die Web-Applikation. Die XML-Daten werden als Datei zu einer Web-Applikation hochgeladen und dort verarbeitet. Die Datei heißt immer orders.xml, der Upload läuft SSL-verschlüsselt. Anwender müssen im Shop angemeldet sein und eine Berechtigung für den Bestellgenerator haben. Diese Berechtigung ist ein Flag im Kundenstamm und wird vom Shopbetreiber zugewiesen, entweder im Online-Servicebereich oder über den Kundendatenimport. In einer Datei lassen sich bis zu 1000 Aufträge auf einmal übergeben.
Automatisiert ohne Web-Applikation. Die XML-Daten gehen Blowfish-verschlüsselt direkt an den Shop. Pro Aufruf wird genau ein Auftrag übergeben, der Shop antwortet mit dem Ergebnis der Verarbeitung als XML.

Funktionsumfang

Der Bestellgenerator unterstützt nicht alle Funktionen des Shops. Bei den Zahlungsarten sind nur Offline-Methoden möglich sowie Online-Methoden ohne Client-Authentifizierung, also Kreditkartenclearing Server-zu-Server und ELV. Zahlungsarten wie PayPal oder Sofortüberweisung scheiden aus, weil sie eine Authentifizierung des Kunden im Browser erfordern. Die Schnittstelle lässt sich für angemeldete Benutzer und für Gastbestellungen verwenden. Nach einer erfolgreichen Bestellung geht eine Bestätigungsmail an die übergebene E-Mail-Adresse.

Aufbau der XML-Daten

Optionale Parameter können leer übergeben oder ganz weggelassen werden. Die Daten werden im Zeichensatz UTF-8 übergeben.
Die vollständige Beschreibung aller Sektionen und Felder samt Beispielen finden Sie unter Felder und Beispiele.

Datentypen

Die Felddefinitionen nutzen eine kurze Typangabe, der die maximale Länge folgt. C30 steht also für ein 30-stelliges Feld mit beliebigen druckbaren Zeichen.

Direkte Übergabe ohne Web-Applikation

Bei der automatisierten Übergabe werden die Daten Blowfish-verschlüsselt. Dafür wird ein vorab vereinbarter Schlüssel aus 16 Zeichen im Shop und im externen System fest hinterlegt. Das 16-stellige Passwort dient direkt als Schlüssel. Die zu verschlüsselnde Nachricht wird auf ein Vielfaches von 8 Byte aufgefüllt, am besten mit Null-Bytes, und blockweise mit der OpenSSL-Funktion Blowfish-ECB verschlüsselt. Das externe System verschlüsselt also zuerst und kodiert das Ergebnis anschließend hexadezimal. Der Shop wird per HTTP mit der GET-Methode aufgerufen, die Anfrage darf höchstens 8000 Zeichen lang sein. Je nachdem, wie der Besteller identifiziert wird, sieht der Aufruf unterschiedlich aus. Der Parameter orderdata mit den verschlüsselten XML-Daten ist immer erforderlich. Bei Anmeldung mit E-Mail-Adresse oder UserIndex lädt der Shop automatisch alle Daten des Benutzers, also Rechnungsadresse, optionale Lieferadresse und Benutzereinstellungen. Bei einer Gastbestellung wird weder das eine noch das andere übergeben. Dort ist die Rechnungsadresse Pflicht, und innerhalb der Rechnungsadresse ist die E-Mail-Adresse ein Pflichtfeld.

Antwort des Shops

Die Web-Applikation zeigt zu jedem generierten Auftrag Datum, Uhrzeit, ShopID, SubshopID, Auftragsnummer, Gesamtsumme, Status und im Fehlerfall die Fehlermeldung samt Fehlercode an. Bei Upload-Artikeln kommt die UploadID hinzu. Bei der direkten XML-Übergabe antwortet der Shop mit folgender Struktur:

Einen ASSE-Prozess anstoßen

Der Bestellgenerator kann pro Bestellposition einen Asynchronous-Server-Side-Event auslösen. Dazu wird die Konfiguration um diese Sektion erweitert:
Die beiden genannten Templates liegen im Bestellgenerator-Verzeichnis des Shops. Das Template für das ASSE-Event kann so aussehen:
Entscheidend sind die korrekten $WS- und $DC--Tags, denn sie werden im Lauf des Bestellprozesses ersetzt. Das ASSE-Template selbst kann so aussehen:
Das Tag $WS-AsseText$ wird durch den hexadezimal kodierten Inhalt des Event-Templates ersetzt. Die erzeugte Datei liegt anschließend unter <shopid>_<subshopid>_autoorderUploadFinish-<Bestellnummer>-<Positionsnummer>.asse im Verzeichnis /var/spool/wsasse.

Wann ein Auftrag erzeugt wird

Ein Auftrag entsteht nur dann, wenn alle übergebenen Daten korrekt sind. Der Bestellgenerator prüft unter anderem:
  • Existiert die übergebene Produktnummer oder SetID und reicht der Lagerbestand?
  • Sind die übergebenen normalen Varianten korrekt?
  • Werden definierte Mindest- und Maximalbestellmengen eingehalten?
  • Sind definierte Stückelungen korrekt übergeben?
  • Sind alle Pflichtfelder der Adressdaten und der Zahlungsart vorhanden?
  • Beim Online-Clearing: Konnte die Zahlung mit Kreditkarte oder Lastschrift elektronisch durchgeführt werden?
  • Wird bei einem Resellerzuschlag die Zahlungsart Nachnahme übergeben?
Beim Status OK wurde der Auftrag erfolgreich erzeugt. Beim Status ERROR konnte er nicht erzeugt werden, zusätzlich wird ein Fehlercode ausgegeben.

Fehlercodes

Bei einem Fehler wird stets ein Fehlercode übergeben. Folgende Codes werden unterstützt:

Verwandte Themen