=== 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.0.0
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://www.youtube.com/watch?v=DuWtQvS689A

**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)**: fill a box 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 **Products > 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 Products → 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.

= 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 WooCommerce → BundleBoss (download an export first, on the same page).

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

Yes. WooCommerce → 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.0.0 - 2026-10-02 =
* New (Pro): with AddOnBoss 2.0, the questions a product asks besides colour and size, such as the print on a workwear kit or an artwork setup, are asked once for the whole bundle, after the items. Each garment keeps its own colour and size. In the Step by step layout a question is asked on the step of the last product it applies to, and a question about every product on the last step. Until now a build-a-box pool folded those questions into one long dropdown on every item and other rows did not ask them at all, so a bundle holding such a product changes when both plugins are updated. A shop running an earlier AddOnBoss, or none, sees no change.
* New (Pro): in the bundle editor, Other product options sets each of those questions per product. No change asks the customer once for the bundle, Included answers it inside the bundle's price, Not offered leaves it out, and On each slot asks it on the slot's own card and charges it on that slot's items only. A one-off charge is taken once for the bundle, the From price includes the cheapest required answer, and a question an AddOnBoss rule reveals appears once its trigger is answered.
* New (Pro): when a bundle asks questions, the tray and the basket list each item with its colour and size, its own price, every answer given for it with what that adds, and what one item comes to. The tray also shows each item's photo, and the order lists the answers under each item. An answer charged once for the bundle, such as an artwork setup, is listed once at the end and on no item.
* New (Pro): in a build-a-box pool, a product with two option types, such as colour and size, opens on the quantity grid instead of a dropdown of every combination, whether it is a variable product or uses AddOnBoss option sets. Existing boxes change too: set the product's Shows as to One card to keep a single card, which now shows colour swatches, then sizes, with a photo that follows the chosen colour. A product with one option type keeps its card.
* New (Pro): on a Pick many slot, a garment asks its colour, then its size, on its own card, and the row can carry answers set under Other product options.
* New (Pro): a long Pick one list is shown in pages with Previous page and Next page buttons, and with category buttons once it holds 12 or more products in at least two categories. The Keep all products visible after selection switch keeps the list open after a pick.
* Changed (Pro): in a box with the Gallery, Accordion or Order pad look, each product now opens on the quantity grid. To keep the colour by size table, set Show repeated items as to Table.
* Changed (Pro): Show repeated items as lists the quantity grid first, and a new bundle starts on it. Existing bundles keep their setting.
* Changed (Pro): after a pick, a Pick one step without a picture of its own shows the chosen product's photo in its chosen bar instead of a column beside it, so the step keeps its width on a phone.
* Improved (Pro): a quantity grid card in a box follows the Card size and Photo preview settings like every other box card.
* Fixed: with Tax Switch for WooCommerce, every price the plugin draws now moves with the switch, including the cards a Pick one list or a configurator loads after the page, and no price shows both amounts side by side.
* Fixed: the tray lists the items in the order the page shows them. A simple item placed above a variable item was listed after it.
* Fixed (Pro): a product with AddOnBoss option sets, bought in quantity, showed its Personalise all block twice, and two different answers put both charges in the page total while the basket charged one.
* Fixed (Pro): a bundle made only of a Pick many slot never enabled Add to cart, and the basket counted each Pick many pick twice, so "You save" could show a saving on a bundle with no discount.
* Fixed (Pro): with three left in stock and a box of two already in the basket, a second box of two was accepted and only refused on the basket page. It is now refused when it is added.
* Fixed (Pro): a step finished by a count, such as choose three, read done on the quantity grid as soon as one garment was picked, and never read done in a box or a Pick many slot. Its card and step pill now follow the count.
* Fixed (Pro): a tile grid card keeps its row at every card size, and a narrow chooser shows the whole product name instead of cutting it at two lines.
* Fixed (Pro): when a theme shows the chosen product's thumbnail, the stepper showed the same photo twice side by side. It now shows one.
* Fixed (Pro): a box saved before boxes had their own look showed Simple in the editor while the page drew the gallery, and Update then saved Simple over it. The editor now shows the look the page draws.
* Fixed: the product page now quotes to the penny what the basket charges. A percentage off that lands on a half penny rounds as the basket rounds it, the saving matches the basket's, and a shop that enters prices with VAT and shows them without it, or the reverse, no longer sees totals a penny apart.
* Fixed: an item line in the basket, the order and its emails reads "£4.16 each × 3" only where that multiplies out to what the items cost. Otherwise it says what they cost, such as "× 50 · £416.25".
* Fixed: prices round the same on every PHP version. On PHP 8.4 some discounted prices came out a penny lower.
* Fixed (Pro): a Frequently bought together total matches the basket in a shop that shows prices in the other VAT basis.
* Fixed: the How many? box and the You save pill in the tray keep their own size. Under a theme that styles number fields, such as Astra, the box stretched across the tray and squeezed its plus and minus beside it.
* Improved (Pro): in a box that mixes quantity grid rows with one plain or One card product, that product is drawn as a row like its neighbours instead of a narrow card beside empty space.
* Fixed: every storefront line added in this release is translated in all ten languages the plugin ships.

= 5.9.5 - 2026-09-23 =
* Fixed: since 5.7.0, a shop set to Spanish, Italian or Greek showed parts of the storefront in English, such as a mix and match box's size and fill steps, its search and its saving lines. Those screens are translated again.
* Fixed: the messages added in 5.9.4, such as "This bundle is currently unavailable." and the notices about a removed product, now appear in all ten languages the plugin ships instead of in English.

