Manufacturing app for Odoo
Disassembly Orders
Break one input into many outputs across a multi stage chain, weigh every output, and reconcile actual yield against expected loss before any stock moves.

Overview
Disassembly Orders.
Run variable yield disassembly in Odoo. One input unit is broken down over a chain of stages, each stage weighs what actually came out, and the module reconciles measured yield against the expected loss on the route before it will post a thing. Outputs carry a measured weight independent of their stock quantity, so a single case can be 12.4 kg on the sheet and one Unit in stock. Every posted stage creates a real manufacturing order with real stock moves, lots and byproduct cost share.
New to Odoo Manufacturing? Read our practical guide to how it works
How it works
Built around what you actually do.
Every screen below is the module running in Odoo, not a mockup.
01
Reverse BOM: one input unit becomes many outputs, with the yield recorded rather than assumed
- Multi stage chains: one output of each stage feeds the next, so loss is measured at every step
- Catch weight: a measured weight on every output row, independent of the stock quantity
- Per case weights for serial tracked outputs, so eight cases carry eight different weights
- Expected loss and tolerance set on the route, checked against the actual figures

02
A stage outside tolerance is refused, and the reason names the unit
- Per lot input detail: consume 8 kg of lot A and 2 kg of lot B and the moves say exactly that
- Every posted stage creates a real manufacturing order with real stock moves
- Byproduct tracking with one stock move per distinct byproduct and cost share on the move
- Lots and serial numbers minted at post time and carried into the next stage automatically

03
Multi unit orders: post one stage for every carcass, pallet or batch on the order at once
- Units that fail the tolerance check are skipped and named in the order log, the rest still post
- A Stages to Post screen an operator can work from all day, one click from the menu
- Yield analysis by stage and input product, as a list, a graph and a pivot
- Posted stages are permanently immutable, for every user including the administrator

Every screen
The whole module, screen by screen.
The captures the walkthrough above did not use, in the order you meet them in the product.


What it does
Disassembly Orders handles the jobs a bill of materials cannot: the ones where one thing comes in and many things come out, and nobody knows the exact split until it has been done and weighed. A carcass becomes primals, trim, hide and offal. A pallet becomes cases. A scrap unit becomes sorted metals. You define a route of stages, each stage taking one input product and yielding several outputs, with one of those outputs carrying the material on to the next stage.
On the floor, an operator records what actually came out, by weight. The module compares the measured yield against the expected loss configured on the route, and if the stage falls outside tolerance it refuses to post and says which unit and why. When it does post, it creates a genuine manufacturing order and completes it, so your stock, your lots and your byproduct costs reflect the real breakdown rather than a planned one. Once a stage is posted it is permanently immutable, for every user including the administrator, because it is the record of stock that has already moved.
Who it's for
Meat and poultry processors, fish and seafood plants, produce packers, recyclers and scrap metal merchants, textile and leather cutters, and any manufacturer who buys one thing, breaks it into several, and needs the yield and the cost to reflect what the scale actually said.
Questions
About Disassembly Orders.
What is a reverse BOM in Odoo and why does the standard one not fit?
A standard bill of materials assumes fixed quantities in and a fixed quantity out. Disassembly is the opposite: one input becomes many outputs, and how much of each you get is not known until you have done it. This module records the yield you actually measured rather than the yield a BOM predicted, and reconciles it against the loss you expected.
What is catch weight and how does this module handle it?
Catch weight is when the stock quantity and the commercial measure are different things. One case of ribeye is one Unit in stock but 12.4 kg on the sheet, and the next case is 11.8 kg. Every output row here carries a measured weight independent of its stock quantity, so the weights drive reconciliation and the byproduct cost share while stock stays in the product's own unit.
Can I get a different weight for every individual case?
Yes, if the output product is serial tracked. Each serial is its own row with its own weight. A lot tracked output is capped at one row per stage, so it carries one weight for the stage rather than one per case. This limit is stated on the listing before you buy.
What happens when a stage comes out badly and the yield is wrong?
Nothing posts. The stage is compared against the expected loss and tolerance from the route, and a stage outside tolerance is refused with a message naming the unit and the reason. On a multi unit order the units that passed still post, and the skipped ones are listed in the order log.
Does it actually move stock, or just record numbers?
It moves stock. Every posted stage creates a real manufacturing order and completes it, so the input is consumed, the outputs are produced, lots and serials are minted, and byproducts get their own stock moves with a cost share written on the move. The figures on the sheet and the figures in your stock ledger are the same figures.
Can one input be broken down over several steps?
Yes, that is the point of it. A route is a chain of stages, each stage taking one input and yielding several outputs, with exactly one output feeding the next stage. Loss is measured at each step separately, so you can see which stage in the chain is losing the material.
Can I process several carcasses or pallets on one order?
Yes. An order holds many units and you post a stage for all of them in one click. Each unit keeps its own weights, its own lots and its own manufacturing orders, so they are only batched for your convenience, never merged.
Which Odoo versions and editions does it support?
Odoo 19.0, Community and Enterprise. It depends only on Manufacturing and Inventory, both of which are in Community.
On the Odoo Store
Get Disassembly Orders on the Odoo Store.
Pick your Odoo version and install it in a click, with free updates and real support behind it.
Get it on the Odoo StoreReady to make Odoo work the way your business does?
Book a free callCODEerts is a team of certified Odoo partners and full-stack engineers. We implement, customise and support Odoo ERP, then build the software around it.