Over the past year, the WooCommerce team has been working on a project that has the potential to significantly increase the speed of WooCommerce stores. High-Performance Order Storage or HPOS for short, simplifies the database structure and optimizes performance by improving the way order data is managed. Prior to HPOS, WooCommerce orders were stored in the same database tables as posts and pages which can lead to performance issues when processing large volumes of orders. Moving forward, orders will be moved to dedicated tables that are optimized for storing order data.
Naturally, this change will require that order data is transferred from the existing table structure to the new HPOS table structure. HPOS is currently offered as an opt-in feature and is not yet cleared for production use, however, we highly recommend you investigate your site’s compatibility with HPOS on a separate staging site. WooCommerce plans to enable HPOS by default in WooCommerce 8.
WooCommerce plugin developers such as FooSales will also need to implement various changes that will ensure compatibility with both HPOS as well as legacy data storage. We’re pleased to confirm that as of FooSales version 1.34.1 (Jun 14, 2023) FooSales is fully HPOS compatible. There are no visible changes within the FooSales apps or FooSales plugins, however, when you do decide to switch your site over to HPOS, all FooSales functionality will simply work as intended.
Many plugin or theme developers in the WooCommerce community have expressed concerns regarding implementing HPOS compatibility and the extent of work required. So to help ease their concerns, here is feedback from our lead developer that will hopefully provide some peace of mind:
“Initially the idea of refactoring our codebase to accommodate HPOS was intimidating. Once we got started by following the WooCommerce developer documentation it became apparent that (at least for our codebase) the update wasn’t that complicated. The documentation contains a very handy regular expression that allows you to quickly see all the places in your code where some refactoring might be necessary. For us, one of the biggest differences was in fetching and updating order meta data which was accessing the ‘wp_posts’ table directly using WordPress functions. All we had to do in those cases was to rather use the corresponding WooCommerce order functions, which have backwards compatibility for users who have not yet made the switch to HPOS. Apart from the order meta data there were some actions and filters that had to be modified to work with the new order listing and edit view pages. In total it only took us a few days to update and test the changes necessary to support WooCommerce High Performance Order Storage.” – Etienne, FooSales Lead Developer
We are very excited about what HPOS means for merchants and look forward to hearing how it has improved the performance of merchant’s stores. That said, we recommend testing HPOS thoroughly on a staging environment first and make sure that all plugins and services used by your store are 100% HPOS compatible.