PS PrestaShop Mittel

Odoo-Konnektor — Vollständiges Handbuch

Die Echtzeit-Synchronisation PrestaShop ⇄ Odoo (Produkte, Bestand, Bestellungen, Kunden) für PrestaShop 8 und 9 installieren, konfigurieren und betreiben.

Aktualisiert Modulversion 1.0.0

Der Odoo-Konnektor synchronisiert Ihre Produkte, Bestände, Bestellungen und Kunden zwischen PrestaShop und Odoo in Echtzeit und in beide Richtungen. Dieses Handbuch behandelt Installation, Verbindung zu Odoo, Wahl der Synchronisationsrichtung, Erstsynchronisation, Cron, eingehenden Webhook und Fehlerbehebung.

Voraussetzungen

  • PrestaShop 8.0 bis 9.x.
  • PHP 7.4 bis 8.3 mit aktivierter cURL-Erweiterung.
  • Eine Odoo-Instanz 14 bis 18 (online oder selbst gehostet), die per HTTPS von Ihrem PrestaShop-Server erreichbar ist.
  • Ein Odoo-Benutzer mit API-Schlüssel und Rechten auf den Modellen Verkauf, Lager und Kontakte.

Das Modul kommuniziert mit Odoo über JSON-RPC. Die PHP-Erweiterung xmlrpc, die in PHP 8 entfernt wurde, ist nicht erforderlich.

Installation

  1. Öffnen Sie im Back-Office Module > Modul-Manager, dann Ein Modul hochladen und legen Sie die Datei dfodooconnect.zip ab.
  2. Öffnen Sie nach der Installation die Konfigurationsseite über die Schaltfläche Konfigurieren oder den Reiter Odoo Connector im Verwaltungsmenü.

Einen API-Schlüssel in Odoo erzeugen

  1. Melden Sie sich bei Odoo mit dem für die Synchronisation vorgesehenen Servicekonto an.
  2. Öffnen Sie Einstellungen > Kontosicherheit > API-Schlüssel und erzeugen Sie einen neuen Schlüssel.
  3. Kopieren Sie den Schlüssel: Er ersetzt das Passwort in der Modulkonfiguration.

Legen Sie einen eigenen Odoo-Benutzer an (zum Beispiel „PrestaShop Sync“) statt ein persönliches Administratorkonto zu verwenden. So behalten Sie auf der Odoo-Seite ein klares Audit-Protokoll.

Verbindung zu Odoo

Füllen Sie auf der Konfigurationsseite die vier Felder des Blocks Odoo-Verbindung aus:

  • Odoo-URL: die vollständige Adresse Ihrer Instanz, z. B. https://mein-odoo.com.
  • Datenbank: der genaue Name der Odoo-Datenbank.
  • Benutzer: der Login des Servicekontos.
  • API-Schlüssel: der im vorherigen Schritt erzeugte Schlüssel.

Klicken Sie auf Verbindung testen. Bei Erfolg zeigt das Modul die erkannte Odoo-Version und die Benutzerkennung (uid) an. Speichern Sie, und aktivieren Sie dann Synchronisation aktivieren.

Solange das Kontrollkästchen Synchronisation aktivieren nicht angehakt ist, werden keine Daten an Odoo gesendet, selbst wenn die Verbindung gültig ist.

Entitäten und Synchronisationsrichtung wählen

Vier Entitäten werden verwaltet. Für jede aktivieren oder deaktivieren Sie die Synchronisation; für Produkte und Bestand wählen Sie zusätzlich die Richtung.

  • Kunden: PrestaShop zu Odoo (res.partner-Kontakte).
  • Produkte: PrestaShop zu Odoo, Odoo zu PrestaShop oder bidirektional.
  • Bestand: PrestaShop zu Odoo, Odoo zu PrestaShop oder bidirektional.
  • Bestellungen: PrestaShop zu Odoo (Verkaufsaufträge sale.order).

Zwei Optionen ergänzen das Verhalten der Bestellungen: Bestellung in Odoo automatisch bestätigen (wandelt das Angebot in einen bestätigten Verkaufsauftrag um) und Odoo-Rechnung erzeugen.

Erstsynchronisation

Bevor Sie den Echtzeit-Fluss in einem bestehenden Shop aktivieren, befüllen Sie Odoo über den Block Erstsynchronisation mit Ihren aktuellen Daten:

  1. Alle Kunden exportieren: stellt jeden Kunden in die Export-Warteschlange.
  2. Alle Produkte exportieren: vor Bestand und Bestellungen erforderlich, da Bestellpositionen und Bestandsanpassungen auf der Produktzuordnung beruhen.
  3. Alle Bestellungen exportieren: nach Kunden und Produkten auszuführen.

Halten Sie die Reihenfolge Kunden → Produkte → Bestellungen ein. Das Modul behandelt fehlende Abhängigkeiten automatisch (es stellt ein nicht zugeordnetes Produkt in die Warteschlange, bevor es die Bestellung erneut versucht), aber die richtige Reihenfolge reduziert die Anzahl der Wiederholungen.

Cron-Einrichtung

