It’s been a busy six months since I last wrote a product update post and development on AutomateWoo has certainly not been idle. Last week we released AutomateWoo 3.5 and now seemed like a good time to let everyone know what’s been happening. Many of the recent changes in AutomateWoo were focussed around performance, stability and scaling. Additionally, many small features have been added based on your requests, such as new rules and variables.
Adding a background processor
In version 3.2, we added the WP Background Processing library from Delicious Brains and over the next few versions we rolled this out for all parts of AutomateWoo which processed large datasets. Previously, AutomateWoo would separate large datasets into chunks and schedule WP Cron tasks every few minutes. This was a slow process which was limited by the number of items which could be processed at once. For example, if you had hundreds of items waiting in the queue they could take hours to process but now they can be completed in a few minutes.
This was an important step forward as it allows for the development of more powerful features in the future!
I won’t mention every new feature here (see the changelog for the full list), instead here are my top picks from the last six months:
- Ability to include pending, cancelled and failed orders with abandoned cart emails. Simply enable this in Settings.
- Added support for email preheaders
- Improved the Customer Win Back trigger with support for guests and a new maximum days since last purchase option
- Added shipping, cart fees and product variation data to abandoned carts
- Added support for MailChimp groups with the new actions Add Contact To Group and Remove Contact From Group
- New action: Add Order Note
- Ability to filter admin views by guest customers (previously you could only filter by registered users)
- New trigger: Subscription Before End
- New rule: Customer Is Subscribed To MailChimp List?
- Ability to re-run a workflow from the log
- Option to completely disable session tracking
- Added detailed guest data pages in the admin area
- New review rules: Review Rating and Customer Review Count
- Added sorting options to the shop.products variable
Object caching and database query optimizations
AutomateWoo has been storing data in custom tables, rather than the
wp_posts table, since version 2.0. Custom tables have many benefits to scaling and performance, but there is a slight drawback in that you have to build your own object caching. Over the last six months we have been developing and refining object caching for all our database tables to increase scalability. We have also reviewed and optimized almost every database query in AutomateWoo core and add-ons.
In version 3.3, we made the decision to process some order and subscription triggers asynchronously. This means that these triggers are now separated from the main event and slightly delayed. The main reason for this change was to speed up events such as the checkout process. Multiple triggers often fire during a single checkout request which slows it down. By delaying these triggers we have noticed a significant performance improvement.
This asynchronous delay will be less than a minute, but it could vary depending on your server’s WP Cron configuration.
If you are running a German WooCommerce store you might have noticed that translations were gradually added last year. Both AutomateWoo and Refer A Friend now have complete formal and informal German translations. Schön, oder? Many thanks to the talented designer and developer Christoph Rado for creating and maintaining these translations!
With these technical challenges and the WooCommerce 3.0 update behind us we’re looking forward to focusing on new features for both AutomateWoo and Refer A Friend in 2018. Let us know what features you’d like to see this year in the comments!