Kennisbank
Een WMS koppelen aan je webshop en ERP
Een WMS koppel je met zes stromen. Artikelen, verkooporders en inkooporders gaan naar het magazijn. Leveringen, ontvangsten en voorraadmutaties komen terug. Per stroom ligt vast welk systeem leidend is, zodat de voorraad in je webshop en in je ERP dezelfde is als op de schappen.
Bijgewerkt op
Wat koppel je tussen een WMS, je webshop en je ERP?
Een WMS (Warehouse Management System) stuurt het magazijn aan: locaties, picklijsten, ontvangsten en zendingen. Het staat tussen de webshop, waar de order ontstaat, en het ERP, waar de order wordt gefactureerd en de voorraad een waarde heeft. Daartussen lopen zes stromen.
| Stroom | Van | Naar | Sleutel |
|---|---|---|---|
| Artikelen | ERP | WMS | artikelnummer, barcode |
| Verkooporders | webshop of ERP | WMS | ordernummer, regel per artikel |
| Leveringen | WMS | ERP en webshop | orderregel, aantal, trackcode |
| Inkooporders | ERP | WMS, als verwachte ontvangst | inkoopordernummer, verwachte datum |
| Ontvangsten | WMS | ERP | inkooporderregel, ontvangen aantal |
| Voorraadmutaties | WMS | ERP en webshop | artikelnummer, magazijn, aantal |
Drie stromen gaan naar het magazijn, drie komen terug. De heenweg vertelt het magazijn wat er gaat gebeuren. De terugweg meldt wat er werkelijk is gebeurd, en dat wijkt af: 6 stuks verzonden van de 10, 480 ontvangen van de 500, 2 stuks breuk bij een telling. Een koppeling die alleen de heenweg bouwt, laat het ERP en de webshop rekenen met wat er gepland was.
Welk systeem is leidend voor de voorraad?
Het WMS. Het is het enige systeem dat weet wat er op een picklijst staat en dus al vergeven is. Picqer geeft de voorraad per magazijn in zeven velden terug:
"stock": [
{
"idwarehouse": 18,
"stock": 120,
"reserved": 35,
"reservedbackorders": 0,
"reservedpicklists": 20,
"reservedallocations": 15,
"freestock": 85
}
]
Er liggen 120 stuks. Daarvan staan er 20 op een picklijst en zijn er 15 toegewezen aan orders: 35 gereserveerd. De vrije voorraad is 120 min 35 is 85, en dat is het getal voor de webshop. Stuurt de koppeling het veld stock door, dan verkoopt de webshop 35 stuks die al van iemand zijn. Monta noemt hetzelfde getal StockAvailable, naast onder meer StockAll, StockReserved en StockInTransit. Welke van die getallen je toont staat in welke voorraad toon je in je webshop.
Het ERP heeft de voorraad nodig voor de waardering en voor inkoop. Die komt er langs twee wegen, en daar zit de fout die het vaakst voorkomt:
| Mutatie in het magazijn | Hoe hij in het ERP komt |
|---|---|
| Zending op een order | als levering op de orderregel |
| Ontvangst op een inkooporder | als ontvangst op de inkooporderregel |
| Telling, breuk, correctie | als voorraadcorrectie |
| Verplaatsing tussen locaties | niet, of als correctie per magazijn |
Een zending van 6 stuks verlaagt de voorraad in het WMS van 120 naar 114. De levering in het ERP doet daar hetzelfde. Stuurt de koppeling dezelfde zending ook nog door als voorraadmutatie van min 6, dan staat het ERP op 108. Het verschil van 6 valt pas op bij de volgende telling. De regel: een mutatie met een document gaat als levering of ontvangst, alleen een mutatie zonder document gaat als correctie.
Locaties horen op één plek. De API van Exact Online heeft op een leveringsregel een veld StorageLocation. Er zijn standaardkoppelingen die opslaglocaties in het ERP niet ondersteunen en waarbij de synchronisatie mislukt zolang ze aan staan. Het WMS beheert de locaties, het ERP het totaal per magazijn. Bij meer dan één magazijn komt daar de vraag bij welke locaties voor de webshop meetellen, zie meerdere magazijnen.
Hoe loopt een order door het magazijn?
Bakker Installatie B.V. bestelt 10 stuks van artikel KB-2210. De order gaat als verkooporder naar het ERP en als order naar het WMS. Er liggen 6 stuks vrij. Het WMS maakt een picklijst voor 6 en zet 4 in backorder.
Bij de eerste zending stuurt Picqer het event picklists.shipments.created. De koppeling maakt daar een levering van in Exact Online:
POST /api/v1/123456/salesorder/GoodsDeliveries
{
"DeliveryDate": "2026-10-05T00:00:00",
"TrackingNumber": "3SBKKR012345678",
"GoodsDeliveryLines": [
{ "SalesOrderLineID": "8d2f6c1a-4b7e-4f0a-9c3d-2e5a1b6c7d8e", "QuantityDelivered": 6 }
]
}
De levering verwijst naar de orderregel, niet naar het artikelnummer. De koppeling bewaart daarom bij het aanmaken van de order welke regel in het ERP bij welke regel in het WMS hoort. Zonder die tabel is een order met twee keer hetzelfde artikel, één keer tegen betaling en één keer gratis, niet terug te boeken.
Drie dingen gaan hier stil mis:
- De order sluit bij de eerste zending. Een koppeling die bij elke zending de orderstatus op "verzonden" zet, meldt de klant dat alles onderweg is terwijl er 4 stuks in backorder staan.
- Het bericht komt twee keer. Picqer wacht 10 seconden op een antwoord en stuurt het bericht anders opnieuw, tot 15 keer in ongeveer 17 uur. Zonder controle op het nummer van de zending staan er twee leveringen van 6 in het ERP.
- De order wijzigt na het doorzetten. De klant belt om 9 stuks te maken van de 10. In de webshop is dat één veld. In het WMS ligt de picklijst al klaar. De koppeling zet de wijziging alleen door zolang de picklijst niet is gestart, en meldt het anders.
Hoe trackcodes en deelleveringen in de webshop terechtkomen staat bij deelleveringen en track en trace.
Hoe komen inkoop en ontvangst in het WMS?
Een inkooporder uit het ERP wordt in het WMS een verwachte ontvangst. Bij Monta heet dat een inboundforecast, bij Picqer en GoedGepickt een inkoopbestelling. Het magazijn weet daardoor wat er op welke dag binnenkomt en boekt de ontvangst af op die inkooporder.
De terugweg is de ontvangst. Van 500 bestelde stuks komen er 480 binnen. Het WMS meldt 480, de koppeling boekt in het ERP een ontvangst van 480 op de inkooporderregel, en er blijven 20 open. De 4 stuks backorder van Bakker Installatie worden uit deze ontvangst gereserveerd en gaan als tweede zending de deur uit.
De verwachte datum van de inkooporder is ook voor de webshop bruikbaar. Een artikel met 0 vrije voorraad en een ontvangst over twee dagen verkoop je anders dan een artikel dat over zes weken komt. Dat veld gaat met de voorraadstroom mee, zie levertijd synchroniseren.
Picqer, Monta en GoedGepickt: wat verschilt per WMS?
De zes stromen zijn bij elk WMS dezelfde. De toegang, de limieten en de manier waarop een wijziging wordt gemeld verschillen. Deze gegevens zijn op 3 oktober 2026 nagelezen in de API-documentatie van Picqer, Monta en GoedGepickt.
| Picqer | Monta | GoedGepickt | |
|---|---|---|---|
| Toegang | API-sleutel via Basic Auth | gebruikersnaam en wachtwoord via Basic Auth, IP-adressen vast te leggen | API-sleutel als Bearer-token |
| Limiet | 500 verzoeken per minuut per sleutel | 4.500 per 5 minuten, 27.000 per uur, 270.000 per dag | 150 per minuut per IP-adres |
| Boven de limiet | 429 | 429 | 429 met Retry-After in seconden |
| Wijzigingen | webhooks, zoals products.free_stock_changed |
opvragen: events sinds een volgnummer, 200 per keer | webhooks, zoals stockUpdated en shipmentCreated |
| Vrije voorraad | freestock per magazijn |
StockAvailable |
newStock, inclusief de buffer van die webshop |
De limieten naast elkaar gezet: Monta staat 4.500 gedeeld door 5 is 900 verzoeken per minuut toe, Picqer 500 en GoedGepickt 150. Een volledige voorraadronde over 12.000 artikelen bij Picqer is 12.000 gedeeld door 100 per pagina is 120 verzoeken, en dat past in één minuut. Picqer past de limiet bij drukte op het platform aan en geeft de actuele stand in de header X-RateLimit-Limit.
Bij Monta zit de grens ergens anders. Het endpoint dat de artikelen met gewijzigde voorraad geeft, /product/updated_since, heeft een eigen limiet: 5 verzoeken achter elkaar, daarna 1 per 10 seconden, en maximaal 7 dagen terug. Dat zijn 6 verzoeken per minuut. Een koppeling die elke 10 seconden vraagt, blijft binnen de limiet. Vraagt hij vaker, dan krijgt hij een 429. Staat hij na een storing 8 dagen stil, dan valt hij buiten de 7 dagen en leest hij de voorraad opnieuw volledig in.
GoedGepickt stuurt in stockUpdated het veld newStock: de vrije voorraad inclusief de voorraadbuffer die voor die webshop is ingesteld. Heeft de koppeling zelf ook een buffer van 2, dan gaat die er twee keer af. Wat een limiet is en hoe een koppeling ermee omgaat staat in wat is een rate limit.
Wat betekent dit voor je koppeling?
Een WMS koppelen is zes stromen bouwen en per stroom vastleggen wie de waarheid heeft. Wij bouwen die koppeling op jouw WMS, jouw ERP en jouw webshop, met de regels die bij jouw magazijn horen: welke voorraad naar de webshop gaat, hoe een deellevering wordt geboekt en wat er gebeurt met een order die na het doorzetten nog wijzigt. Daarna hosten, draaien en bewaken we hem. Een bericht dat het ERP weigert, staat met de reden in het dashboard en wordt niet stil overgeslagen.
Voor Picqer staat de uitwerking op Picqer koppelen. De stromen zelf staan op voorraad en beschikbaarheid en orders, klanten en verzending. Vertel welk WMS, welk ERP en welke webshop je hebt.
Veelgestelde vragen
Wat is een WMS?
Een WMS (Warehouse Management System) is de software die het magazijn aanstuurt: waar een artikel ligt, welke orders gepickt worden, wat er is ontvangen en wat er is verzonden. Het ERP weet hoeveel er is en wat het waard is. Het WMS weet op welke locatie het ligt en wie het nu in zijn handen heeft.
Moet de webshop aan het WMS of aan het ERP gekoppeld worden?
Beide routes bestaan. Gaat de order eerst naar het ERP, dan controleert het ERP de debiteur en de prijs voordat het magazijn gaat picken. Gaat de order direct naar het WMS, dan begint het picken eerder en krijgt het ERP de order daarna voor de factuur. De voorraad voor de webshop komt in beide gevallen uit het WMS, omdat alleen het WMS de reserveringen van de picklijsten kent.
Is de voorraad in de webshop dan realtime?
Met webhooks bijna. Picqer stuurt bij elke wijziging van de vrije voorraad het event products.free_stock_changed, GoedGepickt stuurt stockUpdated. Er zijn standaardkoppelingen die de voorraad gemiddeld elke 10 minuten synchroniseren. Bij een artikel waarvan er nog 3 liggen is dat het verschil tussen een levering en een nee-verkoop.
Wat gebeurt er met een order die maar deels op voorraad is?
Het WMS verzendt wat er ligt en zet de rest in backorder. Elke zending komt als eigen levering in het ERP en als eigen trackcode in de webshop. De order blijft open tot het laatste stuk is verzonden. Meer daarover staat bij backorders.
Beheer ik artikelen in het ERP of in het WMS?
In het ERP. Daar ontstaan het artikelnummer, de barcode en de inkoopgegevens, en de koppeling maakt het artikel aan in het WMS. Gewicht en afmetingen worden in het magazijn gemeten en gaan de andere kant op. Maak je artikelen in beide systemen aan, dan ontstaan er twee schrijfwijzen van dezelfde code en splitst de voorraad zich over twee artikelen.
Kan een WMS ook de voorraad van mijn leverancier tonen?
Een WMS telt wat in je eigen magazijn ligt. De voorraadlijst van een leverancier en de verwachte leverdatum van een backorder komen als bestand binnen en staan er niet vanzelf in. Hoe die bron erbij komt, staat op leveranciersvoorraad koppelen.
Vertel wat je nodig hebt
Vertel welke systemen je gebruikt en wat je wilt verbeteren. Je krijgt binnen één werkdag een persoonlijk antwoord. We helpen je de werkzaamheden helder te krijgen en spreken de prijs en planning af voordat je iets toezegt.
- Je weet de prijs en de doorlooptijd voordat je iets toezegt
- Wij zoeken uit welke koppeling het werk uit handen neemt
- Wij verzorgen de bouw, hosting, bewaking en het onderhoud
- Je team krijgt minder overtypwerk en minder uitzoekwerk