← Terug naar overzicht Odoo eCommerce & webshop

Shopify koppelen aan Odoo: de complete gids

Shopify verkoopt, Odoo runt je bedrijf. Maar zodra voorraad, orders, retouren en boekhouding moeten kloppen over kanalen heen, wordt de koppeling bepalend. Een diepgaande gids over de afwegingen, de keuzes en het waarom: van datastrategie en voorraadpatronen tot connector-keuze en go-live.

Also in: English Deutsch

Shopify is uitstekend in wat het doet: verkopen. Maar het is geen ERP. Zodra je voorraad, inkoop, productie, retouren en boekhouding moet laten kloppen, en zeker als je meerdere kanalen hebt, wordt de vraag niet “hoe koppel ik Shopify aan Odoo”, maar “waar hoort de waarheid te liggen”. Dit is de diepgaande gids: de afwegingen, de keuzes en het waarom. Bedoeld voor wie een koppeling serieus wil neerzetten, en tegelijk als naslag voor onze eigen consultants.

Wanneer is Shopify alleen niet meer genoeg?

Shopify draait je webshop prima. Het knelt zodra je bedrijf groter wordt dan het verkoopkanaal. De signalen, en waarom ze optreden:

  • Voorraad klopt nooit helemaal. Je verkoopt op meerdere plekken (webshop, B2B, marktplaatsen, kassa) en elk kanaal houdt zijn eigen telling bij. Zonder centrale bron loopt het onvermijdelijk uit elkaar.
  • Handmatige overname naar boekhouding of voorraadsysteem. Elke handmatige stap is een bron van fouten en vertraging, en schaalt niet mee met je ordervolume.
  • Inkoop, productie of assemblage die Shopify niet kent. Shopify weet niet wat een inkooporder, een stuklijst of een productieorder is. Zodra je voorraad ontstaat uit inkoop of productie, heb je een systeem nodig dat die processen kent.
  • Marge niet zichtbaar. Kostprijs, inkoop en verkoop zitten in aparte systemen, dus je weet per order of product niet wat je echt verdient.
  • Consument en zakelijk door elkaar. Verschillende prijzen, btw-behandeling en voorraad per doelgroep zijn in Shopify alleen lastig strikt te scheiden.

Dit zijn geen webshop-problemen. Het zijn signalen dat je een bedrijfsplatform nodig hebt achter je webshop. Precies daar zit Odoo.

De kernbeslissing: waar hoort de waarheid?

De belangrijkste keuze maak je voordat je ook maar een connector installeert: welk systeem is leidend voor je voorraad?

Is Shopify leidend, dan houd je continu twee systemen handmatig gelijk, en verlies je zodra je op meer dan een kanaal verkoopt: de webshop weet niet wat je B2B-verkoop of je kassa net heeft afgeboekt. Is Odoo leidend, dan is er een bron van waarheid. Odoo kent je echte voorraad (inkoop, ontvangst, productie, retouren, meerdere magazijnen) en pusht de beschikbare aantallen naar elk kanaal.

Voor vrijwel elk bedrijf dat meer doet dan een enkele webshop is het antwoord: Odoo is de single source of truth, Shopify is een verkoopkanaal. De rest van deze gids gaat ervan uit dat je die keuze maakt, en laat zien hoe je hem waarmaakt.

De data-architectuur: wat synchroniseert, welke kant op, en waarom

Een goede koppeling is geen “alles met alles”, maar een bewuste keuze per gegevenssoort. Elke rij hieronder is een expliciete beslissing, met een reden:

GegevensRichtingWaarom deze richting
Producten (titel, prijs, beschrijving, media)Een kant leidend (meestal Odoo)Twee kanten bewerken geeft conflicten; kies de bron
Voorraad / beschikbaarheidOdoo naar ShopifyOdoo kent de echte voorraad, voorkomt overselling
OrdersShopify naar OdooVerkoop ontstaat op het kanaal, wordt verwerkt in Odoo
KlantenShopify naar OdooAangemaakt of gematcht bij het binnenkomen van de order
Verzending / trackingOdoo naar ShopifyFulfilment gebeurt in Odoo, status terug naar de klant
Retouren / creditnota’sShopify naar OdooTerugboeken plus voorraad herstellen op de juiste locatie
Betaling / afletterenShopify naar OdooAutomatisch geboekt en aangesloten op de bank

De richting is belangrijker dan de connector. Wie producten in beide systemen bewerkt, creeert conflicten; wie voorraad in Shopify bijhoudt naast Odoo, krijgt afwijkingen. Twee vuistregels voor conflicten: (1) definieer per veld precies een leidend systeem, en (2) laat het niet-leidende systeem dat veld alleen tonen, niet bewerken.

