You can create WooCommerce product bundles using inventory you already sell, without buying extra units or creating duplicate stock records. The key is shared component stock: the bundle pulls its contents from your existing products.

That gives you another way to sell the same catalog while keeping inventory manageable. We recommend starting with one useful combination, then setting its pricing, availability, and checkout rules before publishing.

Key Takeaways

  • Build product bundles around existing products so individual and bundled sales draw from the same inventory.
  • Choose a fixed price for a set offer, or calculate the total from selected bundle items.
  • Track component quantities first; enable separate bundle inventory only when you need an additional sales limit.
  • Test variations, discounts, shipping, and inventory reduction together before promoting your offer.

Choose WooCommerce Product Bundles That Fit the Purchase

Product bundles bring related items into one offer. They simplify the purchase and give customers a reason to add more.

A wrapped bundle containing a water bottle, notebook, and pen on a wooden table.

A fixed kit works when the contents belong together. Optional products let customers add extras, while composite products suit configurable purchases with dependencies, such as a computer whose parts must work together.

Mix and match suits bulk selections with minimum and maximum limits. A six-bottle craft beer crate is a clear example: customers choose the contents within the permitted quantity.

Frequently bought together recommendations and cross-selling suggest related products and may increase average order value. They don't guarantee a larger or more profitable order.

Use frequently bought together recommendations when shoppers benefit from relevant add-ons. Track clicks and average order value to assess results.

If you only need recommendations, start with our built-in cart cross-sell setup. This type of cross-selling works without a bundle extension. Use a bundle extension when an offer, including one with composite products, needs its own price, required contents, or selection rules.

Pick a Plugin Around Your Catalog

Choose a plugin that fits your product types, variation needs, and purchase rules. A long feature list won't help if bundled products or inventory settings don't work as expected.

These options address different needs:

PluginBest fitFree or paid
WooCommerce Product BundlesCurated kits, optional items, component pricing$79 for a one-year plan
WPC Product BundlesStraightforward bundles with drag-and-drop setupFree version; premium features available
YITH WooCommerce Product BundlesOptional contents and purchase rulesFree and premium editions
WooCommerce Composite ProductsConfigurable products with dependenciesPaid

For a simple catalog, a free plugin can be enough. WPC's premium edition adds variable products, which matters if customers choose sizes or colors.

YITH's bundle documentation covers its configuration options. YITH allows variable products, but customers choose each variation through a dropdown. External or affiliate products can't be included.

The official Product Bundles documentation lists a baseline of WooCommerce 8.2+, WordPress 6.2+, and PHP 7.4+. Release-specific requirements can be higher.

Choose premium functionality when it meets a defined need, such as variation restrictions, flexible quantities, or more detailed shipping control.

Create a Bundle With the Official Extension

Back up your store and use staging for setup when available. Then install and activate WooCommerce Product Bundles.

The official Store Owner's Guide uses this workflow:

  1. Open Products > Add New Product. Add a clear name, description, and image that shows the actual contents.
  2. In the Product data dropdown, select Product Bundle. This creates a bundle offer that uses its component products rather than copying them.
  3. Open Bundled Products. Search your catalog and add existing bundled products. The extension supports simple products, variable products, and supported subscription products.
  4. Set each bundle item's quantity, optional status, variation restrictions, and individual pricing. Every included product needs a saved price, even when you charge through the bundle's total.
  5. Configure the bundle's price, fulfillment, inventory, and presentation. Save it as a draft, preview the purchase flow, then publish after testing.

Give the description a clear job: tell customers what arrives. Include required contents, optional extras, quantity limits, and any variation choices.

Set Required and Optional Items

Optional items display a checkbox so customers can include or skip them. Keep essential components required.

Set minimum, default, and maximum quantities for each item. Use bundle-level quantity limits when the total selection must stay within a range.

Keep Variation Choices Clear

Restrict variations when only certain options belong in the offer. Otherwise, shoppers may face unnecessary choices or incompatible combinations.

Inventory is controlled by the product or variation that manages it. A parent product's availability doesn't tell you whether every size or color is available.

