Voorraad synchroniseren tussen webshop en winkel: voorkom dubbele verkoop
Stem voorraad in webshop, kassa en magazijn op elkaar af. Bepaal reserveringen, varianten, retouren en storingsregels met een rekenvoorbeeld en opleverchecklist.
In het kort
- Kies één hoofdvoorraad, maar laat elke verkoop en reservering uit webshop, kassa en magazijn daar correct in verwerken.
- Fysiek aanwezig is niet hetzelfde als verkoopbaar: trek open reserveringen, geblokkeerde stukken en een eventuele buffer af.
- Leg per variant en locatie vaste artikelcodes vast; een totaal voor alle maten of magazijnen kan een verkeerde leverbelofte geven.
- Realtime meldingen verminderen vertraging, maar voorkomen niet vanzelf dubbele verkoop of ontbrekende updates.
- Spreek vóór oplevering af wat er gebeurt bij een late betaling, retour, dubbele melding en uitgevallen koppeling.
Op deze pagina
- Begin bij de hoofdvoorraad, niet bij de connector
- Fysiek aanwezig is niet hetzelfde als verkoopbaar
- Maak de regels per variant en locatie expliciet
- Wanneer reserveer je, en wanneer geef je voorraad vrij?
- Rekenvoorbeeld: winkelverkoop én verzending uit dezelfde voorraad
- Realtime koppelen helpt, maar is geen garantie
- Wat doe je als de koppeling uitvalt?
- Opleverchecklist voor je voorraadkoppeling
- Bronnen en onderzoeksmethode
- Veelgestelde vragen
Wil je dezelfde producten in je winkel en webshop verkopen? Kies dan één hoofdvoorraad en spreek af wanneer een stuk wordt gereserveerd, verkocht, vrijgegeven of opnieuw verkoopbaar wordt. Alleen twee voorraadtellers regelmatig gelijkzetten is niet genoeg: beide kanalen kunnen ondertussen het laatste stuk aan een andere klant beloven.
Deze gids helpt Belgische handelaars en kmo's met een webshop, een fysieke winkel of meerdere verkoopkanalen. Je krijgt beslisregels voor je kassa en magazijn, een doorgerekend voorbeeld en een checklist om een koppeling te laten opleveren. De technische principes zijn ook bruikbaar voor een Nederlandse winkel; het verkoopproces en de gekozen software bepalen de inrichting.
Begin bij de hoofdvoorraad, niet bij de connector
Noteer eerst waar je vandaag leveringen ontvangt, voorraad telt en winkelverkopen registreert. Dat systeem is een kandidaat om de hoofdvoorraad te beheren. Bij een kleine webshop kan dat de webshop zelf zijn. Bij een winkel met een aparte kassa of een bedrijf met magazijnbeheer kan een kassa-, ERP- of voorraadpakket beter passen.
De keuze hangt niet af van het grootste pakket, maar van je dagelijkse werk. Kan een medewerker daar een beschadigd artikel blokkeren? Worden afhaalbestellingen zichtbaar? Kun je achteraf uitleggen waarom een aantal veranderde?
Eén bron betekent niet éénrichtingsverkeer. De webshop ontvangt verkoopbare aantallen, maar moet zijn orders en reserveringen ook terugmelden. De winkelkassa geeft verkopen door. Het magazijn registreert ontvangsten en correcties. Laat die gebeurtenissen in één afgesproken voorraadadministratie samenkomen, in plaats van elk systeem onafhankelijk de teller te laten overschrijven.
Dit is een ander vraagstuk dan facturen en betalingen koppelen. Onze gids over de webshop en boekhouding behandelt die financiële stroom; hier gaat het om de stukken die je werkelijk kunt leveren.
Fysiek aanwezig is niet hetzelfde als verkoopbaar
Gebruik in je afspraken minstens vier begrippen:
- Fysieke voorraad: wat daadwerkelijk op de betreffende locatie ligt, inclusief stukken die je nog niet mag verkopen.
- Gereserveerd: stukken die nog aanwezig zijn, maar al aan een order of afhaling zijn toegewezen.
- Geblokkeerd: bijvoorbeeld beschadigde artikelen of een retour die nog gecontroleerd moet worden.
- Verkoopbaar: wat je na die beperkingen aan een nieuwe klant kunt aanbieden.
Shopify maakt in zijn documentatie over voorraadstatussen (opent in een nieuw venster) onder meer onderscheid tussen fysiek aanwezige voorraad, beschikbare voorraad en voorraad toegewezen aan orders. Onderweg zijnde goederen hebben een aparte status en zijn niet automatisch beschikbaar voor verkoop. De precieze veldnamen en reserveringsregels verschillen per pakket: spreek dus af welke betekenis de koppeling doorgeeft.
Een bruikbaar vereenvoudigd rekenmodel is: verkoopbaar = fysiek aanwezig − open reserveringen − geblokkeerde stukken − eventuele veiligheidsbuffer. Pas dit niet blind toe op een veld dat al beschikbare voorraad bevat. Dan trek je reserveringen of de buffer mogelijk twee keer af. Vraag je leverancier om de berekening per bronveld uit te leggen.
Een buffer kan helpen bij vertraging of telverschillen, maar houdt ook voorraad uit de verkoop. Kies hem per productgroep en herbekijk hem: twee stuks achterhouden is iets anders bij vijftig identieke artikelen dan bij een uniek product.
Maak de regels per variant en locatie expliciet
Een voorraad van tien schoenen zegt niets over de beschikbaarheid van maat 42. Geef elke afzonderlijk beheerde variant een stabiele artikelcode, ook SKU genoemd. Leg de bijbehorende codes uit webshop, kassa en magazijn naast elkaar. Laat geen twee verschillende maten op dezelfde voorraadregel uitkomen.
WooCommerce ondersteunt voorraadbeheer op productniveau, variantniveau of een combinatie (opent in een nieuw venster). Een gedeelde teller kan passen als varianten werkelijk dezelfde fysieke voorraad gebruiken, maar niet als elke kleur of maat apart op de plank ligt. Controleer daarom de inrichting, niet alleen de aanwezigheid van een voorraadveld.
Leg vervolgens vast welke locatie een order mag leveren. Een stuk in de winkel is niet noodzakelijk beschikbaar voor verzending uit het magazijn. Een transfer tussen locaties is evenmin een nieuwe aankoop: voorkom dat beide locaties hetzelfde stuk tegelijk als vrij beschikbare voorraad tonen.
De Shopify-documentatie over voorraad per locatie (opent in een nieuw venster) beschrijft afzonderlijke voorraadniveaus per artikel en locatie. Voor je briefing betekent dit: vraag niet alleen om een totaal, maar ook om regels voor verzending, afhaling en verplaatsingen. Definieer bij samengestelde pakketten bovendien welke onderdelen verbruikt worden; de voorraad van het pakket mag niet losstaan van die onderdelen.
Wanneer reserveer je, en wanneer geef je voorraad vrij?
Maak samen met je leverancier een besliskaart voor de orderstatussen. Schrijf niet alleen “voorraad daalt na verkoop”, maar beantwoord deze vragen:
- Order aangemaakt: reserveer je meteen, pas na bevestigde betaling of op een ander afgesproken moment?
- Betaling nog onderweg: hoelang blijft de reservering bestaan, en geldt dat ook voor overschrijvingen of zakelijke orders op factuur?
- Betaling mislukt of order geannuleerd: wie geeft de reservering vrij, en hoe voorkom je dubbele vrijgave?
- Betaling komt na het vrijgeven alsnog binnen: controleer je opnieuw de voorraad voordat je levering belooft?
- Order verzonden of afgehaald: hoe verdwijnen zowel het fysieke stuk als de bijbehorende reservering, zonder een tweede aftrek van verkoopbare voorraad?
De WooCommerce-instelling Hold Stock (opent in een nieuw venster) reserveert voorraad voor onbetaalde orders gedurende een ingesteld aantal minuten. De documentatie zegt uitdrukkelijk dat dit geldt voor Pending payment, niet voor On hold. Een lege waarde schakelt die instelling uit. Laat je leverancier controleren hoe je betaalplug-in en eventuele uitbreidingen met die statussen omgaan; neem niet aan dat één timer alle betaalwijzen afdekt.
Voor een B2B-order op factuur kan het bijvoorbeeld logisch zijn om al vóór betaling te reserveren. Dat is een proceskeuze, geen reden om dezelfde regel ook toe te passen op elk verlaten betaalproces.
Rekenvoorbeeld: winkelverkoop én verzending uit dezelfde voorraad
Fictief voorbeeld: een handelaar in Hasselt verkoopt één artikel vanuit dezelfde fysieke voorraad via winkel en webshop. Er liggen twaalf stuks. Drie zijn gereserveerd voor open orders, één is beschadigd en twee vormen een veiligheidsbuffer. De buffer en het beschadigde stuk blijven in dit voorbeeld onveranderd.
- Start: 12 fysiek − 3 gereserveerd − 1 beschadigd − 2 buffer = 6 verkoopbaar.
- Een winkelklant neemt twee vrije stuks mee: fysiek wordt 10, de bestaande reserveringen blijven 3. Verkoopbaar wordt 4.
- Een nieuwe webshoporder reserveert één stuk: fysiek blijft 10, gereserveerd wordt 4. Verkoopbaar wordt 3.
- Dat gereserveerde stuk wordt verzonden: fysiek wordt 9 en gereserveerd wordt weer 3. Verkoopbaar blijft 3.
De laatste stap is belangrijk: het verstuurde stuk was al uit de vrije voorraad gehaald toen het werd gereserveerd. De koppeling mag het bij verzending niet nogmaals van het verkoopbare aantal aftrekken.
Komt een retour terug, registreer dan eerst wat fysiek is ontvangen en wat voorlopig geblokkeerd blijft. Geef het pas vrij volgens je controleprocedure. Een terugbetaling bewijst op zichzelf niet dat een verkoopbaar stuk op de plank ligt. WooCommerce heeft hiervoor bij refunds een afzonderlijke optie Restock refunded items (opent in een nieuw venster); stem die af op je echte retourproces.
Realtime koppelen helpt, maar is geen garantie
Bij een geplande export kan voorraad gedurende het hele update-interval verouderd zijn. Een snelle melding bij elke verkoop verkleint die vertraging, maar twee klanten kunnen nog steeds tegelijk het laatste stuk zien. Vraag daarom hoe de oplossing dat stuk gezamenlijk reserveert of toewijst wanneer meerdere kanalen tegelijk verkopen.
| Aanpak | Kan passen bij | Belangrijkste beperking |
|---|---|---|
| Periodieke export | Ruime voorraad, weinig overlap tussen kanalen | Wijzigingen blijven tot de volgende update onzichtbaar |
| Gebeurtenisgestuurde koppeling | Regelmatige verkopen in winkel én webshop | Gemiste of vertraagde meldingen moeten worden hersteld |
| Centrale reservering of toewijzing | Schaarse artikelen of veel gelijktijdige verkoop | Alle kanalen moeten de gezamenlijke regel kunnen volgen |
Dit zijn ontwerpkeuzes, geen garanties van een bepaald product. Vraag een connectorleverancier welke regel hij werkelijk ondersteunt en wat er gebeurt als de voorraad intussen veranderd is.
Shopify biedt bijvoorbeeld bij het instellen van voorraad via de API (opent in een nieuw venster) een vergelijking met het verwachte vorige aantal. Bij een verschil wordt de wijziging geweigerd. Shopify waarschuwt dat het overslaan van die vergelijking bij gelijktijdige verzoeken verkeerde aantallen kan geven. Zo'n controle helpt tegen overschrijven, maar vervangt geen gezamenlijk reserveringsproces tussen alle verkoopkanalen.
Ook snelle meldingen kunnen ontbreken of in een andere volgorde aankomen. Shopify adviseert daarom in zijn webhookrichtlijnen (opent in een nieuw venster) periodiek gegevens opnieuw op te halen en te vergelijken. Spreek naast snelle updates dus een onafhankelijke voorraadvergelijking af. Een groen meldingslog is niet hetzelfde als twee overeenkomende voorraden.
Wat doe je als de koppeling uitvalt?
Bepaal vooraf wie de melding krijgt, hoe oud een voorraadstand mag worden en wat je dan met schaarse artikelen doet. Mogelijke keuzes zijn tijdelijk niet meer online verkopen, een grotere buffer gebruiken of zulke orders handmatig beoordelen. De juiste keuze hangt af van de producten en je leverbelofte; een algemene regel voor elk assortiment is niet zinvol.
Laat fouten zichtbaar maken met artikel, locatie, betrokken order, tijdstip en reden. Vraag bij herstel niet simpelweg om “alles opnieuw sturen”: eerst moet duidelijk zijn welke verkopen en reserveringen al verwerkt zijn. Een herhaalde melding mag dezelfde order niet opnieuw aftrekken.
Klopt een teller niet? Volg één artikel door de keten: fysieke telling, hoofdvoorraad, open reserveringen en de stand in elk kanaal. Controleer de laatste wijziging en eventuele handmatige correcties. Herstel de oorzaak voordat je overal hetzelfde aantal invult, anders keert het verschil terug.
Opleverchecklist voor je voorraadkoppeling
Gebruik deze lijst als concrete briefing en acceptatiecriteria:
- Bron en codes: documenteer hoofdvoorraad, artikelcodes, varianten, locaties en verantwoordelijke medewerker.
- Betekenis: leg vast of elk veld fysieke, beschikbare of gereserveerde voorraad bevat en waar blokkeringen en buffers worden berekend.
- Statussen: beschrijf reservering, annulering, late betaling, gedeeltelijke levering, afhaling, retour en voorraadcorrectie.
- Gelijktijdige verkoop: laat in een afgeschermde testomgeving aantonen wat twee kanalen met het laatste stuk doen. Controleer ook een dubbele en vertraagde melding.
- Storing en herstel: simuleer een onbereikbaar systeem; controleer waarschuwing, tijdelijke verkoopregel en herstel zonder dubbele mutaties.
- Controle: vraag een overzicht van verschillen en de laatste geslaagde vergelijking, niet alleen een melding dat de connector draait.
- Livegang: spreek een beperkte start en dagelijkse controle van de eerste mutaties af. Leg vast wie afwijkingen oplost en wanneer je terugvalt op handmatige verwerking.
Verwerk de uiteindelijke beschikbaarheid ook consequent op productpagina en checkout. Lever je productgegevens aan Google, controleer dan eveneens de Merchant Center-productfeed. Die feed moet de juiste beschikbaarheid ontvangen; hij beheert je voorraad niet.
Je hoeft niet vooraf te weten welke connector past. Neem je systemenlijst, één lastig artikel en de besliskaart mee naar een gesprek over koppelingen met je software. Daarmee kun je beoordelen of een bestaande oplossing volstaat of dat je proces extra logica nodig heeft, zonder meteen een nieuwe webshop te bestellen.
Bronnen en onderzoeksmethode
De gelinkte primaire bronnen van Shopify en WooCommerce zijn geraadpleegd op 1 oktober 2026. Ze onderbouwen de beschreven productfuncties; de checklist en berekeningen zijn een praktische uitwerking, geen verslag van een geteste klantimplementatie. Het artikel is met AI-ondersteuning opgesteld. Laat de concrete werking bevestigen voor jouw pakketversies, uitbreidingen en verkoopproces.
Veelgestelde vragen
- Kan ik voorraad alleen in mijn webshop beheren?
- Ja, als de webshop je enige voorraadbeheerder is en alle verkopen, ontvangsten en correcties daar worden geregistreerd. Bij een aparte winkelkassa, ERP of magazijnadministratie moet je eerst bepalen welk systeem de hoofdvoorraad beheert en hoe de andere systemen hun wijzigingen doorgeven.
- Hoe vaak moet mijn webshopvoorraad synchroniseren?
- Er is geen universeel juist interval. Kies het op basis van de verkoopsnelheid, voorraad per artikel en gevolgen van een verkeerde bestelling. Voor schaarse artikelen die ook in de winkel verkopen, is alleen een nachtelijke update vaak onvoldoende. Combineer snelle meldingen met periodieke vergelijking en een afgesproken storingsregel.
- Voorkomt realtime synchronisatie dat het laatste stuk twee keer wordt verkocht?
- Niet automatisch. Twee kanalen kunnen tegelijk hetzelfde beschikbare stuk zien. Je hebt ook een regel nodig voor het gezamenlijk reserveren of toewijzen van dat stuk, plus conflictcontrole. Een voorraadbuffer verlaagt het risico, maar geeft geen garantie.
- Moet een terugbetaald artikel meteen weer op voorraad komen?
- Niet noodzakelijk. Terugbetaling en fysieke voorraad zijn afzonderlijke stappen. Bepaal of het artikel al terug is en opnieuw verkocht mag worden. WooCommerce heeft bij een refund een afzonderlijke optie om artikelen terug op voorraad te zetten; stem die af op de werkwijze van je magazijn.
Gratis gesprek van 30 minuten
Liever even sparren over jouw situatie?
Plan een vrijblijvend gesprek met iemand van het team dat bouwt. Na 30 minuten weet je wat je nodig hebt en wat het kost.