=== BundleBoss - Product Bundles, Mix and Match & Build a Box for WooCommerce ===
Contributors: bundleboss
Tags: product bundles, mix and match, build a box, bundle discount, product configurator
Requires at least: 6.4
Tested up to: 7.1
Requires PHP: 8.0
Stable tag: 6.4.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Product bundles for WooCommerce: mix and match, build a box and kits. Customers pick each item's size and colour, buy the lot as one order.

== Description ==

BundleBoss is **one plugin instead of three**: deal packs, configurable kits and build-your-own boxes all live here, so you are not stitching separate bundle, mix-and-match and composite plugins together. And it starts simple: **a first bundle takes about two minutes**, timed from a fresh install to published on a stock store.

Here is what sets it apart: most bundle plugins lock every slot. BundleBoss is built around customer choice from the first click. The free plugin groups products into a "buy these together and save" pack and lets customers pick the size and colour of **every unit**, buying the lot as one cart line. **If you can describe the bundle, you can probably build it here.** That is why shops run it for deal packs, configurable products, build-your-own kits, gift sets, and team kit and workwear.

See BundleBoss build a bundle in two minutes:

https://youtu.be/x4hHrSH0xq4

**Try it live:** [demo.bossmage.com](https://demo.bossmage.com) is a full demo store running Pro, with build-a-box discounts, a PC configurator and more. Click around and build things, nothing breaks.

Prefer reading? The step-by-step guides are at [bossmage.com/docs/bundleboss](https://bossmage.com/docs/bundleboss/).

= What is free and what is Pro =

The free plugin is the complete fixed-bundle product, not a demo and not a trial. You choose what goes in the bundle; your customer configures every unit of it and buys the lot as one cart line.

**Free includes:**

* **Per-unit configuration**: the customer sets the size, colour and options of every unit, restricted to the variations you allow
* **Three pricing modes** (percentage off, set amount off, fixed price), plus quantity tier discounts
* **Bundle rules**: quantity ranges per item, optional items customers can skip
* **A guided creation wizard**: pick what you are making, add products, preview, and create, no manual field wrangling
* **A guided product page**: per-item cards, colour swatches, the "All the same" shortcut, three unit layouts
* **Promotions**: sale countdown timer, related-bundles carousel, the progress-to-discount cart nudge
* **Oversell-proof stock** and fulfilment-ready orders with a component pick list
* **Store plumbing**: shipping weight modes, Cart and Checkout blocks, WPML and Polylang, JSON export and import
* **Item links, if you want them**: an optional small arrow beside each item name opens the product's own page in a new tab, so customers can check details without losing their bundle

**Pro adds the Builder and the selling tools:**

* **Choice slots**: customers pick each component from pools you define, with compatibility and quantity rules and conditional items, all enforced on the server
* **Two more layouts**: the full-page Configurator and a step-by-step walkthrough
* **Build-a-box (mix and match)**: a box builder for a custom gift box, a wine box or a hamper the customer fills themselves, from a pool with a target size and per-product limits
* **Self-updating category pools**: point a choice slot or box at a product category instead of a fixed list, and it stays current, a product added to that category later shows up in the slot automatically
* **Size-run quantity grid** for bundle items: a colours-by-sizes matrix for bulk orders
* **Per-item personalisation** with fees, plus logo and file upload with GDPR export and erase
* **Order growers**: frequently bought together (on the page and in the cart), buy X get Y, gift mode
* **Shareable build links** (any shop can open one; creating them is Pro), hero slots, deal badges, and the Composite Products importer

> **Ready to grow every order?** [BundleBoss Pro](https://bossmage.com/bundleboss/#pricing) has a 14-day trial, no card needed. Upgrading keeps every bundle you built in the free plugin.

When you find something BundleBoss does not do yet, tell us. We are small, we ship often, and we build what shop owners actually ask for (see "Tell us what you need" below).

= The free plugin, in detail =

* **Per-unit configuration**: every unit of a bundle item can be configured independently
* **Guided configurator**: collapsible cards with sticky headers, one-line summaries and full keyboard support
* **"All the same" toggle**: configure once and every unit follows; switch it off afterwards and the picks stay, ready for individual tweaks
* **Three unit layouts**: arrange a multi-quantity item's units as stacked cards, compact cards, or a comparison table, chosen per bundle
* **Progress-to-discount nudge**: the cart shows "Add 1 more to unlock 15% off" with a progress bar and a one-click button to add another identical bundle
* **Colour swatches**: give attribute terms a colour and chips become swatch circles
* **Three pricing modes**: a percentage discount, a set amount off, or one fixed bundle price
* **Quantity tier discounts**: "buy 3+, save 20%"
* **Sale countdown timer**: live countdown bar with start/end scheduling
* **Related bundles carousel**: cross-sell between bundle pages
* **Oversell-proof stock**: component stock validated while configuring, at add-to-cart and at checkout, reduced on sale and restored on refund
* **Fulfilment-ready orders**: pick list with component SKUs and quantities on every order
* **Shipping weight modes**: automatic (sum of chosen components) or manual
* **Export / import**: move every bundle between sites as one JSON file
* **Multilingual**: WPML and Polylang supported out of the box

= BundleBoss Pro, in detail =

[BundleBoss Pro](https://bossmage.com/bundleboss/#pricing) adds the full Builder, advanced layouts, and the selling tools to grow every order:

* **Choice slots**: customers pick each component from pools you define (PC-builder style), with live pricing on every option
* **Compatibility and quantity rules**: stop impossible combinations, enforced on the server, not just in the browser
* **Per-item personalisation**: optional add-on fields (names, options, notes), each able to carry a fee, captured per unit and shown on the order and the warehouse pick list. Built for team kit, workwear and promo
* **Logo and file upload**: customers attach a logo or artwork to an item; secure upload, a download link on the order, GDPR export and erase included
* **Hero slots**: the customer's chosen product takes over the page's main product image
* **Deal badges**: products on sale and featured products surface in the chooser
* **Step-by-step layout**: walk customers through one item at a time, with progress and free navigation
* **Shareable build links**: customers copy a finished build to a link anyone can open and buy (free shops can open a shared link; creating one is Pro)
* **Migrate from Composite Products**: one click converts existing composites to draft bundles
* **Configurator layout**: a full-page, two-pane builder with a docked "Your build" summary and a price on every option, for big or many-part products like a gaming PC
* **Build-a-box (mix and match)**: customers fill a box by choosing any number from a pool, with a target size, per-product limits, and a live count and total (any 6 chocolates, any 4 candles)
* **Self-updating category pools**: build a choice slot or box pool from a product category, by hand, or both. A category pool maintains itself, add a product to the category and it appears in the slot with no edit to the bundle, and cross off the odd products you want left out, ideal for a rotating range or a large catalogue
* **Gift mode**: a recipient, a gift message, optional gift wrap with a fee, and a no-prices gift receipt, all carried through to the order
* **Frequently bought together**: surface companion products with a combined price and a set discount, the add-the-whole-set upsell
* **Buy X get Y**: buy-two-get-one-free style offers scoped to the bundle's own items (the cheapest goes free), shown clearly as was, pay, and you save
* **Conditional items**: show or hide a bundle item based on what the customer has already chosen, enforced on the server (pick the tagged top and the matching-joggers slot appears)

The free plugin is complete on its own; Pro adds everything described here. Everything under "The free plugin, in detail" stays free.

= Tell us what you need =

BundleBoss is built and updated by the people who answer its support, and the roadmap is written by real shop owners. If you need a bundle it does not handle yet, or an option you wish existed, ask for it on the [support forum](https://wordpress.org/support/plugin/bundle-boss/). Every request gets read and answered, and "can it do X?" is exactly how new features get chosen. You name it, and there is a real chance we build it.

= Requirements =

* WordPress 6.4+
* WooCommerce 8.0+
* PHP 8.0+

== Installation ==

1. In your WordPress admin go to **Plugins > Add New**, search for **BundleBoss**, then install and activate it. WooCommerce needs to be installed and active.
2. Go to **BossMage > Create a bundle**. The guided wizard takes you from picking products to a finished bundle page in a few minutes, with a live preview of what your customers will see.
3. Prefer the full editor? Create a product and choose the **Bundle** product type: the products go on the **Bundle Items** tab, the deal (a percentage off, an amount off, or one fixed price) on **Bundle Pricing**, and extras like gift options or Buy X Get Y on **Bundle Promotions**.
4. Publish and open the product page. The bundle is ready to sell, with live totals, per item options and stock checks built in.

Want to try it before installing? Use the **Live Preview** button on this page, or browse the demo shop at https://demo.bossmage.com.

== Frequently Asked Questions ==

= How do I create product bundles in WooCommerce? =

Install BundleBoss, then go to BossMage → Create a bundle. The guided wizard takes you from picking products to a published product bundle in about two minutes, with no code. Prefer the full editor? Create a product, choose the Bundle type, and set your items, pricing and promotions on their own tabs.

= Can customers mix and match, or build their own box? =

Yes. A build a box (mix and match) product lets customers fill a box from a pool you choose, with a target size, per-product limits, and a live count and total (any 6 chocolates, any 4 candles). That's a Pro feature. On any bundle, customers also pick the size and colour of every item and buy the lot as one order.

= Does it work with variable products? =

Yes, that's the core use case. Customers pick a variation for every unit, restricted to the options you allow per bundle item.

= Where did product options on single products go? =

In 5.0.0 they became [AddOnBoss](https://wordpress.org/plugins/addon-boss/), a companion plugin from the same family: option sets, personalisation fields and print positions on a product's own page. Install it and everything you built is where you left it, nothing needs rebuilding. BundleBoss stayed the bundle builder, and the two share one option-set library when both are active.

= Can a bundle include virtual or downloadable products? =

Yes. Virtual items (services, licence keys you fulfil yourself) just work. Downloadable items deliver their files like any normal purchase: permissions are granted when the order is paid, the customer gets the links in the order email and under My Account → Downloads, and a refund cuts access automatically.

= Does selling a bundle reduce the stock of the products inside it? =

Yes. Component (and variation) stock is reduced when the bundle sells and restored if the order is cancelled or refunded. Stock is also validated during configuration, at add-to-cart, and again at checkout.

= Will the price and VAT come out right? =

Yes. Every price on the bundle page follows your store's setting for showing prices with or without tax, and the total a customer sees on the page is the total they pay in the basket, in every tax set-up we test, including shops that use the Tax Switch plugin to let customers flip between the two. A bundle is taxed at one rate, the tax class you give it, like any WooCommerce product. If your bundles mix rates, such as a hamper of zero-rated food with a standard-rated mug, ask your accountant how to rate the hamper before you set its tax class.

= What does the order show, and can my stock or accounting system read it? =

Each bundle is one line on the order, with every item the customer picked listed under it: colour, size and quantity, plus a pick list with each item's SKU for whoever packs it. Stock comes off the real products. If your till, ERP or accounting system needs every item as its own line, BundleBoss Pro's **Itemise on the order** records each one as its own priced order line, while the customer still buys and pays for the bundle as one.

= Do coupons work on bundles? =

Yes, as on any product. If a bundle's price is already a discount and you don't want codes stacking on top, switch on **Exclude from coupons** on that bundle. Percentage and fixed product coupons then skip it, and a fixed basket discount comes off the other items instead. You set it once on the bundle, not on every coupon you make.

= Can I give a bigger discount for buying more? =

Yes, in the free plugin. Bulk discounts reward buying several bundles at once, for example 10% off from 2 and 20% off from 3, and the basket shows the customer how many more they need for the next step.

= Is the free version limited? =

No limits on how many bundles you make, how many items go in them, or how long you use it. Variable products and choosing the size and colour of every item are free, as are the three pricing modes, bulk discounts, stock control and the order pick list. Pro adds the builder tools listed above, such as build-a-box and choice slots.

= Will it work with my theme and on phones? =

BundleBoss is tested across 18 popular themes, including Astra, Kadence, GeneratePress, OceanWP, Blocksy, Neve, Storefront and the default WordPress block themes, with fixes for Divi and Enfold, and on screens down to 320 pixels wide. If something looks wrong on yours, post in the support forum with the theme's name and we'll look.

= Will an update break my shop? =

Every release runs more than 1,400 automated tests before it goes out, many of them checking what each page charges, and bigger releases also run over 300 browser checks of real shopping journeys. When an update changes how an existing bundle looks or works, the changelog says so in plain words.

= Does it work with currency switchers? =

Yes. The bundle is charged once, in the customer's currency, and every figure on the page converts with it: the total, the saving, size prices and extra fees. Tested with FOX Currency Switcher.

= Where do I get help? =

Post in the support forum here on WordPress.org. Every thread gets an answer, and your question and its answer stay there to help the next shop with the same problem. If you'd rather not post publicly, for example because it involves your store's details, you can email us through bossmage.com.

= Can I set one fixed price for the bundle? =

Yes. Each bundle can use a percentage discount off the sum of the chosen items, a set amount off, or a fixed price that never changes regardless of the customer's choices.

= Can I make the configurator match my store's branding? =

Yes. The configurator inherits your theme's fonts automatically, and every colour it uses is exposed as a CSS variable. Set a handful of values in Appearance → Customize → Additional CSS and the whole interface follows your brand:

`:root {
  --bb-accent: #c2410c;   /* step highlights */
  --bb-ink: #1e2a4a;      /* headlines and the total bar */
  --bb-surface: #fffdf8;  /* cards */
  --bb-border: #e8e0d0;
}`

The full token list is documented at the top of the plugin's bundle.css.

= Can I show my own information next to the configurator (total weight, nutrition, performance)? =

Yes. The configurator fires a JavaScript event, `bundle_boss:build_changed`, after every change the customer makes. The event detail carries the whole build: which products and variations are picked, quantities, and the running totals. Listen for it, derive whatever your store cares about, and render the result into the container printed by the `bundle_boss_after_summary` action:

`document.addEventListener( 'bundle_boss:build_changed', function ( e ) {
  if ( ! e.detail.complete ) { return; }
  // e.detail.items gives [ { productId, qty, units: [ { variationId, attributes } ] } ]
  myPanel.textContent = 'Total weight: ' + myWeightFor( e.detail.items ) + ' kg';
} );`

A PC store renders performance estimates, a hamper store calories, a ski shop carry weight. The event works on every bundle, free and Pro alike.

= Does it work with the block (Gutenberg) cart and checkout? =

Yes, both. The classic shortcode pages and the block-based Cart & Checkout are fully supported: bundle pricing, the selections summary, stock protection and order details all work identically, and the progress-to-discount nudge appears in the block cart too. Block themes (Full Site Editing) are also tested.

= Is my data removed when I uninstall? =

By default, no: bundle products and their configuration are deliberately kept, so reinstalling restores everything. If you want uninstalling to remove all bundles and settings, switch on "Delete all BundleBoss data when the plugin is uninstalled" under BossMage → BundleBoss (download an export first, on the same page).

= Can I back up my bundles or move them to another site? =

Yes. BossMage → BundleBoss exports every bundle (items, choice pools, rules, pricing and promotions) as one JSON file. Importing matches products by SKU, then slug, so the file survives the move to a site where product IDs differ; anything that can't be matched is reported, never guessed.

= Does it work on multilingual sites (WPML / Polylang)? =

Yes. Bundle settings copy to translations, slot labels are translatable per language, and product/term references are mapped to the language being browsed.

== Screenshots ==

1. The everyday bundle: per-unit configuration with colour swatches, the offer pill and a live total, bought as one product.
2. Choice pools with photos and prices (Pro): the customer picks each item from the pool, with the count and progress live.
3. Build-a-box with quantity breaks (Pro): the tier ladder is advertised up front and the box nudges toward the next discount as it fills.
4. Configurator layout (Pro): colour and size picked, personalisation open with priced fields, and a "Your build" summary itemising everything, saving included.
5. Size-run quantity grid (Pro): colours by sizes with per-size surcharges, volume pricing on the whole order.
6. Step-by-step layout (Pro): one decision at a time with progress chips, the count and the total always in view.
7. Gift mode (Pro): gift wrap with its fee and a handwritten-card message, both carried through to the total.
8. Pack sizes (Pro): choose a bag, then fill it. Three sizes at three prices, one price for the bag whatever goes in.
9. Buy X get Y (Pro): the offer advertised up front, both items configured, and the discounted total live.
10. Fulfilment-ready cart: each bundle is one line with its component pick list and its own "You save" figure.

== Privacy ==

BundleBoss does not collect, store or transmit any personal data of its own.

* Customers' bundle selections (which products, quantities and options they picked) are stored only as part of their cart and order: standard WooCommerce order data under your control, removed whenever you erase the order.
* Shareable build links encode product choices in the URL itself; nothing is stored server-side and the links contain no personal information.
* The plugin sets no advertising or tracking cookies.

= Third-party services =

The free version of BundleBoss does not connect to any external service or send any data off your site.

BundleBoss Pro is a separate, paid plugin that uses Freemius for checkout, licensing and updates. None of that is included in this free version.

== Changelog ==
= 6.4.1 - 2026-10-13 =
* Fixed: sizes whose names are spelled out, such as XLarge or XX-Large, sort in garment order inside a bundle (S, M, L, XL, 2XL) instead of putting XL last.
* Fixed: a colour painted by a swatch plugin such as Variation Swatches shows as its colour dot inside a bundle, not as a word.

= 6.4.0 - 2026-10-13 =
* New: a waiting Add to basket says what is still to choose. Pressing it marks each missing choice where it sits, such as "Choose your size" under the item that needs it, and one line says how many choices are still needed.
* New (Pro): a Pick many row counts its picks in the heading, such as "2 of 3". At its most it stops calmly with "You've picked 3 of 3. Remove one to add another." instead of letting more in.
* Fixed (Pro): a Pick many maximum counts items, so each unit chosen in a garment's size grid counts as one and a maximum of 3 stops at 3.
* Fixed (Pro): a number typed into a Pick many row that is more than the row takes keeps its line until the count moves, rather than jumping back.
* New (Pro): Pick one and Pick many cards show the whole product photo on a light tile, whatever its shape. A new setting, Fill the square, crops it to fill the card instead, which suits photos that are already square. Comfortable and large cards take the photo to both edges.
* New (Pro): Prices on choices, in a bundle's pricing: Each product's own (the default) or Hidden, which drops the extra price AddOnBoss shows on colours, sizes and options inside the bundle. Totals stay the same. Shows only when AddOnBoss is active.
* Fixed (Pro): a colour a shop cleared in AddOnBoss stays without a colour dot inside a bundle, instead of a dot guessed from its name. Needs AddOnBoss 2.3.2.

= 6.3.0 - 2026-10-11 =
* New (Pro): in a Pick many row, a product asked colour and size through option sets opens as the quantity grid, the way it does in a box: colour tiles, then a quantity per size, or the colour by size table when "Show repeated items as" is Table. Units in any cell add the product as one pick; every unit is priced and carried into the basket. Products without such options keep their one-tap card.
* Changed (Pro): an included option that costs nothing and only unlocks other options (a "print or embroidery" switch) is no longer listed on the page, in the basket or on the order; the options it unlocks are. The Other product options card marks it Included quietly and names what it unlocks.
* Changed (Pro): setting such a switch to Not offered no longer hides the options behind it. The switch leaves the page and customers choose the print positions on their own, each of which can still be set to Not offered in turn. Only when the answer that shows them has a price does Not offered keep hiding them, and the card says so.
* Fixed (Pro): in the Other product options card, a question's name no longer breaks into a column of single letters beside its Required or Tick several tag.
* New (Pro): a product's own quantity price holds inside a bundle. Twelve polos picked across colours and sizes cost what twelve cost on the polo's own page, its size charges included, in rows, boxes, quantity grids and Pick many grids, on the page and in the basket. Needs AddOnBoss 2.3.0.
* New (Pro): a quantity grid cell shows how many are left in the same words as the product's own page, and its stepper stops there. Sizes nobody counts show nothing.
* Fixed (Pro): a Pick many row counts the units added, not the products, and asks for "at least 2 products" in full.
* Fixed (Pro): when a product's option set says two of its choices cannot go together, such as a left sleeve printed or embroidered, a bundle that asks the question once for the whole bundle now greys the clashing choice and says why, and the basket refuses the pair. Needs AddOnBoss 2.3.0.
* New (Pro): a garment's colour tiles and size cells in a bundle show their prices the way the product's own page does: what a dearer colour or size adds, every choice's own price, or nothing, as set on the product. The colour by size table marks its headings the same way. A row whose item prices are hidden shows none. Needs AddOnBoss 2.3.0.
* Fixed (Pro): on a phone, the included answers shown inside an item card sit one to a row, so a name such as Left breast print no longer breaks one letter to a line.
* Fixed (Pro): a Buy X, get Y bundle shows the offer in its From price from the save that switches the offer on, and drops it on the save that switches it off. Before, the From price caught up only on the next save.
* Fixed (Pro): on an item bought in quantity, Personalise all now comes after the colour and size choices, so customers choose the items first and personalise them after. All the same stays at the top.
* New (Pro): pressing a colour in a quantity grid opens its sizes in a row right under it on a computer, and in a window from the foot of the screen on a phone, instead of below the whole list. A Pick many garment opens the same way, and its card says what it holds: 12 added · 4 colours.
* Fixed (Pro): the bundle's order summary lists what a Pick many garment holds, each colour and size with its price, not just how many were added.
* Changed (Pro): AddOnBoss 2.3.0 asks which bundles include one of its options under its own name. BundleBoss answers that name as well as the old one, so the warning before an included option is deleted keeps naming the bundles whichever plugin is updated first.
* Fixed: in every language BundleBoss ships a translation for, its own translation now loads even after WordPress downloads a language pack, so wording missing from the pack no longer shows in English.

= 6.2.0 - 2026-10-09 =
* New (Pro): an option customers answer with several ticks, such as where a garment is printed, is asked once for the whole bundle and carried into the basket and the order. Needs AddOnBoss 2.2.0.
* New (Pro): a section that asks for at least one answer on a product's own page asks for it in a bundle too. The shop's sentence sits above the section's options, Add to basket waits until one is chosen, and an answer the bundle includes already counts. Needs AddOnBoss 2.2.0.
* New (Pro): an option shown only after another option on the same product, such as a lamination finish after Printed, is asked under each item that picks it, and only there.

For the full history of earlier releases, see changelog.txt in the plugin folder, or
https://plugins.svn.wordpress.org/bundle-boss/trunk/changelog.txt

== Upgrade Notice ==

= 6.4.1 =
Sizes spelled out as XLarge or XX-Large sort in garment order inside bundles, and swatch plugin colours show as dots.

= 6.4.0 =
A waiting Add to basket now says what is still to choose. With BundleBoss Pro, update AddOnBoss to 2.3.2 too, so colours cleared there stay cleared inside bundles.

= 6.3.0 =
With BundleBoss Pro and AddOnBoss 2.3.0, a product's quantity breaks hold inside a bundle, so some bundle prices change. Update AddOnBoss too.

= 6.0.1 =
Fixes only. Removing a bundle you added shows at once, quick views show each bundle's offers, and with BundleBoss Pro an AddOnBoss quantity grid works beside a bundle.

= 6.0.0 =
With BundleBoss Pro, some bundles look different after this update. In a box, a product with colour and size opens on the quantity grid, and Order Builder looks open on the grid unless Show repeated items as is Table. With AddOnBoss 2.0, print questions are asked once for the bundle.
