10 Aufgaben, die Sie mit der PrestaShop-9-Admin-API automatisieren können

55 Views

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:

  1. Importe pausieren;
  2. den Shopzustand prüfen;
  3. Code bereitstellen;
  4. ausgewählte Caches leeren;
  5. Datenbankmigrationen ausführen;
  6. den API-Zustand prüfen;
  7. 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.

Weitere PrestaShop-9-Leitfäden und Ressourcen