In some companies, it’s necessary to automatically create manufacturing orders and inventory moves to bring raw materials from multiple warehouses into a single production warehouse.
In Odoo, this is possible through routes.
Use Case
A company has three raw material warehouses: one for metals, one for plastics, and one for liquids. The reason for this separation is the risk of storing these materials together in the same location. In addition, the company has a dedicated warehouse where the finished product is manufactured.
To manufacture, the system first needs to generate outgoing moves from each raw material warehouse. This ensures that there is enough stock to produce (or triggers a purchase if not). Then, the raw materials must be validated as received in the production warehouse before the actual manufacturing process can start.
Requirements
- When creating a manufacturing order, outgoing and incoming moves for raw materials must be generated from their respective warehouses into the production warehouse.
- The system must validate that there is enough stock in the raw material warehouses.
- The manufacturing order should only become available for production once all required raw materials are in place.
Configuration
Warehouses
- Go to Inventory > Warehouses > New.
- Create the warehouses: give them a name and configure replenishment.
- The Production Warehouse should be replenished from the raw material warehouses.
- Enable Manufacture in 2 Steps on the Production Warehouse. This allows the system to first gather all components into a pre-production location.
- The Production Warehouse should be replenished from the raw material warehouses.
- The raw material warehouses should only be configured with the Buy replenishment option.
Routes
Since “Manufacture in 2 Steps” was enabled and replenishment options were checked for the Production Warehouse, new routes will be created automatically.
- Select the route "Production Warehouse: Pick components and then manufacture".
- Edit the rule "WH: Stock → Pre-Production".
- Change the supply method to "Take from stock, if unavailable, trigger another rule".
With this setup, Odoo will search for available stock across the warehouses. If stock is found in other warehouses, the system will generate the required outgoing moves from the source warehouses and incoming moves into the Production Warehouse. Note that for this behaviour to work, the route must be available on the product or the category (next step).
Products
Routes must be configured on the products (or at the category level). These routes define where the products will be pulled from and where they will be delivered.
For example:
- The product Plastic will be moved from the Plastics Warehouse into the Production Warehouse (based on the replenishment rules previously configured).
Business Flow
Suppose you need to manufacture 10 units of “Finished Product”. According to its Bill of Materials (BoM), the requirements are:
- 50 units of Plastic
- 100 units of Liquid
- 50 units of Metal
When the manufacturing order is confirmed, Odoo will generate 5 inventory moves:
- 3 outgoing moves (one from each raw material warehouse)
- 1 incoming move into WH/Stock (Production Warehouse)
- 1 picking from WH/Stock into WH/Pre-Production to gather the components
Validations
- When the outgoing moves from the raw material warehouses are validated, the corresponding incoming moves will be marked as “Ready,” meaning the raw materials are on their way to the Production Warehouse. (If the stock move is marked as "Waiting" means that don´t have enough raw materials on this warehouse and should make a replenishment).
- Once the incoming moves into WH/Stock (Production Warehouse) are validated, the picking to Pre-Production becomes available.
- Finally, the manufacturing order is marked as ready to produce, since all required raw materials are now in place.