ERP migration
Field-level mapping, validation, and rollback between Plex Smart Manufacturing Platform and Odoo ERP. We move data and schema; workflows are rebuilt natively in Odoo ERP.
Plex Smart Manufacturing Platform
Source
Odoo ERP
Destination
Compatibility
8 of 12
objects map 1:1 between Plex Smart Manufacturing Platform and Odoo ERP.
Complexity
BStandard
Timeline
3-6 weeks
Overview
Plex Smart Manufacturing Platform unifies MES, ERP, QMS, and IIoT into one tightly interwoven manufacturing data model, while Odoo ERP delivers the same functional breadth as a suite of modular apps. The structural gap that drives most Plex-to-Odoo migrations is Plex's parent-child production order hierarchy versus Odoo's standalone work orders with optional production order references. We resolve this by sequencing the dependency graph correctly during extraction and by building an explicit mapping table that preserves the original Plex hierarchy in a custom field on Odoo's manufacturing order. Quality non-conformances embedded in Plex's transactional model require mapping to Odoo's separate quality alert and quality check modules. Lot and serial genealogy migrates, but Odoo requires explicit configuration of backtracking and the right lot-tracking field depth. We perform a custom field discovery pass for every Plex customer because field definitions differ per implementation. Plex workflows, automations, and IIoT sensor configurations do not migrate as code; we deliver a written inventory for admin rebuild.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Plex Smart Manufacturing Platform object lands in Odoo ERP, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Plex Smart Manufacturing Platform
Production Order
Odoo ERP
Manufacturing Order (mrp.production)
1:1Plex Production Orders map to Odoo Manufacturing Orders (mrp.production). The structural gap is that Plex treats Production Orders as the parent record from which Work Orders derive, while Odoo treats mrp.production as the primary manufacturing record with optional work order references. We extract the full production order lifecycle (planned, released, in-progress, complete) and the Plex parent-child lineage into a custom field plex_production_order_id__c on the Odoo manufacturing order so the original Plex hierarchy is preserved in Odoo for audit and genealogy purposes.
Plex Smart Manufacturing Platform
Item / Product
Odoo ERP
Product Template (product.template) + Product Variants
1:1Plex Items (manufactured, purchased, and phantom subtypes) map to Odoo product.product variants attached to product.template. Item type is preserved in a custom field plex_item_type__c on the product. Multi-unit-of-measure configurations from Plex carry over as UoM records in Odoo, and the Plex item code becomes the Odoo default_code. Phantom items in Plex map to Odoo phantom BoM type.
Plex Smart Manufacturing Platform
Inventory Location / Bin
Odoo ERP
Warehouse + Stock Location (stock.location)
1:1Plex's site-warehouse-bin hierarchy maps to Odoo's warehouse-stock-location structure. Each Plex site becomes an Odoo warehouse (stock.warehouse), Plex warehouses become location children under the warehouse, and Plex bins become stock.location records at the leaf level. Multi-plant setups map to multiple Odoo warehouses. We preserve on-hand quantities per location as Odoo quant records. Physical locations are migrated before any transactional inventory history so that quants resolve correctly.
Plex Smart Manufacturing Platform
Work Order
Odoo ERP
Work Order (mrp.workorder)
1:1Plex Work Orders derive from Production Orders and carry scheduling, labor, material allocations, and linked non-conformance references. In Odoo, work orders (mrp.workorder) are primary records linked to mrp.production. We map Plex Work Order status to Odoo state (pending, ready, in progress, done), labor hours to mrp.workorder duration, and material allocations to Odoo work order components. The Plex Work Order ID is preserved in a custom field plex_work_order_id__c on the Odoo work order. Odoo's operation-step and workcenter routing model may require additional configuration if Plex routes are complex.
Plex Smart Manufacturing Platform
Quality Non-Conformance
Odoo ERP
Quality Alert (quality.alert)
lossyPlex Quality Non-Conformances embed in the transactional model linked to work orders, production orders, and inventory lots. We extract disposition, corrective action, and inspection data and map them to Odoo quality.alert. The mapping complexity depends on whether the customer uses Plex's QMS module and Odoo's quality app (quality module). If Odoo's quality checks (quality.check) are also in scope, we configure operation-level checks linked to work orders. We flag any non-conformance patterns that require workflow adjustments to fit Odoo's separate quality module.
Plex Smart Manufacturing Platform
Account (Supplier and Customer)
Odoo ERP
Contact / Partner (res.partner)
1:manyPlex consolidates suppliers and customers under Accounts with a type field distinguishing them. We separate by type during extraction and merge both into Odoo res.partner records. Suppliers get supplier_rank set to 1; customers get customer_rank set to 1. Contact details, payment terms, and approved supplier status carry over. Each partner gets a plex_account_id__c custom field for audit. Partners are loaded before purchase orders and sales orders so that Odoo supplier and customer lookups resolve at insert time.
Plex Smart Manufacturing Platform
Purchase Order
Odoo ERP
Purchase Order (purchase.order)
1:1Plex Purchase Orders map to Odoo purchase.order with line-level detail. The Plex account reference maps to res.partner. Expected dates, quantities, and pricing carry over as purchase.order.line records. Open POs migrate as active orders; closed POs migrate as historical records with state = purchase. Odoo PO confirm workflow (RFQ -> confirmed PO -> receipt) is applied post-migration. The Odoo drop ship module known issue with decimal quantities is flagged pre-migration for customers with fractional purchase units.
Plex Smart Manufacturing Platform
Bill of Materials
Odoo ERP
Bill of Materials (mrp.bom)
1:1Plex BOMs are versioned and tied to items. Multi-level BOMs with component yields and scrap factors require careful sequencing. We map each Plex BOM version to an Odoo mrp.bom with bom_line components and the original Plex BOM version ID in a custom field plex_bom_version__c. Phantom BOM types from Plex map to Odoo phantom type. Multi-level BOMs are flattened or preserved per the destination's nesting capability, and the customer chooses during scoping. Route definitions (workcenters, cycles, times) map from Plex routing data.
Plex Smart Manufacturing Platform
Lot and Serial Genealogy
Odoo ERP
Lot / Serial Number (stock.lot) + Stock Move (stock.move)
lossyPlex's MES-native lot genealogy tracks parent-child lot lineage across production and inventory movements. We extract the full traceability tree and map it to Odoo stock.lot records with lot numbers and to stock.move records with lot tracking. Odoo's lot genealogy depth is shallower than Plex's MES-native genealogy; we enable lots/serial numbers and backtracking in Odoo during configuration. If Odoo's genealogy depth cannot satisfy the customer's compliance requirements (IATF 16949, FSMA), we flag the gap before migration so the customer can decide whether Odoo is the right destination for regulated-lot data.
Plex Smart Manufacturing Platform
Financial Transaction
Odoo ERP
Account Move (account.move)
1:1Plex core financials (GL, AP, AR) map to Odoo accounting modules. We extract transactional history, journal entries, and account balances and map them to Odoo account.move records against the destination chart of accounts. Open AP and AR items from Plex map to Odoo vendor bills (account.move with move_type = in_invoice) and customer invoices (account.move with move_type = out_invoice) respectively. Historical closed transactions migrate as read-only records. We do not migrate financial reports or financial workflows as code.
Plex Smart Manufacturing Platform
Custom Field
Odoo ERP
Custom Field (ir.model.fields)
lossyPlex Custom Fields differ per customer implementation. We perform a discovery pass using Plex's API to enumerate every custom field across every object before building the migration mapping. Each custom field's name, data type, and values are mapped to an equivalent Odoo custom field (ir.model.fields with custom = True). Custom field values on all records are transformed to the Odoo field type during the data transform phase. The discovery pass adds a step to the timeline but prevents field-value data loss on migration day.
Plex Smart Manufacturing Platform
Document and Attachment
Odoo ERP
Ir Attachment (ir.attachment)
1:1Plex documents attached to Items, Work Orders, or Quality records are exported as binary content. We map them to Odoo ir.attachment records linked to the target model (mrp.production, mrp.workorder, product.product, quality.alert) via res_model and res_id. File names and metadata carry over; binary content is uploaded via Odoo's attachment API. Where Plex API access to binary content is restricted, we export file references and paths and provide a bulk-upload procedure for the customer's Odoo admin to complete manually.
| Plex Smart Manufacturing Platform | Odoo ERP | Compatibility | |
|---|---|---|---|
| Production Order | Manufacturing Order (mrp.production)1:1 | Fully supported | |
| Item / Product | Product Template (product.template) + Product Variants1:1 | Fully supported | |
| Inventory Location / Bin | Warehouse + Stock Location (stock.location)1:1 | Fully supported | |
| Work Order | Work Order (mrp.workorder)1:1 | Fully supported | |
| Quality Non-Conformance | Quality Alert (quality.alert)lossy | Fully supported | |
| Account (Supplier and Customer) | Contact / Partner (res.partner)1:many | Fully supported | |
| Purchase Order | Purchase Order (purchase.order)1:1 | Fully supported | |
| Bill of Materials | Bill of Materials (mrp.bom)1:1 | Mapping required | |
| Lot and Serial Genealogy | Lot / Serial Number (stock.lot) + Stock Move (stock.move)lossy | Mapping required | |
| Financial Transaction | Account Move (account.move)1:1 | Fully supported | |
| Custom Field | Custom Field (ir.model.fields)lossy | Fully supported | |
| Document and Attachment | Ir Attachment (ir.attachment)1:1 | Fully supported |
Gotchas + challenges
Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.
Plex Smart Manufacturing Platform gotchas
Plex Classic vs. new UX split creates data residency ambiguity
Tightly coupled transactional schema causes dependency cascades
Pricing is volume- and module-gated without public tiers
Legacy system integration is a known friction point
Custom Fields vary per customer and require pre-migration discovery
Odoo ERP gotchas
No rollback for CSV imports
External ID conflicts on re-import
Many2many field encoding in CSV imports
Large export timeouts require batching
Version schema drift between Odoo releases
Pair-specific challenges
Migration approach
Discovery and scope
We audit the source Plex account to identify all modules in active use (ERP, MES, QMS, Supply Chain Planning, IIoT), the Plex Classic vs new UX split across objects, every custom field definition via API enumeration, total record counts for production orders, work orders, quality records, inventory transactions, and lot genealogy, any legacy system integration touchpoints, and the current Odoo setup. The discovery output is a written migration scope document with a Plex-to-Odoo object mapping matrix, a custom field inventory, a gap analysis for lot genealogy and QMS, and an Odoo module and app recommendation based on the customer's manufacturing profile.
Schema design and Odoo configuration
We design the destination Odoo configuration: MRP app settings and workcenter definitions, warehouse and stock location hierarchy, BoM and routing structure, quality app configuration (quality alerts and checks), lot/serial number tracking settings and backtracking configuration, custom fields created via Odoo Studio or ir.model.fields, and the Plex production-order-to-work-order lineage mapping stored as a custom field on mrp.production. If Odoo's lot genealogy depth cannot fully cover the customer's compliance requirements, we document the gap and the recommended Odoo partner extension work before the production migration begins.
Sandbox migration and reconciliation
We run a full migration into an Odoo sandbox using production-like data volumes from Plex. The customer's manufacturing operations lead reconciles record counts (production orders in, work orders in, inventory quants in, quality alerts in, lot numbers in), spot-checks 25-50 random records against the Plex source data, validates that lot genealogy traces correctly in Odoo, and confirms that QMS data landed in the quality module. Any mapping corrections happen in sandbox before the production migration begins. Sign-off on the sandbox reconciliation is required before we proceed to production.
Data extraction and transformation
We extract Plex data in dependency order by building a dependency graph upfront: master data first (items/products, BOMs, inventory locations, accounts/partners), then supporting records (purchase orders, work orders, quality records), then transactional history (production order lifecycle, inventory movements, lot genealogy), then financial history as read-only records. Plex custom fields are transformed to Odoo custom field types during the extract phase. Each extraction phase emits a reconciliation count report before the next phase begins. Plex Classic vs new UX data is extracted from the correct API endpoints per the discovery findings.
Production migration in dependency order
We run the production migration into the live Odoo environment in the same dependency order as the sandbox: master data, then supporting records, then transactional history, then financial history. Each phase runs against the production Odoo instance with row-count reconciliation before the next phase starts. Lot numbers and genealogy are migrated as the final transactional phase so that all production and inventory movements that create or consume lots are present when the lot traceability tree is built. We freeze Plex write access during the production migration window and run a delta pass at cutover for any records modified during the migration window.
Cutover, validation, and rebuild handoff
We enable Odoo as the system of record at cutover and deliver the Plex workflow automation inventory and manufacturing report inventory documents. Each workflow and report gets a rebuild recommendation for Odoo Studio, Odoo MRP actions, or a third-party Odoo app. We do not rebuild Plex workflows, automations, or IIoT sensor configurations as Odoo code inside the migration scope; that is a separate engagement. We support a one-week hypercare window for reconciliation issues. Post-cutover, Odoo partner implementation continues separately for any workflow rebuild, report redesign, and IIoT reconfiguration work.
Platform deep dives
Plex Smart Manufacturing Platform
Source
Strengths
Weaknesses
Odoo ERP
Destination
Strengths
Weaknesses
Complexity grading
Standard ERP migration. 1 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Plex Smart Manufacturing Platform and Odoo ERP.
Object compatibility
1 of 8 objects need a mapping; the rest are 1:1.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
Plex Smart Manufacturing Platform: Not publicly documented; Plex advises contacting their support for API rate limit specifics per customer tier.
Data volume sensitivity
Plex Smart Manufacturing Platform doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during Plex Smart Manufacturing Platform to Odoo ERP migration scoping. Not seeing yours? Book a call.
Walk through your Plex Smart Manufacturing Platform to Odoo ERP migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Plex Smart Manufacturing Platform
Other ways to arrive at Odoo ERP
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.