Flectic
Odoo Manufacturing — RoutingOdoo

Odoo Manufacturing Routing: The Operations Sequence Through Work Centers

Odoo manufacturing routing is the ordered list of operations on a Bill of Materials — each tied to a work center for duration, cost, capacity, and OEE. In Odoo 19 there is no separate routing master: enable Work Orders, define work centers, then build the sequence on the BoM Operations tab so Manufacturing Orders explode into work orders the Shop Floor can execute — with quality checks, scrap, and mid-job routing changes when the floor diverges from the plan.

10 min readUpdated Aug 3, 202626 sources cited

TL;DR — Key takeaways

  • A manufacturing routing is the sequence of operations a product flows through during production, and the work centers those operations run on.
  • Search traffic for “bom and routing in odoo” usually means the same confusion: people expect a separate routing form the way older ERPs and Dynamics 365 provide.
  • Searchers who type “odoo manufacturing routing” or “bom and routing in odoo” often need vocabulary first, not a settings tour.
  • Odoo’s routing feature sits behind a single setting.
01

What a Manufacturing Routing Actually Is

A manufacturing routing is the sequence of operations a product flows through during production, and the work centers those operations run on. It answers two questions that a Bill of Materials (BoM) alone cannot: in what order is this made, and where does each step happen?

In modern Odoo (including Odoo 19), the routing is not a standalone master-data object. It is the ordered list of operation lines on the Operations tab of a Bill of Materials. Each line names an operation (for example, Cut stock, Mill features, Inspect, Pack) and assigns it to a work center. When a Manufacturing Order is confirmed from that BoM, Odoo spawns one Work Order per operation and schedules each against its work center calendar, capacity, and efficiency settings.

This is what separates a routing from a flat parts list. A BoM says what components go into a product; a routing says how, where, and in what order those components are transformed into the finished good. The two stay linked through the Consumed in Operation field on each component line, which ties a raw material to the specific step that uses it so readiness checks know whether first-step parts are available before work begins. That same structure feeds [material requirements planning](/learn/mrp-guide): MRP nets demand and stock; routing turns the make plan into station-level work.

02

BoM and Routing in Odoo: What Each Controls

Search traffic for “bom and routing in odoo” usually means the same confusion: people expect a separate routing form the way older ERPs and Dynamics 365 provide. In Odoo the recipe and the process share one document — the BoM — with two tabs that must stay consistent.

The Components tab is the material recipe: product, quantity, and optional scrap rules. The Operations tab is the process recipe: sequence, work center, duration mode, and optional worksheets. When Work Orders is disabled, the Operations tab never appears and every Manufacturing Order behaves like a single black-box step with no work-center load or OEE. When Work Orders is enabled, confirming an MO explodes both tabs into component moves and work orders.

Linking materials to steps is optional but high-value. Without Consumed in Operation, Odoo tends to treat components as available at MO start. With it, steel is expected at Cut, packaging only at Pack, and Manufacturing Readiness can fail early on the right station instead of after the line is already blocked.

BoM vs routing responsibilities in Odoo Manufacturing
ConcernBoM Components tabBoM Operations tab (routing)
AnswersWhat and how much materialWhere, in what order, and how long
Primary objectsComponent product linesOperation lines + work centers
DrivesPicks, reservations, component costWork orders, capacity, labor/machine cost
Optional linkConsumed in Operation → stepBlocked By (dependencies between steps)
Without Work Orders settingStill works as a parts listHidden — no multi-step routing
03

Routing vs Operations vs Work Centers vs BoM

Searchers who type “odoo manufacturing routing” or “bom and routing in odoo” often need vocabulary first, not a settings tour. Four labels show up in every partner guide and forum thread; they are related but not interchangeable. Get the map wrong and you will “fix capacity” on a BoM line or hunt for a Routing menu that no longer exists as master data.

Think of the stack bottom-up: the BoM is the product recipe document; the routing is the process view of that document (the ordered Operations tab); each operation is one step with duration and dependencies; each work center is the capacity resource that can host many operations across many products. Confirming an MO materializes work orders from those operation lines so the floor can start, stop, scrap, and reassign.

Odoo manufacturing objects: routing, operation, work center, BoM, work order
ObjectWhat it isWhere you configure itWhat breaks if it is wrong
BoMProduct recipe: components + (optional) operations on one documentManufacturing → Products → Bills of MaterialsWrong materials, wrong qty, missing scrap/by-product rules
Routing (process view)Ordered operation list for how the product is made — not a separate master in Odoo 19BoM → Operations tab (after Work Orders is enabled)No multi-step plan; MO is a black box; no station load
OperationOne step: name, sequence, duration mode, work center, optional Blocked By / worksheetBoM → Operations lineWrong station, optimistic times, missing dependencies
Work centerResource: calendar, capacity, efficiency, cost/hour, OEE target, alternativesManufacturing → Configuration → Work CentersFake infinite capacity, bad cost, unusable OEE
Work orderExecutable instance of one operation on one MOCreated on MO confirm; run from MO form or Shop FloorPaper travelers, late progress, garbage duration history
04

Enabling Work Orders and Work Centers

Odoo’s routing feature sits behind a single setting. Open the Manufacturing app, then Configuration, then Settings, and tick the Work Orders checkbox under Operations. That unlocks the Work Centers menu under Configuration and the Operations tab on every Bill of Materials. Without it, BoMs are flat component lists with no operation sequence and no work-order tracking.

For tablet-style execution, enable Shop Floor under the same Operations settings block. Work Orders alone creates work orders and Gantt planning; Shop Floor is what operators use to start/stop timers, log scrap, block a center, and — in Odoo 19 — run Modify Routing actions on a live job. Partner walkthroughs treat Shop Floor as the live capture layer that makes OEE and real duration history usable.

