WooCommerce HPOS migratie: orders uit het posts-systeem halen

WooCommerce HPOS migratie zonder downtime. Compatibiliteitsmodus, wp-cli sync, plugin-check en wanneer terugschakelen verstandig is.

· 12 augustus, 2026 · 8 min lezen
In het kort
  • HPOS levert tot 40x snellere order-retrieval via dedicated tabellen in plaats van wp_posts.
  • Check plugin-compatibiliteit in de Features-tab voor je HPOS activeert.
  • Gebruik wp wc hpos sync via wp-cli en monitor met count_unmigrated.
  • Compatibiliteitsmodus houdt beide systemen parallel: veilig terugrollen blijft mogelijk.
  • Voor kleine shops kan wachten prima, groeiende shops merken de winst direct.
In dit artikel

WooCommerce HPOS migratie is geen optionele update meer voor wie z’n orderbeheer serieus neemt. Custom order tables vervangen het oude posts-systeem en leveren, volgens Woo’s eigen metingen, tot vijf keer snellere ordercreatie en tot veertig keer snellere order-retrieval. Dat zijn de cijfers die WooCommerce zelf rapporteert in de officiële documentatie.

In de praktijk merk je de winst vooral op shops met veel orders, want bij kleine shops draait het oude wp_posts-systeem nog prima. De vraag is daarom niet “moet het”, maar “wanneer is het verstandig”, en hoe doe je het zonder de checkout te raken.

Hieronder de complete flow zoals ik die uitvoer: voorbereiden, plugin-check, syncen, omschakelen, terugrollen als het moet.

Werkplek tijdens een WooCommerce HPOS-migratie

Wat is HPOS en waarom WooCommerce ernaartoe migreert

HPOS staat voor High-Performance Order Storage. In het oude systeem slaat WooCommerce orders op als entries in wp_posts met post_type shop_order, en de orderdata in wp_postmeta. Dat werkt, maar wp_posts en wp_postmeta zijn ontworpen voor blogposts, niet voor transactionele data met indexen en queries die typisch zijn voor orderbeheer.

Custom order tables (wp_wc_orders, wp_wc_order_addresses, wp_wc_order_operational_data) zijn dedicated tabellen met de juiste indexen voor order-queries. Dat scheelt aanzienlijk bij grote orderaantallen.

WooCommerce heeft HPOS sinds versie 8.2 als opt-in beschikbaar gemaakt en is sindsdien stap voor stap richting opt-out aan het schuiven. Nieuwe shops krijgen HPOS standaard aan. Bestaande shops zien een notificatie in de admin met het verzoek de migratie in te plannen.

Niet meteen activeren is geen ramp. Maar wachten tot een toekomstige WooCommerce-versie HPOS verplicht maakt en je dan ineens een gehaaste migratie moet doen, is wel een ramp. Beter rustig nu inplannen. Voor de gewone updates rond een HPOS-traject werkt dezelfde voorbereidings-flow als in WooCommerce updaten zonder kapotte checkout.

WooCommerce HPOS migratie in vier veilige fasen

De aanpak in vier fasen:

  1. Voorbereiding. Plugin-compatibiliteit checken, een backup zetten, een test op staging als je die hebt, een onderhoudsvenster voorbereiden voor grote shops.
  2. Compatibiliteitsmodus aan. In WooCommerce → Instellingen → Geavanceerd → Features de HPOS-toggle aanzetten met compatibiliteitsmodus. Beide systemen draaien dan parallel.
  3. Sync uitvoeren. Via wp wc hpos sync de bestaande orders kopiëren naar de custom tables. Voortgang volgen met wp wc hpos count_unmigrated.
  4. Omschakelen. Custom tables als authoritative zetten, compatibiliteitsmodus uit zolang er geen issues zijn. Klaar.

In elke fase kun je terugrollen. Dat is het belangrijkste argument om HPOS zonder zenuwen aan te durven.

