WooCommerce 3.0.x is a major upgrade recently released by WooCommerce. Before hitting the update button, it’s important to understand what’s included with this release and how these updates might affect the functionality of an online store. Also, be sure to backup a site before updating and, if possible, test the update on a staging site first.
How major are the changes?
WooCommerce 2.6 was the last major release, officially out in mid-June, 2016. WooCommerce 3.0.x was originally targeted to release as version 2.7.x, but when a potentially backwards incompatible bug (learn more here) was identified, the Woo team seized the opportunity to make some major and positive changes. This version name change defines how they version their releases in the future by adopting semantic versioning when naming releases.
Major releases will increment (by one) the left version digit, and reset the middle and right ones, such as 3.0.0 or 4.0.0. This will apply to releases where there are API changes or the potential to affect extension compatibility. Minor releases will increment the center digit, and reset the right one, like 3.1.0 or 4.3.0, and patches will increment the right one, such as 3.1.1 or 4.3.2.
WooCommerce 3.0.x updates impact everyone involved, from online shoppers to the developers working on a store. Changes include:
• New product gallery features
• Improvements to speed and performance on both the storefront and store admin
• New CRUD classes
• A new version of the REST API with added features
• New WC-CLI extension of the WP-CLI class, integrated with the Woo REST API
New product gallery features
The product gallery is the user-facing, default gallery for store products. Online shoppers will now be able to magnify images, zoom into images and view larger thumbnail images without loading an annoying pop-up by default. Users shopping on mobile devices will also be able to use touch gestures to navigate a product image gallery.
Watch this demo by WooCommerce to see the Product Gallery in action.
Improvements to speed and performance
WooCommerce 3.0.x includes several performance-centered changes. A few of the most impactful include: optimization around featured products, product visibility and products that are out of stock, which helps speed up product-related queries on the front end. The update will remove the order items column from the main Orders admin menu page, which will make this page significantly faster on stores with large order_items and order_itemmeta tables. In addition, the update defers the sending of emails at checkout. This will have a massive impact for shoppers regarding how long their orders takes to process after they click to place their order.
Our team is most excited that this version includes new CRUD classes, which is the first of what will be a series of changes geared toward easing the transition away from interacting with the table structure directly. This enables future releases to restructure the database tables in allowing WooCommerce to greatly improve its support a larger store, in terms of both orders and products. While that may sound complex, all data on a site, such as customers, orders and products, are stored in a database and this release starts a movement to adjust and improve the way that data is saved and how the site code interacts with the data. These changes improve speed and performance for larger stores in future releases and pave the way for a faster, leaner and more scalable WooCommerce.
New CRUD classes
Yes, CRUD classes are a good thing, even if they sound strange! These new classes offer a big change in direction for how developers interact with WooCommerce data. Abstracted Create, Read, Update, and Delete methods are exposed to developers, and eventually WooCommerce will release a version with some major table structure changes.
While those changes will break most existing integrations, they will mean a massive improvement in how WooCommerce performs at large scale. These new specific methods allow developers (like the ones at coolblueweb) to modify WooCommerce store information more efficiently. Data that can be modified with the new classes include: products, orders, customers, and coupons, just to name a few.
By making these classes available now, the ecosystem of plugins and extensions around WooCommerce will have time to shift away from interacting with the table structure directly, allowing for both a smoother transition and the ability to make future iterative improvements and optimizations without breaking compatibility.
A CLI powered by the REST API
CLI stands for command line interface. The WP-CLI is a powerful way for developers to interact directly with a WordPress installation. A formalized extension by the Woo team existed as of version 2.5.x, but in 3.0.x they have refactored to use the REST API methods, creating a the WC-CLI layer and making the system much more maintainable.
Overall, the team at coolblueweb is excited about the direction WooCommerce is taking with 3.0.x and beyond. If you store needs some assistance with this update, or you run into issues, we’re happy to help. Contact us at email@example.com to connect.