Work centers are where Manufacturing work orders are processed. Official Odoo 19 documentation describes them as the unit for tracking costs, building schedules, planning capacity, organizing equipment, and measuring efficiency. Specifying a work center is required when a work order is defined on the BoM Operations tab. A work center can represent a physical station (Assembly Station 1, CNC Mill 3), a certified team, or any unit of productive capacity. Each one carries working hours, cost per hour, time efficiency, capacity, OEE target, setup time, cleanup time, optional alternative work centers, and often an Equipment tab for linked maintenance assets.

Once Work Orders is on, the Operations tab becomes the heart of the routing. Each line added there is one step in the production sequence — and the ordered set of lines is the routing itself. Older Odoo versions and many third-party ERP screens taught a separate Routing menu; if you are following pre-v14 or generic MRP tutorials that still say “create a routing, then attach it to the product,” stop and use BoM Operations instead — that is the current Odoo model.

05

Work Center Fields That Drive MO Planning

Most weak Odoo schedules share the same root cause: work centers exist, but capacity, efficiency, and calendars still sit at defaults. Infinite-looking Gantt charts look clean until the shop floor has three jobs on one mill and an idle booth next door. The fields below are the ones that change planned duration, load, cost, and OEE targets on every Manufacturing Order that routes through the center.

Capacity is not a substitute for multiple machines. Odoo’s capacity field means parallel units on the same resource (for example a multi-fixture bench). Two independent CNC mills should be two work centers — often linked as alternatives — not capacity = 2 on one form. Wrong capacity inflates throughput in planning and hides real bottlenecks.

Odoo 19 work center fields and what they change on planning
FieldWhat it meansEffect on MO / work-order planning
Working HoursCalendar of when the center can run (shifts, days)Work orders only schedule inside open hours; also underpins OEE available time
Time EfficiencySpeed multiplier vs the operation’s expected duration50% doubles planned time; 200% halves it (Odoo multiplies duration by 100/efficiency)
CapacityUnits processable in parallel at this centerMulti-unit MOs scale duration: capacity 1 on a 10-unit order ≈ 10× cycle time
Specific CapacitiesPer-product capacity overrides (Odoo 19)Same center can run different concurrent quantities by product
Setup Time / Cleanup TimePrep before and reset after a work orderAdded once per work order around the productive cycles
Cost per hourMachine/ops cost + average employee costOperation cost ≈ hourly rate × duration; feeds planned MO cost
OEE TargetGoal % of available time that should be fully productiveBenchmark only — does not change schedule math by itself
Alternative WorkcentersBackup stations if this center is unavailableLets planners or shop floor reassign work when primary is full or offline
Allowed EmployeesWho may run the station (blank = everyone)Shop Floor restricts operators; useful for certified equipment
06

Configuring Operations on a Bill of Materials

  1. 01
    Enable Work Orders

    Go to Manufacturing > Configuration > Settings and enable Work Orders. This exposes the Operations tab on BoMs and the Work Centers menu.

  2. 02
    Create your work centers

    Under Configuration > Work Centers, define each station with Working Hours, Time Efficiency, Capacity (and Specific Capacities if products differ), OEE Target, Setup Time, Cleanup Time, Cost per hour, and any Alternative Workcenters.

  3. 03
    Add operation lines to the BoM

    On the BoM’s Operations tab, click Add a line for each step in sequence. Name the operation, pick its Work Center, and choose a Duration Computation mode. The ordered operation lines are the routing.

  4. 04
    Set duration and computation

    For each operation, choose Set duration manually and enter a Default Duration in minutes, or choose Compute based on tracked time so Odoo averages duration from recent completed work orders at that center.

  5. 05
    Link components to operations (optional)

    On the Components tab, use the Consumed in Operation column to tie each raw material to the step that uses it. This drives Manufacturing Readiness checks before an order starts.

  6. 06
    Add dependencies (optional)

    If Operation Dependencies is enabled in Settings (and ticked on the BoM’s Miscellaneous tab), use the Blocked By field on each operation so a downstream step waits until its predecessor finishes.

07

Multi-Step Routing Example: Cut → Mill → Inspect → Pack

A concrete routing makes the abstract model usable. Take a machined metal bracket built on four work centers. Operations stay sequential unless you deliberately leave dependencies off and allow parallel starts; with Operation Dependencies, Inspect cannot start until Mill is done.

Planned process time for one unit is 12 + 25 + 5 + 3 = 45 minutes of cycle time before setup, cleanup, and time-efficiency multipliers. If the CNC mill is at 90% time efficiency, the mill step alone schedules as roughly 25 × (100/90) ≈ 27.8 minutes. A Capacity of 1 on that mill means a 10-unit MO stacks ten cycles on the same resource unless you split MOs or reassign alternatives.

Sequential vs parallel: default order on the Operations tab is the intended flow. Operation Dependencies (Blocked By) hardens that order so Shop Floor cannot start Pack while Inspect is open. Parallel work is for true concurrent steps (for example paint and dry-cure on separate resources) — model them carefully, or planners will assume free float that the floor does not have.

Sample Odoo routing for a steel bracket (illustrative durations)
SeqOperationWork centerDefault durationNotes
10Cut stockSaw / CNC cut12 minConsumes raw steel plate
20Precision millCNC mill25 minOften the capacity bottleneck
30Quality inspectQC station5 minCan block Pack via dependency
40Pack & labelPack bench3 minConsumes carton and label stock
08

End-to-End Flow: BoM → Operation → Work Center → Work Order → Shop Floor

Search queries like “how Odoo manufacturing handles work orders, routing, and production scheduling” are really asking for one pipeline. Routing is not a report you run later — it is the template that turns a confirmed Manufacturing Order into station work, Gantt load, and tablet actions.

