A manufacturing order (MO) says what to make and how many. Work orders say how: the individual operations — cutting, assembly, testing, packing — that happen at work centers, in sequence, to turn components into a finished product. Shop floor control is everything around those work orders: who works on what, in which order, for how long, and whether the result passed inspection. In Odoo 20, the workflow runs through two interfaces: the Manufacturing app's backend, where planners create and supervise orders, and the Shop Floor module, a touch-friendly companion app where operators actually execute them. Odoo 20 adds new planning views, continuous production, and a redesigned order board on top of that long-standing split.
Where work orders come from
Work orders are not created by hand. When the Work Orders feature is enabled in the Manufacturing app's settings, each bill of materials (BoM) gains an Operations tab. Every operation defined there — a name, a work center, an expected duration, and optionally step-by-step instructions — becomes a work order when an MO using that BoM is confirmed. The MO's Components and Work Orders tabs auto-populate from the BoM, and extra components or operations can still be added to that specific MO with Add a line.
Each operation is exclusively linked to one BoM, so the same “Assembly” step can be defined differently for different products; operations from other BoMs can be pulled in with Copy Existing Operations when a new BoM needs a familiar routine. Instructions attached to an operation are stored as quality control points, which is why a work order step can ask an operator to record a measurement, take a picture, register consumed materials, or confirm produced quantities before moving on.
Running work orders in the backend
Planners and supervisors usually work from the MO form. On the Work Orders tab, each work order has Start and Done buttons: starting a work order begins a timer that tracks how long it actually takes, and marking it done closes that time entry. The same work can be managed from the individual work order form, where moving the status from To Do to In Progress creates a time tracking entry and sets the planned date to now, with the end time projected from the expected duration. Moving the status back to To Do pauses the work and ends the entry, so a work order interrupted by a break or a machine problem accumulates several accurate time entries instead of one inflated one.
The work order form is also where consumption is corrected. Its Components tab lets a supervisor mark components as consumed, or add components that were used but not on the original BoM — possible on every order in Odoo 20, because flexible consumption is now the default behaviour for all MOs rather than a per-BoM setting. Custom information can be attached with work order properties (for example, a Wood Type property on a table build) without modifying the database structure.
When every work order on an MO is complete, clicking Produce on the MO marks it done and registers the finished products into inventory. Partial output is supported: enter a smaller quantity and click Produce, and if consumed materials do not match the partial quantity, a consumption warning lets you keep the recorded consumption or update quantities and validate. New in Odoo 20, the old separate Produce and Produce All buttons have been replaced by a single Produce button in Manufacturing, Shop Floor, and Barcode alike.
The Shop Floor module: the operator's view
The Shop Floor module is installed alongside the Manufacturing app and gives operators a visual, card-based interface designed for shared terminals and tablets at each work center. It opens in two ways: from the main dashboard, or directly from an MO via the Shop Floor smart button, which opens the module filtered to that order.
The Overview shows a card for each MO with its number, product, quantity to produce, and the next work order required; work center pages show the work orders queued at that station, ordered by the scheduled dates of their MOs so the most urgent work surfaces first. Tapping a work order opens its card, which lists the steps from the operation's instructions. The operator completes each step — following the instruction pop-up, which may include pass/fail checks, measurements, or a Register Production step that generates lot or serial numbers for tracked products — and when all steps are addressed, a button appears in the card's footer. If more work orders remain on the MO it reads Mark as Done; if this was the last one, it reads Close Production, which completes the MO and books the produced units into inventory. Operators also log their time in Shop Floor, so actual labour accumulates against each work order without anyone returning to a desk to type it in. A downloadable Shop Floor demo sheet, new in Odoo 20, lets a team test the app's barcode capabilities before going live.
Planning and supervision: what is new in Odoo 20
Odoo 20 substantially reworks how work orders are planned:
- Work order Kanban view. A new Kanban view visualises work orders as cards, complementing the list view for day-to-day supervision.
- Work order Gantt view. Planners can plan work orders by drag-and-drop, with enhanced colour coding and the ability to view planning by employee. Completed work orders are now displayed in the Gantt by default, so the plan shows what actually happened, not just what remains.
- Confirmation from the Gantt. Work orders can be confirmed directly from the Work Order Planning Gantt view, even when the selection includes draft work orders.
- Blocked work centers. Work orders can now be processed in blocked work centers, so a center flagged as unavailable for new planning does not strand work already in progress.
- ASAP planning and priority by sequence. MOs are now planned as soon as possible by default, and when several orders are planned together, their sequence in the list determines scheduling priority — reordering the list is reprioritising the floor.
- Redesigned MO Kanban. MO cards are grouped by scheduled date in weeks and show component status, the active work center, the deadline, and remaining time; the total remaining time across orders appears in grouped searches. The work center overview has also been updated with quick links to work orders and maintenance planning.
Instructions travel better, too: the note field on MOs is now an HTML field in both the Manufacturing backend and Shop Floor, and a BoM's additional notes appear on the MO and in Shop Floor, so formatted instructions reach the operator instead of being flattened to plain text.
Continuous production: start the next operation early
The headline manufacturing change in Odoo 20 is continuous production. Produced quantities can now be recorded directly on work orders, and when Continuous Production is enabled on the BoM, subsequent operations can start as soon as some quantity is ready rather than waiting for the upstream operation to finish the entire batch. On a long run — say, 500 enclosures where machining finishes units steadily while assembly works through them — the downstream station starts on the first finished pieces, compressing total lead time and exposing bottlenecks while there is still time to react.
Two related changes support the same flow-shop reality. Ongoing MOs can now be split, producing part of the quantity now and the remainder later under its own order, and backorders of planned productions are planned automatically when they are created. For tracked products, closing an MO always auto-generates the required lot or serial numbers, removing a manual step at the end of a run.
Reporting and cost visibility
Reporting for work orders and manufacturing orders has been improved in Odoo 20, with updated key metrics. On the cost side, the MO Cost field on the MO overview now shows the provisional cost while an order is in progress and the real cost once it is complete, so supervisors can spot an overrun during production rather than after it. Combined with per-work-order time tracking — actual durations recorded by timers in the backend or in Shop Floor — that gives a realistic picture of where labour and machine time are going, operation by operation.
Practical tips
- Write instructions as explicit Shop Floor steps (including quality checks) on the BoM operation; operators see steps, not paragraphs.
- Enable continuous production only where downstream work genuinely can start on partial output; it complicates consumption tracking where it cannot.
- Use the Gantt's by-employee view before reassigning work — it shows who is actually loaded, not just which center is busy.
- Keep MO list sequence deliberate: under ASAP planning, list order is the priority order.
Taken together, Odoo 20 keeps the familiar structure — BoM operations become work orders, operators execute them in Shop Floor — and sharpens the control loop around it: better planning views, earlier starts on partial output, and cost and progress visible while production is still running.
Further reading
- Odoo 20 Release Notes — the Manufacturing section: continuous production, work order views, the single Produce button, and split MOs.
- Manufacturing orders and work orders — Odoo 20.0 documentation — creating and processing MOs and work orders, including the Shop Floor workflow.
- Bill of materials — Odoo documentation — configuring the operations and instructions that generate work orders.
