Elke avond hetzelfde ritueel: bestellingen openen in WooCommerce, adressen overtypen in Mijn PostNL, etiketten printen, track-en-tracecodes terugplakken in de order en de klant mailen. Bij tien pakketten per week is dat te doen. Bij dertig per dag wordt het een baan op zich, en typefouten in adressen kosten u retourzendingen en boze mails.
Een koppeling tussen PostNL en uw webshop neemt dat werk over. U kiest een bestelling, klikt op “etiket aanmaken” en de rest gaat vanzelf. Dat klinkt eenvoudig, maar er zijn meerdere routes, en de keuze bepaalt hoeveel u betaalt en hoeveel onderhoud er later bij komt. In dit artikel zet ik op een rij hoe u PostNL koppelt aan WooCommerce, welke instellingen vaak misgaan en wat de koppeling op de lange termijn van u vraagt.
Drie manieren om PostNL aan WooCommerce te koppelen
Grofweg zijn er drie routes. Ze verschillen in prijs, flexibiliteit en de hoeveelheid techniek die u in huis haalt.
- De officiële PostNL-plugin voor WooCommerce. PostNL biedt een eigen plugin die rechtstreeks met uw zakelijke PostNL-account praat. U heeft daarvoor een zakelijk contract en een API-sleutel nodig. Voordeel: geen tussenpartij, geen extra abonnement. Nadeel: de plugin doet alleen PostNL. Wilt u later ook DHL of DPD aanbieden, dan komt er een tweede plugin bij.
- Een verzendplatform als tussenlaag. Diensten als Sendcloud, MyParcel of Shops United koppelen met WooCommerce en met meerdere vervoerders tegelijk. U betaalt per etiket of een maandbedrag, maar krijgt daar een dashboard, retourportaal en vaak scherpere tarieven voor terug. Voor kleinere shops zonder eigen PostNL-contract is dit meestal de makkelijkste weg.
- Maatwerk via de PostNL-API. Alleen zinvol bij grote volumes of afwijkende processen, bijvoorbeeld als u een eigen magazijnsysteem heeft. Dit vraagt een developer en structureel onderhoud, want de API van PostNL verandert met enige regelmaat.
Twijfelt u tussen de eerste twee? Bekijk dan eerst uw volumes. Onder de pakweg honderd pakketten per maand is een eigen zakelijk PostNL-contract vaak niet interessant, en dan valt route één al af.
Stappenplan: de officiële plugin instellen
Kiest u voor de rechtstreekse koppeling, dan verlopen de stappen ongeveer zo. De volgorde is bewust: eerst de basis, dan pas de opties.
- Maak een back-up van de webshop. Een verzendplugin grijpt in op de checkout en op de orderstatussen. Als er iets misgaat, wilt u terug kunnen.
- Vraag de API-gegevens aan in Mijn PostNL. U heeft een klantnummer, klantcode en API-sleutel nodig. Bewaar die in een wachtwoordmanager, niet in een mailtje.
- Installeer de plugin op een testomgeving. Niet meteen op de live shop. Op staging kunt u een testbestelling plaatsen en een etiket genereren zonder dat er echt een pakket wordt aangemeld.
- Vul de afzendergegevens in. Bedrijfsnaam, adres en telefoonnummer komen op elk etiket en op elke retour. Een tikfout hier ziet u pas als de eerste retourzending bij de buren belandt.
- Stel de verzendmethodes in. Koppel de PostNL-opties (standaard, avondlevering, brievenbuspakje, afhaalpunt) aan de verzendmethodes in WooCommerce. Denk na over wat u echt wilt aanbieden; elke extra optie is een extra keuze voor de klant in de checkout.
- Test de afhaalpuntkiezer. Die laadt een kaartje van PostNL in de checkout. Controleer op mobiel of het kaartje leesbaar is en niet over de knop “bestelling plaatsen” heen valt.
- Plaats een testbestelling en maak een etiket. Controleer of de track-en-tracecode terugkomt in de order en of de klant de mail met de link ontvangt.
- Zet de koppeling over naar de live shop en herhaal de laatste test met een echte, kleine bestelling naar uzelf.
Werkt u met een verzendplatform, dan zijn de stappen vergelijkbaar, alleen vult u de API-gegevens in bij het platform in plaats van in de plugin. Hoe u de verzendmethodes en gratis-verzending-drempels in WooCommerce zelf inricht, staat los van de koppeling; daarover leest u meer in dit artikel over verzendkosten instellen.
Instellingen die in de praktijk vaak misgaan
Een verzendkoppeling werkt op de dag van installatie bijna altijd. De problemen komen later, en ze hebben meestal dezelfde oorzaken.
- Gewicht en afmetingen ontbreken bij producten. De koppeling bepaalt op basis daarvan of iets een brievenbuspakje of een pakket wordt. Ontbreken de waarden, dan valt alles terug op de standaard, en betaalt u voor een pakket waar een brievenbuspakje volstond.
- Huisnummer en toevoeging zitten in één veld. PostNL wil die gescheiden hebben. Veel thema’s hebben één adresregel; de plugin probeert dat te splitsen en gaat bij “Dorpsstraat 12 a” of “Plein 1940 nr. 3” nog weleens de mist in. Een apart huisnummerveld in de checkout voorkomt dat.
- Orderstatus wordt niet bijgewerkt. Na het aanmaken van een etiket hoort de order naar “verzonden” of een eigen status te gaan. Als dat niet gebeurt, blijft de klant in het ongewisse en blijft uw overzicht vervuild.
- De afhaalpuntkiezer laadt niet. Vaak een conflict met een cache- of optimalisatieplugin die het script van PostNL uitstelt of samenvoegt. Sluit de checkoutpagina uit van dat soort optimalisaties.
- Verlopen API-sleutel. PostNL vernieuwt sleutels soms bij contractwijzigingen. Het symptoom is dat etiketten opeens niet meer aangemaakt worden, zonder duidelijke foutmelding.
Wat de koppeling aan onderhoud vraagt
Dit is het deel dat bij de aanschaf zelden ter sprake komt. Een verzendkoppeling is een plugin als alle andere, maar dan een die met een externe partij praat. Dat betekent dat er twee kanten kunnen veranderen: WooCommerce en PostNL.
Bij een WooCommerce-update kan de checkout veranderen. De overstap naar de blokken-checkout is daar het duidelijkste voorbeeld van: verzendplugins die alleen de klassieke checkout ondersteunen, tonen hun opties dan simpelweg niet meer. Bij een PostNL-update kan een oude pluginversie ineens geen etiketten meer maken. In beide gevallen merkt u het pas als de eerste klant belt, tenzij u een testbestelling in uw vaste routine heeft zitten.
Een realistisch onderhoudsritme voor de koppeling ziet er zo uit:
- Bij elke update van WooCommerce of de verzendplugin: eerst op staging een testbestelling met etiket, dan pas live.
- Maandelijks: controleren of alle producten nog gewicht en afmetingen hebben, zeker na een productimport.
- Per kwartaal: de verzendtarieven in de shop vergelijken met wat PostNL u daadwerkelijk in rekening brengt. Tariefwijzigingen sluipen erin.
- Jaarlijks: het PostNL-contract en de API-gegevens nalopen, en beoordelen of uw volume nog past bij de gekozen route.
Een webshop uit Zwolle die wij begeleiden had de koppeling drie jaar geleden ingericht en daarna nooit meer aangeraakt. Alles werkte, totdat een WooCommerce-update de checkout verving. Twee dagen lang konden klanten geen afhaalpunt kiezen en kwamen bestellingen zonder verzendmethode binnen. De oplossing was een pluginupdate van vijf minuten, maar het vinden van de oorzaak kostte een ochtend. Sindsdien draait elke update daar eerst op een testomgeving, iets wat wij standaard doen binnen het onderhoud van WooCommerce-shops.
Zelf doen of laten inrichten?
De eerste installatie kunt u met een beetje geduld prima zelf. De plugin heeft duidelijke velden en PostNL levert documentatie. Schakel hulp in als uw thema geen apart huisnummerveld heeft, als u meerdere vervoerders wilt combineren, of als u al een cacheplugin draait die de checkout beïnvloedt. Dat zijn precies de punten waar een uurtje van iemand die het vaker heeft gedaan u een weekend zoeken bespaart.
En twijfelt u nog of u wel rechtstreeks met PostNL wilt koppelen of liever via een platform, lees dan de vergelijking tussen Sendcloud en MyParcel. Voor veel shops onder de honderd pakketten per maand is dat de logischere startpositie.
Concreet volgende stap: kijk in uw WooCommerce-productoverzicht hoeveel producten geen gewicht hebben. Dat is in vijf minuten gedaan en het zegt meteen of uw shop klaar is voor een koppeling.



