Zum Hauptinhalt springen
SFTP-REST-to-Shop importiert Produkte und Kategorien, Kundendaten und Gutscheindaten in den Shop. Der Ablauf besteht immer aus zwei Schritten: Zuerst landen die Importdateien per SFTP auf dem Shop-Server, dann stoßen Sie den Import über einen REST-Aufruf an und fragen seinen Fortschritt ab.

Dateien per SFTP übertragen

Für Produkt-, Kunden- und Gutscheindaten erhalten Sie von der WEBSALE AG einen gemeinsamen SFTP-Account. Je Datenart gibt es ein eigenes Zielverzeichnis. Existiert das Verzeichnis nicht, legen Sie es an.

Produktdaten: Unterverzeichnis je Subshop

Produktdateien liegen nicht direkt in directimport, sondern in einem Unterverzeichnis je SubShopID. Bei der SubShopID Deutsch lautet der Pfad also directimport/Deutsch. Eine PRD-Datei 100721.prd im Verzeichnis Deutsch_184.prd dieses Subshops erreichen Sie entsprechend unter:
Bevor Produkt- oder Kategoriedaten importiert werden können, müssen die benötigten Subshops und freien Felder mit dem WSPManager angelegt sein. Das wird beim ersten Importversuch am häufigsten übersehen.

Authentifizierung

Jeder Aufruf der API wird über ein Web Token im HTTP-Header authentifiziert. Das Token holen Sie sich zuerst über einen Login-Aufruf. POST https://www.websale.de/api/authent/login/<Shop-ID> Request-Body mit Login-ID und Passwort als JSON-Objekt:
Im Erfolgsfall antwortet der Server mit dem Token:
Dieses Token schicken Sie bei allen folgenden Aufrufen im HTTP-Header mit:
Das Token ist 30 Minuten gültig. Danach beantwortet die API jede Anfrage mit dem Statuscode 401 und Sie müssen ein neues Token erzeugen. Planen Sie das in Ihrer Anbindung ein, denn ein langer Import kann die Gültigkeit überdauern.

Import starten

POST https://www.websale.de/api/import/start Der Body enthält als JSON-Objekt den Parameter scope: Beispiel-Request:
Beispiel-Antwort:
Die zurückgegebene Import-ID brauchen Sie für die Statusabfrage. Ein erfolgreich gestarteter Import bedeutet nicht, dass Daten erfolgreich importiert wurden. Der Start erfolgt asynchron, die REST-Funktion kehrt also zurück, bevor der Import beendet ist. Ob die Daten verarbeitet werden konnten, steht zu diesem Zeitpunkt noch nicht fest.

Import-Status abfragen

GET https://www.websale.de/api/import/status/<Import-ID> Im Erfolgsfall stehen die Statusinformationen als JSON-Objekt im Body der Antwort. Diese Felder kommen immer zurück: Diese Felder kommen erst zurück, wenn der Import beendet ist: Beispiel einer Antwort ohne Importdaten:
Beispiel eines abgebrochenen Kundendatenimports:

Fehler, Warnungen und Statuscodes

Was Fehler von Warnungen unterscheidet

Schwere Fehler lassen keine andere Wahl, als den Import abzubrechen oder gar nicht erst zu starten. Das ist beispielsweise der Fall, wenn in einer Produkt-Importdatei die Spalte mit dem Pflichtfeld ProdIndex komplett fehlt. Minder schwere Fehler führen dazu, dass einzelne Datensätze nicht importiert werden. Das passiert beispielsweise, wenn die Spalte ProdIndex zwar vorhanden ist, aber für einzelne Produkte leer bleibt. Man könnte auch hier abbrechen, denn das Ergebnis entspricht offensichtlich nicht der Absicht. Die Erfahrung zeigt jedoch, dass den meisten Betreibern ein durchlaufender Import wichtiger ist als ein vollständiger. Warnungen treten auf, wenn Importdaten nicht der Spezifikation entsprechen, der Import sie aber mit hoher Wahrscheinlichkeit richtig interpretiert hat. Beispiel: Als Produktpreis kommt 0,99 an. Das entspricht nicht der Spezifikation, weil als Dezimaltrenner ein Komma statt eines Punktes steht. Der Import ersetzt das Komma durch einen Punkt und schreibt eine Warnung.

Fehler bei der Authentifizierung

Fehler beim Starten des Imports oder bei der Statusabfrage

Zusätzlich zum Statuscode kann im Body ein JSON-Objekt mit weiteren Informationen stehen:
error enthält einen Fehler-Code für die Auswertung durch das aufrufende Programm. Zu einem HTTP-Statuscode kann es mehrere Fehler-Codes geben. detail enthält eine ausführlichere Meldung für den menschlichen Leser. paramErrors wird nur beim Fehler invalidParams zurückgegeben. Jedes Feld darin entspricht einem ungültigen Parameter. Weil es je Parameter mehrere Fehler geben kann, ist der Wert ein Array. Jeder Eintrag hat mindestens das Feld kind, das die Art des Fehlers angibt, und je nach kind weitere Felder.

Fehler, die die Statusabfrage zurückgibt

Beim Kundendatenimport kommen diese Meldungen hinzu:

Import aus mehreren Systemen

Es ist möglich, Produktdaten aus einem System und Kundendaten aus einem anderen zu importieren. Dabei müssen Sie allerdings selbst sicherstellen, dass Übertragung und Import nicht gleichzeitig laufen. Jeder Versuch, einen Import zu starten, während bereits einer läuft, endet mit EI002 Import läuft bereits. Kritischer als der Start ist die Übertragung. Sie läuft über SFTP, und die Importverzeichnisse sind nicht nach Quellsystem getrennt. Daraus folgen zwei Risiken: Eine gleichzeitige Übertragung aus mehreren Systemen kann die Import-Software nicht verhindern, und ein System kann den Import von Daten starten, die ein anderes System übertragen hat. Wenn Sie mehrere Quellsysteme anbinden, müssen Sie die Reihenfolge außerhalb des Shops koordinieren.

Basis-URL

Die derzeitige Basis-URL der REST-Schnittstelle für den Import lautet:
Die URL kann sich künftig ändern. Hinterlegen Sie sie in Ihrer Anbindung so, dass sie sich ohne größeren Aufwand anpassen lässt.

Verwandte Themen