What is a Magento Bundle Product ?
A Magento Bundle Product is a product type for "build-your-own" kits, packages, and configurators. Customers pick from a list of items (each itself a simple or virtual product); every item can be required or optional, quantity-locked or user-pick, and the bundle’s price, weight, and SKU can be dynamic (sum of children) or fixed. Used for PC builds, gift hampers, meal kits, B2B parts assemblies.
Five steps to build a Magento bundle, from admin to cart
Bundles look simple on the storefront but have five distinct admin moves to set up. Get them in the right order and your build-your-own product behaves predictably end-to-end.
-
01
Define the bundle parent (name, SKU, optional fixed price)
Create the bundle in Magento admin under Catalog → Products with type "Bundle Product". Give it a name, a parent SKU, a description, and choose the price model upfront (Dynamic or Fixed). The parent itself does not hold stock or shipping weight when set to dynamic — those flow from the children at runtime. Think of the parent as a configurator shell that the customer fills in, not a standalone product.
-
02
Add bundle options — each option is a group of choices
Each "option" inside a bundle is a group like "Pick a CPU" or "Pick a Side Dish". For every option you set a label, a required/optional flag, and a selection type: radio (one of), checkbox (any of), multiselect, or dropdown. Required options must be filled before the customer can add to cart; optional ones can be skipped. Options are ordered by sort position, which controls the on-page picker order.
-
03
Link child products to each option (with qty + user-pick toggle)
Inside each option you attach existing simple or virtual products as the available choices. For every child you set a default quantity, a "User Defined Qty" toggle (can the shopper change the qty?), and a default-selected flag. Children must already exist in the catalogue as their own products — bundle does not create variants of one parent the way configurable does. You can reuse the same child across many bundles.
-
04
Configure pricing model and shipping behaviour
Pricing has two modes: Dynamic = bundle total is the sum of selected children's prices (each child keeps its own catalogue price), or Fixed = parent has a single price that overrides children. Shipping has two modes too: Together = one parcel, parent's weight applies, or Separately = each child ships as its own line for carrier-rate purposes. Pick "Separately" for bulky or fragile kits where multi-parcel shipping is cheaper than a single oversized carton.
-
05
Frontend renders the option picker; cart stores parent + selected children
On the storefront PDP, Magento renders each option as a radio/checkbox/dropdown form. The customer picks their combination, sees the live price update via JavaScript, then adds to cart. The cart line stores the bundle parent plus a serialised list of selected children with their individual prices and quantities. Order, invoice, and shipment all reference the parent line with the children listed as nested rows beneath it. Inventory deducts from each child SKU individually on order placement.
Four scenarios where Bundle is the right product type
Bundle is a powerful but specific tool. These four patterns are where it consistently beats Configurable, Grouped, or Custom Options.
-
Computer / PC configurator builds
The textbook bundle use case. Customer picks a CPU (required radio), a GPU (required radio), RAM (required dropdown), storage (checkbox — can add SSD and HDD), and optional peripherals (mouse, keyboard). Each component is a standalone simple product in your catalogue with its own stock and price. Dynamic pricing means the build price is always the sum of chosen parts — admins never have to maintain a price matrix.
-
Gift hampers and curated packs
Christmas hampers, wedding gift sets, corporate welcome boxes. The bundle lets you fix the price (e.g. £75 hamper) while still allowing the customer to swap one wine for another, pick chocolate or biscuits, choose a card design. Fixed pricing keeps the headline price consistent in marketing while still personalising the contents. Ship-together makes sense here — one branded hamper box, not separate parcels.
-
"Build your own meal" food kits
Meal-kit retailers, restaurant click-and-collect, recipe boxes. Customer builds a meal: pick a protein (required radio), pick a side (required dropdown), pick a sauce (optional checkbox), pick a drink (optional radio). Each ingredient is a simple product with its own stock count and barcode — useful for warehouse picking and allergen labelling. Dynamic price means each meal totals correctly without manual maintenance.
-
B2B kitting and parts assemblies
B2B distributors selling pre-assembled kits (electrical kits, plumbing kits, repair kits) where each kit is a fixed list of parts but customers occasionally need to swap one component. Bundle handles this cleanly: required options for the core parts, optional add-ons for accessories, ship-separately if parts go to different warehouses, and per-child stock means accurate availability when one part is back-ordered.
Three traps that turn a bundle launch into a support backlog
Every bundle rescue project I have been called in to fix made one of these three mistakes early. Avoid them and the launch ships clean.
-
Choosing Bundle when Configurable is the right type
Bundles are packages (a CPU + a GPU + RAM = one build). Configurables are variants of one parent (a t-shirt in size S/M/L, in red/blue/green = one t-shirt with options). If your "options" are colour and size on the same physical item, you want Configurable, not Bundle. Picking Bundle for a clothing variant ships you into multi-SKU chaos, broken stock, and a PDP that looks wrong. The rule of thumb: if the customer ends up with one item, use Configurable; if they end up with several items, use Bundle.
-
Forgetting to set "Ship Separately" on heavy or bulky kits
Default shipping for bundles is "Ship Together" — Magento adds the child weights, picks one parcel size, and sends one carrier rate. For furniture kits, large electronics builds, or anything fragile, this single carton becomes oversized and triggers premium freight rates. Switching to "Ship Separately" lets each child generate its own rate, often saving 30 – 60% on shipping for bulky kits. Audit the shipping mode every time you launch a new bundle category.
-
Dynamic price catching admins out on promo rules
When pricing is Dynamic, the bundle parent does not own a price — the children do. Catalog price rules, special prices, and cart price rules applied to the parent may not flow to children automatically; they often need to be applied per-child or scoped to a category that contains the children. Test every promo rule against a dynamic bundle before launching a campaign. The classic failure mode is "10% off all bundles" that does nothing on the storefront because the rule has no child price to discount.
Magento Bundle Product — frequently asked questions
-
Bundle vs configurable — what is the actual difference?
Configurable products are variants of one item — a t-shirt with size and colour options always resolves to one physical t-shirt. The variants share a parent product page but each combo (size M, colour red) is its own underlying simple product with its own SKU and stock. Bundle products are packages of several items — a PC build, a hamper, a meal kit. The customer ends up with multiple distinct items, each a separate simple product in your catalogue. Rule of thumb: if the cart contains one item at the end, use Configurable; if the cart contains several items grouped under one parent, use Bundle. -
Can a bundle child be a configurable product?
No. Magento restricts bundle children to <strong>simple</strong> or <strong>virtual</strong> product types only. You cannot attach a configurable, grouped, or another bundle as a child. The reason is dependency depth — if a child were configurable, the bundle picker would need to expose a nested configurable picker (size, colour) inside each option, and the cart line would need to track parent + bundle + configurable variant. Magento dodges that complexity by keeping bundle children flat. Workaround: create simple-product variants of your configurable, attach the variants directly as bundle children, and let the bundle option act as the size/colour picker. -
How does Bundle Pricing Dynamic vs Fixed actually work?
<strong>Dynamic Pricing</strong>: bundle total is the sum of selected children's catalogue prices, multiplied by their selected quantities. The parent product has no price of its own. Use this for "pay for what you pick" builds like PC configurators or meal kits. <strong>Fixed Pricing</strong>: the parent has its own single price that overrides children. The children's catalogue prices are ignored at the parent level — Magento displays only the fixed parent price regardless of what is selected. Use this for fixed-price hampers, subscription boxes, or any kit where you want a consistent headline price (e.g. £75 gift box) regardless of which child variants the customer picks. -
Do bundle line items show separately in the order and invoice?
Yes. On the order, invoice, shipment, and credit memo, Magento displays the bundle parent as the main line item with the selected children as nested rows beneath it. Each child row shows its own name, SKU, quantity, and price (price column appears for Dynamic pricing; for Fixed pricing the children show qty + SKU but not price). This is important for warehouse picking — your fulfilment team sees the individual SKUs to pick from the shelf — and for tax reporting in jurisdictions that require per-item line detail. Some accounting integrations need extra configuration to round-trip the nested structure correctly. -
Can I set per-item quantity limits inside a bundle option?
Partly. At the child level you can set a default quantity and a "User Defined Quantity" toggle: if off, the customer is locked to that qty; if on, they can change it. Magento does not natively expose min-qty or max-qty per child inside an option — only the default and the on/off toggle. For per-child min/max enforcement you either: (1) add custom JavaScript validation to the PDP, (2) write a quote validator plugin that rejects out-of-range qtys at add-to-cart, or (3) use a paid extension like Amasty Bundle Options or Mageworx Bundle Options Pro that adds the missing fields to the admin UI. -
How do tax and shipping rules apply to bundles?
<strong>Tax</strong>: by default, tax is calculated per child based on each child's tax class — not the parent's. So a hamper containing a 20%-VAT bottle of wine and a 0%-VAT food item taxes each child correctly. Override: set "Tax Class" on the parent and enable "Use Fixed Tax" on dynamic bundles only if you need uniform tax across all children. <strong>Shipping</strong>: controlled by the "Shipping" setting on the bundle parent — <em>Together</em> bundles the children into one parcel using the parent's weight (sum of child weights for dynamic, fixed weight for fixed-price), and <em>Separately</em> generates a shipping rate per child. Use Separately for kits where children ship from different warehouses or where multi-parcel rates are cheaper than a single oversized carton.
Need a custom bundle or configurator built on Magento?
Send me your kit, configurator, or hamper requirement — I will reply with a fixed-price quote, recommended product-type setup, and earliest start date. 24-business-hour turnaround.