The chemist's formula says 0.5% preservative. The floor needs to know how many grams go into today's 340 kg batch, in which step, and after which phase is heated. In many plants, that conversion happens on a calculator next to the vessel.
Odoo manufacturing can do that work for you. This guide shows how to turn a cosmetic formulation into an Odoo bill of materials (BoM). It then covers scaling from lab batch to production batch, and running it through Odoo work orders. It also shows where standard Odoo 19 stops and a small customisation helps.
Key Takeaways
- Write each formulation BoM for a 100 kg base batch, so every line in kg equals its percentage.
- Odoo scales the BoM to any batch size. Kilograms and litres do not convert on their own, so set a unit per material for liquids bought by volume.
- Link each ingredient to the operation that consumes it, so the floor follows phase order.
- Record actual quantities when the batch closes. Odoo has no yield percentage field, so yield needs a small custom report.
If you are still deciding whether Odoo fits a process plant at all, start with our guide to Odoo MRP for process manufacturers.
Why a Cosmetic Formulation Is Not a Normal Bill of Materials
A normal bill of materials lists parts: four legs, one top, sixteen screws. A cosmetic formulation is different in five ways.
- It is written in percentages. Chemists think in % w/w. The floor needs kilograms.
- It runs in phases. The water phase and oil phase are weighed and heated apart, then combined. Order matters.
- Materials arrive in different units. Glycerin may be bought by the litre but dosed by the kilogram.
- Losses are normal. Some cream stays in the vessel and some jars are overfilled.
- Bulk is not the product you sell. One batch of bulk cream becomes 50ml jars, 100ml tubes and sachets.
Without an ERP, these gaps are covered by spreadsheets and memory. A wrong formula version, a decimal slip when scaling or a skipped phase can cost a whole batch.
Setting Up an Odoo Bill of Materials for a Cosmetic Formula, Step by Step
Step 1: Create the bulk product
Create the bulk, such as "Cream Base", as its own product with kg as its unit. Keep it separate from the finished SKUs. Bulk is what the vessel makes, and finished goods are what the filling line makes.
Step 2: Write the BoM for a 100 kg base batch
Odoo BoM lines hold quantities, not percentages. Set the BoM quantity to 100 kg. Each line in kg then reads as its percentage of the formula.
| Phase | Component | Quantity per 100 kg |
| Water phase | Purified water | 79.5 kg |
| Water phase | Glycerin | 12 kg |
| Oil phase | Emulsifier (cetearyl alcohol) | 8 kg |
| Cool down | Preservative (phenoxyethanol) | 0.5 kg |
| Total | 100 kg |
Check that the lines add up to the base quantity. Odoo does not check this for you.