Read the chain left to right: configuration lives on the BoM; execution lives on work orders and the Shop Floor. If any link is missing (Work Orders off, empty Operations tab, default infinite capacity calendars, or paper travelers instead of tablet start/stop), planners see a clean schedule while the floor queues three jobs on one mill.

How Odoo manufacturing routing flows from master data to the tablet
StageWhere in OdooWhat it produces
1. Enable featuresManufacturing → Settings → Work Orders (+ Shop Floor)Operations tab, Work Centers menu, tablet app
2. Define capacityConfiguration → Work CentersCalendars, efficiency, cost/hour, OEE target, alternatives
3. Embed the routingBoM → Operations tab (+ Consumed in Operation)Ordered steps = the production routing
4. Confirm + plan MOManufacturing Orders → Confirm / PlanOne work order per operation; Gantt dates
5. Schedule loadPlanning by Workcenter / by ProductionDrag-and-drop priorities; visual station load
6. Execute liveShop Floor tablet (start/stop, scrap, block)Actual duration, productivity losses, real cost
7. Adjust on the flyShop Floor → Modify RoutingMove to another work center or insert a work order
09

Odoo Manufacturing Routing: Duration and Default Duration

Each operation line has a Duration Computation field with two practical families of modes. Set duration manually lets you type a Default Duration in minutes — Odoo’s estimated time to complete the operation, used for planning manufacturing orders and for determining work center availability. Compute based on tracked time replaces the manual figure with a rolling average from completed work orders (partner guides commonly describe last-N averages such as the last ten runs, or a broader historical average once the process is stable).

Implementation pattern that avoids the chicken-and-egg problem: start every new product on manual duration with a conservative buffer (many plants add roughly 20% until they have shop-floor history), run 20–30 real work orders with honest start/stop on the tablet, then switch mature operations to computed time so the routing self-corrects. Leaving every line on a year-old manual guess is the fastest way to ship optimistic Gantt charts.

Default Duration feeds directly into scheduling. When a Manufacturing Order is confirmed and planned, Odoo uses each operation’s duration, the work center’s Working Hours, Capacity, Setup/Cleanup, and Time Efficiency to place work orders on Planning by Workcenter and Planning by Production Gantt views. Time Efficiency is a percentage: at 50% every operation takes twice as long; at 100% it runs at the duration you typed; above 100% the center is modeled as faster than standard.

A frequent forum complaint is that planned times “ignore” the previous operation. That usually means either Operation Dependencies is off (so the next work order is not blocked and appears ready too early), calendars do not match real shifts, or people expect finite-capacity slot finding while Odoo still places work using duration math without fully rebalancing every queue. Dependencies fix sequence; realistic calendars and capacities fix load; advanced APS tools sit on top when you need multi-constraint optimization beyond ERP.

10

Alternative Work Centers, Time Off, and Load Balancing

Odoo 19 work center forms include Alternative Workcenters: stations where a work order should run if the primary center is not available. Official docs frame this as a backup assignment path; partner guides use the same field to balance load across identical or near-identical machines (CNC-01 with CNC-02 and CNC-03 as alternatives).

Configure alternatives on the work center that appears on the BoM operation, not as a second hidden routing. When CNC-01 is fully booked, under maintenance, or on time off, planners can reassign the work order to an alternative. Alternatives do not have to be identical: set Time Efficiency and Cost per hour per machine so a slower older mill correctly extends planned duration and cost when work spills over.

Work center time off is the planned unavailability path. Odoo’s official workflow: install Time Off, enable developer mode so the Time Off smart button appears on the work center’s Working Hours form, create a Resource Time Off entry with reason and date range, and ensure the primary work center lists at least one Alternative Workcenter with compatible equipment. On a confirmed MO, the Plan button can reassign work orders from the unavailable primary to the alternative while the time-off window is active. After the window ends, Plan no longer forces the alternative unless the primary is at capacity. Without an alternative configured, work orders simply pile on the dead station — the Plan button has nowhere to send them.

Practical rule: create one work center per independent resource, link peers as alternatives, and keep capacity as concurrent units on that resource only. Using capacity to fake multiple machines collapses OEE and load reporting into one fake station and breaks shift comparisons. Octura’s Odoo 19 capacity guidance is blunt: two independent CNCs are CNC-01 and CNC-02 as alternatives, not capacity = 2 on a single form.

11

OEE Tracking on Work Centers

Overall equipment effectiveness (OEE) in Odoo Manufacturing is the share of time a work center is fully productive relative to the time it is active. Official Odoo 19 docs define fully productive time as periods when the center is operational and processing work orders that have not exceeded their expected duration. OEE is shown as a percentage on the work center form smart buttons and under Manufacturing > Reporting > Overall Equipment Effectiveness.

For OEE to mean anything, Time Efficiency, Capacity, OEE Target, and Working Hours must match the real station. Odoo records losses such as reduced speed (work longer than expected duration), material availability (center free but components missing), and equipment failure (blocked for maintenance). Shop Floor start/stop and downtime logging supply the timestamps; batch-closing work orders at shift end destroys the metric.

Industry practice still uses the classic Availability × Performance × Quality framing when coaching plants; Odoo’s product OEE is the ERP’s productive-time ratio against available work, not a separate third-party MES formula. Set an honest OEE Target (for example 87.5% if you expect 7 productive hours in an 8-hour day) and treat the report as a coaching tool, not a punishment score — operators who fear the metric will game start/stop times.

12

How Routing, Work Orders, and Production Scheduling Fit Together

