Store Owner’s Guide

Installation ↑ Back to top

  1. Download the .zip file from your WooCommerce account.
  2. Go to WordPress Admin > Plugins > Add New.
  3. Click Upload Plugin at the top.
  4. Choose File and select the .zip file you downloaded in Step 1.
  5. Click Install Now and Activate the extension.

Getting Started ↑ Back to top

To create a product bundle:

  1. Go to Products > Add Product.
  2. Select the Product Bundle type in the Product Data panel.
  3. Go to the Bundled Products tab.
  4. Use the search field to find and add products to the bundle. Repeat as many times as needed, each time clicking on a search result to add it to the bundle.
  5. Publish to save.
Product Bundles supports simple products, variable products and simple/variable subscriptions. Grouped and external products are not supported and cannot be bundled. Product bundles cannot be bundled and will not work correctly when added to Grouped products.

Each time you add a product, a new set of bundled product options becomes available. These options allow you to change parameters specific to the added item, such as pricing & shipping options, minimum and maximum quantities and more.

Creating a bundle.
Multi-Instance Bundling

It is possible to bundle multiple instances of the same simple or variable product and configure each one individually. This creates many possibilities — for example, you can bundle together multiple variations of a single variable product using the Filter Variations option.

Pricing ↑ Back to top

The Bundle type can be used in a wide range of bundling/kitting applications with diverse pricing requirements, as it allows you to define a static base price for the entire bundle, and/or to add the individual price of each bundled product to this base price.

Product Bundles in the Cart/Orders

In the cart, a bundle is displayed as a parent line item – named after the product bundle itself – followed by a child line item for each bundled product. Child/bundled items are grouped by their parent/container item and bundled product quantities are kept in sync with the quantity of their parent. This approach makes it possible to define a static base price for the entire bundle, and/or to add the individual prices of bundled products to this base price.

Note: In some use cases, displaying a parent item in cart/order templates might not be ideal, for example when offering unassembled bundles of individually-priced products. If you need Product Bundles to behave and look more similar to Grouped Products in cart/order templates, choose No parent under Bundled Products > Group Mode. Read more about the Group Mode option here.

Static Pricing ↑ Back to top

To assign a static price to a bundle:

  1. Go to Products > All Products and select the bundle you wish to edit.
  2. Select the General tab in the left menu.
  3. Enter a Regular Price and, if needed, a Sale Price. Note that if you only use these fields to define the price of a bundle, its contents/configuration have no effect on its price. Despite its limitations, this simple pricing configuration is sufficient in many cases, and is recommended for quickly creating pre-built kits.
  4. Update.
The Happy Ninja bundle.
The Happy Ninja bundle - in the cart.
The Happy Ninja bundle.
The Happy Ninja bundle – in the cart.
Configuring the Happy Ninja bundle.
Assigning a static price to the bundle.

Static Bundle Pricing vs. Reporting Accuracy

Changes to the Regular/Sale Price of a bundle only affect the subtotal of its parent cart/order line item. When using this method to set the price of an entire bundle, the subtotals of its child line items will be zero, resulting in inaccurate earnings reports for all bundled products. If reporting accuracy is important to you, avoid static bundle prices and only use them if a bundle is a service, process or physical item with a “base value” of its own.

Static Bundle Pricing vs. Tax Law

In some cases, using a static bundle price might not be possible due to Tax Law requirements. When creating a bundle of products that have different tax rates, be aware that a static bundle price limits you to a single tax rate.

Individual Item Pricing ↑ Back to top

When creating bundles that include configurable items (variable products, optional products or products with configurable quantities) a common requirement is to total the individual prices of some/all bundled items. This is possible by enabling the Priced Individually option, located under the Basic Settings tab of every bundled item.

The Priced Individually checkbox.
Priced Individually usually needs to be checked if the quantity of a bundled item is configurable — this is common when selling items in bulk.
The Poster Pack bundle.
The Poster Pack bundle – in the cart.
Configuring the Poster Pack bundle.
The General options panel.

