WooCommerce Product Bundles v5
WooCommerce Product Bundles version 5.0 has arrived, introducing many features requested by store owners and developers.
The biggest upgrade to date, the release addresses the scalability and stock reporting requirements of large stores and brings even greater pricing and shipping flexibility for creating complex bundles.
WooCommerce 2.4 or higher is now required. If your site is running an older version, it’s time to update.
Greater Pricing Flexibility
Previous versions of Product Bundles allowed you to assign a static price to bundles, or have the price of each bundled product added to the base bundle price by ticking the Per-Item Pricing option.
The new version improves on this concept by introducing a Priced Individually option, which can be enabled for specific bundled products if their price needs to be calculated independently from the base bundle price.
Since this is now controlled at bundled product level, the Per-Item Pricing option is no longer present in version 5.0.
Version 5.0 also introduces a new group of price-related options: Price Visibility.
These options allow you to hide the prices of specific bundled products in the single-product, cart/checkout and order details sections of your store:
Greater Shipping Flexibility
In previous versions, a bundle could either be shipped as a single physical item, or as a group of physical/virtual items by ticking the Per-Item Shipping option.
The new version introduces two changes:
- Bundles can be saved as virtual or physical at will – same as every other WooCommerce product type.
- Bundles override the shipping properties of their contents by default. However, the new Shipped Individually option allows you to maintain the original shipping properties of any bundled product. This makes it possible to select specific bundled products that need to be shipped individually from their container.
Reminder: The Per-Item Shipping option is no longer present in version 5.0.
Bundled Product Stock Reporting
Monitoring the availability of bundles when their contents run low in stock has always been a challenge for store owners. Why? WooCommerce stock reporting tools make it easy to tell when a product starts to run low in stock, but are not helpful for telling if the remaining stock of a product is sufficient to meet requirements of all bundles that contain it – a common challenge faced by store owners who manage hundreds of bundles.
Version 5.0 introduces a new Insufficient Stock section under Reports > Stock, which greatly simplifies the task of managing bundled product inventory.
The new section provides a list of all bundled products with insufficient stock, including a link to every affected bundle. For convenience, every entry also includes details such as the available product quantity and the quantity required by each bundle.
New Layout Option
There is a new Layout option under the Bundled Products tab that allows you to change the single-product layout of your bundles by selecting:
- the Standard layout you are familiar with; or
- a Tabular layout, ideal for displaying bundled products with configurable quantities.
Edit Bundles from the Cart
Bundles are now editable from the cart by enabling the Allow editing in cart option located under the Advanced tab.
Bundles can now be marked Downloadable, making it possible to add downloadable content at a bundle level. Useful if you are offering Product Bundles with downloadable items and need a way to include a single file with all downloads.
New Database Structure and API
Version 5.0 introduces a new database structure for storing and retrieving bundled item data (bundled items and bundled item meta) based on custom tables. The new structure is scalable and allows complex data queries that were previously impossible, e.g., Finding all bundles with a specific product.
The new database structure is complemented by a database API that consists of:
- A new data class that represents bundled item data objects and handles all CRUD operations.
- Functions for querying bundled items and retrieving, modifying and destroying bundled item data.
More details at the Developer Resources available with version 5.0.
New Cart/Order APIs
- Establish bundle parent/child item relationships
- Validate and add bundles to the cart/orders programmatically
Finally, version 5.0 makes it simpler to:
- Develop custom integrations with third-party Shipping, Fulfillment and Inventory Management Services.
- Reconstruct an accurate shipping representation of a bundle when exporting order data.
- Filter bundle SKUs in cases that require building a custom “kit SKU” from the products physically packaged in a bundle.
Refer to the Functions Reference of Product Bundles for details.
WP REST API Product/Order Fields
WooCommerce 2.6 added support for REST API endpoints based on the WordPress REST API infrastructure.
Product Bundles 5.0 extends the /products/ and /orders/ endpoint responses with two new fields: bundled_by and bundled_items.
- In order context, the bundled_by field is applicable to bundled order items and references the order item ID of their parent, while the bundled_items field is applicable to bundle parent items and lists the associated bundled order item IDs.
- In product context, bundled_by lists all product bundle IDs that a product has been added to, while bundled_items lists the bundled item data associated with a product of the bundle type.