Routing configuration only pays off when the execution path is clear. Confirming a Manufacturing Order with Work Orders enabled creates one work order per BoM operation, copies duration and work center, and fills the MO’s Work Orders tab. Operators complete those work orders on the MO form or in the Shop Floor app; marking a step done advances the flow, especially when dependencies block the next operation until the predecessor finishes.

Scheduling is the planning layer on top: Manufacturing > Planning > Planning by Workcenter (and Planning by Production) shows Gantt load by station. By default, Odoo-style ERP scheduling is closer to infinite capacity than true finite slotting: it places work from durations, calendars, and lead times, but does not always rebalance every queue so that a fully booked mill automatically pushes later jobs to the next free window. Partner capacity guides are blunt about the failure mode — a beautiful Gantt that collapses on contact with three concurrent jobs on one machine. Honest Working Hours, Capacity, Time Efficiency, alternatives, and planner drag-and-drop are the first realism layer; custom finite slot-finding or an APS sits above that when the shop is highly constrained.

Multi-location and multi-warehouse manufacturing is another common pain: one BoM operation list does not magically move semi-finished stock between plants. If Cut runs in Warehouse A and Mill only exists in Warehouse B, model subassemblies with their own BoMs, stock routes, and inter-warehouse replenishment — not a single work center pretending to be two sites. Warehouse manufacture steps (1-step / 2-step / 3-step pick-manufacture-store) control component and FG stock moves; they complement routing, they do not replace it.

When is native Odoo routing enough? Stable discrete BOMs, a handful of work centers per step, honest durations, and Shop Floor discipline. When do teams bolt on external scheduling? High-mix job shops, finite capacity across many constrained resources, and complex changeovers — ERP still owns BOM, WO consumption, and cost; APS owns the slotting. Framing that split early avoids blaming “routing” for problems that are really infinite-capacity assumptions. For the broader manufacturing stack around BoMs, quality, and subcontracting, see the [Odoo manufacturing hub](/learn/manufacturing).

13

Shop Floor Execution and Modify Routing in Odoo 19

Configuration is useless if progress only reaches Odoo after someone updates a paper traveler. Practitioners keep repeating the same 2026 theme on X and partner blogs: paper is not live production data; if work-order progress arrives tomorrow, today’s schedule decision is already late. Shop Floor is Odoo’s answer — operators log in on a tablet, pick their work centers, start and stop operations, and keep the MO record synchronized with the floor.

Odoo 19 Shop Floor actions commonly available during an operation include Register Production / Serial, Add Components, Scrap, Add By-product, Update Instructions, Create a Quality Alert, Request Maintenance, Block, Open Manufacturing Order, and Modify Routing. Those actions are what turn a static routing into a living process when reality diverges from the BoM.

Modify Routing is the floor-level escape hatch. Partner documentation for Odoo 19 describes two paths: Move to work center (reassign the current operation to another station — often an alternative machine when the primary is down or overloaded) and Add Work Order (insert an unexpected step with title, work center, expected duration, and placement after a chosen operation). Use it for real process changes; do not use it as a substitute for fixing the BoM when every job needs the same extra deburr step.

Discipline still matters. Batch-closing work orders at shift end destroys OEE and computed durations. Allowed Employees on the work center can restrict who may run certified equipment. Block for true downtime reasons so loss categories stay clean. Greytrix and other partners pitch the same outcome: replace paper job cards with tablet updates so inventory, time, scrap, and cost stay accurate in the moment.

14

Practical Patterns: Quality, Scrap, Parallel Steps, Multi-Location, Subcontracting

Definition tables win the SERP; plant teams stay for patterns that survive go-live. The five cases below are the ones that show up in Odoo 18/19 forums, partner case studies, and shop-floor rollouts when a “simple” BoM Operations list meets a real factory.

Quality at a specific step. With the Quality app enabled, create a Quality Control Point (QCP) under Quality → Quality Control → Control Points. Set Operations to Manufacturing and, when the Work Order Operation field appears, pick the BoM operation name (for example Assembly or Inspect). Odoo 19 docs use the Coffee Table example: a QCP tied to the Assembly work order creates a check on that step only when an MO for that product is confirmed — not a vague end-of-MO inspection after the damage is already built in. Check types that fit stations include Pass–Fail, Measure (norm + tolerance), Instructions, Register Production, and Take a Picture. Pair QCPs with Operation Dependencies so Pack cannot start until Inspect has closed.

Scrap at the operation, not only at close. Official scrap workflow: from a Manufacturing Order use Actions → Scrap; from Shop Floor open the MO card actions and choose Scrap. Shop Floor is limited to scrapping components; finished goods are scrapped from the Manufacturing app once the MO is Done. Scrapped qty moves to Virtual Locations/Scrap for loss tracking without inventing a fake physical bin. Use Replenish Scrapped Quantities only when the warehouse runs two- or three-step manufacturing and you need a pick to replace the lost component. Routing design tip: put high-risk operations early and attach QCPs there so scrap hits before expensive downstream capacity is burned.

Parallel vs sequential operations. Sequence numbers alone are a suggested order. Hard sequence requires Work Order Dependencies (settings) + Operation Dependencies on the BoM Miscellaneous tab + Blocked By on each dependent line. Two operations that share no Blocked By relationship can be ready at the same time — use that only when the floor truly runs concurrent resources (for example powder-coat and hardware kitting on separate centers). If every step must wait on the previous station, set Blocked By end-to-end or operators will start Pack while Mill is still open.

Multi-location inside one MO. A common Odoo 18 thread: each operation happens in a different stock location with its own input/output, but the MO still looks like one plant job. Practitioners’ rule of thumb: treat Location ≈ Work Center — if the step crosses a hard location boundary that needs its own stock moves and traceability, model it as a separate operation (or a multi-level subassembly BoM), not one operation with magical multi-site stock. Warehouse manufacture steps (1/2/3-step) still own component pick and FG putaway; BoM Operations own the process sequence. Do not expect a single work center field to replace inter-warehouse routes in [inventory](/learn/inventory).