WooCommerce Features-tab met HPOS-instellingen en plugin-compatibiliteit

Plugin-compatibiliteit checken voor je begint

WooCommerce toont in de Features-tab een lijst van actieve plugins en of ze “HPOS-compatible” zijn verklaard. Dit is geen test van Woo’s kant; het is een zelfverklaring van de plugin-maker. Een plugin die niet expliciet compatibel is verklaard, kan nog steeds werken, of juist stilletjes orders missen.

Wat je doet:

  • Open WooCommerce → Instellingen → Geavanceerd → Features.
  • Bekijk de plugin-lijst. Wat staat als “niet compatibel” of “onbekend”, is een aandachtspunt.
  • Per niet-compatibele plugin: check de plugin-pagina, de changelog, en eventueel het support-forum voor een statusupdate.
  • Voor critical plugins (payment gateways, fulfillment, accounting integraties): bij twijfel niet activeren. Wacht op een compatible versie of test diepgaand op staging.

Een typische lijst van plugins die je expliciet wil checken:

  • Payment gateway-plugins (Mollie, Stripe, Adyen)
  • Fulfillment- en shippingplugins
  • Boekhoud-integraties (Exact, Moneybird, Twinfield)
  • Custom order-status-plugins
  • Subscription en membership plugins
  • ERP- of CRM-koppelingen

Hoofdregel: één incompatibele plugin op een productieshop is een blokker. Liever wachten dan een halve sync waar achteraf orders in zitten die niet doorgekomen zijn.

De wp wc hpos sync command in de praktijk

Voor de sync zelf gebruik je wp-cli. Het commando:

wp wc hpos sync

Wat er gebeurt: WooCommerce loopt door alle bestaande orders in wp_posts en kopieert ze naar de custom tables. Dat gebeurt in batches via Action Scheduler.

Het oudere wp wc cot ... namespace werkt nog voor backwards-compatibility, maar gebruik voor nieuwe documentatie de hpos namespace.

Tijdens en na de sync controleer je de voortgang:

wp wc hpos count_unmigrated

Dit geeft het aantal orders dat nog niet gemigreerd is. Als dat naar 0 zakt, ben je klaar.

Bij grote shops (50.000+ orders) draaien de batches langer en kan het zinvol zijn de Action Scheduler-configuratie aan te passen:

  • Action Scheduler op cron in plaats van WP-cron zetten (via een server-cronjob die elke minuut wp action-scheduler run draait).
  • De batch-grootte aanpassen via filters in een mini-plugin.
  • De sync in een onderhoudsvenster draaien om resources te concentreren.

Fouten tijdens de sync zijn meestal database-time-outs of memory limits. Beide los je op met server-instellingen, niet met aanpassingen aan WooCommerce zelf.

wp-cli commando wp wc hpos sync tijdens een HPOS-migratie

Compatibiliteitsmodus: de veilige tussenfase

Compatibiliteitsmodus is de stand waarbij WooCommerce orders in beide systemen tegelijk bijhoudt. Schrijft een plugin een order naar wp_posts, dan kopieert WooCommerce die direct naar de custom tables. En andersom. Daarmee zijn beide systemen continu in sync, en kun je elk moment terugschakelen zonder data te verliezen.

Sinds WooCommerce 10.7 (feb 2026) staat sync on read standaard uit bij compatibiliteitsmodus.

Wanneer compatibiliteitsmodus aan houden:

  • Minstens twee tot vier weken na de eerste activatie.
  • Tot je zeker weet dat alle actieve plugins prima werken met HPOS.
  • Tot een seizoenspiek of campagne voorbij is, als je rond zo’n moment geen risico wil.

Wanneer compatibiliteitsmodus uit kan:

  • Alle plugins zijn HPOS-compatible.
  • De count_unmigrated is langere tijd op 0.
  • Geen rare admin-meldingen, geen vreemde orderstatussen, geen klachten van klanten over orderbevestigingen.