Note that when Priced Individually is checked, it is possible to define a % Discount for the bundled product. This is applied to its regular price by default. Discounts provide an incentive for purchasing items in bulk and/or purchasing optional “add-ons”, such as accessories.

In cases similar to the Poster Pack bundle, it may be necessary to leave the bundle price fields empty. This is fine as long as at least one bundled product is Priced Individually. Note that sometimes it is desirable to use the bundle price fields to define a base bundle price, and at the same time enable the Priced Individually option of one or more bundled items.

Individual Pricing and Price Visibility

When Priced Individually is enabled, the bundled product price is visible in i) the product details page of the bundle, ii) the cart and iii) order details by default. To change this behavior, use the Price Visibility options found in the Advanced Settings tab.

Individual Pricing and Cart/Order Totals

When the Default Group Mode is active, the subtotals of parent/child line items in cart/order templates are added together and the actual subtotal of the parent item is replaced by the aggregated subtotal. Additionally, the subtotals of individually-priced items are indented and displayed with a Subtotal: prefix. This behavior can be changed with this snippet.

Bundles with Subscription products

When a Subscription product is added to a bundle, the Subscription product must be Priced Individually if you want a subscription to be set up. Otherwise, the Subscription product will be treated as a Simple product and granted to the customer once.

Shipping ↑ Back to top

Introduction ↑ Back to top

From a shipping perspective, WooCommerce products are classified as:

  • Virtual — services or digital items that do not require shipping.
  • Physical (non-virtual) — products with a weight and dimensions that need to be shipped or picked up.

Bundles typically consist of multiple virtual and/or physical products. However, the physical properties (weight & dimensions) of a bundle that’s packed and ready to be shipped are not always identical to the physical properties of its components. This is very common in bundling applications that involve a physical assembly or packaging process. Consider this example:

Woo Tech is an awesome company using WooCommerce to sell computers online. Its entry-level desktop PC, Woo Basic, is assembled from a list of inventory-managed components. Some of these components are listed in the Woo Tech catalog, and some are unlisted OEM parts. Once a Woo Basic PC is assembled, the original packaging of the assembled components is discarded, and the PC is packaged and shipped in one box along with all product manuals and accompanying material.

From a shipping perspective, physical bundles can be classified as assembled and unassembled ones:

  • Assembled bundles have their own physical properties which replace the physical properties of their components.
  • Unassembled bundles are physically identical to the sum of their components.

The extension supports both types of bundles. It even allows you to create partially assembled bundles by individually selecting those bundled items that require assembly.

Assembled vs. Unassembled bundles
Assembled vs. unassembled bundles.

Configuration ↑ Back to top

To configure a bundle for shipping, follow these steps:

  1. Determine if the bundle is a Virtual one. Check the Product Data > Virtual box if:
    • nothing needs to be shipped, e.g. the bundle includes only virtual products, or
    • the bundle groups together some physical products that don’t require assembly.

    Leave the Virtual box unchecked if the bundle contains physical products that need to be assembled or packaged together and shipped in a new container.
  2. If you determined that the bundle is not Virtual in Step 1, configure its physical/shipping properties by navigating to the Shipping tab in the left menu.

    If the bundle contains assembled components, use the Shipping tab options to define the physical/shipping properties of the entire assembly.
  3. Go to the Bundled Products tab.
    • If the bundle consists of virtual items only, no further action is needed.
    • If the bundle includes physical items, ensure that Shipped Individually is:
      • disabled for each item that requires assembly, and
      • enabled for each item that doesn’t.

    Remember that if a bundled item is not assembled or physically packaged in the bundle, then it needs to be Shipped Individually.
The Shipped Individually checkbox.
By default, assembled bundles have a static weight, which is defined under Product Data > Shipping > Weight. Assembled bundled items (Shipped Individually is disabled) have no effect on the weight of their container. If you prefer to use the value entered in the Weight field as a base container weight, and let each assembled bundled item contribute its own weight to it, use this snippet.
Using the Product Bundle type instead of the Simple type is a common technique for:

  • Offering additional, closely related products above the add-to-cart button.
  • Bundling some mandatory items with products that require them.

