High-Performance Order Storage (HPOS) is WooCommerce’s modern order storage system. Traditionally, WooCommerce stored orders as WordPress custom post types in the wp_posts table, with most order details stored in wp_postmeta. HPOS replaces this approach for order records by storing order data in dedicated WooCommerce tables designed specifically for eCommerce.
The main HPOS tables are wp_wc_orders, wp_wc_order_addresses, wp_wc_order_operational_data, and wp_wc_orders_meta. These tables store core order details, billing and shipping addresses, operational order data, and additional order metadata.
In simple terms, HPOS separates WooCommerce order storage from the generic WordPress posts system and uses optimized order tables, making order creation, search, filtering, reporting, and admin order management more efficient.
How HPOS Works
WooCommerce HPOS changes where and how order data is saved and retrieved.
Before HPOS, each WooCommerce order was stored as a shop_order post type in the wp_posts table. Important order details, such as billing information, shipping information, payment details, order totals, and custom metadata, were stored in the wp_postmeta table.
Since wp_postmeta is a general-purpose WordPress table used by many plugins and features, it can become very large over time. For stores with a high number of orders, this can slow down order searches, filtering, reporting, and admin order management.
With HPOS enabled, WooCommerce stores key order data in dedicated WooCommerce order tables instead of relying mainly on wp_posts and wp_postmeta. These tables are designed around ecommerce order data, which helps WooCommerce read, write, search, and manage orders more efficiently.
How Orders Are Stored in HPOS
When a customer places an order, WooCommerce stores the main order details in the HPOS order table. These details can include the order ID, customer ID, order status, currency, total amount, payment method, and order date.
HPOS mainly uses the following WooCommerce order tables:
- wp_wc_orders stores the main order records.
- wp_wc_order_addresses stores billing and shipping address details.
- wp_wc_order_operational_data stores operational order data used by WooCommerce.
- wp_wc_orders_meta stores additional order metadata.
Other order-related data, such as order line items and item-level metadata, may still use existing WooCommerce tables like woocommerce_order_items and woocommerce_order_itemmeta.
Because HPOS organizes order data into purpose-built tables, WooCommerce can process order-related queries more efficiently than when relying heavily on the generic WordPress posts and postmeta tables.
HPOS Compatibility Mode
WooCommerce also provides a compatibility mode for HPOS. In compatibility mode, WooCommerce can synchronize order data between the legacy WordPress tables and the new HPOS tables.
This is useful when a store is transitioning from the old order storage system to HPOS, or when some plugins still depend on the older wp_posts and wp_postmeta structure.
Why HPOS Matters During Migration
HPOS is important during WooCommerce migration because the source and destination stores may use different order storage systems.
For example, the source store may store orders in wp_posts and wp_postmeta, while the destination store may use HPOS tables as the active order storage system. In some cases, a store may also have HPOS compatibility mode enabled, where order data is synchronized between both storage systems.
A proper WooCommerce migration tool should be able to detect the active order storage method and import order data into the correct storage system. It should also preserve important order details such as order statuses, customer links, billing and shipping addresses, payment details, taxes, refunds, line items, order notes, and order metadata.
This is especially important because not all WooCommerce stores use the same setup. Older stores may still rely on legacy order storage, while newer WooCommerce stores may use HPOS by default. Migration tools and WooCommerce extensions should therefore be compatible with HPOS and should ideally use WooCommerce’s standard order APIs instead of directly writing order data only to legacy database tables.
HPOS-compatible solutions, such as WebToffee’s WooCommerce Order Import Export plugin, can help simplify this process by supporting accurate order migration across different WooCommerce storage configurations.
In Summary
WooCommerce HPOS is a more efficient way to store and manage order data. It moves key order information from the general WordPress posts and postmeta tables into dedicated WooCommerce order tables.
For store owners, this can improve order management performance, especially in stores with a large number of orders. For migrations, HPOS compatibility is essential because orders must be imported into the correct storage system without losing important order data.
Explore our plugin: Order, Coupon, Subscription Export Import for WooCommerce