Het uitschakelen van compatibiliteitsmodus betekent dat WooCommerce alleen nog de custom tables gebruikt. wp_posts blijft staan met de oude orderdata, maar wordt niet meer geüpdatet.

Omschakelen en terugrollen

Het omschakelen is een paar muisklikken via dezelfde Features-tab. Custom tables als authoritative zetten, compatibiliteitsmodus uit.

Wat je daarna checkt in de eerste week:

  • Orders aanmaken via een testaankoop, controleren of ze in admin verschijnen.
  • Een refund proberen, kijken of dat doorkomt.
  • E-mailbevestigingen controleren (welkomstmail, orderbevestiging, verzendmail).
  • Boekhoud-integratie controleren: komen orders door in je boekhoudpakket?
  • Reporting in WooCommerce Analytics openen, kijken of cijfers kloppen.

Terugrollen kan altijd zolang compatibiliteitsmodus aan staat. Zet de toggle terug, en wp_posts is weer authoritative. Geen data verloren.

Heb je compatibiliteitsmodus al uit, dan is terugrollen lastiger. Mogelijk maar handwerk, met een wp-cli command om de richting van de sync om te draaien. Bij twijfel: laat compatibiliteitsmodus langer aan. Het kost je niets behalve een fractie performance.

Voor de complete officiële uitleg verwijst High-Performance Order Storage Documentation, WooCommerce naar precies dezelfde commando’s en aanbevelingen.

Wat een HPOS-migratie kost als je het laat doen

Een HPOS-migratie reken ik tegen 95 euro per uur. Voor een mkb-shop (tot 5.000 orders, plugin-set van 10 tot 20) is dat typisch 4 tot 10 uur. Voor grote shops met 50.000+ orders en custom integraties loopt het richting 10 tot 30 uur, voornamelijk door de plugin-compatibility-check en het inrichten van een veilige sync-vensteren.

Wat in die uren zit:

  • Plugin-compatibiliteit doorlopen
  • Staging-test als die er is
  • Backup zetten
  • Sync uitvoeren en monitoren
  • Eerste week nazorg

Verbeteren boven herbouwen: HPOS is een upgrade, geen herbouw. Je shop blijft je shop. Plugins blijven plugins, thema blijft thema. Alleen de plek waar de orders staan verandert. Een typische gebruiker merkt er niets van.

Multi-stack zijn custom database-schema’s voor orders niet uniek voor WooCommerce. Magento heeft al lange tijd dedicated order-tabellen. Headless e-commerce als Medusa en CommerceTools werken vanaf de eerste minuut met dedicated schemas. WooCommerce loopt qua architectuur een stap in dezelfde richting. Geen omwenteling, wel een merkbare stap vooruit.

Source-code is hier relevant op een specifieke manier. Ik draai sync via wp-cli, niet via een UI-knop in een hoekje. Dat geeft logging, batching-controle en herhaalbaarheid. Voor een grote shop is dat het verschil tussen een sync die je kunt overzien en een sync die zwarte doos blijft.

Vragen die ik krijg over HPOS

Moet ik HPOS nu activeren?

Niet per se vandaag, wel op niet te lange termijn. Voor kleine shops zonder issues kan wachten tot er een rustig moment is. Voor groeiende shops loont activatie zodra je orderaantallen omhoog gaan. Tegen die tijd zit HPOS waarschijnlijk in elke nieuwe Woo-versie standaard aan.

Wat als een plugin niet HPOS-compatibel is?

Niet activeren tot de plugin een compatible versie heeft, of de plugin vervangen door een alternatief dat wel compatible is. Een incompatibele plugin op een productieshop kan stilletjes orders missen, en dat is een groter risico dan even wachten.

Hoe lang duurt de sync?

Voor kleine shops (tot 5.000 orders) een paar minuten tot een uur. Voor grote shops (50.000+ orders) een paar uur tot een nacht, afhankelijk van serverresources en batchgrootte. Action Scheduler doet het in de achtergrond, je shop kan tijdens de sync gewoon open blijven.

