Units of measure¶
In some cases, handling products in different units of measure is necessary. For example, a business can buy products from a country that uses the metric system, and then sell those products in a country that uses the imperial system. In that case, the business needs to convert the units.
Another case for unit conversion is when a business buys products in a big pack from a supplier, and then sells those products in individual units.
Odoo can be set up to use different units of measure (UoM) for one product.
Configuration¶
To use different units of measure in Odoo, first go to , and under the Products section, activate the Units of Measure setting. Then, click Save.
- menu
- Inventory ‣ Configuration ‣ Settings
- shows
- The Inventory settings page scrolled to the "Products" section, with the "Units of Measure" checkbox enabled.
- highlight
- The "Units of Measure" checkbox (red frame).
- data
- Demo company "YourCompany".
- module
- stock, uom
- notes
- English UI, light theme, 1440px width, crop to the "Products" settings block.
Units of measure categories¶
After enabling the Units of Measure setting, view the default units of measure categories in . The category is important for unit conversion; Odoo can convert a product’s units from one unit to another only if both units belong to the same category.
- menu
- Inventory ‣ Configuration ‣ UoM Categories
- shows
- The "Units of Measure Categories" list with the default categories (Units, Weight, Working Time, Length / Distance, Volume) and their reference unit shown in the "Uom" column.
- highlight
- The reference unit values in the "Uom" column (they are rendered in blue).
- data
- Default Odoo unit-of-measure categories, no custom category added yet.
- module
- uom
- notes
- English UI, light theme, 1440px width, crop to the list.
Each units of measure category has a reference unit. The reference unit is highlighted in blue in the Uom column of the Units of Measure Categories page. Odoo uses the reference unit as a base for any new units.
To create a new unit, first select the correct category from the Units of Measure
Categories page. For example, to sell a product in a box of six units, click the Unit
category line. Then, on the category page that appears, click Add a line in the
Units of Measure tab. Then, in the Unit of Measure field, title the new
unit, such as Box of 6, then in the Type field, select the appropriate size reference,
such as Bigger than the reference Unit of Measure.
In the Ratio field, enter how many individual units are in the new UoM, such as
6.00000 when using the example of the 6-Pack (since a box of six is six times bigger than the
reference unit, 1.00000).
- menu
- Inventory ‣ Configuration ‣ UoM Categories ‣ Units
- shows
- The "Units" category form, "Units of Measure" tab, with a new line named "Box of 6", Type "Bigger than the reference Unit of Measure" and Ratio 6.00000 next to the reference unit "Units" (ratio 1.00000).
- highlight
- The newly added "Box of 6" line (red frame).
- data
- Demo company "YourCompany"; the "Units" category with its default "Units" and "Dozens" units plus the new "Box of 6".
- module
- uom
- notes
- English UI, light theme, 1440px width, crop to the units table.
Specify a product’s units of measure¶
To set units of measure on a product, first go to and select a product to open its product form page.
In the General Information tab, edit the Unit of Measure field to specify the unit of measure that the product is sold in. The specified unit is also the unit used to keep track of the product’s inventory and internal transfers.
Edit the Purchase UoM field to specify the unit of measure that the product is purchased in.
Advanced units of measure¶
The eYssen Advanced UoM module (eyssen_uom) extends unit-of-measure categories so that derived
quantities — surfaces, volumes and specific gravity — can be computed from a length or a weight unit
instead of being maintained by hand.
Category type¶
On every unit-of-measure category (), a Type field classifies what the category measures: Unit, Weight, Time, Working Time, Length / Distance, Surface, Volume or Specific Gravity. The type is also shown as a column on the Units of Measure Categories list, and is inherited (read-only) by every unit in the category.
The type decides which reference fields appear on the units inside the category:
For a Surface or Volume category, each unit gets a Reference Length field — the length unit the surface or volume is derived from (for example
cmforcm³).For a Specific Gravity category, each unit gets a Reference Weight and a Reference Volume field (for example
gandcm³forg/cm³).
The module also raises the precision of the Ratio column to ten decimals, which is needed for conversions between volume and specific-gravity units.
Note
The module adds the Specific Gravity and Time categories and the cm³,
g/cm³, kg/m³, Month and Year units, if they are not present yet.
- menu
- Inventory ‣ Configuration ‣ UoM Categories ‣ (a category)
- shows
- A unit-of-measure category form with the eYssen "Type" field set to "Specific Gravity", and the units table below showing the "Reference Weight" and "Reference Volume" columns filled in for the "g/cm³" unit.
- highlight
- The "Type" field and the "Reference Weight" / "Reference Volume" columns (red frames).
- data
- Category "Specific Gravity" with the units "g/cm³" (reference) and "kg/m³".
- module
- eyssen_uom
- notes
- English UI, light theme, 1440px width, crop to the form and the units table.
Conversion to standard units¶
The module can convert a quantity in any unit of a Length / Distance, Surface, Volume, Weight or Specific Gravity category to the standard unit of its type: metre (m), square metre (m²), cubic metre (m³), kilogram (kg) and kg/m³. Other modules use this to compute with physical quantities: for instance, the density of a material may be entered in g/cm³ or kg/m³, and the weight computed from the dimensions of a product is converted into the company’s weight unit. Units of the types Unit and Time are not physical quantities; converting them raises the error “The unit of measure cannot be converted to a physical quantity”.
UNECE codes¶
With the uom_unece module installed, every unit of measure carries a UNECE Code
field, holding the code of the unit in the standard nomenclature of the United Nations Economic
Commission for Europe. The codes are pre-loaded for the standard units and are used by electronic
document formats that require a standardized unit code.
Note
The Hungarian e-invoicing and electronic reporting formats expect UNECE unit codes. Keep this field filled in on every unit that appears on customer documents.
Unit conversion¶
Odoo automatically converts unit measurements when products have different UoMs and purchase UoMs.
This occurs in various scenarios, including:
Vendor orders: purchase UoM on purchase orders (POs) converts to UoM on internal warehouse documents
Automatic replenishment: generates POs when the stock levels of a product (tracked in UoM) dips below a certain level. But, the POs are created using the purchase UoM
Sell products: if a different UoM is used on the sales order (SO), the quantity is converted to the warehouse’s preferred UoM on the delivery order
Buy products in the purchase UoM¶
When creating a new request for quotation (RFQ) in the Purchase app, Odoo automatically uses the product’s specified purchase unit of measure. If needed, manually edit the UoM value on the RFQ.
After the RFQ is confirmed into a PO, click the Receipt smart button at the top of the PO.
Odoo automatically converts the purchase unit of measure into the product’s sales/inventory unit of measure, so the Demand column of the delivery receipt shows the converted quantity.
Example
When the product’s purchase UoM is Box of 6, and its sales/inventory unit of
measure is Units, the PO shows the quantity in boxes of six, and the receipt (and other
internal warehouse documents) shows the quantity in units.
- menu
- Purchase ‣ Orders ‣ Purchase Orders ‣ (a confirmed order)
- shows
- A confirmed purchase order line for a product whose purchase unit of measure is "Box of 6": Quantity 3 and UoM "Box of 6".
- highlight
- The "UoM" cell showing "Box of 6" and the "Quantity" cell showing 3 (red frame).
- data
- Vendor "Azure Interior"; one order line, product with Unit of Measure "Units" and Purchase UoM "Box of 6".
- module
- purchase, uom
- notes
- English UI, light theme, 1440px width, crop to the order lines. Caption to convey: an order of three quantities placed in the purchase UoM "Box of 6".
- menu
- Purchase ‣ Orders ‣ Purchase Orders ‣ (the same order) ‣ Receipt
- shows
- The receipt generated from the purchase order above, with the Demand column showing 18 Units — the three boxes of six converted into the product's inventory unit of measure.
- highlight
- The "Demand" quantity and the "Units" unit of measure on the operation line (red frame).
- data
- The receipt WH/IN/00001 for the same product and vendor as the purchase order screenshot.
- module
- stock, uom
- notes
- English UI, light theme, 1440px width, crop to the Operations tab. Caption to convey: on warehouse receipt the recorded quantities are in the internal unit of measure "Units".
Replenishment¶
A request for quotation for a product can also be generated directly from the product form using the Replenish button.
After clicking Replenish, a replenish assistant box pops up. The purchase unit of measure can be manually edited in the Quantity field, if needed. Then, click Confirm to create the RFQ.
Important
A PO can only be automatically generated if at least one vendor is listed in the product form’s Purchase tab.
- menu
- Inventory ‣ Products ‣ Products ‣ (a product)
- shows
- A product form with the "Replenish" button visible in the button box at the top of the form.
- highlight
- The "Replenish" button (red frame).
- data
- A storable product that has at least one vendor on its "Purchase" tab.
- module
- stock
- notes
- English UI, light theme, 1440px width, crop to the top of the product form.
Navigate to the created PO by clicking the Forecasted smart button on the product form. Scroll down to the Forecasted Inventory section, and in the Requests for quotation line, click the RFQ reference number to open the draft RFQ. If necessary, the purchase UoM can be edited directly on the PO.
Sell in a different UoM¶
When creating a new quotation in the Sales app, Odoo automatically uses the product’s specified unit of measure. If needed, the UoM can be manually edited on the quotation.
After the quotation is sent to the customer, and confirmed into a sales order (SO), click the Delivery smart button at the top of the SO. Odoo automatically converts the unit of measure into the product’s inventory unit of measure, so the Demand column of the delivery shows the converted quantity.
For example, if the product’s UoM on the SO was changed to Box of 6, but its inventory unit of
measure is Units, the SO shows the quantity in boxes of six, and the delivery shows the quantity
in units.