HPOS for Store Owners

Filed under ,

WooCommerce has introduced a new feature called High-Performance Order Storage (HPOS), designed to improve how orders are stored and processed on your site. HPOS is here to help boost your store’s speed and efficiency, making order handling smoother and more scalable—especially important if you’re managing a growing online business. In this post, I’ll walk you through what HPOS is, how to enable it, and some quick troubleshooting tips if you run into any issues.

What is High-Performance Order Storage?

HPOS is a WooCommerce update that optimizes how orders are stored in the database. Traditionally, WooCommerce used WordPress’s wp_posts and wp_postmeta tables to store order data, which can work well initially but becomes less efficient as the amount of orders in your store grows.

With HPOS, WooCommerce now stores order data in custom database tables, specifically designed for order information. This means your site is now quicker in retrieving order data, but also things like blogposts, pages and products. It significantly improves order-processing speed and reduces potential issues with database performance. This shift is especially noticeable in stores with lots of orders.

Enabling HPOS

Switching to HPOS should be simple for most WooCommerce webshops. Your store provides automated migrations in the settings. Here’s a step-by-step guide to enabling HPOS:

  1. Update WooCommerce
    Before enabling HPOS, make sure you’re running WooCommerce 7.1 or higher, as HPOS is only available in newer versions.
  2. Go to the WooCommerce settings
    Go to Woocommerce > Settings in the dashboard. From there, navigate to the Advanced tab.
  3. Enable High-Performance Order Storage
    There should be an option available labelled “High-Performance Order Storage”. If it’s unavailable for you, it will list the plugins that are likely causing a problem with updating. More on this later.
  4. Start migrations
    Once you enable HPOS, WooCommerce will provide an option to start migrating your existing order data to the new database tables. Click Start Migration to begin. WooCommerce will handle this process in the background, so you can continue working on your store without downtime. That being said: this process works better if you have a server cron enabled. If you have no idea what this is or wether this is true, our Shop Health plugin will give you a warning if server cron is disabled and will also provide you with a way to enable this via your hosting provider.

Tip: Depending on the size of your store’s order history, the migration may take some time. Monitor the progress, and avoid heavy updates during this period to minimize server load.

Common Issues

After enabling HPOS, it’s possible to encounter some issues, especially if you have other plugins or custom code that rely on the old order storage system.

Missing plugin support – There really shouldn’t be a reason for WooCommerce plugins to not want to work with the latest and greatest, so check with the plugin’s builder if they have HPOS support on the roadmap. If they don’t, you might need to look for alternatives. A competent WooCommerce developer would also be able to patch that single plugin for you and keep the plugin updateable.

WooCommerce Legacy REST API – This is one of the last official WooCommerce plugins that does not have HPOS support and will probably never get it. The Legacy REST API consists of very old code that will not get updated. If this plugin is required by some external source, look up which urls it’s talking to (you can find these in the access logs of your host, by searching for wc-api/). Usually it’s only a few URLS, in which case, a consulting session with Wooping might enable us to rewrite these endpoints, so you can get rid of this plugin.

Orders Aren’t Displaying Correctly – If orders are not displaying correctly, the issue may stem from incompatible plugins or themes. Check that all plugins and themes are up-to-date.

Conflicts with Custom Code – If your site uses custom code to manage orders, this code may require adjustments to work with HPOS. For custom code assistance, consider reaching out to a developer.

Order Data Migration Errors – If the migration process stops or returns errors, try restarting it. Go to WooCommerce > Status > Tools, then look for any migration-related options to reset the process. If the problem keeps persisting, your host will probably be able to figure out what is going on.

Super important: To minimize risk, always update on a staging environment first. If your host doesn’t offer a staging environment, consider upgrading to a hosting provider who does.

Learn more about HPOS at WordCamp The Netherlands

This week, I’ll be speaking at WordCamp The Netherlands about HPOS and holding an in-depth talk about what it means and how you can turn these order tables into your stores superpower. Hope to see you there!

In short…

Enabling High-Performance Order Storage can greatly benefit your store, by speeding up order processing, reducing the load on your database, and supporting scalability as your webshop grows. With just a few steps, you should be able to turn on HPOS and see the improved performance.

If your store isn’t HPOS ready because of a plugin or a piece of custom code, you can be sure that most of those issues will be fairly easy to fix and if major issues do come up, check with WooCommerce support or consult with us to see if we can get your online store ready for the next decade.

Luc Princen Avatar

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *