PS PrestaShop Mittel

Multi-Shop-Synchronisation — Installations- und Konfigurationsleitfaden

Installieren, zwei PrestaShop-Shops verbinden und die Katalogsynchronisation im Push- oder Pull-Modus konfigurieren, mit Cron und Konfliktmanagement.

Aktualisiert Modulversion 1.0.0

Dieser Leitfaden behandelt die Installation des Moduls Multi-Shop-Synchronisation, die Verbindung zweier PrestaShop-Installationen und die vollständige Konfiguration der Katalogsynchronisation.

Voraussetzungen

  • Zwei PrestaShop-Installationen 8.0 bis 9.x (Datenbanken und Hosting können getrennt sein).
  • Die PHP-cURL-Erweiterung aktiviert auf dem Shop, der die Synchronisation steuert.
  • Der Webservice aktiviert auf dem entfernten Shop, mit einem dedizierten Zugangsschlüssel.

Das Modul wird nur auf dem Shop installiert, der die Synchronisation steuert. Der entfernte Shop benötigt lediglich seinen aktivierten Webservice — dort ist kein Modul zu installieren.

Modul installieren

  1. Öffnen Sie im Back-Office des steuernden Shops Module > Modul-Manager.
  2. Klicken Sie auf Modul hochladen und senden Sie die Datei dfmultisync.zip.
  3. Nach der Installation fügt das Modul das Menü Erweiterte Parameter > DF Multi-Store Sync hinzu.

Webservice auf dem entfernten Shop aktivieren

Auf dem zu verbindenden Shop:

  1. Öffnen Sie Erweiterte Parameter > Webservice.
  2. Stellen Sie PrestaShop-Webservice aktivieren auf Ja und speichern Sie.
  3. Klicken Sie auf Neuen Webservice-Schlüssel hinzufügen, erzeugen Sie einen Schlüssel und gewähren Sie dann die Berechtigungen GET, POST, PUT und DELETE für: categories, products, images, combinations, stock_availables, specific_prices und languages.
  4. Speichern Sie und kopieren Sie den erzeugten Schlüssel.

Ohne die Berechtigung DELETE für specific_prices schlägt die Synchronisation der spezifischen Preise fehl: Das Modul spiegelt den entfernten Satz durch Löschen und Neuanlegen.

