10 Aufgaben, die Sie mit der PrestaShop-9-Admin-API automatisieren können
PrestaShop 9 hat eine neue Admin-API eingeführt, die auf API Platform 3, OAuth2 und der CQRS-Architektur von PrestaShop basiert.
Das ist wichtig, denn die Automatisierung im E-Commerce funktioniert am besten, wenn externe Systeme über stabile Geschäftsoperationen mit dem Shop interagieren, statt Datenbanktabellen direkt zu verändern.
Eine moderne PrestaShop-Installation muss möglicherweise mit folgenden Systemen kommunizieren:
- Lieferanten;
- ERP;
- PIM;
- CRM;
- Lagersystemen;
- Buchhaltungssoftware;
- Marktplätzen;
- Analyseplattformen;
- SaaS-Anwendungen.
Die Admin-API bietet Entwicklern eine bessere Grundlage für diese Integrationen.
Dieser Artikel stellt zehn praktische Automatisierungsszenarien vor und erklärt, wie man sie sicher gestaltet.
Versionshinweis: Die Admin-API wird laufend weiterentwickelt. Prüfen Sie immer die generierte OpenAPI-Dokumentation der konkreten PrestaShop-9-Version, die Sie integrieren. Die folgenden Beispiele beschreiben Architekturmuster und garantieren nicht, dass jede Geschäftsoperation in jeder 9.x-Version als integrierter Endpunkt verfügbar ist.
Warum die neue Admin-API wichtig ist
Die ältere Webservice-API von PrestaShop basiert größtenteils auf CRUD-Operationen und dem bisherigen ObjectModel-Verhalten.
Die PrestaShop-9-Admin-API wurde auf folgenden Grundlagen entwickelt:
- OAuth2;
- Berechtigungsbereichen;
- API Platform;
- CQRS-Befehlen und -Abfragen;
- Erweiterbarkeit durch Module.
Damit eignet sie sich besser für kontrollierte Automatisierung.
Eine gute Automatisierung sollte:
- authentifiziert;
- autorisiert;
- beobachtbar;
- idempotent;
- wiederholbar;
- begrenzt sein.
Die API stellt die Schnittstelle bereit, während lang laufende Aufgaben weiterhin über Warteschlangen und CLI-Worker verarbeitet werden können.
1. Produktinformationen automatisch synchronisieren
Ein PIM kann Folgendes verwalten:
- Produkttitel;
- Beschreibungen;
- Artikelnummern;
- Marken;
- Eigenschaften;
- Abmessungen;
- Kennungen.
Statt Daten manuell nach PrestaShop zu kopieren, kann ein Synchronisierungsdienst freigegebene Änderungen übertragen.
Die entscheidende Entwurfsfrage lautet:
Welches System ist für welches Feld maßgeblich?
Zum Beispiel:
PIM ist zuständig für:
- Titel
- Beschreibung
- Merkmale
ERP ist zuständig für:
- Kosten
- Bestand
PrestaShop ist zuständig für:
- Merchandising-Text
- lokale Kategoriezuordnung
Ohne Regeln zur Datenhoheit überschreiben die Systeme gegenseitig ihre Änderungen.
Inkrementelle Aktualisierungen verwenden
Schreiben Sie nicht stündlich alle Produkte neu.
Verwenden Sie:
- Änderungszeitstempel;
- Quell-Hashes;
- Änderungsereignisse.
Wenn sich ein Produkt nicht geändert hat, überspringen Sie es.
2. Lagerbestände automatisch synchronisieren
Lagerbestände gehören zu den wertvollsten Automatisierungsbereichen.
Manuelle Bestandsaktualisierungen verursachen:
- Überverkäufe;
- stornierte Bestellungen;
- frustrierte Kunden.
Ein Lager- oder ERP-System kann Bestände mit PrestaShop synchronisieren.
Verwenden Sie stabile Kennungen für:
- Produkte;
- Kombinationen;
- Lager.
Verlassen Sie sich niemals nur auf Namen.
Veraltete Daten behandeln
Angenommen, ein Bestands-Snapshot wurde erstellt um:
10:00
trifft aber nach einer neueren Aktualisierung ein, die erstellt wurde um:
10:05
Die Integration muss erkennen, welcher Snapshot neuer ist.
Speichern Sie Zeitstempel oder Sequenznummern.
Wenden Sie Aktualisierungen nicht blind in Eingangsreihenfolge an.
3. Preisaktualisierungen automatisieren
Lieferanten- oder ERP-Systeme können Folgendes steuern:
- Grundpreis;
- Kosten;
- Margen;
- Aktionsregeln.
Die Preisautomatisierung muss überprüfbar sein.
Speichern Sie:
alter Wert
neuer Wert
Quelle
Zeitstempel
Grund
So lässt sich ein falscher Preis schnell untersuchen.
Den gesamten Katalog nicht neu schreiben
Wenn sich nur 400 von 100.000 Preisen geändert haben, aktualisieren Sie nur diese 400.
Weniger Schreibvorgänge verbessern:
- Leistung;
- Nachvollziehbarkeit der Prüfung;
- Cache-Stabilität.
4. Neue Produkte automatisch anlegen
Neue Produkte zu erkennen ist etwas anderes als vorhandene zu aktualisieren.
Eine sinnvolle Architektur sieht so aus:
Lieferanten-Feed
→ Erkennung
→ Validierung
→ Erstellungswarteschlange
→ PrestaShop
Prüfen Sie vor dem Anlegen eines Produkts:
- erforderliche Kategoriezuordnung;
- Markenzuordnung;
- Steuerregeln;
- Kombinationsattribute;
- erforderliche Bilder;
- eindeutige Artikelnummer.
Bei unvollständigen Daten markieren Sie das Produkt als blockiert.
Ein einziges ungültiges Lieferantenprodukt darf nicht den gesamten Katalog anhalten.
5. Bestellexport automatisieren
Bestellungen müssen häufig aus PrestaShop exportiert werden.
Mögliche Ziele sind:
- ERP;
- Lager;
- Fulfillment-Dienstleister;
- Buchhaltungssystem.
Der Export sollte einen eindeutigen Synchronisierungsstatus verwenden.
Zum Beispiel:
neu
in Bearbeitung
exportiert
Wiederholung
fehlgeschlagen
Verwechseln Sie den externen Synchronisierungsstatus nicht mit dem für Kunden sichtbaren PrestaShop-Bestellstatus.
Wiederholungsversuche idempotent gestalten
Wenn nach dem Anlegen der Bestellung im ERP ein Netzwerk-Timeout auftritt, darf ein erneuter Versuch keine zweite Bestellung erzeugen.
Verwenden Sie einen externen Bestellschlüssel, zum Beispiel:
prestashop-shop2-order-54883
Das empfangende System sollte Duplikate erkennen.
6. CRM-Synchronisierung automatisieren
Ein CRM kann Folgendes empfangen:
- Ereignisse von Kundenkonten;
- Bestellübersichten;
- Daten zu Kundensegmenten.
Minimieren Sie Daten.
Übermitteln Sie nicht jedes Datenbankfeld nur, weil es existiert.
Senden Sie nur die Daten, die das CRM für den festgelegten Geschäftszweck benötigt.
Beachten Sie bei Marketingprozessen Einwilligungen und geltende Datenschutzanforderungen.
7. Katalogqualitätsprüfungen automatisieren
Automatisierung muss nicht immer Daten ändern.
Sie kann Probleme erkennen.
Beispiele:
- Produkt ohne Bild;
- fehlende Beschreibung;
- Preis null;
- ungültige EAN;
- nicht zugeordnete Kategorie;
- doppelte Lieferantenreferenz;
- Kombination mit unvollständigen Attributen.
Ein Qualitätsdienst kann einen Bericht oder eine Prüfwarteschlange erstellen.
Konfidenzstufen verwenden
Einige Probleme lassen sich automatisch beheben.
Zum Beispiel:
abschließende Leerzeichen entfernen
Andere erfordern eine manuelle Prüfung.
Zum Beispiel:
zwischen zwei widersprüchlichen Lieferantenkategorien wählen
Trennen Sie eindeutige Korrekturen von mehrdeutigen Entscheidungen.
8. Berichte und Data Warehousing automatisieren
Eine Produktionsdatenbank sollte nicht zum Analyse-Data-Warehouse werden.
Komplexe Berichte können jahrelange Daten durchsuchen und den Checkout-Verkehr beeinträchtigen.
Exportieren Sie stattdessen inkrementelle Betriebsdaten in:
- ein Data-Warehouse;
- ein BI-System;
- eine Reporting-Datenbank.
Verwenden Sie Checkpoints.
Zum Beispiel:
ID der zuletzt exportierten Bestellung
oder:
Zeitstempel der letzten Änderung
Fordern Sie anschließend nur neuere Datensätze an.
9. Wartungsabläufe automatisieren
Die Admin-API kann die Orchestrierung von Bereitstellung und Wartung unterstützen.
Ein kontrolliertes Bereitstellungssystem kann:
- Importe pausieren;
- den Shopzustand prüfen;
- Code bereitstellen;
- ausgewählte Caches leeren;
- Datenbankmigrationen ausführen;
- den API-Zustand prüfen;
- Hintergrundjobs wieder aktivieren.
Gefährliche Aktionen sollten eng begrenzte Berechtigungen haben.
Erstellen Sie keinen API-Client mit uneingeschränkter Kontrolle, nur weil Automatisierung bequem ist.
10. Modulspezifische SaaS-Integrationen entwickeln
Eine der interessantesten Funktionen der Admin-API ist die Erweiterbarkeit durch Module.
Module können API-Ressourcenklassen unter folgendem Pfad hinzufügen:
src/ApiPlatform/Resources
Dadurch können kommerzielle Module ihre eigene strukturierte API bereitstellen.
Beispiele:
- Status eines Sicherheitsscans;
- Status der Importwarteschlange;
- Lizenzstatus;
- Modulberichte;
- geplante Aufgaben.
Statt eigener Skripte wie:
/modules/example/run.php?token=SECRET
können Sie das OAuth2-Modell und die Berechtigungsbereiche der Plattform nutzen.
Beispiel: Architektur zur Lieferantenautomatisierung
Eine Lieferantenintegration kann Folgendes verwenden:
Lieferanten-API/XML
↓
Downloader
↓
Streaming-Parser
↓
Validierung
↓
Warteschlange
├── Produkte erstellen
├── Preise aktualisieren
├── Bestand aktualisieren
└── Bilder verarbeiten
Die API kann Folgendes bereitstellen:
GET /supplier/jobs
POST /supplier/jobs
GET /supplier/jobs/{id}
POST /supplier/jobs/{id}/retry
Lang laufende Aufgaben bleiben im Worker-System.
Die API bleibt schnell.
Die API ersetzt Cron nicht
Die Admin-API ist eine Schnittstelle.
Cron bestimmt, wann wiederkehrende Aufgaben ausgeführt werden.
Zum Beispiel:
Cron alle 5 Minuten
→ Worker ruft Lieferanten auf
→ Worker aktualisiert PrestaShop
oder:
externer Planer
→ Admin-API
→ erstellt Auftrag
→ Warteschlange verarbeitet Auftrag
Beide Ansätze können sinnvoll sein.
OAuth2 Client Credentials verwenden
Für Maschine-zu-Maschine-Integrationen dokumentiert PrestaShop den Client-Credentials-Ablauf.
Ein Client fordert ein Token mit folgenden Angaben an:
- Client-ID;
- Client-Secret;
- Grant-Typ;
- Scopes.
Danach ruft er die API mit folgendem Wert auf:
Authorization: Bearer ACCESS_TOKEN
Scopes beschränken
Wenn ein Berichtssystem Produkte nur liest, sollte es keinen Schreibzugriff erhalten.
Erstellen Sie separate Clients für:
- ERP;
- PIM;
- Analysen;
- Lager.
Dies erleichtert Berechtigungsverwaltung und Zugangsdatenrotation.
OpenAPI als Vertrag verwenden
PrestaShop kann eine API-Dokumentation erzeugen.
Verwenden Sie die OpenAPI-Spezifikation für:
- Client-Generierung;
- Testerstellung;
- Versionsvergleich;
- Überprüfung von Endpunktänderungen.
Speichern Sie für eine kommerzielle Integration die API-Spezifikationen jeder unterstützten PrestaShop-Version.
Paginierung einplanen
Fordern Sie niemals den gesamten Katalog in einer einzigen API-Antwort an.
Verwenden Sie:
page
limit
cursor
filters
Bei großen Shops schützt Paginierung sowohl die API als auch die Datenbank.
Für umfangreiche Arbeiten asynchrone Jobs bevorzugen
Eine Anfrage sollte nicht während des Imports von 100.000 Produkten offen bleiben.
Verwenden Sie:
POST /jobs
→ Auftrags-ID
GET /jobs/{id}
→ Fortschritt
Der Worker verarbeitet den Job getrennt.
Fortschritt speichern
Lang laufende Prozesse sollten Folgendes anzeigen:
gesamt
verarbeitet
geändert
übersprungen
fehlgeschlagen
verbleibend
So werden Abläufe nachvollziehbar.
Ein Status, der nur Folgendes angibt:
läuft
reicht für einen dreistündigen Import nicht aus.
Wiederholungsversuche und dauerhafte Fehler unterscheiden
Vorübergehende Probleme:
- Zeitüberschreitung;
- HTTP 503;
- Datenbank-Deadlock.
Diese können erneut versucht werden.
Dauerhafte Probleme:
- ungültige Kennung;
- nicht zugeordnete Kategorie;
- doppelte Kombinationsdefinition.
Diese sollten zur Prüfung blockiert werden.
Korrelations-IDs verwenden
Weisen Sie jeder Ausführung eine eindeutige ID zu.
Beispiel:
IMPORT-20260922-00152
Nehmen Sie ihn auf in:
- API-Protokollen;
- Worker-Protokollen;
- Fehlerprotokollen.
Das beschleunigt die Fehlersuche erheblich.
Automatisierungszustand überwachen
Überwachen Sie:
- letzte erfolgreiche Ausführung;
- Dauer;
- verarbeitete Datensätze;
- Fehler;
- Wiederholungsversuche;
- Alter der Warteschlange.
Lösen Sie einen Alarm aus, wenn:
- ein erwarteter Job nicht ausgeführt wurde;
- die Warteschlange nicht mehr abgearbeitet wird;
- die Fehlerquote stark ansteigt;
- sich die Laufzeit verdoppelt.
Sicherheitscheckliste
- HTTPS
- ein Client pro Integration
- Berechtigungen nach dem Minimalprinzip
- Geheimnisse außerhalb des Quellcodes
- Tokens niemals protokollieren
- begrenzte Wiederholungsversuche
- Eingaben validieren
- Job-Endpunkte authentifizieren
- Audit-Protokolle aufbewahren
Checkliste für das Automatisierungsdesign
- maßgebliche Datenquelle definieren
- stabile externe IDs
- idempotente Schreibvorgänge
- inkrementelle Aktualisierungen
- Paginierung
- asynchrone Jobs für umfangreiche Aufgaben
- dauerhaft gespeicherter Fortschritt
- explizite Wiederholungsversuche
- Überwachung
- Rollback- oder Abgleichplan
Häufig gestellte Fragen
Kann die Admin-API Cronjobs ersetzen?
Nein. Die API stellt den Zugriff auf Operationen bereit. Cron oder ein anderer Scheduler bestimmt weiterhin, wann wiederkehrende Aufgaben laufen.
Kann ich 100.000 Produkte mit einer einzigen API-Anfrage importieren?
Das ist kein guter Entwurf. Erstellen Sie einen Job und verarbeiten Sie ihn asynchron in Batches.
Können Module eigene Endpunkte hinzufügen?
Ja. Die PrestaShop-9-Admin-API ist ausdrücklich dafür konzipiert, durch Module erweitert zu werden.
Ist OAuth2 erforderlich?
Die neue Admin-API nutzt OAuth2 für Authentifizierung und Autorisierung.
Sollten alle Integrationen einen einzigen API-Client nutzen?
Nein. Separate Clients machen Berechtigungen, Widerruf und Audits sicherer.
Was ist die wichtigste Regel der Automatisierung?
Gestalten Sie Operationen idempotent. Ein erneuter Versuch darf keine doppelten Geschäftseffekte verursachen.