Your plant mixes a 150 kg batch of cream, fills it into 50 ml jars, labels and packs them, then holds the lot until QC signs it off. The Odoo MRP demo you sat through assembled a table from legs and a top.
So can the same system handle formulas, variable batch sizes, process losses, raw material lots and a QC hold?
Yes, with the right configuration. Odoo's Manufacturing app scales a BoM to any order quantity, records actual consumption, tracks lots end to end and can hold finished goods until release. Three things usually need a small custom build: percentage-based formula entry, a batch yield report and, on Community, a step-by-step QC checklist. This guide covers what works as standard, where those gaps sit, and what one batch looks like from planned order to released lot.
Discrete vs process manufacturing: why does the difference matter for MRP?
Discrete manufacturing builds countable units from fixed parts; process manufacturing transforms ingredients into bulk batches measured in kg or litres. Odoo's Bill of Materials can model both, but cosmetics adds formulas, scaling, losses and a quality hold that a furniture-style setup never needs. Here's how the two differ on the factory floor.
| Factor | Discrete manufacturing | Process manufacturing (cosmetics) |
| Output | Countable units | Bulk batches in kg or litres, then filled units |
| Product definition | Bill of Materials | Formula, usually written in percentages |
| Quantity planning | Fixed parts per unit | Formula scaled to the batch size |
| Traceability | Serial numbers per unit | Lot numbers for raw materials, bulk and finished goods |
| Material losses | Handled as scrap | Expected losses in mixing, transfer, filling and packing |
| Production stages | Assembly | Weighing, mixing, filling, labelling, packing |
| Quality release | Often after assembly | Finished lot held until QC approves it |
A generic MRP setup can run both. It shouldn't treat them the same. In a cosmetics plant, "how many did we make?" is the easy question. The hard ones are how much of each ingredient went in, which raw material lots went into the batch, how much bulk you actually recovered, and whether the finished lot is cleared for sale.
For the wider picture beyond MRP, including FEFO, subcontracting and private label, see our complete guide to Odoo ERP for cosmetics manufacturers.
What breaks when a cosmetics plant runs on spreadsheets?
Most growing cosmetics manufacturers run on Excel, paper batch records and a whiteboard. That holds until volume rises. In our experience, five problems show up first, and they show up in roughly this order.
1. Formulas live in spreadsheets.
The formula sits in a chemist's Excel file, written in percentages. Copies multiply, and the floor can mix from an old version. Who changed the preservative level, and when? Nobody can say.
2. Every batch is scaled by hand.
A 100 kg formula becomes a 150 kg batch on a calculator. One decimal slip ruins the batch. Planning is worse: nobody knows if there's enough glycerin for next week until someone counts the drums. Packaging stops the line just as often. A 100 ml cleanser needs a bottle, a pump, a printed box, a tray and a seal. Miss one and the bulk waits in the vessel.
3. Losses are invisible.
Some cream always stays in the vessel, and some jars get overfilled. On paper, nobody records what was really used. Cost per batch becomes a guess, and so does margin per SKU.
4. Traceability depends on paper.
The link between a raw material lot and a finished lot exists only on a batch record in a file. A recall trace takes days. Raw material expiry lives in someone's head, so expired stock gets used or written off.
5. Batches ship before QC approves them.
Without a hold status, a finished batch looks like any other stock. It can be picked and dispatched before the lab signs off, and QC results sit on paper away from the batch they describe.
What does the Odoo MRP module do out of the box?
Odoo's Manufacturing app, the Odoo MRP module, covers BoMs, manufacturing orders, work centres, work orders and replenishment in Odoo Community. The Master Production Schedule, PLM and Quality apps need Enterprise (Odoo documentation, 2026). For most cosmetics plants, Community already covers the core MRP work.
Bills of Materials: what goes into a product
An Odoo bill of materials lists the components and quantities needed to make a product. In cosmetics, use two levels. One BoM makes the bulk (a cream base, a shampoo, a cleanser). A second, downstream BoM turns that bulk into a saleable SKU: a 50 ml face cream uses cream base plus jar, cap, label and carton. Keeping them apart separates bulk manufacturing from filling and packing, which is exactly how the floor already works.
Manufacturing orders: planning each batch
A manufacturing order (MO) names the product and quantity. Odoo reads the BoM and calculates component requirements. If the BoM is written for 100 kg and the MO asks for 150 kg, every component scales by 1.5. You don't need a separate BoM for every batch size.
Work centres and work orders: tracking stages
Work centres represent mixing vessels, prep areas or filling lines. Work orders are the operations performed at them. A typical cosmetics routing looks like this:
- Raw material weighing and preparation
- Mixing and homogenisation
- Bulk inspection
- Filling and capping
- Labelling and packing
The exact steps follow your plant, not a template. Configured this way, you track the batch stage by stage instead of as one opaque task.



