ERP migration
Field-level mapping, validation, and rollback between Kladana ERP and Odoo ERP. We move data and schema; workflows are rebuilt natively in Odoo ERP.
Kladana ERP
Source
Odoo ERP
Destination
Compatibility
8 of 12
objects map 1:1 between Kladana ERP and Odoo ERP.
Complexity
BStandard
Timeline
4-6 weeks
Overview
Moving from Kladana ERP to Odoo ERP is a consolidation migration: you are trading a focused inventory-production-sales platform for an extensible modular suite that covers accounting, CRM, project management, and HR alongside operations. Kladana's unified Counterparty model (customers and suppliers in one object) maps to Odoo's separate Contact and Company architecture, which requires a type flag during import. Production Orders with BOM references, planned-versus-actual variance, and labour tracking map to Odoo's MRP module, but Odoo collapses Kladana's multi-version BOMs to a single active version unless the customer explicitly selects a canonical version during scoping. We resolve BOM version conflicts before migration, map per-warehouse stock positions to Odoo Locations with bin storage preserved, and carry forward open Sales Orders and Purchase Orders in their current state. Workflows, automations, and custom print templates from Kladana do not migrate as code; we deliver a written inventory for your Odoo administrator to rebuild using Odoo's Workflow Editor and Report Designer.
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 Kladana ERP 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.
Kladana ERP
Item (Product)
Odoo ERP
Product Template + Product Variant
1:1Kladana Items with variants, bundles, serial numbers, batches, expiry dates, and barcode associations map to Odoo Product Template (the canonical product) with Product Variant records for each SKU combination. The Kladana cost price maps to Odoo's standard cost field; sell price maps to list_price. Reorder points and route configurations (make-to-order, buy-to-order) migrate to Odoo's route definitions on the product form. Serial number and batch histories map to Odoo's lots/serial numbers with the original manufacture and expiry dates preserved as lot_date and use_date fields.
Kladana ERP
Counterparty
Odoo ERP
Contact + Company
1:manyKladana Counterparties with type=Customer map to Odoo Contact (with is_customer=True) and optionally to a parent Company record. Counterparties with type=Supplier map to Odoo Contact (with is_supplier=True). Counterparties with both customer and supplier status generate two Contact records linked to a shared Company. The Kladana counterparty ID is preserved in a custom field for dedupe and audit. Transaction history (outstanding invoices, order history) links to the Contact record via the Odoo account.move and sale.order references.
Kladana ERP
Sales Order
Odoo ERP
Sale Order
1:1Kladana Sales Orders in draft, confirmed, reserved, fulfilled, and invoiced states map to Odoo Sale Order records with the corresponding state preserved. Order headers, pricing, discounts, and shipping address migrate directly. Fulfillment status maps to Odoo's delivery count and delivered quantity fields. If the Kladana order references a shipment record, we create a corresponding Odoo stock.picking. Open orders (not fully invoiced) are flagged for priority migration so that revenue pipeline continuity is maintained at cutover.
Kladana ERP
Purchase Order
Odoo ERP
Purchase Order
1:1Kladana Purchase Orders map to Odoo Purchase Order records. Supplier reference, expected delivery date, and receipt status carry forward. Pending inbound receipts map to Odoo RFQs or confirmed POs with the appropriate state. Purchase Order line items reference the mapped Product Template and Vendor Pricelist entries created during the product migration phase.
Kladana ERP
Warehouse / Stock Position
Odoo ERP
Location + Quant
1:1Kladana's multi-warehouse structure with bin storage maps to Odoo's Location hierarchy (Physical Locations under Warehouse). Each Kladana warehouse becomes an Odoo stock.warehouse with child locations for each bin. Per-warehouse stock-on-hand quantities, reserved quantities, and pending inbound and outbound moves map to Odoo stock.quant records linked to the correct location. In-transit movements become Odoo stock.picking records with the in-transit location as source or destination.
Kladana ERP
Bill of Materials (BOM)
Odoo ERP
Bill of Materials
lossyKladana BOMs (multi-level and multi-version) require pre-migration version selection. Odoo supports only a single active BOM per product variant, so we export all BOM versions during scoping and present the customer with a version selection worksheet. We recommend the most recently used or highest-revision BOM as canonical. Multi-level subassemblies map to Odoo nested BOMs via the bom_line and routing_workcenter_link tables. After version resolution, the BOM structure migrates as a single Odoo mrp.bom record with all components and operations.
Kladana ERP
Production Order
Odoo ERP
Manufacturing Order
1:1Kladana Production Orders referencing a BOM and routing map to Odoo mrp.production records. Planned quantities, actual output, material consumption, labour hours, and variance data migrate to the Odoo production record's move_raw_ids (component consumption), workorder_ids (operation tracking), and the production record's state field. Open production orders in-progress are migrated with their current state preserved so that production continuity is maintained. Completed production orders with variance data are migrated as historical records for cost analysis.
Kladana ERP
Sales Invoice
Odoo ERP
Account Move (Invoice)
1:1Kladana Sales Invoices linked to orders and counterparties map to Odoo account.move records with move_type=out_invoice. Invoice headers, line items, tax codes, payment status, and outstanding balances migrate. Fully paid invoices are migrated as historical locked records. Partially paid or unpaid invoices carry forward their residual amounts as Odoo move lines with the appropriate account receivable mapping. Odoo's invoice PDF attachments migrate as Odoo ir.attachment records linked to the move.
Kladana ERP
Purchase Invoice
Odoo ERP
Account Move (Bill)
1:1Kladana Purchase Invoices map to Odoo account.move records with move_type=in_invoice or move_type=in_refund. Vendor references, line items, tax codes, and payment status migrate. Outstanding amounts map to Odoo vendor bill lines with the appropriate account payable reference. Reconciliation with related Purchase Orders is preserved where the original Kladana linkage exists.
Kladana ERP
Task / Workflow
Odoo ERP
Project Task
lossyKladana Tasks and Workflow configurations are proprietary rule sets that do not map to Odoo's project-task model as code. We export task assignments, statuses, and linked objects as Odoo project.task records with the task name, description, assigned user (via email match), and deadline preserved. Kladana workflow rules are documented in a written inventory that maps each workflow's trigger, conditions, and actions to Odoo Automated Actions (ir.actions.server) and Studio workflow alternatives. The customer's Odoo administrator rebuilds these as Odoo workflows post-migration.
Kladana ERP
Custom Field
Odoo ERP
Custom Field (ir.model.fields)
lossyKladana custom field definitions and their values migrate as Odoo custom fields created via Settings or XML definition. We create the field in Odoo with a matching type (char, integer, float, selection, many2one, etc.) on the corresponding model before data import begins. Custom field values on Items, Counterparties, Orders, and other objects populate the new Odoo fields during the data migration phase. Field labels and help text are preserved from the Kladana custom field metadata.
Kladana ERP
CRM Record (Contact Activity, Notes)
Odoo ERP
CRM Lead + Note
1:1Kladana CRM records (contact interactions, activity notes, custom offers) linked to counterparties map to Odoo crm.lead records if the customer activates the CRM app, or to note records (mail.message) if CRM is not part of the destination scope. Sales history and custom offer data migrate to the contact's chatter (message_ids) or to a dedicated opportunity record. The customer confirms CRM app activation during scoping.
| Kladana ERP | Odoo ERP | Compatibility | |
|---|---|---|---|
| Item (Product) | Product Template + Product Variant1:1 | Fully supported | |
| Counterparty | Contact + Company1:many | Fully supported | |
| Sales Order | Sale Order1:1 | Fully supported | |
| Purchase Order | Purchase Order1:1 | Fully supported | |
| Warehouse / Stock Position | Location + Quant1:1 | Fully supported | |
| Bill of Materials (BOM) | Bill of Materialslossy | Fully supported | |
| Production Order | Manufacturing Order1:1 | Fully supported | |
| Sales Invoice | Account Move (Invoice)1:1 | Fully supported | |
| Purchase Invoice | Account Move (Bill)1:1 | Fully supported | |
| Task / Workflow | Project Tasklossy | Fully supported | |
| Custom Field | Custom Field (ir.model.fields)lossy | Fully supported | |
| CRM Record (Contact Activity, Notes) | CRM Lead + Note1: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.
Kladana ERP gotchas
Free tier caps counterparties at 200, limiting migration scope
Production Order BOM version logic does not map directly to all destinations
Android app absence forces mobile users to browser-based access
No native financial statements module in all tiers
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 tier verification
We audit the source Kladana account across tier (Free/Start/Growth/Business/Business Plus), item count, counterparty count, BOM count and version count per product, active production order status, open Sales Order and Purchase Order count, invoice volume and payment status distribution, and custom field inventory. We verify the Kladana tier against the counterparty cap (200 on Free) and recommend a paid tier upgrade if the dataset exceeds limits before we proceed with export. We also confirm whether the Odoo Manufacturing app is installed and whether the CRM app is in scope.
BOM version resolution and Odoo schema pre-configuration
We export all BOM records with version metadata and present a BOM version selection worksheet to the customer. The customer identifies the canonical BOM version for each product with multiple versions. Simultaneously, we configure the Odoo destination: Product Templates and Variants (with attribute definitions from Kladana item variants), Location hierarchy (warehouse and bin structure from Kladana warehouses), Account chart (from Odoo's chart of accounts template or the customer's existing chart), Workcentres (if Manufacturing app is in scope), and custom fields created on the target models before any data import begins.
Sandbox migration and reconciliation
We run a full migration into an Odoo test database (or Sandbox equivalent) using production-like data volume. The customer's operations lead reconciles record counts: Items in, Products and Variants out; Counterparties in, Contacts and Companies out; BOMs in with version audit; Production Orders in with state preserved; Sales Orders and Purchase Orders in with status flags; stock.quant records per location. Spot-checks on 25-50 random records confirm field-level accuracy. Schema corrections and BOM version adjustments happen in this phase, not in production.
Owner and contact reconciliation
We extract every distinct Kladana user referenced on records (Owner field on Orders, Production Orders, and Counterparties) and match by email against the Odoo destination's res.users table. Any Kladana owner without a matching Odoo user goes to a reconciliation queue for the customer's admin to provision. Counterparty-type splitting (customer vs supplier) is verified: for counterparties with both roles, we confirm that two Contact records (with correct type flags) are created against a shared Company.
Production migration in dependency order
We run production migration in record-dependency order: Products (Product Templates first, then Variants with attribute values); Locations (Warehouse and bin structure); Account chart; BOMs (with canonical version selected); Counterparties (with type-split and Company linkage); Sales Orders and Purchase Orders (with state preserved); Production Orders (after MRP app activation confirmed); Invoices (after partner and product lookups resolved); Stock Quants (after Locations are established); Tasks and Notes; Custom Field values (after target fields are confirmed to exist). Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, delta migration, and workflow handoff
We freeze Kladana write access during cutover, run a final delta migration of any records modified during the migration window, then enable Odoo as the system of record. We deliver the Workflow and Automation Inventory document to the customer's Odoo administrator, including the BOM version selection decisions, counterparty type mapping rules, and the recommended Odoo Automated Action equivalents for each migrated workflow. We support a one-week hypercare window for reconciliation issues. We do not rebuild Kladana workflows as Odoo automated actions inside the migration scope; that work is scoped separately or handled by the customer's Odoo partner.
Platform deep dives
Kladana ERP
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 Kladana ERP 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
Kladana ERP: Not publicly documented in current API reference.
Data volume sensitivity
Kladana ERP 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 Kladana ERP to Odoo ERP migration scoping. Not seeing yours? Book a call.
Walk through your Kladana ERP 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 Kladana ERP
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.