Voorraadstrategie: het hart van de koppeling

Hier valt of staat het geheel. De meeste mislukte koppelingen zijn in de kern voorraadproblemen.

Beschikbaar is niet gelijk aan fysiek. Wat je naar Shopify pusht is niet je fysieke voorraad, maar je beschikbare voorraad: fysiek min gereserveerd min een eventuele buffer. Push je fysieke voorraad, dan verkoop je dingen die al gereserveerd zijn.

Reserveringen en veiligheidsbuffer. Bepaal per kanaal of je een buffer aanhoudt (bijvoorbeeld de laatste paar stuks niet online tonen) om overselling bij gelijktijdige verkoop te dempen. Dit is een bewuste marge tegen race-condities, niet een technisch detail.

Real-time versus gepland synchroniseren. Real-time voelt ideaal, maar Shopify kent API-limieten en bij hoog volume kan een continue push je tegen rate limits aan laten lopen. De afweging: real-time voor snellopers en schaarse voorraad, gepland (elke X minuten) of event-gedreven voor de rest. Kies bewust per productgroep in plaats van alles real-time te willen.

Meerdere magazijnen en locaties. Verkoop je vanuit meerdere magazijnen of dropship je deels, dan bepaalt Odoo welke locatie een order vervult en welke som van locaties je als beschikbaar naar Shopify pusht. Leg die regels vast voordat je koppelt.

B2B en B2C scheiden. Dit is waar het het vaakst misgaat. Twee patronen:

  • Gescheiden voorraad: aparte magazijnen of locaties voor B2B en B2C. Strikt, voorspelbaar, maar je moet voorraad actief verdelen.
  • Gedeelde pool met reservering: een voorraad, waarbij B2B-orders vroeg reserveren zodat ze niet door de B2C-webshop worden weggekocht. Flexibeler, maar vraagt discipline in het reserveringsproces. Zonder een van deze twee verkoopt je B2C-webshop de voorraad die je voor een B2B-klant had bedoeld. De keuze hangt af van hoe strikt de scheiding moet zijn en hoeveel handwerk je accepteert.

Producten en mapping: de SKU is je sleutel

Alles hangt aan een betrouwbare koppelsleutel, en dat is de SKU. Zonder consistente SKU’s tussen Shopify en Odoo krijg je geen betrouwbare mapping van voorraad en orders.

  • Varianten: een Shopify-product met varianten mapt op productvarianten in Odoo. Zorg dat de variant-SKU’s aan beide kanten kloppen, anders boekt een verkochte variant de verkeerde voorraad af.
  • Richting van productbeheer: kies of je producten in Odoo of in Shopify onderhoudt. Odoo-leidend geeft een schone bron voor prijs, kostprijs en voorraad; Shopify-leidend past bij teams die content-first werken. Niet allebei.
  • Metafields en content: SEO-teksten en rich content leven vaak liever in Shopify. Spreek af welke velden Shopify-only zijn, zodat een sync ze niet overschrijft.

Bundles en kits: waar het stil misgaat

Shopify-bundles en Odoo-kits lijken hetzelfde, maar werken anders, en dit verschil breekt stil je voorraad.

Een bundel die in Shopify als een product verkoopt, moet in Odoo de voorraad van de onderdelen afboeken, niet van een fictief bundelproduct. Boekt de koppeling de bundel af als een enkel artikel, dan klopt je componentvoorraad na elke bundelverkoop niet meer, en zie je het pas als de tellingen uiteenlopen. Odoo lost dit op met stuklijsten of kit-producten die op componentniveau afboeken. Spreek vooraf af hoe bundels, kits en varianten worden gemapt, en test expliciet dat een bundelverkoop de juiste componenten verlaagt.

De orderflow: van kassa tot boeking

Een order doorloopt meer dan “hij komt binnen”:

  1. Order komt uit Shopify in Odoo, met klant, regels, kortingen en verzendmethode.
  2. Betaling wordt gekoppeld: Shopify Payments, iDEAL, creditcard. Voor de boekhouding wil je dat de ontvangst afgeletterd wordt tegen de order.
  3. Fulfilment gebeurt in Odoo: picken, inpakken, verzenden vanuit de juiste locatie.
  4. Tracking gaat terug naar Shopify, zodat de klant zijn status ziet.
  5. Retour of creditnota komt terug in Odoo: terugboeken en, cruciaal, de voorraad herstellen op de juiste locatie, inclusief het afhandelen van gedeeltelijke retouren.

