OpenERP Migration, Shop Floor Dashboards & Warehouse Scanner Rebuild
Confidential — mid-size manufacturer, Southern Ontario · June 1, 2021
Some businesses reach a point where the system keeping their operations running is also the thing holding them back. This client had been on OpenERP — the legacy predecessor to modern Odoo — long enough that the platform itself had become the constraint. Reporting was manual, data lived in spreadsheets, and the gap between what was happening on the shop floor and what leadership could see was measured in hours, not seconds.
The engagement had two phases: get them onto a modern Odoo foundation without disrupting production operations, then build the visibility layer their team actually needed. A third problem surfaced early — their warehouse scanning app was built against OpenERP's old API and would stop working the moment the migration completed. That became part of the scope.
The Challenge
A Platform Past Its Shelf Life
The client had accumulated years of operational data and customizations inside OpenERP. Moving to modern Odoo wasn't a simple upgrade — it was a migration across multiple major version generations, with data structures, module APIs, and underlying architecture that had changed substantially in the years between.
The risk wasn't just technical. A manufacturer can't have their production system go dark during a migration. Every work order, bill of materials, stock move, and work centre configuration had to come across cleanly — or production planning would break on day one.
A Warehouse Floor That Couldn't Stop
The client's warehouse ran on legacy Windows handheld scanners with a custom application built directly against OpenERP's API. Receiving, pick operations, and stock moves all flowed through those devices. The moment the underlying system changed, the app would stop functioning — and there was no off-the-shelf replacement that matched the workflows the warehouse team had built their days around.
Replacing the hardware wasn't on the table. Retraining the warehouse floor mid-migration wasn't realistic either. The app had to be rebuilt to work with modern Odoo, on the same devices, with the same operational logic intact.
Visibility Running on Spreadsheets
In parallel, operations leadership had a problem that predated any technology decision: there was no single, reliable view of what was happening on the floor. WIP status, work centre downtime, and late orders were tracked across spreadsheets updated at the end of each shift — which meant decisions made at 9am were based on data from the night before.
Shift leads were firefighting. Management reviewed numbers that didn't match what supervisors were seeing on the floor. The same production data was being maintained in multiple places by multiple people, with no authoritative source.
What We Did
Phase 1 — OpenERP to Odoo Migration
We audited the full OpenERP instance: data models, active modules, customizations, and every operational workflow that couldn't be interrupted. From that audit we built a migration plan with a hard cutover date and a parallel-run period to validate data integrity before the legacy system was retired.
The migration covered:
- Master data — products, BOMs, routings, work centres, and vendor records cleaned, normalized, and mapped to modern Odoo data structures
- Historical transactions — production orders, stock moves, and procurement history migrated with referential integrity intact
- Custom logic — existing customizations evaluated one by one, rebuilt where they still served a purpose, replaced where modern Odoo handled the need natively
- Warehouse scanner app — the custom Windows scanning application built against OpenERP's old API was rebuilt from the ground up against modern Odoo, preserving the exact workflows the warehouse team relied on while connecting to the new inventory and stock move architecture underneath
- User configuration — roles, access rights, and operational workflows rebuilt and validated with department leads before go-live
The client went live on modern Odoo without a production outage. Legacy data remained accessible for reference during the transition period.
Phase 2 — Shop Floor Dashboards
With a clean Odoo foundation in place, we turned to the visibility problem. We mapped every authoritative data source in Odoo — manufacturing orders, work centre logs, stock moves, scheduled dates — and designed a dashboard layer that surfaced the right information to the right role without requiring anyone to build a report or open a spreadsheet.
Key decisions:
- Scheduled aggregation — heavy queries run as background jobs on a defined cadence, so shop-floor tablets and touchpoints stay responsive under load without hitting the database on every page load
- Role-based views — shift leads see their line and their shift; production managers see across work centres; executives see the summary numbers they need for planning conversations
- No parallel data entry — dashboards pull exclusively from Odoo's operational records, eliminating the spreadsheet layer entirely and making the data authoritative by design
Outcome
The migration retired a system the business had outgrown and cleared the technical debt that had been quietly accumulating for years. The warehouse team continued working on the same handheld devices they'd always used — the rebuilt scanner app kept their workflows intact while the system underneath it was replaced entirely. No retraining, no disruption to receiving and pick operations during the cutover period.
Shift leads now start every shift on one screen. The numbers management reviews in weekly planning meetings are the same numbers supervisors are looking at on the floor — no reconciliation, no question of which version of the spreadsheet is current.
WIP status, work centre availability, and late order visibility moved from a lagging, manual process to a live operational tool — without replacing or disrupting the shop-floor touchpoints already in place. What had been a reactive operation driven by end-of-shift spreadsheets became a planning operation driven by live data.
Client identity and production details withheld under NDA.