= 5.9.4 - 2026-09-23 =
* Fixed: a bundle kept selling after one of its products was moved to the trash, set to draft or private, or deleted. A missing item now counts as sold out: if the bundle needs it, the bundle is unavailable until the product is restored or taken out of the bundle, and if it was an optional extra it leaves the page while the rest of the bundle still sells. A basket or checkout that still holds a removed item is stopped with a clear message, and your Products list flags the affected bundle while its editor names the missing item.
* Fixed: a variable product inside a bundle opened with no option chosen, even when the shop had set a default for it in WooCommerce, so a bundle priced from its items could show no price until every row was answered. Each row now opens on the product's own default, as the product's own page does. An edited basket or a share link still opens on its saved choice, and a row that does not offer the default opens empty as before.
* Fixed: a bundle that allows only some of a product's options showed "Configure to see price" instead of its From price when those options belong to a custom attribute, one typed on the product itself rather than set up under Products > Attributes. The From price now counts the options the bundle allows.
* Fixed: with a currency switcher such as WOOCS, several prices the plugin works out itself showed the store's own amount under the shopper's symbol, so a £20 fixed-price bundle could open its total at "€20" beside a price of €40. The running total, the "off" label, a sized box's price range, the Total the page opens on and the savings in the basket and the order tray now all show in the shopper's currency. What the shopper is charged was already right and does not change.
* Fixed: the order tray's "You save" shrank by any charge on the bundle as a whole, such as gift wrap, so a bundle saving £6 with £5 of gift wrap said "You save £1.00" in the tray while the basket said £6.00. The tray now takes those charges out first, as the basket does.
* Fixed: on a shop that enters prices without tax and shows them with tax, the "£5.00 off" label on an amount-off bundle stated the amount before tax while the total took off the amount with tax. The label now states what the total actually takes off, and the Total a bundle opens on uses the same figures.
* Fixed: on a shop that shows prices with no decimals, with no thousands separator or with the currency symbol after the amount, some live totals ignored those settings: two decimals came back, a blank separator turned into a comma, and the configurator always put the symbol first. Every live total now follows the shop's own price format.
* Fixed: in a sized box whose choices are shown as a grid of tiles, picking a size left the total reading "From" until the first item went in. The total now shows the chosen size's price at once, as the other box layouts already did.
* Fixed: on a phone, box cards cut long product names off after two lines, so two items could read the same, such as a pair of socks losing the size range that told them apart. Phones now show the whole name, every quantity control in a row sits on the same line, and each product photo stays square instead of taking the shape of its file.
* Fixed: on the narrowest phones a box pool could still show one card a row, because the layout script overrode the two-a-row layout that 5.9.1 introduced. Phones now keep two cards a row at every width, which halves the scrolling on a large pool.
* Fixed: a box pool could keep a column count worked out for a width it no longer had, for example after the theme finished arranging the page, and on a tablet its cards could run past the edge of the page. The pool now measures its own width again whenever that width changes.

= 5.9.3 - 2026-09-22 =
* Fixed: on a phone, a step whose name runs to a few words had it broken one word per line, so its pill grew several times taller than its neighbours and could start past the edge of the screen. A step name now stays on one line, and on a phone the row of step pills wraps onto another row instead of scrolling sideways, so every step is on screen at once.
* Fixed: a theme that keeps the builder in a narrow side column could show the choices as one giant card a row, even though a phone, which is narrower still, keeps two. Any column with room for a pair now keeps two cards a row. Pages with ordinary room, and the Comfortable and Large card sizes, are exactly as before.

= 5.9.2 - 2026-09-22 =
* Fixed: a mix and match pick that had gone out of stock, or that you had removed from the box, was refused with "An invalid option was selected", which blamed the shopper for a page that was simply older than the change. A shopper whose page was served before the change now reads what actually happened: sold out says it is out of stock, and anything else that has gone says the choice is no longer available and asks for a refresh. Page caching makes that gap hours wide, so this reached ordinary shoppers who had done nothing unusual.

= 5.9.1 - 2026-09-18 =
* Fixed: with Card size set to Comfortable or Large, a phone showed one card a row with the photo blown up to the full width of the screen, so a wall of forty items ran roughly twice as long as it needed to. A phone now keeps two cards a row and the smaller photo those sizes always meant to use there, and a laptop is unchanged: the roomier sizes still give the bigger picture they are chosen for.

= 5.9.0 - 2026-09-18 =
* Improved: adding a bundle to the cart is now a single request. Before, on a store with page caching, the first add could spend seconds recovering from a security token the cache had let expire, and every successful add paid for a second trip to refresh the mini-cart. The page now refreshes the token quietly in the background while the shopper is still choosing, and the mini-cart update rides back with the add itself. On one customer's store this took the first add from about seven seconds to about two; quantity changes in the order tray are quicker by the same change.
* Fixed: in a box pool with expanded variations, a variation without a photo wore the first character of its label in the photo slot, so a card whose label starts with a number showed a lone digit, drawn at the wrong size, warping the whole grid. An imageless card now shows the product's initial in a tile exactly the size of its neighbours' photos.
* Improved: the upload endpoint behind personalisation fields now enforces the same artwork size ceiling as options uploads, and turns away rapid-fire bursts.


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.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.