Einen entfernten Standort hinzufügen

  1. Gehen Sie zu DF Multi-Store Sync > Entfernte Standorte und dann Entfernten Standort hinzufügen.
  2. Geben Sie einen Namen, die Root-URL des entfernten Shops (z. B. https://shop-b.beispiel.com) und den zuvor kopierten Webservice-Schlüssel ein.
  3. Speichern Sie und klicken Sie in der Liste auf Test, um die Verbindung zu prüfen.

Die Schaltfläche Test fragt tatsächlich den entfernten Webservice ab. Schlägt sie fehl, prüfen Sie die URL (mit dem Protokoll https://), den Schlüssel und ob der Webservice auf der Gegenseite aktiviert ist.

Ein Synchronisationsprofil erstellen

Ein Profil beschreibt, was synchronisiert wird, in welche Richtung und wie Konflikte geschlichtet werden.

Richtung: Push oder Pull

  • Push — der aktuelle Shop ist die Quelle und sendet seine Daten an den entfernten Standort.
  • Pull — der entfernte Standort ist die Quelle; der aktuelle Shop empfängt seine Daten.

Entitäten

Wählen Sie die zu synchronisierenden Entitäten. Sie werden stets in dieser Reihenfolge verarbeitet, um Abhängigkeiten zu respektieren: Kategorien → Produkte → Bestand → spezifische Preise.

Optionen

  • Bilder synchronisieren — beim Push werden neue lokale Bilder gesendet; beim Pull werden Bilder bei der Erstellung des Produkts heruntergeladen.
  • Spezifische Preise synchronisieren — nur im Push-Modus verfügbar.
  • Stapelgröße — Anzahl der pro Zyklus verarbeiteten Entitäten (1 bis 25). Verringern Sie sie, wenn der entfernte Server langsam ist.

Konfliktstrategien

Ein Konflikt entsteht, wenn beide Shops seit der letzten Synchronisation denselben Datensatz bearbeitet haben. Vier Strategien stehen zur Verfügung:

  • Quelle gewinnt — die Quelle überschreibt immer das Ziel.
  • Ziel gewinnt — in Konflikt stehende Entitäten werden übersprungen.
  • Neuestes gewinnt — die Änderungsdaten werden verglichen.
  • Manuell — Konflikte werden zur Schlichtung in eine Warteschlange gestellt.

Eine erste Synchronisation starten

  1. Öffnen Sie das Dashboard des Moduls.
  2. Klicken Sie in der Profilzeile auf Jetzt ausführen.
  3. Die Synchronisation läuft in Stapeln: Der Fortschrittsbalken zeigt live die Anzahl erstellter, aktualisierter, übersprungener, in Konflikt stehender und fehlerhafter Entitäten.

Die Synchronisation arbeitet innerhalb eines Zeitbudgets (standardmäßig 25 Sekunden) und wird automatisch dort fortgesetzt, wo sie aufgehört hat. Bei einem großen Katalog reihen sich mehrere Zyklen ohne Eingriff aneinander.

Mit Cron automatisieren

  1. Aktivieren Sie die Option Cron bei den betreffenden Profilen.
  2. Kopieren Sie die auf dem Dashboard angezeigte Cron-URL (durch ein Token gesichert).
  3. Fügen Sie sie der Crontab Ihres Servers hinzu, zum Beispiel alle fünfzehn Minuten:
*/15 * * * * wget -q -O /dev/null "https://ihr-shop.com/module/dfmultisync/cron?token=IHR_TOKEN"

Das Token der Cron-URL ist vertraulich: Es autorisiert das Auslösen der Synchronisationen. Teilen Sie es nicht und legen Sie es nicht öffentlich offen.

Konflikte lösen

Mit der Strategie Manuell sammeln sich Konflikte im Tab Konflikte. Für jede ausstehende Zeile:

  • Lokal behalten — erzwingt den Push der lokalen Version.
  • Entfernt behalten — erzwingt den Pull der entfernten Version.
  • Ignorieren — markiert den Konflikt als erledigt, ohne etwas zu übertragen.

Protokolle und Überwachung

Der Tab Logs bewahrt den Verlauf der Vorgänge (Info, Warnung, Fehler) auf, filterbar nach Ebene und Datum. Die Protokolle werden nach 30 Tagen automatisch bereinigt.

Fehlerbehebung

Der Verbindungstest schlägt fehl

Prüfen Sie, ob der Webservice auf der Gegenseite aktiviert ist, ob der Schlüssel korrekt ist und ob sein Berechtigungsprofil die oben aufgeführten Ressourcen abdeckt. Stellen Sie sicher, dass die URL https:// enthält.

Einige Produkte werden übersprungen

Das Modul ordnet Produkte und Kombinationen über die Referenz zu. Ein Produkt ohne Referenz oder mit abweichender Referenz zwischen den beiden Shops kann für den Bestand nicht zugeordnet werden. Vergeben Sie einheitliche Referenzen.

Spezifische Preise werden nicht synchronisiert

Die Synchronisation der spezifischen Preise erfolgt nur per Push und erfordert die Berechtigung DELETE für specific_prices auf der Gegenseite.

Die Synchronisation wirkt langsam

Verringern Sie die Stapelgröße des Profils und lassen Sie den Cron die Zyklen aneinanderreihen. Der erste Durchlauf ist stets der längste; die folgenden übertragen nur die tatsächlich geänderten Entitäten.

War diese Seite hilfreich?

Immer noch nicht weiter? Support kontaktieren