As you may or may not be aware, one of the many projects I maintain at work is the WooCommerce Custom Orders Table plugin. The plugin takes all of the individual post meta entries that come along with most every order — billing and shipping addresses, order totals, and way more — and stores them in a flat database table, optimized for performance.
The WooCommerce Custom Orders Table plugin has been crucial on some of our bigger stores at Liquid Web, but one does not simply change how WooCommerce stores order data without being very careful and deliberate. That’s why I’m pleased that Brian and Patrick at WooSesh reached out and asked if I could talk all about it!
Custom Tables & the Checkout Bottleneck
Each time an order is made on a WooCommerce store, dozens of entries are added to the WordPress post-meta database table. On smaller stores, these [expensive] writes are at most a minor nuisance, but on stores with large volumes of orders, these writes become a critical performance bottleneck.
These post-meta entries are all known values, though: customer data, billing and shipping addresses, payment information, etc. What if there was a way to flatten all of these writes into a single row in a database table designed just for order data? What if our store could go from writing ~40 entries each time an order is made to just writing two?
This session is a case study of the WooCommerce Custom Orders Table plugin, a collaboration between Liquid Web and Mindsize. We’ll explore what it is, how it works, and the impact it’s already had on both the stores running it and WooCommerce as a platform. Finally, we’ll discuss the future of the plugin, including further enhancements and a possible path towards inclusion in WooCommerce core.
Readers of my blog may remember my post on confidently writing WooCommerce extensions; this talk covers the project that inspired that post and digs deeper into the process.
WooSesh 2019 is a free, virtual conference with some of the biggest names in WooCommerce. Get your tickets now!
October 9 – 10, 2019