PrestaShop verfügt im Standard über eine Schnittstelle (REST Webservice), mit der sich Fremdsysteme (z.B. ERP, CRM, Finanzbuchhaltung) anbinden lassen.
Die Schnittstelle ist umfangreich und erlaubt eine ausführliche Steuerung der Zugriffsrechte.
Webservice aktivieren
Im PrestaShop Administrator muss zuerst unter „Erweiterte Einstellungen > Webservice“ der Webservice aktiviert werden. Die zusätzliche Option „PHP CGI mode aktivieren“ sollte nur genutzt werden, wenn als Webserver Apache zum Einsatz kommt und wenn PHP nicht als Modul konfiguriert ist. Es wird dann anstatt des Apache Moduls PHP als CGI Script verwendet.
Webservice Account einrichten
Nach Aktivierung des Webservices ist noch kein Zugriff auf den Onlineshop via Webservice möglich. Zuerst muss ein Webservice Account erstellt werden. Dieser besteht aus einem eindeutigen Schlüssel und kann mit individuellen Zugriffsrechten auf verschiedene PrestaShop Funktionen ausgestattet werden. Wählen Sie zum erstellen eines neuen Webservice Accounts „Neu“ unter „Erweiterte Einstellungen > Webservice“. Der eindeutige Schlüssel kann nun über „Generieren “ erzeugt werden. Über „Status“ legen Sie fest, ob der Webservice Account aktiv sein soll, die Beschreibung hilft auch bei mehreren Schlüssel noch den Überblick zu behalten.
Zugriffsrechte auf PrestaShop Daten festlegen
Für jeden Account können verschiedene Rechte auf Resourcen (Kunden, Artikel, Kataloge, etc.) und zulässige Methoden (Lesen, Ändern, Hinzufügen, Löschen) hinterlegt werden. So kann ein API Account z.B. das Lesen von Kundendaten beschränkt werden wie im Screenshot zu sehen.
Zugriff auf den PrestaShop Webservice
Eine Englischsprachige Dokumentation erklärt wie der Webservice nach Einrichtung konsumiert werden kann. Für Entwickler gibt es auf Github eine von Prestashop geschriebene PHP Bibliothek um den Webservice zu konsumieren. Um diese Bibliothek zu nutzen, muss cURL auf dem Server mit dem Fremdsystem installiert werden.
Sehr geehrter Herr Rühle,
ich möchte ein Onlineshop mit hoher Automatisierung im Bereich Artikel-Import (Bilder, Beschreibungen, Lagerbestand, Preis,…) und Bestelldatenübergabe (Kundenname, Lieferadresse, …) einrichten und bin bei Recherchen nach einem passenden Shopsystem auf Prestashop aufmerksam geworden und bin bei weiteren Recherchen zu Anbindung von Prestashop via API (REST) auf Ihren Artikel gestoßen.
Doch konnte ich, als nicht-Programmierer, noch keine Möglichkeit erkennen, die beiden Standards zu „verheiraten“.
Das Menü zum aktivieren der Webservices und der Berechtigungsvergabe habe ich in Prestashop schon entdeckt.
Allerdings weichen die Ressourcenbezeichnungen in Prestashop extrem von denen, welche meine Logistikdienstleister bereitstellt, ab.
Auch existieren eine ganze Menge mehr Ressourcenbezeichnungen auf der Seite des Logistikdienstleisters, als auf der Seite von Prestashop. Mir ist unklar, warum es hier so eine starke Abweichung in der Ressourcenbezeichnung gibt, obwohl es der gleiche Schnittstellentyp ist und wie ein Datenaustausch sauber abgewickelt werden soll.
Gibt es hier Möglicherweise ein Modul, welches als „Konverter“ zwischen den beiden unterschiedlichen Sätzen an Ressourcenbezeichnungen dienen kann?
Über eine Information diesbezüglich würde ich mich sehr freuen.
Für Ihrer Bemühungen bedanke ich mich im Voraus.
Mit freundlichen Grüßen,
Thomas Becker
Anbei ein Auszug aus der Einleitung der Schnittstellenbeschreibung des Logistikdienstleisters:
“ lAPlace Interface
Mit dem lAPlace Interface können Sie verschiedene Aktionen auf unsere Datenbank ausführen.
Die Anfragen werden über eine REST-API gemacht und die Ergebnisse können in verschiedenen Formaten Ihrerseits abgerufen werden.
Konzept Die API wird mithilfe des REST-Prinzips über sog. Endpoints angesprochen.
Jeder Endpoint wird über seine eigene URL angesprochen und liefert ein bestimmtes Ergebnis zurück. Die Ausgabeformate und zu übergebene Parameter sind im Folgenden dokumentiert.
Ausgabeformate
Das lAPlace-Interface unterstützt zwei Ausgabeformate:
• json: Ausgabe im JSON-Format (MIME-Typ application/json)
• xml: Ausgabe im XML-Format (MIME-Typ text/xml)
Das Ausgabeformat kann bei jeder Anfrage im Parameter output übergeben werden.
Bei fehlender oder unbekannter Angabe eines Ausgabeformats wird JSON ausgeben.
Die Zeichenkodierung ist UTF-8.“
Sehr geehrter Herr Becker
Webservice API (REST) beschreibt nur die grundlegende Technologie, mit welcher die Daten übertragen werden. Welche Daten genau das sind und wie diese bezeichnet werden kann jeder bei der Implementierung selbst festlegen. Daher ist es nicht verwunderlich, dass die Schnittstelle des Logistikdienstleisters und die von PrestaShop nicht direkt „zusammenpassen“. Wenn das Thema für Sie noch interessant ist, schaue ich mir gerne unverbindlich die Schnittstelle des Logistikdienstleisters an. Viele Grüsse. André Rühle