Kan ik terugschakelen als er iets misgaat?

Ja, zolang compatibiliteitsmodus aan staat. Beide systemen worden dan parallel bijgewerkt, en je kunt op elk moment de oude wp_posts-modus weer als authoritative zetten. Daarom is compatibiliteitsmodus de veilige tussenfase, niet een tijdelijk ongemak.

Wat verandert er voor mijn klanten?

Niets. De checkout ziet er hetzelfde uit, orderbevestigingen lopen hetzelfde, klantaccounts werken zoals voorheen. HPOS is een back-end-verandering, geen front-end-impact. Klanten merken er hooguit indirect iets van als de admin sneller wordt en jij sneller op vragen reageert.

Volgende stap

WooCommerce HPOS-migratie laten begeleiden

Stuur me de URL van je shop, het aantal orders en je plugin-lijst. Ik check de HPOS-compatibiliteit en mail terug met een planning en uren.

Stuur je vraag

Serhii Lypii
Gratis meedenken

WooCommerce HPOS-migratie laten begeleiden?

Stuur me de URL van je shop, het aantal orders en je plugin-lijst. Ik check de HPOS-compatibiliteit en mail terug met een planning en uren.

Stuur je vraag
Vond je dit nuttig? Deel het:
FAQ

Veelgestelde vragen over WooCommerce HPOS-migratie

Moet ik HPOS nu activeren?
Niet per se vandaag, wel op niet te lange termijn. Voor kleine shops zonder issues kan wachten tot er een rustig moment is. Voor groeiende shops loont activatie zodra je orderaantallen omhoog gaan. Tegen die tijd zit HPOS waarschijnlijk in elke nieuwe Woo-versie standaard aan.
Wat als een plugin niet HPOS-compatibel is?
Niet activeren tot de plugin een compatible versie heeft, of de plugin vervangen door een alternatief dat wel compatible is. Een incompatibele plugin op een productieshop kan stilletjes orders missen, en dat is een groter risico dan even wachten.
Hoe lang duurt de sync?
Voor kleine shops (tot 5.000 orders) een paar minuten tot een uur. Voor grote shops (50.000+ orders) een paar uur tot een nacht, afhankelijk van serverresources en batchgrootte. Action Scheduler doet het in de achtergrond, je shop kan tijdens de sync gewoon open blijven.
Kan ik terugschakelen als er iets misgaat?
Ja, zolang compatibiliteitsmodus aan staat. Beide systemen worden dan parallel bijgewerkt, en je kunt op elk moment de oude wp_posts-modus weer als authoritative zetten. Daarom is compatibiliteitsmodus de veilige tussenfase, niet een tijdelijk ongemak.
Wat verandert er voor mijn klanten?
Niets. De checkout ziet er hetzelfde uit, orderbevestigingen lopen hetzelfde, klantaccounts werken zoals voorheen. HPOS is een back-end-verandering, geen front-end-impact. Klanten merken er hooguit indirect iets van als de admin sneller wordt en jij sneller op vragen reageert.
Serhii Lypii
Over de auteur

Serhii Lypii

Freelance webmaster · Terneuzen

Sinds 2012 werk ik met websites en leverde ik ruim 210 projecten op. Ik help mkb-ondernemers met onderhoud, snelheid, beveiliging en praktische automatisering. Nuchter, zonder hype.

Ik schreef dit artikel op en werkte het voor het laatst bij op .

Meer over Lypii
Even sparren over je site?

Loop je ergens tegenaan of twijfel je over je site? Ik denk graag mee. Kies hieronder hoe je contact opneemt.

Reactie binnen 4 uur op werkdagen
Navigatie
Home Over mij Kennisbank
Contact
+31 6 39 56 93 03 serhii@lypii.nl WhatsApp
Stuur een bericht