So funktioniert die Kommunikation zwischen pixi und dem Shop-System:
pixi ruft ein PHP oder CGI Skript des Shop-Systems mit Benutzername und Passwort auf, um eine Session ID zu erhalten.
Das Shop-System soll nach erfolgreicher Autorisierung eine XML Datei mit einer Session ID zurückgeben.
URL Aufruf für Katalogimport – pixi ruft ein PHP oder CGI Skript des Shop-Systems mit der gültigen Session ID auf, um noch nicht exportierte Artikel zu erhalten.
Das Shop-System bestätigt die gültige Session und gibt die XML Datei mit maximal 250 Artikeln zurück (wg. möglichem PHP Pufferüberlauf), welche noch nicht als exportiert markiert wurden.
Sobald das Shop-System die XML Datei zurückgibt, wird diese heruntergeladen und auf den pixi Serversystemen lokal abgespeichert und sofort verarbeitet. Sollten beim Parsen der XML-Datei Syntax- oder Inhaltsfehler festgestellt werden, wird die importierte XML Datei verworfen und an eine vorab definierte E-Mail-Adresse eine entsprechende Fehlermeldung (doppelter Barcode, Barcode ersetzt, grundlegende Fehler, etc.) ausgegeben.
Alle Aufrufe seitens pixi werden dynamisch generiert. Die aufgerufenen Skripte unterliegen bzgl. Syntax und Funktionsaufruf keinerlei Einschränkungen.
Siehe auch: BMEcat Syntax-Spezifikationen für die Übergabe im XML Format, OPENtrans Syntax-Spezifikationen für die Übergabe im XML-Format
URL Aufruf für Autorisierung
Vor jedem Funktionsaufruf wie Artikel-/Bestellimport oder Status-Export wird von pixi eine sog. Session ID angefordert, welche für einen bestimmten Zeitraum gültig ist (in Abhängigkeit der Einstellung im Shop-System). Stimmen Benutzername und Passwort überein, soll das Shop-System die Session ID in einer XML-Datei zurückgeben.
Beispielhafte http-URL-Aufrufe für Autorisierung:
http://www.meinshop.de/pixi.cgi?action=session_start&user=pixi_interface&pass=dasistgeheim
oder
http://www.madshop.de/index.php?fnc=OSCAuthorization&usr=pixi_interface&pwd=dasistgeheim
Hinweis: Die einzelnen URLs sind komplett variabel, sie können individuell pro pixi-Datenbank vorgegeben werden. Aber: Es können pro pixi-Datenbank nur ein Satz URLs hinterlegt werden. Wenn Sie mehr als einen Shop an pixi anbinden, müssen alle Shops die gleiche Art URLs verwenden.
Variablen
Benutzername (hier: „pixi_interface“)
Passwort (hier: „dasistgeheim“)
Zurückgegebenes XML Beispiel
<?xml version="1.0" encoding="ISO-8859-1"?>
<ANSWER>
<STATUS>SUCCESS</STATUS>
<sessionID>1155558302.83</sessionID>
<DESCRIPTION></DESCRIPTION>
</ANSWER>Variablen in der XML Datei
STATUS gibt „SUCCESS“ oder „FAILURE“ zurück.
sessionID gibt die gültige Session ID an.
DESCRIPTION - Im Fall eines Fehlers wird hier die Fehlermeldung ausgegeben.
URL Aufruf für Katalog-Update
Der Katalog-Update Aufruf wird verwendet, um alle seit dem letzten Aufruf neuen und/oder geänderten Artikel nach pixi zu exportieren. pixi nutzt das UNIX-Zeitformat um dem letzten Katalog-Update-Aufruf zu indizieren. Im Shop-System wird ebenfalls ein Feld benötigt, welches den Zeitpunkt des letzten Katalog-Exports im UNIX-Format beinhaltet.
Dieser Wert wird beim nächsten Katalog-Update Aufruf mit dem der letzten importierten XML-Datei verglichen. Nach jedem Katalog-Update-Aufruf und dem erfolgreichen Import der XML-Datei nach pixi wird sofort eine Bestätigung gesendet, welche dann entsprechend den in der letzten XML Datei beinhalteten Zeitstempel dem Shop-System angibt, welches den Wert dann entsprechend in der Shop-System-Datenbank aktualisiert. Dieser Prozess stellt sicher, dass bei jedem Katalog-Update-Aufruf nur die seit dem letzten Aufruf geänderten oder neuen Artikel nach pixi exportiert werden.
Beispielhafte URL Aufrufe für Katalog-Update
http://www.meinshop.de/pixi.cgi?action=export_update&session=1155558302.83
oder
http://www.meinshop.de/index.php?fnc=OSCExportCatalog&session_id=1155558302.83&onlynew=n
Variablen
session_id (hier: „1155558302.83“) beschreibt die bei der Autorisierung zurückgegebene Session ID
onlynew (hier: „n“) Ist der Wert der Funktion gleich „y“, werden nur neue Artikel seit dem letzten Katalog-Update berücksichtigt, ist der Wert der Funktion gleich „n“ werden sowohl neue als auch geänderte Artikel berücksichtigt.
Nachdem URL-Aufruf muss entsprechend shopseitig die XML Datei ausgegeben werden, ein Beispiel finden Sie weiter oben.
Beispiel-URL für Bestätigung des Katalog-Imports
http://www.meinshop.de/index.php?fnc=OSCConfirmCatalog&session_id=1155542302.97&date=1192710892
oder
http://www.meinshop.de/pixi.cgi?action=reset_export_status&date=1192710892&session=1155542302.97
Variablen
session_id (hier: „1155542302.97“) beschreibt die bei der Autorisierung zurückgegebene Session ID
date (hier: „1192710892“) beschreibt den Zeitstempel des vorherigen Katalog-Updates; aus BMEcat > EXPORT_DATE entnommen
URL Aufruf für vollständigen Katalog-Import
Wird verwendet, um den Export des kompletten Artikelstamms anzustoßen. Durch den URL Aufruf soll shopseitig eine Funktion ausgeführt werden, welche dem Zeitstempel auf „0“ zurücksetzt. Dies verursacht beim nächsten Aufruf des Katalog-Updates (s.o.) den vollständigen Re-Import aller Artikel.
Beispiel-URL für vollständigen Katalog-Import
http://www.madshop.de/index.php?fnc=OSCConfirmCatalog&session_id=2568542387.21&date=0000000000
Variablen
session_id (hier: „2568542387.21“) beschreibt die bei der Autorisierung zurückgegebene Session ID.
Zurückgegebenes XML Beispiel
<?xml version="1.0" encoding="ISO-8859-1"?>
<ANSWER>
<EXPORT_DATE>1970-01-01 01:00:00</EXPORT_DATE>
<STATUS>SUCCESS</STATUS>
<sessionID>1155558691.76</sessionID>
<DESCRIPTION>Date was updated successfuly</DESCRIPTION>
</ANSWER>Variablen in der XML Datei
STATUS gibt „SUCCESS“ oder „FAILURE“ zurück.
sessionID gibt die gültige Session ID an.
DESCRIPTION - Im Fall eines Fehlers wird hier die Fehlermeldung ausgegeben.
EXPORT_DATE gibt das in der URL-Funktion übermittelte UNIX-Datum zurück.
URL Aufruf für Export des verfügbaren Lagerbestandes
Die in pixi verwalteten Lagerbestände können minutenaktuell zurück an das Shop-System übermittelt werden. Hierzu ruft pixi über eine URL ein Skript in Ihrem Shop-System auf, welches die an die URL angehängten Werte (im XML-Format) verarbeiten kann.
Beispiel-URL’s für Bestands-Export
http://www.madshop.de/index.php?fnc=OSCImportStock&session_id='5687245686.01&data=$$$data$$$'
oder
http://www.madshop.de/pixi.cgi?action=import_stock&data=$$$data$$$&session=5687245686.01
Variablen
session_id (hier: „5687245686.01“) beschreibt die bei der Autorisierung zurückgegebene Session ID
data (hier: „$$$data$$$“) beinhaltet Informationen über den Lagerbestand, Lieferzeiten, etc.
XML-Beispiel, welches als Parameter an den Shop zurückgegeben wird
Ein Beispiel für den Export des Lagerbestands eines Artikels inklusive Beschreibung der verwendeten Tags finden Sie im pixipedia-Artikel Artikelexport.
Beispiel für XML-Antwort vom Shop-System
<?xml version="1.0" encoding="ISO-8859-1"?>
<ANSWER>
<code>OK</code>
<message></message>
</ANSWER> ODER
<?xml version="1.0" encoding="ISO-8859-1"?>
<ANSWER>
<code>ERROR</code>
<message>ErrorMessage</message>
</ANSWER> Variablen
CODE (hier: „OK“) gibt „OK“ oder „ERROR“ zurück.
MESSAGE gibt die etwaige Fehlermeldung aus.
Hinweise (optionale Möglichkeiten, Verwendungen)
Anhand der Lagermenge können Sie im Shop-System den Status eines Artikels im Frontend präzise darstellen: z. B. wenn Lagermenge > 0 dann „Artikel ab Lager lieferbar“, wenn Lagermenge = 0 dann „Lieferzeit: X Tage“ oder „Artikel derzeit nicht verfügbar“, abhängig je nach Artikelsegment oder Artikel.
Über das zurückgegebene Lieferdatum können Sie beim Artikel im Frontend die nächstmögliche Verfügbarkeit darstellen.
Im Feld EAN steht immer die aktuell in pixi hinterlegte EAN. Anwender haben die Möglichkeit, die EAN eines Artikels direkt in pixi zu ändern. Somit besteht die Möglichkeit, die aktuelle EAN eines Artikels auch im Shop-System zu synchronisieren.
Im Falle der Code ist "ERROR", dann muss Message einen Text enthalten.
Batch-Export für mehrere Artikel pro URL-Aufruf
Durch eine Einstellung im pixi ControlCenter können pro Aufruf auch mehr als ein Artikelbestand übertragen werden.
XML-Beispiel, welches als Parameter an den Shop zurückgegeben wird, bei aktivem Batch-Export
<?xml version="1.0" encoding="ISO-8859-1"?>
<ARTICLES><ARTICLE_ITEM>
<ARTICLE_ITEM_ID>18201-180160-bl</ARTICLE_ITEM_ID>
<QUANTITY>12</QUANTITY>
<DELIVERY_DATE>2006-10-18T00:00:00</DELIVERY_DATE>
<MIN_STOCK_QTY>0</MIN_STOCK_QTY>
<ACTIVE>True</ACTIVE>
<EAN>4000053269821</EAN>
<OPENSUPPLORDERS>12</OPENSUPPLORDERS>
</ARTICLE_ITEM> <ARTICLE_ITEM>
<ARTICLE_ITEM_ID>18201-180160-b2</ARTICLE_ITEM_ID>
<QUANTITY>0</QUANTITY>
<MIN_STOCK_QTY>0</MIN_STOCK_QTY>
<ACTIVE>True</ACTIVE>
<EAN>4000053269821</EAN>
</ARTICLE_ITEM> </ARTICLES>