In such cases, the Product Data > Virtual and Product Data > Shipping settings of the base product don’t need to be modified when changing its product type from Simple to Product bundle.

Notes on External Order Fulfillment, Shipping and Inventory Management Services

The shipping configuration options of the Bundle type allow shipping methods and other business logic that relies on the WooCommerce Shipping API to calculate shipping costs accurately.

External fulfillment, shipping and inventory management services work by importing WooCommerce order data. If you rely on an external service provider, you might encounter issues with assembled bundles (this means Shipped Individually is disabled for one or more bundled products). For example, you may find that the physical properties of imported bundles are inaccurate, resulting in wrong shipping rate calculations — or that bundled product SKUs are not imported at all, resulting in inventory issues.

These systems typically rely on the stock keeping units (SKUs) included in WooCommerce orders. Some of these systems do not support fulfilment, shipping, or inventory management of bundles/kits at all. Those that do usually work by splitting up a static or dynamic bundle/kit SKU to a number of component SKUs. This means that, in most cases and depending on the features and requirements of the system you are using, some additional integration work might be needed.

Product Bundles provides an API that allows you to restore the physical representation of your bundles when reading order data, and possibly generate custom bundle/kit SKUs for bundles that contain assembled items.

Note that if your catalog only includes pre-built bundles with static contents and you are using an external service for inventory management, it might be preferable to use a core WooCommerce product type to build your bundles and let the external system work out its “component SKUs” by breaking up its bundle/kit SKU.

Note: We are unable to provide assistance with customizations/integrations under our Support Policy.

Bundled Product Settings ↑ Back to top

Once a product has been added to a bundle, a new set of options becomes available for the newly added item. These are divided in two tabs: Basic Settings and Advanced Settings.

Basic Settings ↑ Back to top

Minimum Quantity and Maximum Quantity — Used to define an allowed quantity range for the bundled product: Customers are able to choose any quantity within the specified min/max range. Leave the Quantity Max field blank for an unlimited maximum value.

Optional — When enabled, customers may choose whether to include the bundled product in their bundle or not. This is a common up-selling technique.

Filter Variations — Makes it possible to make specific variations available for purchase. Applicable to variable products only.

Override Default Selections — Used for overriding the default attribute values of bundled variable products.

When Filter Variations is activated, use Override Default Selections to choose a new combination of default attribute values. When doing so, ensure that the combination you selected is a valid one.

Priced Individually — Adds the price of the bundled product to the base bundle price. With the option enabled, a Discount can be defined. Both options are documented in the Pricing section.

Shipped Individually — Controls how the bundled product is shipped in relation to the entire bundle (assembled or unassembled). Documented in the Shipping section.

Advanced Settings ↑ Back to top

Visibility — Controls the visibility of the bundled product: i) in the single product page of the bundle, ii) in the cart/checkout pages, and iii) when displaying order details (including order details displayed in e-mail notifications).

Visibility in Payment Gateway Transactions

Marking a bundled product as hidden in the order/e-mail templates will not prevent payment gateways from listing it in their transaction details archives and customer notification e-mails.

Visibility and Downloadable Items

When a downloadable bundled product is hidden in order/e-mail templates, any associated download links will be hidden as well.

Price Visibility — Controls the visibility of the bundled product price: i) in the product details page of the bundle, ii) in the cart and iii) when displaying order details. Applicable when Priced Individually is ticked.

Override Title and Override Description — Used for modifying or hiding the original titles and/or short descriptions of bundled products. Note that overridden product titles will replace the original product titles in all template locations, including the cart/checkout and order details.

Hide Thumbnail — Controls the visibility of bundled product thumbnails, displayed by default when viewing the single-product details page of a bundle.

Layout ↑ Back to top

The Layout option controls the appearance of bundled product details in single-product pages. There are 2 alternatives to choose from: Standard and Tabular.