Elke stap is een beslissing: automatisch of met controle, direct of gebatcht. Voor de boekhouding is afletteren van betalingen tegen orders het punt waar veel koppelingen half blijven steken.

Belasting en boekhouding: waar een lokale partner wint

Dit is waar een generieke internationale connector vaak tekortschiet en waar Nederlandse kennis het verschil maakt:

  • Btw en fiscale posities: B2C met btw, B2B met verlegging of intracommunautair, dat vraagt de juiste fiscale posities in Odoo.
  • EU-verkoop en OSS: verkoop je over de grens aan consumenten, dan speelt de One Stop Shop-regeling en btw per land.
  • Peppol en e-facturatie: voor zakelijke facturatie in Nederland en de EU steeds relevanter.
  • Afletteren en dagafsluiting: de brug tussen je verkoopkanaal en een kloppende boekhouding.

Dit is precies waarom “een connector installeren” niet hetzelfde is als “je e-commerce boekhouding klopt”.

Meerdere stores en kanalen: de allocatieregels

Meerdere stores (per land, merk of B2B/B2C) kunnen aan een Odoo-omgeving hangen, elk met eigen magazijn, prijslijst en kanaal. De valkuil is voorraadverdeling: zonder regels verkoopt de ene store de andere leeg. Bepaal vooraf hoe voorraad wordt verdeeld en gereserveerd, of je per store een eigen locatie hanteert, en hoe je met gedeelde voorraad omgaat. Dit is dezelfde vraag als de B2B/B2C-scheiding, een niveau breder.

De connector kiezen: een keuzematrix

Er zijn grofweg drie routes. Geen is universeel het beste; kies op scenario:

RouteSterk alsLet op
App-store connector (bijv. Webkul, Emipro)Standaard scenario, snel live, beperkt budgetMinder controle over edge cases; maatwerk vaak lastig; kwaliteit verschilt per leverancier
Odoo eigen Shopify-connectorJe wilt binnen het Odoo-ecosysteem blijvenDekking van scenario’s kan beperkter zijn dan een gespecialiseerde app
Maatwerk-koppeling (via de API)Complexe of unieke flows, volledige controleVraagt Odoo.sh of on-premise en onderhoud; elk maatwerk is upgrade-risico

De keuzecriteria: aantal stores en landen, richting en frequentie van de sync, product-mapping, bundles/kits en varianten, orderstatussen, controle over voorraadupdates, en je hostingvorm (maatwerk vraagt Odoo.sh of on-premise). Weeg ook het onderhoud: een koppeling is geen eenmalig project maar een levend onderdeel dat bij elke Shopify- en Odoo-upgrade blijft werken. Kopers zoeken vaak op connector-naam, maar de connector is het sluitstuk, niet het startpunt. We vergelijken de echte apps, hun prijzen en reviews, en de architectuurvragen die de meeste vergelijkingen overslaan, in de beste Odoo-Shopify connector kiezen.

Implementatie-aanpak: hoe je het goed neerzet

De volgorde die het verschil maakt tussen een koppeling die jaren meegaat en een die je blijft repareren:

  1. Fit-gap eerst. Breng je e-commerce processen, kanalen, voorraadstromen en boekhoudeisen in kaart voordat je een connector kiest.
  2. Datastrategie vastleggen. Per gegevenssoort: welk systeem is leidend, welke kant synchroniseert, real-time of gepland.
  3. Voorraadmodel ontwerpen. Magazijnen, locaties, buffers, B2B/B2C-scheiding, allocatieregels.
  4. Op staging bouwen en droogdraaien. Test met echte scenario’s: bundelverkoop, gedeeltelijke retour, gelijktijdige verkoop op twee kanalen, een order over meerdere magazijnen.
  5. Go-live met een voorraad-nulmeting. Begin met kloppende voorraad aan beide kanten, en monitor de eerste weken actief op afwijkingen.

Faalmodi en diagnose (voor consultants)

Als het misgaat, is de oorzaak bijna altijd een van deze. Herken het patroon:

  • Voorraad loopt uit elkaar. Oorzaak: voorraad wordt op twee plekken bijgehouden, of fysiek in plaats van beschikbaar gepusht, of een kanaal (kassa, B2B) boekt buiten Odoo om af. Fix: een bron, beschikbaar pushen, alle kanalen door Odoo.
  • Overselling. Oorzaak: sync-frequentie te laag voor snellopers, geen buffer, of geen scheiding B2B/B2C. Fix: real-time voor schaarse voorraad, buffer, scheiding.
  • Voorraad klopt na bundelverkoop niet. Oorzaak: bundel boekt af als enkel artikel in plaats van componenten. Fix: kit of stuklijst op componentniveau.
  • Dubbele klanten. Oorzaak: geen matching op e-mail bij het aanmaken. Fix: matchingsregel op een uniek veld.
  • Orders lopen vast. Oorzaak: onbekende SKU, ontbrekende fiscale positie, of een betaalmethode zonder mapping. Fix: mapping compleet maken en foutafhandeling inregelen.
  • Boekhouding sluit niet aan. Oorzaak: betalingen niet afgeletterd tegen orders, of verkeerde btw-behandeling. Fix: afletteren automatiseren, fiscale posities per doelgroep.