Subcontracting is not “one more operation on the internal routing.” Odoo models subcontracted products with subcontracting-type BoMs and purchase flows (basic subcontract, resupply components to the subcontractor, or dropship components to the subcontractor). Internal multi-step routing stays on Manufacture-type BoMs with work centers you own. Multi-tier subcontracting (vendor A feeds vendor B) needs separate BoMs, vendors, and stock routes — partner manufacturing case studies in 2026 treat that as an MRP + inventory design problem, not a single Operations-tab sequence. Keep the boundary clean so job costing does not mix your shop’s Cost per hour with a PO service line you never configured.

By-products and mid-job structure changes. Configure by-products on the BoM when a step yields a salable or reusable co-product; Shop Floor can also Add By-product during a live work order for one-off yields. Structural changes that every future MO needs belong on the BoM Operations tab; one-off inserts belong in Modify Routing. For quality program design beyond station checks, see the [Odoo quality](/learn/quality) guide.

Routing design patterns and the Odoo mechanism to use
Floor needOdoo mechanismAvoid
Inspect before next stationQCP on Manufacturing + Work Order Operation; Blocked By on downstream opsOnly end-of-MO quality with no station link
Scrap bad parts mid-flowShop Floor Scrap (components) or MO Actions → Scrap; Virtual Locations/ScrapSilently lowering produced qty with no scrap order
True concurrent stepsNo Blocked By between independent ops on different work centersAssuming sequence numbers alone enforce wait
Different physical cellsOne work center (or sub-BoM) per cell; stock routes between warehousesOne MO location pretending to be two plants
Vendor makes a step or whole productSubcontracting BoM + PO / resupply / dropship flowsInternal work center named “Vendor” with no PO
Primary machine down for maintenanceAlternative Workcenters + work center time off; Plan on the MOLeaving WOs queued on a dead station
15

How Routing Drives Cost

Routing is where manufacturing conversion cost accumulates. Odoo computes an operation’s cost from the hourly cost of operating the work center and the duration of the operation. Cost per hour on the work center has two parts — a per-workcenter figure for the machine and operating expense, and a per-employee figure for average labor.

The arithmetic is straightforward: cost equals the work center’s hourly rate multiplied by the operation’s duration. Official Odoo documentation walks through Assembly Station 1 at $30.00 per hour: a Cut felt operation with a 7-minute Default Duration costs $3.50, and an Attach pad to felt operation at 15 minutes costs $7.50. Sum those operation costs across the routing and add component costs, and you have the BoM’s estimated Manufacturing Order cost.

Odoo draws a deliberate line between this MO cost — the planned cost built from the BoM configuration — and the real cost recorded after production. Real cost uses each employee’s actual hourly rate and the durations actually logged on the shop floor. The two diverge whenever operations run longer than Default Duration, more components are consumed than planned, or component purchase prices shift. The routing is the structure that makes both numbers calculable.

16

Where Is Routing in Odoo? The Naming Trap

If you are searching “where is routing in Odoo,” the short answer for production is: Bill of Materials → Operations tab, after Work Orders is enabled. There is no modern Odoo 19 menu named Manufacturing → Routings that holds a reusable master like older versions and many competing ERPs. The technical model still uses operation lines (historically mrp.routing.workcenter records) but they hang off the BoM, not a separate routing header you attach to many products.

There is a second trap on the same form. The field literally labelled Routing on a BoM’s Miscellaneous tab is not the production routing. Official Odoo 19 BoM documentation defines it as a warehouse stock-routing concept — it selects which warehouse manufacturing operation type (pull rule) applies when a product is produced across multiple warehouses, defaulting to that warehouse’s Manufacturing operation type.

Mixing the two up leads to misconfigured production flows and stock rules that never fire. If you are configuring how a product is made, you work on the Operations tab. If you are configuring how stock moves between warehouse locations, you work on the Miscellaneous tab Routing field. They share a label and almost nothing else. Teams migrating from Dynamics 365 or legacy Odoo often look for a Routing No. on the product form — that pattern lives on Business Central, not on current Odoo manufacturing.

17

The Dynamics 365 Equivalent for SMEs

Dynamics 365 offers two routing models depending on the edition, and both model the same concept as Odoo’s Operations tab — a sequence of operations through work centers — but with one structural difference.

In Dynamics 365 Business Central, the SMB edition, a Routing is explicit master data assigned to a produced item via the Routing No. field. It has a Status (New, Under Development, or Certified), a Type (Serial, ordered by Operation No., or Parallel, ordered by Next Operation No.), and routing lines carrying Operation No., resource Type (Work Center or Machine Center), Routing Link Code, Run Time, Setup Time, and Concurrent Capacities. Setup time is calculated per production order, while run time is calculated per produced item. Duration follows the formula Run Time divided by Efficiency divided by Capacity — so 2 hours of run time at 80% efficiency takes 2.5 hours, and at 200% efficiency it takes 1 hour. BC defaults to infinite capacity scheduling, with optional finite-capacity scheduling on resources flagged as constrained.

In Dynamics 365 Supply Chain Management, the enterprise edition, Microsoft defines a route as the process for producing a product: it describes each step (operation) and the order they must be performed in, along with required resources, setup and run time, and how cost is calculated. A route definition has four elements — Route (order of operations), Operation (a reusable named step), Operation relation (setup/run time, cost categories, and resource requirements that vary by route, product, and site), and Route version (which route applies for a given product, by site, quantity, and date). F&O supports both simple sequential routes and route networks with parallel branches, primary and secondary parallel operations, resource-requirement-based scheduling where operations resolve to any capable resource rather than a fixed machine, and routes shared across sites.

