How to Sell Product Packages with WooCommerce Product Bundles

For a while now, Product Bundles has offered WooCommerce merchants a reliable, straightforward way to create bulk product packages. Today, we are going to explore some of the most effective techniques for cross-promoting these bundles in WooCommerce product pages.

A while ago, we received the following message from Massimo, owner and manager of a small winery in Italy:

We sell 9 wine varieties in bottles, cases, or crates. A case contains 3 bottles, and a crate 12 bottles. We have used Product Bundles to create the “case” and “crate” bundles, and confirmed that both consume inventory from our bottles, as expected. Now we are looking for a way to create a product for each wine variety, and group the “bottle”, “case” and “crate” options there. Is this possible?

As a winemaker, Massimo sensed that a shopping experience structured around wine varieties would be more effective, and wanted to use product page features, including reviews, to present his wines. In his mind, “cases” and “crates” were packaging options, not individual products.

But before we answer Massimo’s question, let’s see how he created the “case” and “crate” bundles:

Creating bottles

Wineries measure their inventory using bottles. The most straightforward way to create a wine bottle in WooCommerce is to use a Simple product. Massimo had created a different bottle for each wine variety and used it to track all stock for the item:

“Merlot Bottle” — Inventory settings.

Creating bundles

Let’s go ahead and create a “case” and “crate” bundle for the “Merlot” variety. To create a “Merlot Case”:

  • Create a new product and set its title.
  • Choose the Product bundle type.
  • Go to the Bundled Products tab.
  • Add the “Merlot” bottle we created earlier.
  • In the Quantity Min and Quantity Max fields, enter 3.
  • Check the Priced Individually box and, optionally, set a Discount.

Creating the “Merlot Case” bundle.

Now, don’t forget that when a customer orders a “Merlot Case”, they will receive a wooden case with 3 bottles. From a shipping perspective, the “Merlot Case” is a single physical product. This type of bundle is called an assembled one: To fulfill an order for a “Merlot Case”, Massimo’s team will need to assemble 3 bottles of Merlot in a wooden case. To process orders faster, they may even assemble and stock a few cases in advance.

To make WooCommerce see the “Merlot Case” as an assembled bundle:

  • Go to the Shipping tab.
  • Choose the Assembled bundle type.
  • Enter the weight of the entire, assembled case in the Weight field.
  • Choose the Assembled Weight > Ignore option.
  • Finally, save the bundle.

Shipping settings of the “Merlot Case” bundle.

Tip: A slightly different approach here would be to enter the weight of the unassembled wooden case in the Weight field, and choose the Assembled Weight > Preserve option to dynamically add the weight of the 3 bottles.

Note that when “Merlot” bottles run out of stock, customers will not be able to purchase a “Merlot Case”. This works without enabling stock management for the “Merlot Case”. Managing inventory for the “Merlot Case” only makes sense if you want to assemble an inventory of cases in advance, instead of building a case when ordered. In this scenario, you can enable Inventory > Manage Stock for the “Merlot Case”, and adjust its stock every time you add new cases to your inventory.

At this point, we can go back to Massimo’s question: Is there a way to group the “bottle”, “case” and “crate” options together?

1. Use product shortcodes

One way to approach this problem is to:

  • Make only wine bottles visible in the catalog.
  • Use a product shortcode to promote cases and crates in bottle pages.

Here’s an example:

Using product shortcodes to cross-promote bundles.

This is the shortcode we used to display the two bundles:

Adding a product shortcode to the Product Short Description field.

Now the “Merlot” product page promotes the additional purchasing options, and visitors who wish to make a purchase can choose the option that fits their needs. To hide the “Merlot Case” and “Merlot Crate” in the catalog, change their Catalog Visibility to Hidden. Full documentation on how to do that is available here.

Another similar solution is to:

  • Hide wine bottles, cases and crates in the catalog.
  • Create a new External product to use as a container for our 3 options.
  • Use a product shortcode to display the bottle, case and crate options.

Using an External product as a container for multiple packaging options of the same product.

In this case, we did not fill in any of the External product fields under Product Data > General. Leaving the Product URL field empty ensures that WooCommerce will not display an add-to-cart button for this container product. Note that if we wanted a price to appear in the catalog, we could enter it in Product Data > General > Regular Price:

Configuring the “Merlot” container product.

What makes this approach interesting is that it ticks every box that Massimo had in mind:

  • The “container” product replaces the bottle, case and crate in our catalog, and groups these 3 purchasing options together.
  • The page can be accessed by customers who wish to leave a review.

2. Use upsells

Another approach is to use Up-sells to recommend the “Merlot Case” and “Merlot Crate” bundles when viewing the “Merlot Bottle”:

Using upsells to cross-promote bundles.

One issue with using upsells to cross-promote bundles like this is that most themes display upsells very close to the footer of the page, which limits their effectiveness. This can be addressed by using Product Recommendations (or writing some custom code) to place these cross-promotions closer to the add-to-cart button.

One benefit of using Product Recommendations is that it addresses another issue with upsells: Entering them manually one by one for multiple products can be tedious. With Product Recommendations, it is possible to automatically recommend the “case” and “crate” bundles for all wine bottles in your store. To do this:

  1. Create an Engine based around the contextual Product Bundle filter, which picks up bundles that the currently viewed product belongs to:

    Creating an engine that recommends all bundles that the currently viewed product belongs to.

  2. Deploy this Engine to a product page location close to the add-to-cart button:

    Deploying an Engine that automatically recommends bundles.

Here’s the result:

Automatically recommending cases and crates that the current bottle belongs to.

Cross-promoting cases and crates for every wine bottle in our store only took us a minute. Neat, isn’t it?

3. Use a Variable product container

For those who prefer to replicate the user experience of a Variable Product, there is another solution to Massimo’s problem: Variation Bundles, a free add-on for Product Bundles, makes it possible to use a variation as a “trigger” for adding a bundle to the cart.

Using a Variable product as a front-end for cross-promoting bundles.

Sounds confusing? Here’s how we “pointed” the “Merlot – Case (x3)” variation to the “Merlot Case” bundle:

Mapping the “Merlot – Case (x3)” variation to the “Merlot Case” bundle.

Now when a customer selects the “Case (x3)” option and clicks the add-to-cart button, WooCommerce will add the “Merlot Case” bundle to the cart, instead of the “Merlot – Case (x3)” variation:

Customers who choose the “Case (x3)” option and click the add-to-cart button will find the “Merlot Case” bundle in their cart.

Of course, this solution has an important limitation: Variation Bundles does not let us “point” the “Merlot – Bottle” variation to the Simple “Merlot Bottle” product we created earlier. To work around this, we need to:

  • Use the “Merlot – Bottle” Variation instead of creating a Simple “Merlot Bottle” product to manage the inventory of our bottles.
  • Add the “Merlot – Bottle” Variation to the “Merlot Case” and “Merlot Crate” bundles, instead of the “Merlot Bottle” we added earlier:

The “Merlot Case” bundle, updated to pull stock from the “Merlot – Bottle” variation.

4. Use a Composite product container

Finally, there’s another way to group our bottles, cases and crates that gives store builders even more flexibility to customize the shopping experience: Using a Composite Product container, as described here.

The main advantage of this method is that the Composite container is able to pull all product details, including images and prices, directly from the individual bottle, case and crate products. Additionally, the “bottle”, “case” and “crate” options can be displayed in a drop-down, radio, or thumbnail grid format.

Final Words

Phew — that was a lot! There are probably even more creative ways to group and cross-promote bulk quantity bundles with WooCommerce. Have another one in mind? Feel free to share it in the comments! Found this guide useful? Let us know!