Odoo's work order feature splits a manufacturing order into sequential operations across defined workcenters. Without work orders, a manufacturing order is a single step: consume components, produce finished goods. With work orders enabled, production follows a routing that specifies which machines or teams perform each step, in what sequence, and for how long.
Enabling work orders#
Manufacturing → Configuration → Settings → Work Orders: enable.
This activates:
- Routing configuration on bills of materials.
- Workcenter definitions.
- Work order progression in the manufacturing tablet view.
- Quality check integration on specific operations.
Workcenter configuration#
Manufacturing → Configuration → Workcenters → New.
| Field | Description |
|---|---|
| Name | Assembly Line 1, Welding Station, QC Bench |
| Capacity | Units that can run simultaneously (default 1) |
| Efficiency Factor | Actual output ratio (80% means plan 100, expect 80 effective) |
| OEE Target | Overall Equipment Effectiveness benchmark |
| Time Before Production | Setup time (minutes) per order |
| Time After Production | Cleanup time (minutes) per order |
| Cost per hour | Labor/machine cost for valuation |
| Working Time | Calendar (8-hour shifts, 24/7, etc.) |
Capacity matters for scheduling: A workcenter with capacity 3 can handle three parallel work orders. Setting capacity correctly prevents the scheduler from double-booking.
Routing and operations#
A routing (Bill of Materials → Operations tab) defines the sequence of operations for a product:
- Cutting (Cutting Machine, 30 min)
- Welding (Welding Station, 45 min)
- Quality Check (QC Bench, 15 min)
- Packaging (Assembly Line, 20 min)
Each operation specifies:
- Workcenter: where the operation runs.
- Duration (minutes): planned time per manufacturing order.
- Duration Computation: Based on component qty (scales with order size) or fixed.
- Quality Point: triggers a quality check on this operation.
Work order progression#
When a manufacturing order is confirmed with a routing, Odoo creates one work order per operation. Work orders form a chain: each must complete before the next starts (unless the routing allows overlap - set "Parallel" on operations that can run simultaneously).
The tablet view (Manufacturing → Operations → Work Orders → Tablet View) presents work orders to floor workers:
- Select a work order.
- Record produced quantities.
- Log time (manual entry or timer).
- Pass quality checks (if configured).
- Mark as done.
Work order status: Waiting → Ready → In Progress → Done.
Work order blocking: A work order in "Waiting" status means its predecessor is not yet done. The tablet view shows this as greyed-out.
Quality check integration#
With the Quality module (Manufacturing → Configuration → Settings → Quality → Quality Checks), attach quality control points to specific operations.
Quality → Configuration → Control Points → New:
| Field | Value |
|---|---|
| Title | Weld Integrity Check |
| Product Category | Fabricated Metal |
| Operation | Welding (from the routing) |
| Control Frequency | Every time / Sample (1 in N) |
| Type | Pass/Fail, Measure, Photo, Instruction |
| Team | QC Department |
| Failure Message | Re-weld required |
When the Welding work order runs, the tablet view prompts the operator to complete the quality check before marking the operation done. A "Fail" result blocks work order completion and creates a quality alert.
Check types#
| Type | Use case |
|---|---|
| Pass/Fail | Binary checks: is the label applied? is the connector seated? |
| Measure | Numeric measurement with tolerance band (e.g., 5.0 ± 0.2 mm) |
| Photo | Operator uploads a photo; QC team reviews asynchronously |
| Instruction | Displays a checklist; operator confirms completion |
For measure checks, set Min and Max tolerance. Odoo records the measured value and automatically fails the check if outside tolerance.
Workcenter scheduling and OEE#
Enable the production scheduling view: Manufacturing → Configuration → Settings → Planning → Workcenter Scheduling.
The schedule view shows each workcenter's work order queue on a Gantt timeline. Drag and drop to reorder. Odoo calculates expected end times based on workcenter capacity and work order durations.
OEE (Overall Equipment Effectiveness) tracks actual vs. planned output:
- Manufacturing → Reporting → OEE Analysis.
- Each time a work order starts and stops on the tablet, Odoo records the timing.
- Downtime causes can be logged: machine breakdown, material shortage, changeover.
OEE = Availability × Performance × Quality. Odoo calculates each factor from work order timing data.
Backflush and real-time component consumption#
By default, components are consumed (backflushed) when the manufacturing order is validated. With work orders, you can consume components at the specific operation level:
On the BOM component line: set the Operation field to the operation that consumes this component. Odoo then backflushes this component when that operation's work order completes, not at final MO validation.
This is important for multi-day assemblies where components are physically staged by operation area and real-time inventory accuracy is required.
Reporting#
Manufacturing → Reporting:
- Work Order Analysis: Duration planned vs. actual, by workcenter.
- Quality Analysis: Pass/fail rate by control point, product, workcenter.
- OEE: Availability, performance, quality by workcenter.
The most actionable report is work order duration variance. Operations consistently running 2× planned duration indicate either bad planning standards or genuine capacity problems. Investigate before adjusting the standard times - the root cause determines the fix.

