This module extends the functionality of sale_order_secondary_unit to allow selling products in the online store using the secondary units defined on the product.
Odoo ships a similar feature based on uom.uom records shared by all products (the Packagings field). Secondary units are instead defined per product and keep both quantities (product unit and secondary unit) on the sale order line, which is useful when each product has its own packing sizes.
auto_awesome What this module does
AI-generated from the code · Odoo 19.0Lets online shop customers buy products in their own secondary units (e.g. boxes of 5 or 10) instead of only the base unit of measure, with the chosen unit shown on the product page, in the cart and at checkout.
This module brings the secondary units defined per product into the Odoo website shop, so a customer can pick the packing they want to buy in.
- On the product page a unit selector appears next to the quantity, listing the published secondary units of that product (for example "Box 5 Units"). The price stays expressed in the product's own unit and is labelled as such.
- The same selector is available in the product configurator, and the price is recalculated for the chosen unit.
- In the cart and in the checkout summary, each line shows the secondary unit used and the equivalent quantity in the product unit; the quantity the customer edits is the one in secondary units.
- Cart lines are only merged when they share the same secondary unit, and the cart counter counts lines sold in secondary units as secondary units.
- Reordering from the customer portal keeps the secondary unit of the original order.
A new "Allow to sell in unit of measure" option on the product form controls whether the base unit can be chosen; when it is off, a default secondary unit is applied automatically. Each secondary unit has a published flag, and only active, published units are visible to shop visitors. A scheduled installation step enables the new option on all existing products.
Depends on
Required by other modules
Models and fields (5)
- sale.order · extends an existing model
- product.product · extends an existing model
- sale.order.line · extends an existing model
- product.template · extends an existing modelallow_uom_sell (Allow to sell in unit of measure)
- product.secondary.unit · new modelis_published
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-03Confirmation status: 6 confirmed, 3 with no information of 9 versions.
Sources · Odoo 12.0
Confirmed on 2026-11-03 in branch 12.0 of OCA/e-commerce.
terminal Installation and usage
OCA documentation · Odoo 19.0Configuration
Source · Odoo 19.0To define the secondary units, you should activate Units of Measure & Packagings in Inventory \> Configuration \> Settings for the user that will be responsible of this function.
Usage
Source · Odoo 19.0To use this module you need to:
- Go to 'Website \> eCommerce \> Products'.
- Select a template.
- On the General Information tab, fill in the Secondary Unit of Measure lines that you need and tick Website published on the ones that must be offered in the shop.
- Go to the Website Shop and open that product: next to the quantity selector you will see a selectable option with all the secondary units published for the product. The quantity you type is then counted in the selected unit (e.g.
2+Box 5 Unitsadds 10 units to the cart). - If you do not want to sell in the base product unit and only allow selling in a secondary unit, you can disable the option 'Allow to sell in unit of measure' in the eCommerce Shop section of the product form.
The same selector is shown in the Configure dialog that is opened for products having optional products or several variants.
Each secondary unit gets its own cart line, so the same product can be bought in several units at once.
No verified information in OCA: Installation.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
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.