New version of WooCommerce is around the corner – v.2.7 – codename Bionic Butterfly
Seems like WooCommerce releases and new functions got into a higher gear – newly merged development team is reaping the benefits of its parent company – Automattic. Let’s see what’s in store for their new release 2.7 which is scheduled to be out of Beta in February 2017.
Note that this is a major release with large architectural changes that further boost WooCommerce into a speedier platform for large eCommerce implementations. 16 Developers submitted over 1900 commits since July! You can download WC 2.7 Beta 1 here or read the official release from the WooCommerce developer’s blog.
Store Owners feature – New product gallery
New version of Woo introduces a better image gallery on a single product page template. WooCommerce developers took a poll to see what users wanted and went with improved functionality
- Visitors have access to both magnification and zooming (the lightbox will open up)
- a zoom/swipe hybrid approach (+ improved mobile support).
- Gallery behavior is more intuitive – clicking a thumbnail shows the clicked image rather than opening a light-box mode
- Improvements on handheld devices and touch gestures – swipe to scroll through the gallery, pinch to zoom, swipe up to close.
- Opening the light-box mode on mobile devices now displays the image in its true size, larger than the in-page display
Store owners feature – Performance and functional improvements
- IMPORTANT – Developers merged cart percent and product percent coupon types into one and removed product_cart discounts. The discounts these coupons provide are identical, however, the cart-based validation would stop the coupon from being applied if any non-eligible item was in the cart, rather than just discounting eligible items like product coupons do. This was not intuitive, caused store owners confusion, and most important of all, just meant users would have to checkout twice to make use of these coupons.
- Sorting tax rates was previously a manual process. When you have pages of tax rates this becomes cumbersome. In the 2.7.x system sorts tax rates automatically, placing more specific rules above more general rules (the way they should be sorted).
- Product visibility (which controls if products are visible in the catalog, search, or both) was previously post-meta, and was used in all WooCommerce product queries. In 2.7 this is a new product_visibility taxonomy instead. In testing, with ~8k products speed improvements are around 94%.
- Featured products and out-of-stock products are also using the new product_visibility taxonomy instead of meta which improves queries and speed of the platform.
- On the front end, store-wide notice is removable making it less of an issue when it overlaps content (especially on mobile devices)
- On WordPress networks/multisite, when a user logs into a store with an account, but not an account on the current store, WooCommerce will add existing users to the store rather than throw an error as it did in 2.6.
- Developers tried to optimize variable product sync. Upper/lower price metadata is no longer stored (it was not used in core), just the main prices, if a child has weight, and if a child has dimensions.
- Previously, structured data was output inline in Woo template files (marking up things such as products). In 2.7, Woo switched to JSON-LD format which keeps the template files tidy and keeps data intact (if custom modifications are made by theme developers).
- When using authorizations in PayPal Standard, funds are now automatically captured when the order is changed to processing or completed.
- Finally, Woo developers removed the feature where old orders get access to new downloads on product edit. Looping (potentially) thousands of orders to do this update was too much of a performance burden for some stores and this also could lead to unexpected behavior. After this update, they do however update edited downloads, so editing a file will not prevent purchasers from downloading it.
Developers features – CRUD, CLI & REST API
The largest change in 2.7 for developers is the new CRUD system. CRUD is an abbreviation of the 4 basic operations you can do to a database or resource – Create, Read, Update, and Delete. In 2.7, CRUD classes are in place for orders, products, customers, line items, shipping zones, payment tokens, and coupons. You can read more about the new CRUD classes here.
REST API and the CLI are now unified so the system does not contain duplicate code. The new CLI supports almost everything REST API provides. You can read more about the new CLI here.
Some new endpoints are added to the REST API:
- One specifically for variations. In addition, the system prevents the (broken) ability to manipulate variations directly on the product’s endpoints. Variation endpoints should be used instead.
- One to update and view settings.
- Endpoints for shipping zones.
- Endpoints for payment and shipping methods and settings.
Additionally, developers added support for oAuth1.0a authentication using headers and removed a very slow last-order query from the customer’s part of the API due to performance concerns. You can use the orders endpoint instead. Other order data on the endpoint is now transiently cached. REST API docs will be updated soon with this new info
Beta 1 is out today (December 15th). As noted before, Automattic hopes to have a release candidate ready by February 2017. If you would like to help translate 2.7, you’ll find it on the development branch on https://translate.wordpress.org/projects/wp-plugins/woocommerce.
Happy coding!