PS PrestaShop Gemiddeld

Odoo Connector: volledige gids

De realtimesynchronisatie PrestaShop ⇄ Odoo (producten, voorraad, bestellingen, klanten) installeren, configureren en benutten voor PrestaShop 8 en 9.

Bijgewerkt Moduleversie 1.0.0

De Odoo Connector synchroniseert uw producten, voorraad, bestellingen en klanten in realtime en in beide richtingen tussen PrestaShop en Odoo. Deze gids behandelt de installatie, de verbinding met Odoo, de keuze van de synchronisatierichting, de initiële synchronisatie, de cron, de inkomende webhook en de probleemoplossing.

Vereisten

  • PrestaShop 8.0 tot 9.x.
  • PHP 7.4 tot 8.3 met de cURL-extensie actief.
  • Een Odoo-instantie 14 tot 18 (online of zelfgehost), via HTTPS bereikbaar vanaf uw PrestaShop-server.
  • Een Odoo-gebruiker met een API-sleutel en rechten op de modellen Verkoop, Voorraad en Contacten.

De module communiceert met Odoo via JSON-RPC. De PHP-extensie xmlrpc, die uit PHP 8 is verwijderd, is niet nodig.

Installatie

  1. Open in de backoffice Modules > Modulebeheer, kies Een module uploaden en upload het bestand dfodooconnect.zip.
  2. Open na de installatie de configuratiepagina via de knop Configureren of het tabblad Odoo Connector in het beheermenu.

Een API-sleutel genereren in Odoo

  1. Log in bij Odoo met het serviceaccount dat voor de synchronisatie is bestemd.
  2. Open Voorkeuren > Accountbeveiliging > API-sleutels en genereer een nieuwe sleutel.
  3. Kopieer de sleutel: ze vervangt het wachtwoord in de configuratie van de module.

Maak een eigen Odoo-gebruiker aan (bijvoorbeeld “PrestaShop Sync”) in plaats van een persoonlijk beheerdersaccount te gebruiken. Zo behoudt u een duidelijk auditlogboek aan Odoo-zijde.

Verbinden met Odoo

Vul op de configuratiepagina de vier velden van het blok Odoo-verbinding in:

  • Odoo-URL: het volledige adres van uw instantie, bijvoorbeeld https://mijn-odoo.com.
  • Database: de exacte naam van de Odoo-database.
  • Gebruiker: de login van het serviceaccount.
  • API-sleutel: de sleutel die u in de vorige stap hebt gegenereerd.

Klik op Verbinding testen. Bij succes toont de module de gedetecteerde Odoo-versie en het gebruikers-ID (uid). Sla op en vink daarna Synchronisatie inschakelen aan.

Zolang het vakje Synchronisatie inschakelen niet is aangevinkt, wordt er geen enkel gegeven naar Odoo verzonden, ook niet als de verbinding geldig is.

Entiteiten en synchronisatierichting kiezen

Er worden vier entiteiten beheerd. Voor elke entiteit schakelt u de synchronisatie in of uit; voor producten en voorraad kiest u bovendien de richting.

  • Klanten: PrestaShop naar Odoo (contacten res.partner).
  • Producten: PrestaShop naar Odoo, Odoo naar PrestaShop, of bidirectioneel.
  • Voorraad: PrestaShop naar Odoo, Odoo naar PrestaShop, of bidirectioneel.
  • Bestellingen: PrestaShop naar Odoo (verkooporders sale.order).

Twee opties vullen het gedrag van de bestellingen aan: De bestelling automatisch bevestigen in Odoo (zet de offerte om in een bevestigde verkooporder) en De Odoo-factuur genereren.

Initiële synchronisatie

Voordat u de realtimestroom inschakelt op een bestaande winkel, vult u Odoo met uw huidige gegevens via het blok Initiële synchronisatie:

  1. Alle klanten exporteren: plaatst elke klant in de exportwachtrij.
  2. Alle producten exporteren: nodig vóór de voorraad en de bestellingen, want de bestelregels en de voorraadaanpassingen steunen op de productkoppeling.
  3. Alle bestellingen exporteren: te starten na de klanten en de producten.

Respecteer de volgorde klanten → producten → bestellingen. De module handelt ontbrekende afhankelijkheden automatisch af (hij plaatst een niet-gekoppeld product in de wachtrij voordat hij de bestelling opnieuw probeert), maar de juiste volgorde beperkt het aantal herpogingen.

