ERP migration
Field-level mapping, validation, and rollback between Manu Online and Odoo ERP. We move data and schema; workflows are rebuilt natively in Odoo ERP.
Manu Online
Source
Odoo ERP
Destination
Compatibility
10 of 11
objects map 1:1 between Manu Online and Odoo ERP.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Manu Online has no publicly documented REST or SOAP API — every migration must route through the Azure-hosted DataWarehouse SQL export, which means bulk data movement depends on that extension being licensed and the connection string being accessible under Admin > Public Apps. We scope the migration against the manuonline_-prefixed tables, inventory custom fields during discovery, and run a data quality audit on serial and lot traceability completeness before any transform runs. On the destination side, Odoo uses a modular app model (Inventory, Manufacturing/MRP, Sales, Purchase, Accounting) where Bills of Materials, Works Orders, and stock moves must land in the correct Odoo apps before the production schedule is populated. FIFO cost layers from Manu Online do not map directly to Odoo's average cost or standard cost options without an explicit translation step, which we perform during the mapping phase and present to the customer for approval. We do not migrate workflows, automations, or reporting definitions; we deliver a written inventory of these for the customer's Odoo administrator to rebuild inside the relevant Odoo apps post-migration.
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 Manu Online 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.
Manu Online
Product
Odoo ERP
Product Template + Product Variants
1:1Manu Online Products (manufactured, resold, purchased variants with unit costs and default warehouse) map to Odoo Product Template records. We preserve unit_cost from the manuonline_Products table as the product's standard_cost on the Odoo Product Template. Odoo's product type (stockable, consumable, service) is derived from Manu Online's product type field. Multi-attribute variants in Odoo are created only if the customer uses variant dimensions; otherwise the product template holds a single variant.
Manu Online
Bills of Materials
Odoo ERP
mrp.bom (Manufacturing Orders BOM)
lossyManu Online BOMs (ingredient list and quantities per finished good, multi-level in Enterprise) map to Odoo mrp.bom records. Multi-level Manu Online BOMs with sub-assemblies are restructured into Odoo's nested BOM structure (parent BOM referencing child BOMs as components). Each BOM line carries the Manu Online quantity and unit of measure, with routing operations added in Odoo if the customer wants workcentre scheduling. We flag any BOMs that use Enterprise-only features during scoping so the customer can decide whether to expand them in Odoo or simplify the recipe.
Manu Online
Stock / Inventory
Odoo ERP
stock.quant + stock.location
1:1Current on-hand, allocated, and ordered quantities per product per warehouse from manuonline_Stock map to Odoo stock.quant records. We map Manu Online warehouse codes to Odoo stock.location records (Internal Locations hierarchy). Serial and lot numbers from the stock transaction table migrate as Odoo stock.lot records linked to the relevant stock.quant. Any unallocated or negative quantities are flagged in the pre-migration data quality report.
Manu Online
Customer
Odoo ERP
res.partner (customer flag = True)
1:1Manu Online Customer records (address, contact, tax registration, price list assignment) map to Odoo res.partner records with the customer_rank set appropriately. We preserve the tax registration number as the Odoo vat field, credit limit as property_account_receivable, and price list assignment as a pricelist_id reference. Active open Sales Orders linked to the customer are migrated in a later phase after the customer record is created.
Manu Online
Supplier
Odoo ERP
res.partner (supplier flag = True)
1:1Manu Online Supplier records (address, contact, lead-time, preferred purchase unit) map to Odoo res.partner records with the supplier_rank set. Lead time in days becomes the delivery_lead_days on the Odoo partner record. Purchase order history and outstanding open POs link to the supplier record after it is provisioned.
Manu Online
Sales Order
Odoo ERP
sale.order
1:1Open Manu Online Sales Orders map to Odoo sale.order records with line items, pricing, dispatch instructions, and order status preserved. Partially despatched lines are mapped to Odoo's delivered quantity fields so the fulfilment state is accurate on import. We use Odoo's sale.order onchange mechanisms to recompute taxes after import since Odoo's tax computation is rule-based and may differ from the source tax assignment.
Manu Online
Purchase Order
Odoo ERP
purchase.order
1:1Open Manu Online Purchase Orders map to Odoo purchase.order records with supplier, expected delivery date, and received-versus-ordered quantities. The PO receipt state (fully received, partially received, not received) maps to Odoo's procurement state so that Odoo's incoming shipment workflow reflects the source status without creating duplicate receipts.
Manu Online
Works Order
Odoo ERP
mrp.production
1:1Manu Online Works Orders (BOM reference, stock allocation, labour time, completed quantities, stage status) map to Odoo mrp.production (Manufacturing Order) records. We resolve the BOM reference, set the product quantity, and map work order stages to Odoo mrp.production state (draft, confirmed, in_production, done). Unfinished work orders with partial progress are imported at their current state so the production team can resume them in Odoo without re-keying.
Manu Online
Invoice and Credit Note
Odoo ERP
account.move
1:1Posted Manu Online invoices and credit notes require Xero cutover coordination before migration. We identify all invoices already pushed to Xero and either exclude them from the migration set or mark them as historical to prevent double-posting. Remaining posted invoices migrate to Odoo account.move records in the 'posted' state; draft invoices migrate as draft moves for the customer's accountant to review and post in Odoo accounting.
Manu Online
Serial and Lot Numbers
Odoo ERP
stock.lot + stock.move.line
1:1Manu Online serial and lot numbers linked to stock transactions, works orders, and delivery documents map to Odoo stock.lot records with the lot_name, product_id, and company_id populated. The traceability chain (lot to supplier, through production, to customer delivery) is reconstructed in Odoo via stock.move.line records. We run a pre-migration traceability completeness audit: if the customer historically received stock without recording supplier lot numbers, the inbound traceability leg is blank and we flag this before migration begins.
Manu Online
Users and Roles
Odoo ERP
res.users
1:1Active Manu Online user accounts (login, email, role-based permissions) map to Odoo res.users records. We preserve the login and email, and flag any accounts with elevated admin privileges for explicit re-creation in Odoo with the appropriate access rights groups (Inventory / Manufacturing / Sales / Accounting / Administration). Odoo's group model (res.groups) is provisioned before the migration of transactional records.
| Manu Online | Odoo ERP | Compatibility | |
|---|---|---|---|
| Product | Product Template + Product Variants1:1 | Fully supported | |
| Bills of Materials | mrp.bom (Manufacturing Orders BOM)lossy | Mapping required | |
| Stock / Inventory | stock.quant + stock.location1:1 | Fully supported | |
| Customer | res.partner (customer flag = True)1:1 | Fully supported | |
| Supplier | res.partner (supplier flag = True)1:1 | Fully supported | |
| Sales Order | sale.order1:1 | Fully supported | |
| Purchase Order | purchase.order1:1 | Fully supported | |
| Works Order | mrp.production1:1 | Fully supported | |
| Invoice and Credit Note | account.move1:1 | Fully supported | |
| Serial and Lot Numbers | stock.lot + stock.move.line1:1 | Fully supported | |
| Users and Roles | res.users1:1 | Mapping required |
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.
Manu Online gotchas
DataWarehouse SQL export is the only bulk data path
Xero integration can duplicate posted invoices
FIFO cost layers do not translate directly to average-cost ERPs
Serial and lot traceability is source-system-gated
Enterprise-tier features may not appear in Mini Enterprise data
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 DataWarehouse schema audit
We confirm the DataWarehouse extension is licensed and obtain the Azure SQL connection string. We run a discovery query against the manuonline_ tables to inventory all record types, row counts, custom field presence, BOM structures, and Xero sync status for invoices. We also confirm whether the customer uses Mini Enterprise or Enterprise Edition, and whether multi-level BOMs are in use. The discovery output is a written migration scope with record counts per object, a data quality report for traceability completeness, and a BOM complexity assessment.
FIFO cost layer audit and costing method decision
We query the manuonline_Products cost layer table to compute a translated unit cost per SKU. For each product, we present the current FIFO layer breakdown and the proposed average or standard cost for Odoo, flagging any significant variance for customer review. We also confirm the customer's intended Odoo costing method (FIFO, average, standard) per product category before any product records are created in Odoo. This step must be completed and signed off before product migration begins.
Odoo destination schema setup
We configure the Odoo environment before any data import: we create the stock.location hierarchy matching the Manu Online warehouse structure, set the inventory valuation method (FIFO or average) per product category, configure units of measure and units of measure categories matching Manu Online's purchase and sales units, and provision the MRP module BOMs and routing operations. We also create the res.users accounts and assign groups based on the Manu Online role inventory. All schema setup is performed in an Odoo test database or sandbox first, validated by the customer's admin, then replicated to the production instance.
Data cleaning, deduplication, and transform development
We clean the DataWarehouse export before migration: duplicate customer and supplier records (deduplicated on name and email), inactive products archived in Manu Online but still carrying stock, and open sales orders with mismatched customer references. We develop the transform scripts that map manuonline_ table columns to Odoo XML-RPC field names, apply the costing method translation, restructure multi-level BOMs, and generate the stock.lot and stock.quant records with correct location assignments. All transforms are documented in a mapping spreadsheet reviewed by the customer before execution.
Phased migration in dependency order
We run production migration in record-dependency order: stock locations (first), products with translated costs, BOMs, customers and suppliers, serial and lot numbers, stock quants, open purchase orders, open sales orders, works orders mapped to mrp.production, and finally invoices and credit notes (with Xero-cutover reconciliation confirmed before the invoice phase). Each phase emits a row-count reconciliation report showing source count, imported count, and skipped count with reasons. Errors are corrected in the transform scripts and the phase is re-run before proceeding.
Cutover, delta sync, and post-migration handoff
We freeze Manu Online writes at cutover, run a final delta migration of any records created or modified during the migration window, then hand the Odoo system to the customer as the system of record. We deliver the automation and report inventory document: a written list of Manu Online workflow actions and any built-in reports that the customer must rebuild inside Odoo's Automation and Reporting menus. We do not rebuild these as part of the migration scope. We offer a one-week hypercare window for reconciliation issues and flag any data quality gaps identified in the traceability audit as requiring manual resolution in Odoo.
Platform deep dives
Manu Online
Source
Strengths
Weaknesses
Odoo ERP
Destination
Strengths
Weaknesses
Complexity grading
Standard ERP migration. 2 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 Manu Online and Odoo ERP.
Object compatibility
2 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
Manu Online: Not publicly documented.
Data volume sensitivity
Manu Online 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 Manu Online to Odoo ERP migration scoping. Not seeing yours? Book a call.
Walk through your Manu Online 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 Manu Online
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.