Odoo Manufacturing & Inventory
Instantly recalculate every component quantity on a manufacturing-linked stock transfer the moment your production plan changes, no manual line-by-line editing, no spreadsheet math.
MRP & Inventory
Manufacturing
Picking
Bill of Materials
More Than 150+ Brands
Your Bill of Materials defines component quantities for a full production run, say, 100 chairs, each needing 4 legs, 1 seat, and 1 backrest. But real-world manufacturing rarely happens in perfect full batches. A customer needs an urgent partial delivery. A component is short. A machine needs to be shared. Your team decides to produce 30 chairs today.
Now someone has to sit down and manually calculate: 30 × 4 = 120 legs, 30 × 1 = 30 seats, 30 × 1 = 30 backrests. Then open the picking, edit each line one by one, verify the numbers, and validate. Every time the target quantity changes, the whole exercise starts again.
Multiply this across dozens of SKUs, multiple components per product, and unit conversions (kilograms to grams, rolls to metres) and you have a daily source of manual errors, production delays, and material waste that grows with your business.
Partial production runs are the rule, not the exception, but Odoo’s default picking workflow treats every run like a full batch. This module closes that gap.
This module adds an Adjust Component Quantities button to any picking transfer linked to a Manufacturing Order. When clicked, it opens a simple wizard where you enter the quantity you actually want to produce. The module then
Reads your Bill of Materials and computes every component quantity proportional to the target production quantity you enter.
Works for any fraction of your original Manufacturing Order quantity, produce 30 out of 100, or 7 out of 50.
Set platform commission rates at a global level or per seller. Seller bills and payment requests are tracked directly in Odoo Invoicing.
Converts between compatible units of measure seamlessly, kg to g, rolls to metres, litres to ml.
Adjusting quantities doesn't split orders or generate automatic backorders, you stay in control of scheduling.
Replaces spreadsheet calculations and hand-edited picking lines with a single, accurate, system-driven update.
Say your Manufacturing Order is for 100 chairs. Each chair's Bill of Materials requires
| Component | Unit | BoM per Chair | Original (100 chairs) | Adjusted (30 chairs) |
|---|---|---|---|---|
| Chair Legs | pcs | 4 | 400 | 120 |
| Seat Panel | pcs | 1 | 100 | 30 |
| Backrest | pcs | 1 | 100 | 30 |
| Upholstery Foam | kg | 0.8 | 80 | 24 |
| Assembly Bolts | pcs | 12 | 1,200 | 360 |
Without this module, someone recalculates and edits all five lines by hand, with opportunity for error at every step. With the module, you type 30, click Confirm, and every line updates instantly and correctly.
Go to Inventory → Operations → Transfers and open a picking that is linked to a Manufacturing Order. These are the component transfer pickings created when you confirm an MO.
A new button appears on the picking form. Click it to open the adjustment wizard. No configuration required, it reads your BoM automatically.
In the wizard, enter the number of finished units you want to produce in this batch, e.g., 30 (out of the original 100 on the MO).
The system calculates the ratio (30/100 = 0.3), multiplies every BoM component quantity by that ratio, and applies rounding to avoid material shortages.
All component quantities in the picking are updated automatically. The Manufacturing Order itself is untouched. Validate the picking and proceed with production.
| Your Action | System Response |
|---|---|
| Enter target quantity | Module calculates ratio: target ÷ original MO quantity |
| Bill of Materials recalculated | Component quantities are updated proportionally |
| Transfer updated | Done quantities on the picking are adjusted |
| MO preserved | Original Manufacturing Order demand remains at 100 — no change |
1 of 7
Doing batch or job-shop production where each run is sized to order, customer requirement, or available capacity, never always 100% of the MO.
2 of 7
Scaling recipes up and down based on daily demand, with multiple ingredients measured in grams, kg, and litres that must convert correctly.
3 of 7
Producing partial batches for quality testing, pilot runs, or regulatory samples before committing to full production.
4 of 7
filling rush orders by producing a subset of a larger scheduled run without disrupting the full order in Odoo.
5 of 7
building assemblies to demand, where component quantities vary widely and manual calculation is both slow and error-prone.
6 of 7
Cutting fabric in partial rolls with complex UoM conversions (metres to running yards, rolls to sheets).
7 of 7
Who need to issue exact raw material quantities to the shop floor, not the full MO amount, without risking waste or shortage.
| Scenario | Without This Module | With This Module |
|---|---|---|
| Partial batch decision | Manual — open spreadsheet, calculate | Instant — type target qty, click Confirm |
| 5-component product, 30% run | 5 manual edits , each prone to error | 1 wizard entry, all lines updated |
| UoM conversion (kg → g) | Manual conversion on top of ratio calculation | Automatic — module handles conversion |
| MO integrity | Risk of accidentally editing MO demand | MO untouched — picking only |
| Rounding and shortages | Depends on who does the maths — inconsistent | Ceiling rounding applied consistently |
| Backorder management | Can trigger unintended backorders | No automatic backorders created |
The module is designed to be safe and non-destructive. Here is what it does and does not do
Only picking lines that match Bill of Materials (BoM) components are updated. Unrelated stock move lines remain untouched, ensuring that only the required manufacturing materials are adjusted.
Lines that are already in Done or Cancelled status are automatically skipped, preventing completed transfers from being overwritten.
Required quantities are rounded up using ceiling rounding to ensure that the issued quantity is never less than the amount required for production.
The picking must originate from a Manufacturing Order (MO). Standalone inventory transfers that are not connected to MRP are not supported.
The product must have a Bill of Materials (BoM) configured. Without a valid BoM, the wizard cannot calculate the required component quantities.
The original Manufacturing Order demand is never modified. The adjustment affects only the physical stock transfer and does not alter the order record.
No Manufacturing Order linked
No BoM found for product
No matching component lines updated
Lines not changing after confirmation
Quantity looks wrong after conversion
Building this functionality from scratch in Odoo requires deep knowledge of the mrp.production and stock.move models, how Odoo resolves BoM components for a specific production quantity, UoM conversion logic, and how to write a clean wizard without breaking the picking workflow. This is typically 2–4 days of development work for an experienced Odoo developer.
Get MRP Smart Picking Quantity Adjust for Odoo and let your system do the math—every partial run, every component, every time.
Hyderabad-based IT services company strengthens its Odoo practice to help small and mid-sized businesses migrate from legacy accounting tools to
Are you a retailer or have a running e-commerce business that uses Shopify and Odoo to manage your online sales
Odoo is one of the most popular and user-friendly ERP solutions. It has over 28 million active users. It was
Yes. The module is compatible with both Odoo Community and Enterprise versions running Odoo 19. It depends only on the standard Inventory and Manufacturing modules available in both editions.
No. The module adjusts the picking quantities without creating any automatic backorders. The remaining quantity stays on the original Manufacturing Order and can be handled in a future transfer at your discretion.
The module handles unit conversions automatically, as long as the units belong to the same UoM category in Odoo (e.g., mass category: kg, g, lb). Cross-category conversions are not possible by design in Odoo’s UoM framework.
No — this is by design. The MO always reflects the total ordered quantity. The module only updates the component quantities on the active picking transfer, leaving the MO untouched. This means you can produce in multiple partial runs against the same MO without confusion.
The module adjusts the direct component lines of the picking based on the primary BoM. Sub-assemblies managed as separate MOs would require their own adjustments using the same workflow.
The module calculates a ratio based on your input relative to the MO quantity. Entering a target greater than the MO quantity would result in a ratio above 1.0, scaling quantities up. However, it is recommended to use this for partial (downward) adjustments and use Odoo’s standard MO qty edit for upward changes.
Forem ipsum dolor sit amet, consectetur adipiscing elit.
Know more ➞
Forem ipsum dolor sit amet, consectetur adipiscing elit.
Know more ➞
Forem ipsum dolor sit amet, consectetur adipiscing elit.
Know more ➞
DEVELOPERS
YEARS IN OPERATION
GLOBAL CLIENTS
Start your digital transformation journey now and revolutionize your business