WooCommerce glossary

What is HPOS (High-Performance Order Storage)?

HPOS (High-Performance Order Storage) is WooCommerce's way of saving orders in dedicated database tables rather than as WordPress posts.

How it works in WooCommerce

Before HPOS, every order was a row in wp_posts with its details in wp_postmeta, the same tables that hold blog posts and pages. HPOS moves orders into their own tables: wc_orders, wc_orders_meta, wc_order_addresses and wc_order_operational_data. Since WooCommerce 8.2, new stores use HPOS by default. Older stores may still use posts storage until they switch.

You can see and change the setting under WooCommerce › Settings › Advanced › Features, in Order data storage. There you choose between High-performance order storage and WordPress posts storage. A compatibility mode option keeps both sets of tables in sync while you move over, so you can switch back if a plugin misbehaves.

A worked example

Say a developer writes a query to count last month's orders. On a posts-storage store they'd look for shop_order rows in wp_posts. On an HPOS store those rows aren't there, so the same query would return zero. A query against the Analytics lookup tables, such as wc_order_stats, works on either, because WooCommerce Analytics fills those tables from whichever storage you use.

Why it matters

For store owners, HPOS mostly means faster order screens and searches on bigger stores. For reporting, it matters when you or a plugin read order data directly: older code written for posts storage may miss orders. Askshelf reads through WooCommerce Analytics and works with either storage. The guide on why Analytics numbers don't match your orders covers other storage-related surprises, and WooCommerce sales reports shows what Analytics gives you.