What You'll Learn
By the end of this tutorial, you'll be able to create and configure work centers with realistic capacity and efficiency settings, build operation-level routings, attach those routings to Bills of Materials, and understand how Odoo uses that data downstream in scheduling and costing. Prerequisites: you should have Odoo's Manufacturing module installed and at least one product with a BOM already in place. Budget about 45 to 60 minutes for a first pass, longer if you're configuring multiple production lines.
Phase 1: Enable Routings in Your Manufacturing Settings
Routings aren't active by default. Before you can attach operations to a BOM, you need to turn on the feature.
- Go to Manufacturing → Configuration → Settings.
- Scroll to the Operations section and enable Work Orders. This is the setting that activates routings and the work order tab on manufacturing orders.
- While you're here, consider enabling Work Center Time Efficiency if you want Odoo to factor in realistic throughput (more on that in Phase 2).
- Click Save.
Once saved, you'll notice a new Operations tab appears on BOM forms, and manufacturing orders will show a Work Orders tab when a routing is attached.
Phase 2: Create and Configure Work Centers
A work center in Odoo represents a physical resource where production happens: a CNC machine, an assembly bench, a paint booth, a QC station. How you configure it directly affects scheduled load, planned duration calculations, and your manufacturing cost reporting.
- Navigate to Manufacturing → Configuration → Work Centers and click New.
- Give the work center a clear, operational name, "CNC Mill #3" is more useful than "Machine A" when operators are reading a work order on a tablet.
- Set the Working Hours field. This links to a schedule you define under Employees → Configuration → Working Schedules. A standard "40h/week Mon-Fri" schedule is usually the right starting point; adjust for shift work if needed. This is the field Odoo uses to determine available capacity when scheduling work orders.
- Set Time Efficiency as a percentage. If your CNC mill runs at 80% efficiency due to setup time and minor stoppages, enter 80%. Odoo will gross up planned durations automatically: a 60-minute operation becomes 75 minutes of scheduled time on that work center. Most shops set this between 75% and 90% for equipment-heavy operations.
- Set Capacity. This field represents how many units the work center can process in parallel. For a single machine, leave it at 1. For a bench where three assemblers work simultaneously, set it to 3.
- Under the Costing section, enter the Cost per Hour. This is what Odoo will charge to manufacturing orders for time logged at this work center. Be deliberate here: it should reflect your fully-loaded rate (labor, equipment depreciation, overhead allocation) for that station, not just raw labor cost. A work center running at $45/hour vs. $90/hour will produce very different standard cost outputs.
- Optionally, assign an OEE Target (Overall Equipment Effectiveness) if you want the work center dashboard to track performance against a benchmark. 85% is a common industry target for equipment-driven work centers.
- Click Save. Repeat for every work center you plan to route work through.
Getting the cost-per-hour right at this stage matters more than most teams expect. It feeds directly into standard cost calculations and variance reporting, two things finance will ask about the moment you go live.
Phase 3: Build a Routing (Operations Sequence)
A routing defines the sequence of operations required to manufacture a product: cut, weld, grind, assemble, inspect. Each step is assigned to a work center, given a planned duration, and optionally linked to a quality check. Routings live on the BOM, so one product can have different routings for different BOM types if needed (e.g., a standard production BOM vs. a repair BOM).
- Open the BOM for the product you want to configure: Manufacturing → Products → Bills of Materials, then select the relevant BOM.
- Click the Operations tab. You'll see an empty table if no operations have been added yet.
- Click Add a line to create the first operation. Fill in:
- Operation: a descriptive name like "Laser Cut", "Weld Frame", or "Final Inspection". You can create new operation types on the fly here.
- Work Center: select the work center where this step runs.
- Duration Computation: choose between Set Duration (a fixed time regardless of quantity) or Compute Based on Tracked Time (Odoo learns from actuals over time). For initial configuration, use Set Duration and enter a realistic planned time.
- Default Duration: enter the planned minutes per work order. If welding a single frame typically takes 25 minutes, enter 25. Odoo will multiply this by the work center's time efficiency to determine total scheduled time.
- Add additional lines for each subsequent operation, in sequence. Odoo will run them in the order listed. If two operations can run in parallel (e.g., sub-components being prepared simultaneously), note that in your work center capacity settings rather than trying to reorder the routing.
- If you have quality checks configured, you can attach them here using the Quality Control Points column (visible if Odoo's Quality module is installed). This triggers an in-process check at that specific operation rather than only at receiving or shipping.
- Click Save on the BOM.
Phase 4: Understand How Odoo Uses This Data
Configuration is only useful if you know what the system does with it. Here's where work center and routing data surfaces in practice.
On the Manufacturing Order
When you create a manufacturing order for a product with a routing, the Work Orders tab populates automatically with each operation, its assigned work center, and its planned duration. Operators can open each work order individually, log start and stop times, and record any quality issues. The Shop Floor view (accessible from the tablet-optimized interface at Manufacturing → Shop Floor) surfaces exactly this information in a cleaner format for the production floor.
On the Work Center Dashboard
Navigate to Manufacturing → Reporting → Work Centers to see a live view of planned vs. actual time per work center, OEE performance against your target, and availability. This is where the efficiency and capacity settings from Phase 2 start to matter: if you set capacity to 1 and schedule three work orders that all require the same work center at the same time, Odoo's planning view will show the overload.
In Product Costing
If your product uses Standard Price or Average Cost (AVCO) costing and you've run Compute Standard Price on the product form, Odoo rolls up the operation costs from the routing into the product's standard cost. The formula is straightforward: planned duration (in hours) multiplied by the work center's cost-per-hour, summed across all operations, added to component costs. This means a misconfigured duration or a wrong hourly rate will ripple into every margin calculation for that product.
In MRP Scheduling
When the MRP scheduler runs (via Manufacturing → Planning → Run Scheduler), it uses work center availability and operation durations to back-schedule production. If your working hours are set correctly and your durations are realistic, the scheduled start dates on suggested manufacturing orders will actually be achievable. If not, you'll find every MO scheduled for "start immediately" regardless of shop load.
Phase 5: Common Configuration Mistakes to Avoid
A few patterns come up repeatedly in fresh Odoo manufacturing setups.
- Leaving Time Efficiency at 100%: Most equipment doesn't run at 100% efficiency. If you leave this at the default, your planned durations will be systematically optimistic and your standard costs will understate true production time.
- Setting cost-per-hour to zero: This is a common shortcut during initial setup that gets forgotten. The result is products with no labor or overhead in their standard cost, which breaks margin reporting from day one.
- Creating one catch-all work center: If every operation routes to a single "Production Floor" work center, you lose the ability to see where capacity bottlenecks are, which machine is driving variance, and what your true cost per operation type is. It takes more setup time upfront, but modeling real work centers pays back in reporting granularity.
- Not assigning Working Hours: Without a working schedule, Odoo can't calculate available capacity or produce realistic schedule dates. This one line on the work center form is worth the two minutes it takes to configure.
Phase 6: Test the Configuration End-to-End
- Create a test manufacturing order for the product whose BOM you just configured: Manufacturing → Manufacturing Orders → New. Select the product and confirm.
- Open the Work Orders tab on the confirmed MO. Verify that each operation from your routing appears, with the correct work center and planned duration.
- Click into one work order and use Record Production or the timer controls to simulate logging time. Check that the actual duration records correctly against the planned duration.
- After marking all work orders done, click Produce on the MO to finish it. Then navigate to Inventory → Reporting → Valuation (or the product's costing history) to confirm that the work center costs posted correctly to the finished goods entry.
- If the numbers look off, trace back to the work center's cost-per-hour and the operation's planned duration. Those two fields drive the cost posting almost entirely.
Where This Fits in the Broader System
Work center and routing configuration is one layer of a larger stack. Once this is working, the data flows outward: confirmed sales orders drive MRP demand, MRP triggers manufacturing orders, manufacturing orders consume components from inventory and post labor costs to the general ledger, and quality check results attach to specific operations so your QC team has traceability from a customer complaint back to the exact work order and operator.
That connection between shop floor activity and financial reporting is what makes Odoo worth the configuration effort. Your implementation partner can help you decide how granular to go with work centers and routings based on your specific product mix and reporting requirements, but the architecture described here applies broadly across discrete manufacturing environments.
| Configuration Element | Where to Set It | What It Affects Downstream |
|---|---|---|
| Time Efficiency (%) | Work Center form | Planned duration on work orders, scheduled load |
| Capacity | Work Center form | Parallel workload, MRP scheduling feasibility |
| Cost per Hour | Work Center form (Costing section) | Standard cost rollup, COGS posting, margin reporting |
| Working Hours | Work Center form (links to schedule) | Available capacity, scheduled start/end dates |
| Operation Duration | BOM → Operations tab | Work order planned time, cost per operation |
Is Odoo What You Need?
Our team will help you discover if Odoo is the right fit, and get you a tailored demonstration of Odoo for your use case.