Picqer en WooCommerce
Picqer WooCommerce koppeling
Orders uit WooCommerce staan als order in Picqer, de vrije voorraad uit Picqer staat in WooCommerce zonder dat orders in de wachtrij dubbel tellen, en een verzonden order krijgt zijn track-en-trace terug. Met de voorraad en leverdatum van je leverancier erbij. Gebouwd op jouw winkel en magazijnen, en daarna door ons gedraaid en bewaakt.
Wat je tussen Picqer en WooCommerce koppelt
WooCommerce neemt de order aan, Picqer pickt, verpakt en verzendt. Tussen de twee lopen vier stromen. Een vijfde komt van buiten: de voorraad en leverdatum van je leverancier, die Picqer zelf niet inleest.
| Stroom | Richting | WooCommerce | Picqer |
|---|---|---|---|
| Orders | naar Picqer | webhook order.created of order.updated |
POST /orders, daarna /process |
| Vrije voorraad | naar WooCommerce | stock_quantity per product of variatie |
webhook products.free_stock_changed |
| Zending en track-en-trace | naar WooCommerce | ordernotitie en status completed |
webhook picklists.shipments.created |
| Annulering | naar Picqer | status cancelled |
order annuleren |
| Leveranciersvoorraad en leverdatum | naar beide | backorders en een veld op het product |
beschikbaarheid en levertijd |
Producten worden gekoppeld op één sleutel: de sku van het product of de variatie is de productcode in Picqer. Picqer eist een unieke productcode. In WooCommerce mag een variatie zonder SKU bestaan. De koppeling meldt die bij de start, want zonder SKU is er niets om de voorraad op te schrijven.
Welk systeem is leidend, per gegeven
| Gegeven | Leidend | Richting | Gedrag |
|---|---|---|---|
| Order en betaalstatus | WooCommerce | naar Picqer | één keer, met het ordernummer als reference |
| Vrije voorraad | Picqer | naar WooCommerce | bij elke wijziging, plus een nachtelijke vergelijking |
| Productteksten, prijzen, afbeeldingen | WooCommerce, PIM of ERP | buiten deze stroom | de koppeling schrijft er niet overheen |
| Orderstatus na verzending | Picqer | naar WooCommerce | completed als alles is verzonden |
| Verwachte leverdatum | inkooporder in Picqer of het bestand van de leverancier | naar WooCommerce | in een veld op het product |
| Bestellen zonder voorraad | regel in de koppeling | naar WooCommerce | backorders: no, notify of yes |
Picqer staat backorders altijd toe. Of een klant een product zonder voorraad kan bestellen, bepaalt dus WooCommerce, per product of variatie.
Wat Picqer en WooCommerce anders bewaren
Vrije voorraad tegenover één voorraadgetal
Picqer geeft per product en per magazijn stock, reserved en freestock: wat er ligt, wat verkocht en nog niet gepickt is, en het verschil. WooCommerce heeft per product of variatie één geheel getal, stock_quantity, zonder magazijnen en zonder reservering. WooCommerce verlaagt dat getal zelf zodra een order op processing of on-hold komt.
Daar zit het venster. Een order die net in WooCommerce is geplaatst, staat nog niet in Picqer. Meldt Picqer in die tussentijd een nieuwe vrije voorraad, bijvoorbeeld door een bol-order, dan bevat dat getal de nieuwe WooCommerce-order nog niet. De REST API van WooCommerce zet de voorraad op een absolute waarde en heeft geen controle op een verouderde stand. De koppeling trekt daarom de orders die nog in de wachtrij staan af van de vrije voorraad voordat hij schrijft. Een negatieve vrije voorraad, bij backorders, wordt 0.
Orderstatussen
WooCommerce kent pending, processing, on-hold, completed, cancelled, refunded en failed, en plugins voegen er eigen statussen aan toe. Picqer kent concept, expected, processing, paused, completed en cancelled. De koppeling vertaalt per status:
| Status in WooCommerce | In Picqer |
|---|---|
pending, failed |
niets |
on-hold |
per betaalmethode: expected, of nog niets |
processing |
aanmaken en naar processing |
cancelled |
annuleren als er nog niet gepickt is, anders een melding |
| eigen status van een plugin | volgens de tabel, anders de controlelijst |
Na verzending gaat de WooCommerce-order naar completed. Bij een deellevering blijft hij op processing en krijgt hij per zending een notitie met de code. Zie orderstatussen mappen.
Track-en-trace zonder veld
Een WooCommerce-order heeft in de REST API geen veld voor een trackingnummer of vervoerder. Wat de klant ziet hangt af van de route: een ordernotitie via /orders/<id>/notes met customer_note op true geeft een mail van WooCommerce, de Shipment Tracking-extensie geeft een eigen blok met vervoerder, nummer en link. De koppeling schrijft naar de route die jouw winkel gebruikt.
De kant van de leverancier
Picqer heeft inkooporders met een verwachte leverdatum, delivery_date, en geeft een backorder een date_available. Het voorraadbestand van een leverancier leest Picqer niet in. De koppeling doet dat wel: een product met vrije voorraad 0 en 40 stuks bij de leverancier gaat in WooCommerce op backorders met de leverdatum erbij, en naar Picqer gaan de beschikbaarheid en de levertijd. Zie levertijd synchroniseren en Picqer koppeling.
De technische werkelijkheid van deze combinatie
| Limiet | Picqer | WooCommerce |
|---|---|---|
| Tempo | 500 verzoeken per minuut per API-sleutel | geen limiet op wc/v3 gedocumenteerd |
| Boven de grens | 429, het verzoek wordt genegeerd | afhankelijk van de hosting |
| Per verzoek | 100 resultaten, verder met offset |
100 objecten per batch |
| Webhook: verzending | binnen 10 seconden antwoorden, 15 nieuwe pogingen in ongeveer 17 uur | via WP-Cron, op paginabezoek |
| Webhook uitgeschakeld | na 5 volledig mislukte berichten in 24 uur | na 5 mislukte afleveringen achter elkaar |
De getallen zijn op 3 oktober 2026 nagelezen in de documentatie van Picqer en WooCommerce.
De nachtelijke vergelijking, doorgerekend. Een winkel met 1.200 enkelvoudige producten en 1.200 variabele producten met elk 4 variaties heeft 6.000 voorraadgetallen. Uit Picqer zijn dat 60 verzoeken van 100. Naar WooCommerce gaan enkelvoudige producten in batches van 100, dus 12 aanroepen voor alle 1.200. Variaties hebben een batch per variabel product: wijkt bij 300 producten een variatie af, dan zijn dat 300 aanroepen. Na de vergelijking gaan alleen de verschillen mee.
WP-Cron. WooCommerce verstuurt webhooks standaard op de achtergrond via WP-Cron, en WP-Cron draait alleen als iemand een pagina opvraagt. Een order die 's nachts binnenkomt op een rustige winkel kan zo later bij de koppeling aankomen. Een controleronde op modified_after haalt de orders op die geen webhook hebben opgeleverd.
Hosting. De koppeling schrijft met PUT en POST. Sommige hostingpakketten blokkeren die methoden op de REST API, en een cacheplugin die de API meecachet geeft oude orders terug. Beide controleren we bij de start, voordat er voorraad wordt geschreven.
Wat een standaardkoppeling hier niet doet
Picqer heeft zelf een WooCommerce-koppeling en documenteert wat die doet. Op 3 oktober 2026 stond er in de helpartikelen:
- Alleen de standaardstatussen. Orders met een status die een plugin heeft toegevoegd worden genegeerd tot ze weer een bekende status hebben.
- WooCommerce Multilingual wordt niet ondersteund, omdat die plugin de werking van de API aanpast.
- Track-en-trace als notitie. Code en link gaan in een ordernotitie; een eigen veld is er niet.
- Hosting moet meewerken. Werken voorraad en status niet bij, dan staat
PUTop de server vaak uit; komen orders uren later, dan cachet een plugin de API.
De voorraad van leveranciers zit er niet in: Picqer leest die niet in. Een gebouwde koppeling vertaalt jouw eigen statussen, werkt met WPML, trekt orders in de wachtrij af van de voorraad en voegt de bron per leverancier toe. Meer over de voorraadkant in welke voorraad toon je in je webshop.
Als het misgaat
| Wat er misgaat | Wat de koppeling doet | Wat je ziet |
|---|---|---|
| Picqer antwoordt 429 | het verzoek gaat opnieuw de wachtrij in | niets, tenzij het aanhoudt |
| Webhook van WooCommerce uitgeschakeld | de controleronde haalt de orders op | een regel in het logboek |
| Orderregel met een SKU die Picqer niet kent | de order blijft als concept staan | de order en de SKU |
| Status zonder regel in de tabel | de order gaat niet naar Picqer | de order en de status |
PUT geweigerd door de server |
voorraadstroom pauzeert | de foutcode van de hosting |
| Voorraadbestand van de leverancier ontbreekt | de laatste stand blijft staan, niets gaat op nul | een melding met de leverancier |
Voordat de koppeling een order aanmaakt, zoekt hij in Picqer op reference. Picqer dwingt een unieke referentie niet af, dus zonder die controle maakt een tweede webhook voor dezelfde order een tweede order. Een bericht dat blijft falen wordt met de oorspronkelijke inhoud bewaard en gaat opnieuw mee zodra de oorzaak is opgelost. Voor livegang draait de koppeling als dry run: per product de voorraad die hij zou schrijven, per order wat hij in Picqer zou aanmaken.
Wij hosten en bewaken de koppeling en passen hem aan als Picqer of WooCommerce een interface wijzigt. De systeemkant staat op Picqer koppeling, de platformkant op WooCommerce koppeling, en alle voorraadstromen op voorraad en beschikbaarheid. Verwante combinaties: Picqer Shopify koppeling en Akeneo WooCommerce koppeling. Vertel hoeveel magazijnen, statussen en leveranciers je hebt.
Veelgestelde vragen
Wanneer gaat een order van WooCommerce naar Picqer?
Standaard zodra hij op processing staat: betaald, en WooCommerce heeft de voorraad verlaagd. Een order op on-hold, bijvoorbeeld bij betalen op rekening of per bankoverschrijving, kan ook mee als je die al wilt reserveren. Dat leg je per betaalmethode vast. In Picqer komt de order binnen als concept en wordt hij daarna verwerkt.
Hoe komt de track-en-tracecode bij de klant?
Een WooCommerce-order heeft in de REST API geen veld voor een trackingnummer. De koppeling zet de code en de link in een ordernotitie met customer_note op true; WooCommerce mailt de klant dan en toont de notitie bij de order. Gebruik je de Shipment Tracking-extensie, dan schrijft de koppeling daarin. Daarna gaat de order naar completed.
Wij hebben eigen orderstatussen in WooCommerce. Werkt dat?
Ja. De koppeling krijgt een tabel van jouw statussen naar wat er in Picqer moet gebeuren: aanmaken, wachten, annuleren of niets doen. Een status als wacht-op-maatwerk houdt de order dan vast tot hij naar processing gaat. Statussen die niet in de tabel staan, komen op de controlelijst in plaats van stil te worden overgeslagen.
Kan ik meerdere magazijnen in Picqer gebruiken met één WooCommerce-winkel?
Ja. WooCommerce heeft één voorraadgetal per product of variatie. De koppeling telt de vrije voorraad op van de magazijnen die meetellen, in Picqer de instelling counts_for_general_stock, en schrijft dat ene getal. Welk magazijn een order levert, bepaalt Picqer met de prioriteit per magazijn.
Werkt het met WPML en meerdere talen?
Ja. Met WooCommerce Multilingual van WPML bestaat een product per taal als eigen product, gekoppeld aan het origineel. De koppeling schrijft de voorraad op het product in de hoofdtaal en importeert orders uit alle talen. In de dry run controleren we of jouw installatie de voorraad naar de vertalingen doorzet.
Kan de webshop verkopen wat bij de leverancier op voorraad ligt?
Ja. De koppeling leest het voorraadbestand van de leverancier en zet een product waarvan de eigen vrije voorraad nul is op backorders met de waarde notify, met de verwachte leverdatum in een veld op het product. Eigen voorraad gaat altijd voor. Zie voorraad van je leverancier 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