Der Cron leert die Warteschlange (Wiederholung fehlgeschlagener Übertragungen) und holt den Bestand aus Odoo, wenn diese Richtung aktiviert ist. Planen Sie die im Block Endpoints angezeigte URL alle 1 bis 5 Minuten:

curl "https://ihr-shop.com/module/dfodooconnect/cron?token=IHR_TOKEN"

Das Token wird bei der Installation automatisch erzeugt und in der Konfiguration angezeigt.

Eingehender Webhook (Odoo zu PrestaShop)

Damit in Odoo vorgenommene Änderungen in Echtzeit zurückfließen, erstellen Sie in Odoo eine automatisierte Aktion (Serveraktion vom Typ Webhook), die eine JSON-POST-Anfrage an die Webhook-URL des Moduls sendet.

Bestandsaktualisierung:

{ "token": "IHR_TOKEN", "entity": "stock", "odoo_id": 42, "qty": 17 }

Änderung des Bestellstatus:

{ "token": "IHR_TOKEN", "entity": "order_state", "odoo_id": 99, "state": "cancel" }

Erkannte Status sind cancel, sale und done, die auf PrestaShop-Seite jeweils Storniert, In Bearbeitung und Geliefert zugeordnet werden.

Das Webhook-token muss mit dem in der Konfiguration angezeigten übereinstimmen. Eine Anfrage ohne gültiges Token wird mit dem Code 403 abgewiesen.

Dashboard und Protokoll

Das Dashboard zeigt permanent vier Warteschlangen-Indikatoren (Ausstehend, Synchronisiert, Fehler, Abgebrochen), die Anzahl der Zuordnungen pro Entität sowie ein zeitgestempeltes Aktivitätsprotokoll. Zwei Wartungsaktionen stehen zur Verfügung: Warteschlange jetzt verarbeiten und Bestand aus Odoo importieren.

Die ausfallsichere Warteschlange

Jede Änderung in PrestaShop wird zunächst in eine Warteschlange gestellt und dann sofort nach dem Best-Effort-Prinzip an Odoo gesendet. Ist Odoo nicht erreichbar, bleibt der Auftrag in der Warteschlange und der Cron führt ihn automatisch erneut aus. Nach der konfigurierten Anzahl an Versuchen (standardmäßig 5) wird ein endgültig fehlgeschlagener Auftrag in Quarantäne (Abgebrochen) verschoben, um den Rest der Warteschlange nicht zu blockieren.

Dieser Mechanismus garantiert, dass ein Ausfall von Odoo niemals den Bestellprozess Ihrer Kunden blockiert.

Synchronisierte Felder

Kunden

Name, E-Mail, Firma, Referenz, Standardadresse (Straße, Stadt, Postleitzahl, Telefon), USt-IdNr. und Land. Die Duplikatvermeidung erfolgt über die E-Mail.

Produkte

Name, interne Referenz, Verkaufspreis, Einkaufspreis, Gewicht, Barcode, Kurzbeschreibung und Aktivstatus. Die Duplikatvermeidung erfolgt über die Referenz.

Bestand

Die verfügbaren Mengen werden über eine Bestandsanpassung am konfigurierten Odoo-Lagerort (oder am ersten internen Lagerort, falls keiner angegeben ist) übernommen.

Bestellungen

Partner, Kundenreferenz, Bestellpositionen (Produkt, Menge, Nettostückpreis) und Versandkosten. Der Kunde wird bei Bedarf sofort synchronisiert, falls dies noch nicht geschehen ist.

Testmodus (Dry-Run)

Aktivieren Sie den Testmodus, um die Zuordnung zu prüfen, ohne etwas in Odoo zu schreiben: Jeder Vorgang wird mit dem Hinweis DRY-RUN protokolliert, aber es werden keine Daten erstellt oder geändert. Ideal für eine Abnahme vor dem Go-live.

Fehlerbehebung

  • Der Verbindungstest schlägt fehl: Prüfen Sie die URL (mit https), den genauen Datenbanknamen, den Login und den API-Schlüssel. Stellen Sie sicher, dass der PrestaShop-Server die Odoo-Instanz ausgehend erreichen kann.
  • Eine Bestellung bleibt ausstehend: Wahrscheinlich ist ein Produkt der Bestellung noch nicht zugeordnet. Das Modul stellt das Produkt in die Warteschlange; führen Sie nach einigen Sekunden „Warteschlange jetzt verarbeiten“ erneut aus.
  • Der Bestand kommt nicht in PrestaShop an: Prüfen Sie, ob die Bestandsrichtung Odoo zu PrestaShop einschließt und ob der Cron läuft.
  • Duplikate auf der Odoo-Seite: Stellen Sie sicher, dass Produktreferenzen und Kunden-E-Mails ausgefüllt sind; sie sind die Abgleichschlüssel.

Deinstallation

Die Deinstallation entfernt die Zuordnungs-, Warteschlangen- und Protokolltabellen des Moduls. Ihre Daten in Odoo sind nicht betroffen. Für ein einfaches Update genügt das Ersetzen der Dateien: Schema und Zuordnungen bleiben erhalten.

War diese Seite hilfreich?

Immer noch nicht weiter? Support kontaktieren