Choosing a Layout.
The Tabular option is recommended for bundles that contain multiple bundled products with configurable quantities as it makes viewing/comparing item quantities easier.
Choosing a Poster Pack bundle layout: Standard (left) vs Tabular (right).

Group Mode ↑ Back to top

The Group Mode option controls the visibility and indentation of parent/child line items in cart/order templates:

Default — Bundled items in cart/order templates are grouped under a parent line item named after the product bundle itself. Bundled items are indented and bundled item quantities are kept in sync with the quantity of their parent. Must be selected when creating assembled bundles and/or bundles with a static/base price component.

When the Default Group Mode is active, the subtotals of parent/child line items in cart/order templates are added together and the actual subtotal of the parent item is replaced by the aggregated subtotal. Additionally, the subtotals of individually-priced items are indented and displayed with a Subtotal: prefix. This behavior can be changed with this snippet.

No indent — Similar to Default, however instead of being indented, bundled cart/order items include a reference to the bundle they belong to.

No parent — Hides the parent item in all cart/order templates, effectively making the Bundle type work similar to the Grouped one. Bundled cart/order items include a reference to the bundle they belong to.

Important: No parent is only applicable to virtual, unassembled bundles without a static/base price component. Therefore:

  • Virtual needs to be checked.
  • Shipped Individually needs to be enabled for all bundled products.
  • The Regular/Sale Price fields should be blank.

Note: When No parent is active, a bundle can be purchased only if at least one bundled item is included or selected.
Group Mode: Default (left) vs No parent (right).

Cart Editing ↑ Back to top

Configurable bundles, such as the Poster Pack bundle, can be edited from the cart page by enabling the Edit in Cart option.

The Edit in Cart checkbox.

When enabling Edit in Cart for the Poster Pack bundle, a “click to edit” link is appended to its title in the cart. Following this link allows you to reconfigure the bundle using its current configuration as your starting point. When finished, click Update Cart to replace the configuration in your cart with the new one.

Editing a bundle from the cart page.

Managing Inventory ↑ Back to top

The sale of a product in a bundle has the same effect on stock as an individual sale – there are no separate bundle-level inventory settings for bundled products.

If the stock quantity of a bundled product drops below the minimum quantity required by the bundle, then the bundle appears with an Insufficient Stock status and cannot be purchased.

Monitoring Bundled Product Stock Levels ↑ Back to top

To track bundled product stock levels, look for the Insufficient stock tab added by the extension under WooCommerce > Reports > Stock.

Remember that a product appearing as In stock in your catalog may not have enough stock to cover the requirements of every bundle that contains it. For example, if the Minimum Quantity defined for a bundled product in one or more bundles is higher than its remaining stock, then these bundles will not be available for purchase.

Inventory Settings ↑ Back to top

With Product Bundles, it’s possible to define bundle SKUs and manage inventory for bundle SKUs. The ability to set stock quantities for bundle SKUs allows you to place constraints on the bundling process itself, e.g., associated with time, manpower or another limited resource. Go to the Inventory settings tab of a bundle to enable stock management and set bundle-level stock quantities. Note that availability limits imposed by bundled products are not overridden by enabling stock management for a bundle.

Bundle SKUs are static by default. If you plan to use the extension with an external order fulfillment, shipping or inventory management service and need a way to generate dynamic bundle SKUs, please refer to the Shipping section for details. Note that if your catalog only includes pre-built bundles with static contents and you are using an external service for inventory management, it might be preferable to use a core WooCommerce product type to build your bundles and let the external system work out its “component SKUs” by breaking up its bundle/kit SKU.

Use Cases ↑ Back to top

The following use cases are useful for gaining a better understanding of what is possible with Product Bundles:

Questions & Support ↑ Back to top

Have a question before you buy? Please fill out this pre-sales form.
Already purchased and need assistance? Get in touch with us via the Help Desk!

WooCommerce - the most customizable eCommerce platform for building your online business.

Back to the top