Set Pricing Without Giving Away Your Margin

Two pricing models cover most bundles. Plugin labels differ, but the decision is straightforward: should selections change the total?

Auto Calculate for Flexible Contents

Auto Calculate (Sum of Items) adds up selected item prices. It suits optional extras and bundles with changing quantities.

In the official extension, enable Priced Individually for the relevant components. Leave the bundle base price empty when the total should come entirely from those items.

With auto calculate, component price changes stay connected to the bundle total.

Fixed Price for a Clear Offer

Set one total price for the entire bundle. Use this option when the contents are predictable and the offer needs a simple advertised price.

In the official extension, enter the bundle price under General and disable individual pricing for items covered by that total. Individually priced extras can still add charges.

A bundle discount commonly falls between 15% and 30%, but that range isn't a margin rule. Depending on the plugin, discounts can be percentages or fixed amounts applied to regular or sale prices.

We recommend calculating product costs, payment fees, packaging, and fulfillment costs before choosing a discount. Test coupons too, so stacked offers don't erase your profit.

Keep Inventory Shared and Availability Accurate

An ecommerce storeroom with shelves of stock and a packing table featuring grouped products.

Let Components Control Available Inventory

Enable stock management under WooCommerce > Settings > Products > Inventory. Then enable tracking for each component product or inventory-managed variation and enter accurate quantities.

When someone buys a bundle, WooCommerce deducts the purchased quantities from the existing component products or variations. The available stock for each component decreases by the quantity included in the bundle.

For WooCommerce product bundles assembled from existing inventory, you usually don't need a separate bundle quantity. Use one only for an additional limit, such as available packaging or assembly capacity.

A separate bundle stock limit adds another sales limit. It doesn't replace the inventory records for the products inside.

Decide What Happens When Something Sells Out

Bundle builders may offer Strict, Flexible, and Ignore modes. Strict hides an unavailable bundle. Flexible disables or hides unavailable items. Ignore bypasses the builder's availability restriction and needs careful use.

These labels aren't universal across plugins. The official extension bases availability on bundle contents and their purchase requirements.

To control catalog visibility, choose Hide unavailable items from the catalog in WooCommerce's Inventory settings. Our out-of-stock visibility guide covers that separate control.

Hiding an item doesn't delete it or change purchasing rules. Backorders can still permit purchases when the quantity is zero. Enabling tracking now won't reconstruct earlier sales, so reconcile existing inventory first.

Make the Product Page, Cart, and Shipping Clear

A bundle's layout can be a list, grid, or accordion, depending on your plugin. Lists suit detailed options, grids emphasize product images, and accordions organize longer selections.

Use a clear layout and keep the total close to the selection controls. Customers can see how each added item changes the price. On mobile, check that the layout keeps choices and prices easy to scan.

Some builders offer Cart Display Mode: Show Only Bundle. This compact option keeps the cart focused on the grouped offer, as long as the included contents stay clear. Other settings show the bundle and its items as separate cart entries.

The official extension uses parent and child cart lines, with grouping controls rather than identical display labels. WooCommerce's bundle-builder configuration guide describes another implementation with different controls.

Shipping can be calculated for one assembled bundle or per item, depending on the plugin. Match the setting to fulfillment, then use the corresponding weights and dimensions.

Test the Whole Purchase Before Launch

A saved product isn't a finished checkout test. Open a private browser window and buy the bundle through your payment gateway's test mode.

Start with the required contents. Add optional items, change quantities, and choose variations. Confirm the price updates with each selection and doesn't add unexpected charges.

Before purchase, record each component's inventory and any separately managed bundle limit. After checkout, compare the figures. Each component's stock should drop by the purchased quantity. Any separately managed stock limit should drop too.

Next, make a required component unavailable. Test optional inventory shortages separately. Confirm the bundle follows your availability rules and backorder policy without allowing overselling.

Review shipping, tax, discounts, coupons, order emails, and the mobile layout. Cancel a test order and confirm each inventory quantity is restored.