Configuratie van de cron

De cron leegt de wachtrij (herpogingen van mislukte verzendingen) en importeert de voorraad uit Odoo wanneer die richting is ingeschakeld. Plan de URL uit het blok Endpoints in, elke 1 tot 5 minuten:

curl "https://uw-winkel.com/module/dfodooconnect/cron?token=UW_TOKEN"

Het token wordt bij de installatie automatisch gegenereerd en in de configuratie getoond.

Inkomende webhook (Odoo naar PrestaShop)

Om wijzigingen in Odoo in realtime terug te laten stromen, maakt u in Odoo een Geautomatiseerde actie aan (serveractie van het type webhook) die een POST JSON-request naar de webhook-URL van de module stuurt.

Voorraadupdate:

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

Statuswijziging van een bestelling:

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

De herkende statussen zijn cancel, sale en done, aan PrestaShop-zijde gemapt naar respectievelijk Geannuleerd, In voorbereiding en Geleverd.

Het token van de webhook moet identiek zijn aan dat in de configuratie. Een request zonder geldig token wordt geweigerd met code 403.

Dashboard en logboek

Het dashboard toont permanent vier wachtrij-indicatoren (In afwachting, Gesynchroniseerd, Fout, Opgegeven), het aantal koppelingen per entiteit en een activiteitenlogboek met tijdstempels. Er zijn twee onderhoudsacties beschikbaar: Wachtrij nu verwerken en Voorraad importeren uit Odoo.

De veerkrachtige wachtrij

Elke wijziging in PrestaShop wordt eerst in een wachtrij geplaatst en daarna direct naar Odoo verzonden op basis van “best effort”. Is Odoo onbereikbaar, dan blijft de taak in de wachtrij en speelt de cron hem automatisch opnieuw af. Na het geconfigureerde aantal pogingen (standaard 5) gaat een definitief mislukte taak in quarantaine (Opgegeven) om de rest van de wachtrij niet te blokkeren.

Dit mechanisme garandeert dat een storing bij Odoo nooit het bestelproces van uw klanten blokkeert.

Gesynchroniseerde velden

Klanten

Naam, e-mail, bedrijf, referentie, standaardadres (straat, plaats, postcode, telefoon), btw-nummer en land. De anti-duplicaatkoppeling gebeurt op e-mail.

Producten

Naam, interne referentie, verkoopprijs, inkoopprijs, gewicht, barcode, korte beschrijving en actieve status. De anti-duplicaatkoppeling gebeurt op referentie.

Voorraad

De beschikbare aantallen worden doorgegeven via een voorraadaanpassing op de geconfigureerde Odoo-locatie (of de eerste interne locatie als er geen is opgegeven).

Bestellingen

Partner, klantreferentie, bestelregels (product, aantal, eenheidsprijs exclusief btw) en verzendkosten. De klant wordt direct meegesynchroniseerd als dat nog niet is gebeurd.

Testmodus (dry-run)

Schakel Testmodus in om de mapping te valideren zonder iets in Odoo te schrijven: elke operatie wordt in het logboek geregistreerd met de vermelding DRY-RUN, maar er wordt geen enkel gegeven aangemaakt of gewijzigd. Ideaal voor een acceptatietest vóór de productiestart.

Probleemoplossing

  • De verbindingstest mislukt: controleer de URL (met https), de exacte databasenaam, de login en de API-sleutel. Zorg dat de PrestaShop-server de Odoo-instantie uitgaand kan bereiken.
  • Een bestelling blijft in afwachting: waarschijnlijk is een product van de bestelling nog niet gekoppeld. De module plaatst het product in de wachtrij; klik na enkele seconden opnieuw op “Wachtrij nu verwerken”.
  • De voorraad komt niet terug in PrestaShop: controleer of de voorraadrichting Odoo naar PrestaShop omvat en of de cron draait.
  • Duplicaten aan Odoo-zijde: zorg dat de productreferenties en de klant-e-mails zijn ingevuld; dat zijn de koppelingssleutels.

De-installatie

De de-installatie verwijdert de koppelings-, wachtrij- en logboektabellen van de module. Uw gegevens in Odoo worden niet geraakt. Voor een simpele update volstaat het vervangen van de bestanden: het schema en de koppelingen blijven behouden.

Was deze pagina nuttig?

Loopt u nog vast? Neem contact op met support