Zum Hauptinhalt springen
SOAP-from-Shop holt Daten aus dem Shop ab: Bestellungen, Anfragen aus INQUIRY4-Formularen, Adressdatenänderungen und Gutscheindaten. Alle vier folgen demselben Muster, deshalb lohnt es sich, dieses Muster einmal zu verstehen und danach nur noch die Unterschiede nachzuschlagen. Der Webservice ist ausschließlich über SSL erreichbar. Unverschlüsselte Verbindungen lehnt er ab.

Das Abrufmuster

Jeder Abruf besteht aus zwei Schritten: Das externe System schickt einen Request, das WEBSALE-System antwortet mit den angeforderten Daten. Damit kein Datensatz doppelt oder gar nicht ankommt, muss das externe System zwei Dinge leisten: Es übergibt bei jedem Aufruf ShopID und Passwort, und es merkt sich die zuletzt empfangene Datensatznummer.

Erster Abruf gegen laufenden Betrieb

Beim allerersten Abruf gibt es noch keine gemerkte Nummer. Der Request nennt dann Datum und Uhrzeit, ab denen gelesen werden soll, und setzt SkipFirstMatch auf false. Im laufenden Betrieb übergeben Sie stattdessen die zuletzt empfangene Nummer und setzen SkipFirstMatch auf true. Die Übertragung beginnt dann mit dem darauf folgenden Datensatz, der bereits verarbeitete wird also nicht erneut geliefert. Einen einzelnen Datensatz holen Sie, indem Sie seine Nummer übergeben, das jeweilige Max…Count-Feld auf 1 setzen und SkipFirstMatch auf false lassen. Enthält ein Request sowohl eine Datensatznummer als auch Datum und Uhrzeit, gewinnt die Nummer. Datum und Uhrzeit werden dann ignoriert.

Blättern, bis Finished true ist

Liegen mehr Datensätze vor, als Sie angefordert haben, liefert die Antwort Finished=false. In diesem Fall wiederholen Sie den Request mit der zuletzt empfangenen Nummer, bis Finished auf true steht. Wer diese Schleife weglässt, holt bei hohem Aufkommen dauerhaft nur den jeweils ersten Block ab und merkt es nicht, weil kein Fehler auftritt. Pro Aufruf lassen sich maximal 1000 Datensätze abrufen, voreingestellt sind 100.

Die vier Kommandos im Vergleich

Parameter des Requests

Diese Parameter gelten für alle vier Kommandos: Nur bei GetOrders kommt ein weiterer Parameter hinzu: Serverseitig kann der Zugriff auf bestimmte Subshops eingeschränkt sein. Steht in der Liste ein Subshop, der nicht freigeschaltet ist, bricht die Übertragung mit ES013 ab. Beispiel: maximal 100 Bestellungen abrufen, die seit dem 11.05.2013 um 11:00 Uhr eingegangen sind:

Parameter der Antwort

Die Antwort ist bei allen vier Kommandos gleich aufgebaut. Ein Sammelelement enthält je Datensatz ein Einzelelement, dieses wiederum Datum, Uhrzeit, Nummer und die eigentlichen Nutzdaten als XML. Bei GetOrders kommt SubshopIDs hinzu. Das Feld wird zurückgegeben, wenn im Request SubshopIDs gesetzt waren oder die Shop-Konfiguration das Abholen auf bestimmte Subshops einschränkt. Es enthält dann die Liste der SubshopIDs, für die Bestelldaten abgerufen werden können. Bei Gutscheinen beziehen sich Date und Time auf den Zeitpunkt der Generierung des Gutscheins, nicht auf eine Bestellung.

Fehlerbehandlung

Tritt ein Fehler auf, antwortet die Schnittstelle mit einem SOAP Fault:

WSDL-Dateien und Server-URLs

Zu jedem der vier Abrufe gehört eine eigene WSDL-Datei: order.wsdl, inquiry.wsdl, address.wsdl und voucher.wsdl. Damit lässt sich der Anbindungscode je nach Programmiersprache automatisiert erzeugen. Die WSDL-Dateien und die URLs des SOAP-Servers erhalten Sie von Ihrem WEBSALE-Ansprechpartner.

Verwandte Themen