If the editor shows fresh inventory but the storefront shows an older figure, investigate caching before changing quantities. Keep the cart, Checkout, and My Account outside shared full-page caching.

Frequently Asked Questions

Can a Grouped Product Replace a Bundle Plugin?

A core WooCommerce grouped product presents related products for individual purchase. It doesn't provide the same bundle-level pricing and purchase rules as product bundles managed by an extension. Use it for a simple collection; choose a bundle extension for a defined package.

Can Bundles Include Subscription Products?

The official Product Bundles extension supports simple and variable subscription products with the required subscription functionality installed. Subscription components must be Priced Individually to create subscriptions. Otherwise, the bundled subscription product is treated as a one-time purchase.

Can Backorders Keep a Bundle Available?

Yes, if the required component's backorder settings and the bundle rules permit it. Core WooCommerce doesn't provide a maximum-backorders field. Our WooCommerce backorder guidance explains how to keep commitments aligned with incoming supply.

Do Bundles Need Extra Physical Inventory?

No. A bundle can sell existing component inventory. You only need extra units if demand requires them, not because you've created another way to purchase the same products.

Build One Clear Offer, Then Grow

Start with one combination customers understand. Shared stock, sensible pricing, and a tested checkout give that offer a dependable foundation.

We can help with the hosting underneath it. Explore our ZADiC WordPress hosting plans for your store, with 24/7 support available when you need hosting help.

Keep the first bundle simple. Make it easy to choose, easy to fulfill, and profitable to sell.

We use cookies so you can have a great experience on our website. View more
Cookies settings
Accept
Decline
Privacy & Cookie policy
Privacy & Cookies policy
Cookie name Active

Who we are

Our website address is: https://zadic.net.

Comments

When visitors leave comments on the site we collect the data shown in the comments form, and also the visitor’s IP address and browser user agent string to help spam detection. An anonymized string created from your email address (also called a hash) may be provided to the Gravatar service to see if you are using it. The Gravatar service privacy policy is available here: https://automattic.com/privacy/. After approval of your comment, your profile picture is visible to the public in the context of your comment.

Media

If you upload images to the website, you should avoid uploading images with embedded location data (EXIF GPS) included. Visitors to the website can download and extract any location data from images on the website.

Cookies

If you leave a comment on our site you may opt-in to saving your name, email address and website in cookies. These are for your convenience so that you do not have to fill in your details again when you leave another comment. These cookies will last for one year. If you visit our login page, we will set a temporary cookie to determine if your browser accepts cookies. This cookie contains no personal data and is discarded when you close your browser. When you log in, we will also set up several cookies to save your login information and your screen display choices. Login cookies last for two days, and screen options cookies last for a year. If you select "Remember Me", your login will persist for two weeks. If you log out of your account, the login cookies will be removed. If you edit or publish an article, an additional cookie will be saved in your browser. This cookie includes no personal data and simply indicates the post ID of the article you just edited. It expires after 1 day.

Embedded content from other websites

Articles on this site may include embedded content (e.g. videos, images, articles, etc.). Embedded content from other websites behaves in the exact same way as if the visitor has visited the other website. These websites may collect data about you, use cookies, embed additional third-party tracking, and monitor your interaction with that embedded content, including tracking your interaction with the embedded content if you have an account and are logged in to that website.

Who we share your data with

If you request a password reset, your IP address will be included in the reset email.

How long we retain your data

If you leave a comment, the comment and its metadata are retained indefinitely. This is so we can recognize and approve any follow-up comments automatically instead of holding them in a moderation queue. For users that register on our website (if any), we also store the personal information they provide in their user profile. All users can see, edit, or delete their personal information at any time (except they cannot change their username). Website administrators can also see and edit that information.

What rights you have over your data

If you have an account on this site, or have left comments, you can request to receive an exported file of the personal data we hold about you, including any data you have provided to us. You can also request that we erase any personal data we hold about you. This does not include any data we are obliged to keep for administrative, legal, or security purposes.

Where your data is sent

Visitor comments may be checked through an automated spam detection service.
Save settings
Cookies settings