The mapping is clean: an Odoo Work Center maps to a BC Work Center or an F&O Operations Resource; an Odoo operation line maps to a BC Routing Line or an F&O Operation plus Operation Relation; Odoo’s Default Duration maps to BC Run Time or F&O Run Time; Odoo’s Consumed in Operation maps to BC’s Routing Link Code. The key structural difference is that D365 separates the routing from the BoM as its own reusable master-data entity — one routing can serve many items — whereas Odoo binds the operation list directly to the BoM. Neither approach is universally better; Odoo’s is simpler to configure for a single product family, while D365’s reusable routing scales better across sites and shared processes. For a deeper Business Central production walkthrough, see [Business Central manufacturing](/learn/bc-manufacturing).

18

When It Makes Sense to Bring in Help

Configuring a routing sounds mechanical, but the decisions behind it — how granular your work centers should be, whether to use manual or tracked durations, how to split machine cost from labor cost, how to set alternatives and OEE targets, and whether to model parallel operations or keep the flow strictly serial — shape every cost number and every schedule the system produces afterwards. Getting the routing wrong at rollout means every Manufacturing Order cost, every lead time, and every capacity plan inherits the error.

That is where a dual-platform implementation partner earns its fee. Because Flectic implements both Odoo and Dynamics 365, the routing gets modelled against the right structural pattern for the platform you actually choose — not retrofitted from a template built for the other one. If you are weighing up an ERP move or reconfiguring an existing manufacturing setup, book an ERP Readiness Call and we will walk through your routing, work centers, and cost flow before any commitment.

FAQ

Frequently asked questions

Where is routing in Odoo Manufacturing?

On the Bill of Materials → Operations tab, after you enable Work Orders under Manufacturing → Configuration → Settings. Each operation line (work center + duration + sequence) is the production routing. There is no separate Routing master menu in Odoo 19 the way older docs and Dynamics 365 describe.

Is “Routing” in Odoo the same as the Operations tab on a BoM?

No — and this is a common trap. The field labelled Routing on a BoM’s Miscellaneous tab is a warehouse stock-routing (pull-rule) concept that selects a warehouse’s manufacturing operation type. The production routing — the sequence of operations through work centers — is configured on the Operations tab of the BoM. They share a name but control different things.

What is the difference between a BoM and routing in Odoo?

The BoM Components tab defines what materials go into the product. The BoM Operations tab is Odoo’s routing: ordered steps, work centers, and durations. In Odoo 19 there is no separate routing object; you enable Work Orders, then build both material and process on the same BoM. Dynamics 365 keeps routing as standalone master data instead.

How is an operation’s cost calculated in Odoo Manufacturing?

Odoo computes an operation’s cost from the hourly cost of operating its work center multiplied by the operation’s duration. The Cost per hour on a work center has two parts: a per-workcenter figure (machine and operating expense) and a per-employee figure (average labor cost). At a $30.00/hour work center, a 7-minute operation costs $3.50 and a 15-minute operation costs $7.50.

What is the difference between Default Duration and Compute based on tracked time?

Set duration manually lets you type a Default Duration in minutes — Odoo’s estimate used for planning orders and work center availability. Compute based on tracked time replaces the manual value with a rolling average from recent work orders completed at that work center, which keeps the routing accurate as real cycle times drift.

Why don’t planned work-order times wait for the previous operation?

Usually Operation Dependencies is off, so the next work order is not blocked by the predecessor. Enable Work Order Dependencies in Manufacturing settings, tick Operation Dependencies on the BoM Miscellaneous tab, and set Blocked By on each dependent operation. Also verify work-center calendars and capacity; duration math alone does not fully rebalance finite queues.

What do alternative work centers do in Odoo?

On a work center form, Alternative Workcenters list stations that can run the same work when the primary is unavailable or overloaded. Odoo docs describe them as the place a work order should be carried out if this center is not available. Set per-center Time Efficiency and cost so slower backup machines still produce honest schedules and costs.

How does Odoo calculate OEE for a work center?

Odoo’s OEE is the percentage of active time a work center is fully productive — operating and finishing work orders within expected duration. It requires Work Orders enabled and sensible Time Efficiency, Capacity, OEE Target, and Working Hours. Reports live under Manufacturing > Reporting > Overall Equipment Effectiveness and on each work center’s OEE smart button.

Does Dynamics 365 have the same routing feature as Odoo?

Yes, but structured differently. Dynamics 365 Business Central models a Routing as standalone master data with a Routing No., Serial or Parallel type, Setup Time per order and Run Time per item, and Duration = Run Time / Efficiency / Capacity. Dynamics 365 Supply Chain Management adds route versions, operation relations, and route networks with parallel branches. D365 separates routing from the BoM as reusable master data; Odoo embeds operations on the BoM.

Do I need to enable anything before I can add operations to a BoM?

Yes. The Operations tab and the Work Centers menu only appear after you enable Manufacturing > Configuration > Settings > Work Orders. Without that checkbox ticked, BoMs are flat component lists with no operation sequence, no work orders, and no routing-driven cost, OEE, or multi-step scheduling. Enable Shop Floor as well if operators will start/stop work on tablets.

Can operators change the routing on the shop floor?

In Odoo 19 Shop Floor, Modify Routing lets an operator move the current work order to another work center or add a work order (extra step) with duration and placement after an existing operation. Use it for real-time exceptions; update the BoM when the same extra step is needed on every future MO.

Does Odoo do finite capacity scheduling out of the box?

