OdooWiki OCA HUB
Product License: AGPL-3

This module allows you to set a product as a Pack

auto_awesome What this module does

AI-generated from the code · Odoo 19.0

Lets you mark a product as a pack made of other products, with quantities, and control how its components and prices appear on sales and purchase orders.

This module turns a normal product into a "pack": a bundle of other products sold together. On the product form you get an "Is Pack?" checkbox; when ticked, a new "Pack" tab appears where you list the component products and their quantities.

  • Pack Display Type: "Detailed" shows the components individually on sale/purchase orders, "Non Detailed" hides them.
  • Component price handling: prices can be shown per component, totalized into the main product line, or ignored so only the pack price is used.
  • A "Pack Modifiable" option lets order lines for the components be edited; it is only available when components are displayed with their own prices.

Business rules added by the code: the same product cannot appear twice in one pack; a pack cannot contain itself or loop back on itself (recursive packs are blocked); all components must belong to the same company as the pack. Pack list prices are computed from the components' prices and quantities, and pricelists return the combined pack price. The module also shows, on each product, which packs it is used in.

It touches product.template, product.product, product.pricelist and adds the product.pack.line model, with a form and list view for pack lines and extra sections on the product forms.

Depends on

product
Models and fields (4)
  • product.product · extends an existing modelpack_line_ids, used_in_pack_line_ids
  • product.template · extends an existing modelpack_ok (Is Pack?), pack_type (Pack Display Type), pack_line_ids, pack_modifiable, pack_component_price, used_in_pack_line_ids, pack_modifiable_invisible
  • product.pack.line · new modelquantity, product_id, parent_product_id
  • product.pricelist · extends an existing model

Text generated by AI (DeepSeek) from reading the Odoo 19.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub

Availability by version

Reviewed: 2026-11-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 8 confirmed, 1 with no information of 9 versions.

Sources · Odoo 12.0

Confirmed on 2026-11-03 in branch 12.0 of OCA/product-pack.

terminal Installation and usage

OCA documentation · Odoo 19.0

To use this module, you need to:

  • Go to Sales > Products > Products, create a product and set "Is Pack?".
  • Set Pack Type and Pack component price.
  • Then choose the products to include in the pack.

Product pack is a base module for sale_product_pack and other modules that needs to use packs. Pack type and Pack component price are used to define the behavior that the packs will have when it is selected in the sales order lines (if sale_product_pack module is installed). The options of this field are the followings:

Pack type:

  • Detailed: It allows you to select an option defined in Pack component price field.
  • Non Detailed: Will not show the components information, only the pack product and the price will be the its price plus the sum of all the components prices.

Pack component price:

  • Detailed per component: will show each components and its prices, including the pack product itself with its price.
  • Totalized in main product: will show each component but will not show components prices. The pack product will be the only one that has price and this one will be its price plus the sum of all the components prices.
  • Ignored: will show each components but will not show components prices. The pack product will be the only one that has price and this one will be the price set in the pack product.

+-----------------------------+-----------------------------+---------------------------------+-----------------------------------------+----------------------+ | Pack type | Show components on SO? | Sale price | Discount | Can be modified? | +=============================+=============================+=================================+=========================================+======================+ | Detailed per components | Yes, with their prices | Components + Pack | Applies to the price of the pack and | Yes, configurable | | | | | the components | | +-----------------------------+-----------------------------+---------------------------------+-----------------------------------------+----------------------+ | Detailed - Totalized | Yes, with their prices at 0 | Components | Applies to the total (pack + components)| No | +-----------------------------+-----------------------------+---------------------------------+-----------------------------------------+----------------------+ | Detailed - Ignored | Yes, with their prices at 0 | Only Pack | Applies to the pack | No | +-----------------------------+-----------------------------+---------------------------------+-----------------------------------------+----------------------+ | No detailed | No | Components | Applies to the total (pack + components)| No | +-----------------------------+-----------------------------+---------------------------------+-----------------------------------------+----------------------+

Note: If pricelist enabled, Odoo will display the price according to the corresponding pricelist. In the case of a pricelist with discount policy "Show public price & discount to the customer" keep in mind that the "Non Detailed" and "Detailed - Totalized in main product" packs do not display the discount.

No verified information in OCA: Installation, Configuration.

info

Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.