Es gibt bereits für verschiedene Warenwirtschaften (ERP-Systeme) Anbindungen an PrestaShop. Dieser Artikel beschäftigt sich damit, eine Warenwirtschaft anzubinden für die es noch keine fertige Lösung gibt.
Grundlagen für die Anbindung
PrestaShop bietet von Haus aus einen REST Webservice an. In einem anderen Artikel habe ich bereits beschrieben, wie dieser aktiviert und verwendet werden kann. Ich gehe im folgenden davon aus, dass der Webservice eingerichtet ist und bereit steht. Ich beschreibe im folgenden die Anwendung des Webservice für die aus meiner Sicht 4 wichtigsten Fälle. In Klammern habe ich immer auch den API Methodenaufruf des Webservice geschrieben, so kann man den entsprechenden Aufruf leichter nachstellen.
Um den Webservice zu testen empfiehlt sich z.B. der Insomnia REST Client (Google Crome PlugIn).
Artikeldaten
Alle für Artikeldaten relevanten Funktionen bringt der Webservice bereits mit. Dabei wird auch die Mehrsprachigkeit unterstützt. Die Schlüssel für die Adressierung von Produkten ist deren interne Product-ID nicht die Artikelnummer (SKU). PrestaShop prüft Artikelnummern nicht auf Eindeutigkeit, daher können diese auch nicht für eine eindeutige Zuordnung verwenden werden.
Zu den Artikeldaten welche über die API gelesen und geschrieben werden können gehört unter anderem:
- Stammdaten der Produkte wie Beschreibung, Bilder, Preise, Meta-Informationen (Products)
- Produktvarianten (Combinations)
- Produkteigenschaften (product_features)
Artikelbestände
Die REST API unterstützt sowohl die erweitere Lagerverwaltung als auch das einfache „Herunterzählen“ von Mengen. Die Lagermengen werden pro Artikelvariante sowie pro Shop oder Shopgruppe geführt – je nachdem wie der PrestaShop eingerichtet ist und ob eine Multishopumgebung existiert. Mit Hilfe der erweiterten Lagerwaltung ist auch die Zuteilung von Lagemengen zu Lagerplätzen möglich.
Folgende Funktionen sind in der API bereits integriert:
- Lagerbestände ermitteln, ohne Lagerorte (stock_availables)
- Lagerbuchung in erweiterter Lagerverwaltung vornehmen (stock_movements)
- Lagerbuchungen abfragen (stocks)
Aufträge
Bestellungen von Kunden können über die API abgerufen und übertragen werden. Folgende Aufrufe stehen im Zusammenhang mit Aufträgen zur Verfügung:
- Aufträge abrufen und erstellen (orders)
- Positionsdetails abrufen und erstellen (order_details)
- Lieferadresse und Rechnungsadresse abrufen und erstellen (addresses)
- Kunde abrufen und erstellen (customers)
- Versandarten ermitteln und setzen (order_carriers)
- Auftragsstatus ermitteln und setzen (order_states)
- Historie der gesetzten Auftragsstatus ermitteln (order_history)
Kundendaten
Der Schlüssel für die Adressierung von Kunden ist deren interne ID in PrestaShop. Bei den Kundendaten ist das Feld „E-Mail“ allerdings eindeutig und man könnte Kunden an Hand der E-Mail sicher bestimmen. PrestaShop erlaubt es nämlich nicht, dass die gleiche E-Mail Adresse bei mehreren Kunden verwendet wird. Dies würde sonst zu Problemen beim Login in der Storefront führen. Das verkryptete Passwort des Kunden ist über die API abrufbar und kann auch gesetzt werden.
Folgende Aufrufe stehen für die Übertragung von Kunden zur Verfügung:
- Kunde setzen/abrufen (customers)
- Adressen abrufen und erstellen (addresses)
- Servicefälle (customer_threads)
- Nachrichten von Kunden (customer_messages)