Odoo uses work-center calendars, capacity, efficiency, setup/cleanup, and Gantt planning, but default behavior is closer to infinite-capacity placement than a full APS that re-slots every queue automatically. For SMEs, realistic calendars, alternatives, and planner drag-and-drop usually matter more than custom finite solvers; highly constrained job shops may still add APS on top of ERP.

How do you handle multi-location manufacturing with one routing?

Do not force two plants into one work center. Give each site its own work centers and calendars, use separate BoMs or multi-level subassemblies when semi-finished goods move between warehouses, and configure inter-warehouse routes for stock. Warehouse manufacture steps (1/2/3-step) control picks and putaway; BoM Operations still define the production sequence at each plant. Inside one plant, if each step has its own stock location, practitioners map location ≈ work center and model separate operations rather than one MO location with hidden multi-site moves.

How do quality checks attach to a routing operation in Odoo?

Create a Quality Control Point in Quality → Quality Control → Control Points, set Operations to Manufacturing, and choose the specific Work Order Operation that matches the BoM operation name. Odoo then generates a quality check for that work order when the MO is confirmed (for example Assembly on a Coffee Table product), instead of only at MO close. Use Pass–Fail, Measure, or Instructions check types as needed, and Blocked By on later operations so the next station cannot start until the check is done.

How do you scrap components or finished goods during a multi-step routing?

From Shop Floor, open the MO card actions and choose Scrap to scrap components during production. From the Manufacturing app, use Actions → Scrap on the MO; finished products can be scrapped once the MO is Done. Scrapped qty moves to Virtual Locations/Scrap for waste tracking. Enable Replenish Scrapped Quantities only with two- or three-step manufacturing when you need a replacement pick. Do not silently edit produced quantity — that hides yield loss from cost and OEE.

Can BoM operations run in parallel in Odoo Manufacturing?

Yes when they are not blocked by each other. Operation Dependencies + Blocked By force a hard wait; without Blocked By, independent operations on different work centers can be ready together. Use parallel only for truly concurrent floor work. Sequence numbers alone do not enforce a wait — if Inspect must finish before Pack, set Pack’s Blocked By to Inspect.

Is subcontracting configured as an operation on the manufacturing routing?

No. Internal routing lives on Manufacture-type BoMs as work-center operations. Subcontracted products use subcontracting-type BoMs with purchase flows — basic subcontract (vendor supplies the finished good), resupply (you send components), or dropship components to the subcontractor. Multi-tier vendor chains need separate BoMs and stock routes, not a fake internal work center named after the vendor.

How does work center time off reassign work orders to alternatives?

Configure Alternative Workcenters on the primary station, mark the primary unavailable via Resource Time Off on its Working Hours (Time Off app + developer mode for the smart button), then on a confirmed MO click Plan. Odoo can move the work order’s work center to the alternative while the time-off window is active. Without an alternative, work piles on the unavailable center. After time off ends, Plan no longer forces the alternative unless the primary is at capacity.

Sources & methodology

26 cited

