Product Bundles in Odoo Sales#
A product bundle sells a pre-defined set of products under one name and price - the customer sees "Starter Kit" on their invoice, but the warehouse picks each component individually. Bundles are created using Odoo's Kit BOM type.
Creating a Bundle Product#
Step 1 - Create the bundle product:
Inventory → Products → New:
- Name: Starter Kit
- Product Type: Storable or Consumable
- Sales Price: bundle price (e.g., $299)
- Can be Sold: Yes
Step 2 - Create the Kit BOM:
Manufacturing → Bills of Materials → New:
- Product: Starter Kit
- BOM Type: Kit
Components tab → Add lines:
- Cable (1 unit)
- Power Adapter (1 unit)
- Quick Start Guide (1 unit)
- Carrying Case (1 unit)
How It Works on a Sale Order#
- Salesperson adds "Starter Kit" to the sale order
- Invoice shows a single line: "Starter Kit - $299"
- When the delivery is generated, Odoo explodes the kit into its components:
- Delivery shows: Cable, Adapter, Guide, Case (1 of each)
- Warehouse picks the individual components
- Customer receives the components packed together
Pricing at the Bundle vs. Component Level#
Bundle pricing (recommended): Set price on the bundle product; components have no individual price on this sale.
Component pricing: Set the bundle price to $0 and price each component individually - the bundle total is the sum of component prices. This makes price changes easier to manage per component.
Inventory Impact#
With a Kit BOM:
- Stock is tracked per component (not per kit)
- "Starter Kit" itself has no stock record
- Availability check on the sale order checks each component's stock
- If any component is unavailable, the delivery is partially available
Discounting Bundles#
Apply discounts to the bundle line (not components):
- 10% discount on Starter Kit → $299 × 90% = $269.10
- All components ship at full availability; only the price is discounted
Reporting on Bundle Sales#
Sales → Reporting → Sales Analysis → filter by product "Starter Kit":
- Units of bundles sold
- Revenue at bundle price
For component-level reporting, run the Inventory Moves report filtered by the component products - shows how many times each component was picked as part of a kit.

