Creating Routings for Manufacturing Orders in Odoo

A routing is the sequence of operations that produces a product. How to create routings in Odoo.

A routing is the sequence of operations that turns a product's components into the finished product. In Odoo, routings are how production becomes trackable step by step. This piece explains how to create them.

What a routing is

A routing is the ordered list of operations needed to make a product: first this operation, then that one, then the next, each carried out at a work center. Where the bill of materials says what a product is made of, the routing says how it is made. Together they fully describe production.

Routings live on the BOM

In Odoo, the routing is defined on the bill of materials. The BOM holds the operations alongside its component lines. So creating a routing for a product means adding its operations to the product's BOM. There is no separate routing document to maintain apart from the BOM; the BOM carries both the parts and the steps.

How to create a routing

Creating a routing means defining its operations on the BOM. For each operation:

Give it a name that clearly identifies the step, so it is recognisable to planners and to the floor.

Set its sequence, its position in the order of operations, so Odoo knows the steps run in the right order.

Assign it a work center, the resource where the operation is carried out. This is what connects the operation to the plant's capacity and cost.

Set its expected duration, how long the operation takes. This feeds scheduling and the costing of the operation. Odoo can work from a manually set duration, or compute an expected duration based on the actual time recorded on recent work orders for that operation, which lets the estimate improve as real data accumulates.

Repeat for each operation, and the routing is the resulting ordered sequence.

How a routing becomes work orders

The routing is a template. It becomes concrete when a manufacturing order is created for the product: Odoo generates a work order for each operation in the routing. The work orders are the live instances of the routing's operations for that specific production run, each tracked at its work center, moving through its states, accumulating actual time against the expected. So creating a good routing is what makes a manufacturing order trackable operation by operation.

Operation sequencing and dependencies

By default the operations in a routing run in their sequence order. Odoo also supports operation dependencies, defining that a particular operation must be completed before another can start. This lets a routing model production that is not a simple straight line, where some steps genuinely depend on others rather than just following in sequence. A manufacturer whose production has real dependencies between operations can capture that; a manufacturer whose production is a straightforward sequence does not need to.

Keep routings realistic

As with work centers, the value of a routing depends on it being realistic. The operations should be the operations production genuinely involves, in the genuine order; the durations should reflect how long steps actually take; the work center assignments should be correct. A routing built on optimistic durations produces schedules the floor cannot meet. A routing that does not match the real steps produces work orders that do not reflect reality. Build routings from how production actually runs.

The takeaway

A routing in Odoo is the sequence of operations that produces a product, defined on the product's bill of materials. Create it by adding operations to the BOM, each with a name, a sequence position, an assigned work center, and an expected duration. When a manufacturing order is created, the routing becomes work orders, one per operation, tracked on the floor. Use operation dependencies where production is not a simple sequence, and keep routings realistic. For how we approach Odoo for manufacturers, see our manufacturing work.

All posts

Got a Topic Worth Posting?

Suggest a Topic

If a question keeps coming up in your operations, it might be worth its own post.