Every pricing figure and statistic on this page is traced to a primary or vendor source with a verification date. Where partner pages are cited, their platform bias is disclosed in-line.

  1. 01
    In Odoo Manufacturing, a routing is defined on the Operations tab of a Bill of Materials; each line is an operation tied to a work center. The feature is enabled by turning on Work Orders under Manufacturing > Configuration > Settings.odoo.com · verified Official Odoo 19.0 documentation describing the Operations tab, Duration Computation, Default Duration, Consumed in Operation, and the warehouse Routing field on the Miscellaneous tab.
  2. 02
    Odoo work centers are where Manufacturing work orders are processed, and can be used to track costs, make schedules, plan capacity, organize equipment, and track efficiency. They only appear if the Work Orders setting is enabled. Fields include Time Efficiency, Capacity, OEE Target, Setup/Cleanup, Cost per hour, Alternative Workcenters, and Specific Capacities.odoo.com · verified Official Odoo 19.0 work center configuration documentation (fetched 2026-08-03).
  3. 03
    Odoo OEE represents the amount of time a work center is fully productive as a percentage of the time it is active. Fully productive time requires the center to be operational and processing work orders that have not exceeded expected duration. Loss modes include reduced speed, material availability, and equipment failure.odoo.com · verified Official Odoo 19.0 Overall equipment effectiveness documentation (fetched 2026-08-03).
  4. 04
    Odoo computes an operation's cost from the hourly cost of operating the work center and the duration of the operation. At Assembly Station 1 ($30.00/hr), a 7-minute Cut felt operation costs $3.50 and a 15-minute operation costs $7.50.odoo.com · verified Official Odoo 19.0 documentation on Manufacturing Order costs, including the worked example and the MO cost vs real cost distinction.
  5. 05
    Odoo supports optional Work Order Dependencies, configured via the Operation Dependencies checkbox on the BoM's Miscellaneous tab and the Blocked By field on the Operations tab, with planning shown in Planning by Workcenter and Planning by Production Gantt views.odoo.com · verified Official Odoo 19.0 documentation on Work Order Dependencies, describing the Operation Dependencies checkbox and Blocked By field.
  6. 06
    Manufacturing orders and work orders: after a BoM is selected, Components and Work Orders tabs auto-populate; an MO is processed by completing work orders on the MO or from the Shop Floor module.odoo.com · verified Odoo documentation for manufacturing orders and work orders execution path.
  7. 07
    In Odoo 19, routings are embedded directly into the Bill of Materials under the Operations tab (no separate routing object); partner guides cover multi-step routings, alternative work centers, OEE targets, and capacity realism for shop-floor scheduling.octurasolutions.com · verified Octura Solutions Odoo 19 work centers and routing guide (published March 2026).
  8. 08
    Alternative work centers allow backup stations when the primary is at full capacity or unavailable; configure on the work center form.infintor.com · verified Infintor Odoo 19 work centers and routing setup guide (April 2026).
  9. 09
    In Dynamics 365 Supply Chain Management, a route defines the process for producing a product, describing each operation and its order, with four elements: Route, Operation, Operation relation, and Route version.learn.microsoft.com · verified Microsoft Learn documentation for D365 SCM routes and operations.
  10. 10
    In Dynamics 365 Business Central, routings capture the process requirements of a produced item. Setup time is calculated per production order; run time per item. Duration = Run Time / Efficiency / Capacity.learn.microsoft.com · verified Microsoft Learn documentation for D365 Business Central routings.
  11. 11
    In D365 Business Central, capacity is organized hierarchically as Work Center Group to Work Center to Machine Center, and the system defaults to infinite capacity scheduling with optional finite capacity on constrained resources.learn.microsoft.com · verified Microsoft Learn documentation for D365 Business Central work and machine centers.
  12. 12
    Shop-floor practitioners stress live work-order progress in ERP rather than delayed paper travelers; production visibility and OEE-linked scheduling remain common 2026 manufacturing themes on X.x.com · verified X post (Jul 2026) on work-order progress needing to reach Odoo live, not after paper travelers.
  13. 13
    Manufacturing cash-flow and OTIF issues are often rooted in poor scheduling and lack of shop-floor visibility, not finance systems alone.x.com · verified X post (Jul 2026) linking OTIF and cash flow to scheduling visibility and OEE-oriented shop floor performance.
  14. 14
    Odoo 19 Shop Floor includes Modify Routing with Move to work center and Add Work Order, plus Register Production/Serial, Scrap, Add Components, Block, Quality Alert, and related operator actions during a live work order.cybrosys.com · verified Cybrosys Odoo 19 Shop Floor control and work center management guide (published Apr 28, 2026).
  15. 15
    Out of the box Odoo scheduling is often described as infinite-capacity placement (dates from durations and lead times without full finite rebalancing); partner guides stress realistic capacity, calendars, alternatives, and custom finite slot logic when needed.octurasolutions.com · verified Octura Solutions Odoo 19 work centers and routing guide, capacity planning section (March 2026).
  16. 16
    Warehouse-level manufacture configuration in Odoo supports 1-step, 2-step (pick then manufacture), or 3-step (pick, manufacture, store) flows per warehouse — complementary to BoM operations routing.odoo.com · verified Odoo manufacturing orders and work orders documentation covering warehouse manufacture steps.
  17. 17
    If work-order progress reaches Odoo only after paper travelers are updated, the ERP is behind the shop floor; live capture at the source is required for timely decisions.x.com · verified X post @LinkyBusiness (Jul 22, 2026) on paper travelers vs live work-order progress in Odoo.
  18. 18
    Paper job cards slow production; Odoo Shop Floor lets operators update work, time, and scrap from a tablet for live production and accurate costs.x.com · verified X post @Greytrix_BS (Jul 29, 2026) on Odoo Shop Floor tablet vs paper job cards.
  19. 19
    If production events only reach Odoo later, the workflow is still guessing; real shop-floor signals must connect to the record.x.com · verified X post @LinkyBusiness (Jul 27, 2026) on connecting shop-floor signals to Odoo in real time.
  20. 20
    Quality control points can target Manufacturing operations and, via Work Order Operation, a specific work-order step (e.g. Assembly on a Coffee Table) so checks generate for that operation when the MO is confirmed.odoo.com · verified Official Odoo 19.0 Quality control points documentation (fetched 2026-08-03).
  21. 21
    Scrap during manufacturing: MO Actions → Scrap; Shop Floor scrap is components-only; finished goods scrap when MO is Done; items move to Virtual Locations/Scrap; Replenish Scrapped Quantities applies to 2/3-step manufacture warehouses.odoo.com · verified Official Odoo 19.0 scrap during manufacturing documentation (fetched 2026-08-03).
  22. 22
    Work center time off requires alternatives, Time Off app, and Resource Time Off on Working Hours; Plan on the MO can reassign work orders to Alternative Workcenters while the primary is unavailable.odoo.com · verified Official Odoo 19.0 work center time off documentation (fetched 2026-08-03).
  23. 23
    Subcontracting in Odoo is a third-party manufacturing flow with basic, resupply, and dropship variants configured via subcontracting BoMs and purchase — separate from internal multi-step work-center routing.odoo.com · verified Official Odoo 19.0 subcontracting overview (fetched 2026-08-03).
  24. 24
    Multi-location manufacturing routes in Odoo v18: practitioners map location to work center; an operation that crosses multiple locations should be multiple operations (or steps), not one op spanning sites.reddit.com · verified Reddit r/Odoo thread on multi-location manufacturing routes (2025; still cited for Odoo 18/19 patterns as of 2026-08-03).
  25. 25
    Partner manufacturing case studies emphasize multi-tier subcontracting, inventory linkage, and accurate job costing as MRP design problems beyond a single internal routing.x.com · verified X post @BYCSHK (Jul 28, 2026) on Odoo MRP multi-tier subcontracting and job costing.
  26. 26
    Capacity on a work center is concurrent units on that resource; independent machines should be separate work centers (often alternatives), not inflated capacity on one form.octurasolutions.com · verified Octura Solutions Odoo 19 work centers and routing guide — capacity vs parallel machines (March 2026).

Get Your Routing Right the First Time

Flectic implements both Odoo and Dynamics 365 for manufacturers, so your work centers, operations, and cost-per-hour flow are modelled against the right pattern for the platform you actually choose. Our AI-Accelerated Delivery is designed to deliver up to 3x faster, with a routing structure that produces trustworthy costs and schedules from day one. Book an ERP Readiness Call and we will review your manufacturing setup before you commit.

Book an ERP Readiness Call
Response within one business day