All posts
Functional4 min read

Creating Product Bundles and Sets in Odoo Sales

Build product bundles in Odoo that display as a single line on quotations but explode into individual components for picking, delivery, and inventory management.

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#

  1. Salesperson adds "Starter Kit" to the sale order
  2. Invoice shows a single line: "Starter Kit - $299"
  3. When the delivery is generated, Odoo explodes the kit into its components:

- Delivery shows: Cable, Adapter, Guide, Case (1 of each)

  1. Warehouse picks the individual components
  2. 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.

Try ERPeek on your own Odoo module - ask questions, scaffold tests, and explore your codebase in plain language.

Get started free