WooCommerce product bundles vs composite products (and where cost fits)
"Bundle" means three different things in a WooCommerce store, and the tools for each are easy to mix up:
- A fixed set the customer buys together: a starter pack, a gift box, a mixed case.
- A product the customer configures: pick a frame, then wheels, then a saddle.
- Something you build from parts: a kit, an assembled product or a custom build that has its own bill of materials.
The first is what the Product Bundles extension is for and the second is Composite Products. The third is a different problem: what the thing costs you and what you should charge. This guide covers what each one does, how each one sets the price, and which one you need.
The short version
| Product Bundles | Composite Products | Bill of materials | |
|---|---|---|---|
| Solves | Selling items together | Letting the shopper build it | Knowing cost and setting price |
| Who picks the contents | You (with optional extras) | The shopper, step by step | You |
| Price comes from | A base price, plus item selling prices if you choose | Component selling prices, with discounts | Part costs + labor, through your markup or margin rule |
| Knows your cost and margin | No | No | Yes |
Product Bundles
Product Bundles is Woo's own extension ($79 a year as of October 2026). You create a bundle product and add the items in it. Each item keeps its own stock, so a bundle shows as out of stock when one of its items is.
Pricing works one of two ways, according to Woo's setup guide:
- A fixed base price on the bundle. The contents don't change it.
- "Priced Individually" on each item, which adds that item's selling price to the base price, with an optional percentage discount.
Either way, the price is built from selling prices. That's fine for a "buy these three, save 10%" offer. It's the wrong starting point when you need to know whether the bundle still makes money.
Composite Products
Composite Products ($149 a year as of October 2026) is for build-your-own products. The shopper goes through steps and picks one option at each, and a choice in one step can show or hide options in the next. Each option is a real product with its own stock, and you can discount components.
It's the right tool when the customer designs the build. Like Product Bundles, its prices come from what each component sells for, not from what it costs you.
The gap: neither tool knows what a kit costs you
Here's where it bites. Say you sell a Trail Build bundle priced as the sum of its parts less 10%:
| Part | Selling price | Your cost |
|---|---|---|
| Frame · Large · Blue | $3,200.00 | $2,300.00 |
| Wheelset | $590.00 | $420.00 |
| Saddle | $90.00 | $65.00 |
| Assembly labor and box | none | $115.00 |
| Bundle (sum less 10%) | $3,492.00 | $2,900.00 |
That's a 17.0% margin, which is already thinner than most people guess, because the labor and packing never appear in a selling-price bundle. Now the frame supplier raises prices 8%. Your frame cost goes to $2,484, but you haven't touched the frame's retail price, so the bundle price doesn't move. Margin drops to 11.7%, and nothing in WooCommerce tells you.
Multiply that by every bundle that uses the frame, and by every supplier increase in a year, and it adds up.
The bill of materials approach
A bill of materials (BOM) starts from the other end. Each kit lists its parts, labor and packaging. Each part has a cost. The kit's cost of goods (COGS) is the sum, and a pricing rule turns that cost into a price:
- Markup: cost × 1.4 = $4,060 on a $2,900 cost.
- Target margin: cost ÷ (1 − 0.30) = $4,143 for a true 30% margin.
- Cost plus a fixed amount: cost + $600.
When the frame cost goes up, the kit's cost goes up with it, the rule produces a new price, and you see exactly which kits changed and why. The guide to pricing assembled products covers the rules and rounding in more detail.
Which one do you need?
- The shopper chooses the parts: Composite Products.
- You sell fixed sets as a promotion, priced off retail: Product Bundles.
- You build or pack the product and need its price to cover its cost: a bill of materials. The kit can be an ordinary simple or variable WooCommerce product, so you don't need a bundle extension to sell it. Variations work too: a Large Blue build can use the Large Blue frame.
Plenty of stores need more than one. The question to ask for each product is whether its price should come from what the parts sell for or from what they cost.
Doing it in WooCommerce
We built BOM Pricing for WooCommerce for the third case. It started as the internal tool of our own store, which builds what it sells. The free version adds a bill of materials to any product or variation (parts, labor, packaging and sub-assemblies), rolls up the cost, applies a markup, margin or cost-plus rule with rounding, and flags every kit when a part's cost changes. Pro reprices automatically within a limit you set and imports costs from a supplier CSV. Business tells you how many of each kit you can still build and which parts to reorder first.
Download the free plugin or read the docs.
Not sure which approach fits your products? Email hello@oakhammer.app with what you sell. We answer these ourselves.