Kort samengevat

Shopify verkoopt, Odoo runt je bedrijf. Maak Odoo de single source of truth, bepaal per gegevenssoort welke kant de sync op gaat, push beschikbare in plaats van fysieke voorraad, scheid B2B- en B2C-voorraad bewust, map bundels op componentniveau, regel belasting en afletteren, en kies de connector pas nadat de datastrategie staat. Dan wordt de koppeling een fundament in plaats van een risico - en is 42 eindelijk in beide systemen het antwoord.


Wil je weten of jouw voorraad- of kanaalprobleem een koppeling of een platformkeuze is? Plan een vrijblijvende Quickscan en we brengen je e-commerce processen, je scope en je grootste risico’s in 20 minuten in kaart.


Meer lezen: Odoo hosting: Online, Odoo.sh of zelf hosten? · Odoo Community vs Enterprise · Wat kost een Odoo-implementatie? · Odoo ervaringen: 2.500+ reviews · Alle Odoo-vergelijkingen

Veelgestelde vragen

Waarom zou je Shopify aan Odoo koppelen?

Shopify is sterk als verkoopkanaal, maar geen ERP. Zodra je voorraad, inkoop, productie, boekhouding en meerdere kanalen (webshop, B2B, marktplaatsen) moet laten kloppen, loopt losse software vast op dubbele invoer en voorraad die nooit klopt. Door Shopify aan Odoo te koppelen wordt Odoo het kloppend hart: orders komen binnen uit Shopify, voorraad en fulfilment worden centraal beheerd, en de boekhouding loopt automatisch mee.

Kan Odoo de single source of truth zijn voor mijn Shopify-voorraad?

Ja, en dat is meestal ook de juiste opzet. Odoo houdt de echte voorraad bij (inkoop, ontvangst, productie, retouren, meerdere magazijnen) en pusht de beschikbare aantallen naar Shopify. Je webshop toont dan wat er echt is, in plaats van dat je twee systemen handmatig gelijk probeert te houden. Zo voorkom je overselling en voorraad die uit elkaar loopt.

Welke Odoo-Shopify connector is de beste?

Er is geen universeel beste connector; het hangt af van je scenario. Er zijn app-store connectors (bijvoorbeeld van Webkul of Emipro), Odoo eigen Shopify-connector, en maatwerk-koppelingen. Kies op basis van: aantal stores, richting en frequentie van de sync, product-mapping, bundles/kits, orderstatussen, retouren en hoeveel controle je wilt over voorraadupdates. De connector is minder belangrijk dan de vraag welke data leidend is en welke kant op synchroniseert.

Werkt een Odoo-Shopify koppeling met meerdere stores?

Ja. Meerdere Shopify-stores kunnen aan een Odoo-omgeving hangen, elk gekoppeld aan hun eigen magazijn, prijslijst en kanaal. Belangrijk is dat je vooraf bepaalt hoe voorraad wordt verdeeld over de kanalen, zodat de ene store de andere niet leegverkoopt.

Hoe voorkom ik overselling tussen mijn B2B- en B2C-voorraad?

Door in Odoo strikt gescheiden voorraad (aparte magazijnen of locaties) te definieren en per kanaal te bepalen welke voorraad naar welke Shopify-store gaat. Odoo blijft de bron; elke verkoop verlaagt de juiste voorraadpool. Zonder die scheiding verkoopt je B2C-webshop de voorraad die je voor B2B-klanten had gereserveerd.

Wat kost een Shopify-Odoo koppeling?

De connector zelf is vaak beperkt (een app-abonnement of eenmalige module), maar dat is zelden waar de kosten zitten. Het echte werk is de inrichting: product-mapping, voorraadstrategie, orderflow, retouren, belasting en de afstemming tussen kanalen. Een koppeling die je niet vooraf goed doordenkt, kost achteraf het meest.

Herken je dit uit je eigen setup?

Een scan van 30 minuten maakt het concreet: wat blijft standaard Odoo, wat wordt maatwerk, en waar heb je überhaupt geen code voor nodig.

Neem contact op ← Terug naar blog