Looking for technical details? Read the 3.0 release post on the Develop WooCommerce blog here.
It’s hard to believe it’s been so long since our last major WooCommerce release, but sometimes good things are worth waiting for. 😉
Today we’re proud to unveil the WooCommerce 3.0 release, which includes:
- An updated product gallery with new zoom, gallery view and mobile features
- Multiple speed and performance improvements
- The addition of CRUD classes
- A new CLI powered by the REST API
These are some important additions, and there’s even more to explore in the Bionic Butterfly, so let’s get right down to business!
Show off your product images in the overhauled gallery
We’ve been talking about revamping the gallery experience on individual product pages almost since the time of the 2.6 release last year. We hadn’t been satisfied with gallery’s functionality for a long time — especially on mobile devices and smaller screen sizes — and felt it was time for a change.
After taking a poll and doing some internal testing, we eventually came up with a new gallery that had more functionality, was far more mobile-friendly, and was more intuitive than the previous iteration.
Here’s a short video of the gallery in action:
In the overhauled gallery, which will appear on individual product pages, you’ll find:
- Shoppers can now both magnify images from the page, and zoom into them from a lightbox popup
- If you have more than one image, the gallery behaviour is more intuitive; for example, clicking a thumbnail updates the image you’re already viewing instead of opening a lightbox popup window
- Dramatic improvements for mobile gallery views, including touch gestures: swipe to scroll through the gallery, pinch to zoom, and swipe up to close the current image
- Zooming into a product image on mobile now displays the image’s true size — previously it would scale to match the (very small) browser window, not an ideal experience!
We think these improvements create a faster and easier experience for shoppers viewing your product images, especially on mobile devices, and give them the ability to zoom in and see those little details. If you haven’t already, now’s the perfect time to make sure you have multiple product images in place for all of your items!
Watch for performance improvements, especially in larger stores
We’re always working to make WooCommerce faster and more efficient, and this update is no different. We’ve packed several significant performance enhancements into 3.0, which you’re most likely to notice if you have a larger store (specifically with several hundred products or many different variations).
Two of the specific improvements we’d like to point out:
- We now use taxonomies to determine and display product visibility, featured products, and out of stock products instead of the slower post meta, and
- We’ve reduced the number of queries for upsells and related products on product and cart pages.
But this is just a sampling of the improvements we’ve made. The entire list is available on the original beta release post, if you’re curious. But the most important thing you need to know is that we’ve actively working on speeding up larger stores, both in this and future releases.
Introducing CRUD classes — what they are and how they’ll help developers
Up until this release, there were multiple ways for developers write data to the database for orders, products, and so on. Retrieving data could also be done in multiple ways. This all required developers to know what type of data they were trying to modify, and this wasn’t ideal: it was time-consuming and complicated.
To optimize data storage, we need to ensure that developers use a single method of writing and retrieving data. So that’s why we’re introducing CRUD classes with this release.
CRUD stands for Create, Read, Update, Delete — the four basic operations you can do to a resource. With the CRUD classes added to WooCommerce 3.0, you can modify orders, products, customers, line items, shipping zones, payment tokens, and coupons with less code across a unified system.
The benefits of this addition:
- We define the data for each resource and control its flow and validation
- You’ll only need to know the names of the data you’re working with, instead of the types or internal details
- The data can be moved elsewhere (like custom tables) without affecting existing code
- Less code means fewer changes, plus more tests
For more info on the CRUD classes in WooCommerce and how to use them, read Mike’s post announcing their addition to this release on the Develop WooCommerce blog.
Manage data faster with the new CLI
One more treat for developers: we’ve overhauled our command line interface (CLI). Initially, the WooCommerce CLI was powered by its own code separate from the REST API. This meant code could be duplicated accidentally across the code base, and that certain things possible in the REST API were not possible at all with the CLI.
The new CLI is powered by the REST API, and is a fork of Restful. This reduces the amount of code we’ll need to maintain, provides you with more power, and means that the commands will always be current as we improve the REST API.
Justin’s post on the Develop WooCommerce blog has more details, plus a list of commands you can use starting today.
And that’s not all
Truth be told, WooCommerce 3.0 has much more going for it than what we’ve highlighted so far, but it’s hard to fit it all into a single post. Here are some more changes you might want to know about:
- Automatic sorting of tax rates, which makes it easier to add and manage new tax zones
- The sitewide notice is now dismissable by customers
- WordPress networks/multisite user handling has been updated so that WooCommerce will add existing users to the current store if the user already has an account in the same network (this resulted in an error in 2.6)
- We’ve merged cart percent and product percent coupon types into one method, reducing confusion and errors caused by cart-based validation
- And finally, improved logging for developers
You can read a full list of changes and features in the beta release post on our development blog.
Why this release is 3.0 instead of 2.7
As you may have seen in emails or chatter online, this release was originally planned to be numbered as 2.7, and released in mid-March. But our plans changed in the process of beta testing, and as we announced, we felt it was time to move to a new release system.
Moving forward, WooCommerce releases will use Semantic Versioning, which dictates that major releases — those with API changes or the potential to affect extension compatibility, like this one — receive a new major version number (ex. 4.0, 5.0). Minor releases and patches, on the other hand, will receive point versions (ex. 3.1, 3.2).
We’re using this method in an attempt to better describe what each release contains, and tell you at a glance how much of a potential impact a release might have on your store. We hope this also increases confidence in minor releases and patches, and helps you update WooCommerce more quickly when one of these updates is released.
Additionally, moving forward, we plan to add more time for beta and release candidate testing after new major versions are announced. This is due to helpful feedback we received on our (then) 2.7 release post from developers who wanted more time to test.
We’re incredibly appreciative of all of the feedback and advice that led to us implementing this new release system, both Semantic Versioning and the longer testing periods. We’re eager to try this out with the next few updates and look forward to further feedback from you on how it goes!
Ready to try the Bionic Butterfly? Your update is waiting
We hope you’ve enjoyed reading about WooCommerce 3.0. When you’re ready to give it a shot, review our documentation about how to update, make sure your backups are in place, and then grab the update from your WordPress Dashboard.
If you run into an issue while updating or find what you think is a bug, here’s what to do:
- Think you’ve found a bug with 3.0 or a conflict with another plugin? Report it to us via our GitHub issue tracker.
- Having trouble with the upgrade? Visit our support page to open a ticket.
- Just want to chat about the release, or have a great idea for the next version? Start the discussion on the public WooCommerce forums at WordPress.org.
Please note that we are not able to diagnose or solve potential issues via blog comments. The fastest way to get in touch with us is via one of the methods listed above. But we are always excited to read your feedback and give general advice.
For specific things to look out for with 3.0, potential compatibility issues and ongoing updates are on our development blog.
What do you think of the Bionic Butterfly? Let us know in the comments!