ERP migration

Migrate from Xentral ERP to Odoo ERP

Field-level mapping, validation, and rollback between Xentral ERP and Odoo ERP. We move data and schema; workflows are rebuilt natively in Odoo ERP.

Xentral ERP logo

Xentral ERP

Source

Odoo ERP

Destination

Odoo ERP logo

Compatibility

67%

8 of 12

objects map 1:1 between Xentral ERP and Odoo ERP.

Complexity

BStandard

Timeline

4-8 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Xentral ERP to Odoo ERP is a structural migration across fundamentally different object models. Xentral stores customers and vendors as a unified Address object; Odoo separates these into Partner records with is_company and customer_rank flags. We resolve that split during scoping, map Articles to Product records with Odoo's product types, and preserve the original Xentral document numbers on Sales Orders and Invoices as reference fields. Xentral Flows cannot be exported from the Xentral Connect middleware layer — we document every active workflow and deliver a rebuild guide for Odoo Studio and Python-based automations. Custom fields are limited to Articles, Addresses, and Projects in Xentral; any bespoke tracking on Orders, Invoices, or Warehouse records was likely implemented as workarounds and is flagged as manual post-migration tasks. We use the Odoo XML-RPC API with batch chunking for large-volume record imports and coordinate with the customer to freeze inventory writes before the stock snapshot cutover.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

Xentral ERP logo

Xentral ERP

What's pushing teams away

  • Non-intuitive interface requires significant user training and creates friction during onboarding, especially for non-technical staff unfamiliar with ERP workflows.
  • Steep learning curve for complex features like production planning, multi-warehouse stock rules, and advanced accounting workflows leads to underutilisation of the platform.
  • Limited customisation compared to open-source alternatives — businesses with highly specific industry workflows eventually outgrow the platform's standard configuration options.
  • Support quality inconsistent — some users report slow ticket resolution and difficulty reaching senior technical engineers for complex configuration issues.

Choosing

Odoo ERP logo

Odoo ERP

What's pulling them in

  • Modular pay-as-you-grow model with 80+ apps under one database — teams start with CRM and add Accounting, Inventory, or Manufacturing without switching platforms.
  • Free Community edition lets businesses validate Odoo fit before committing to Enterprise licensing costs that scale with user count.
  • Lowest per-user pricing among mid-market ERPs, with a published free tier for one app and Standard plans starting around $24.90 per user per month.
  • Native integration between modules — a confirmed Sales Order automatically updates inventory, invoicing, and accounting without manual re-entry.
  • Strong Odoo Gold Partner ecosystem provides local implementation support, reducing risk for companies without in-house developers.

Object mapping

How Xentral ERP objects map to Odoo ERP

Each row shows how a Xentral 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.

Xentral ERP

Address

maps to

Odoo ERP

Partner

1:many
Fully supported

Xentral stores customer and vendor records as a unified Address object. We split these into Odoo Partner records using the address_type field: type=customer creates a Partner with is_customer=True and customer_rank set by frequency; type=vendor creates a Partner with is_vendor=True. The original Xentral address_id is preserved in a custom reference field xentral_address_id__c on Partner for audit. Tax ID fields (VAT and country-specific tax numbers) migrate to Odoo's vat field and a custom tax_reference__c field.

Xentral ERP

Article

maps to

Odoo ERP

Product Template + Product Variant

1:1
Fully supported

Xentral Articles map to Odoo Product Template records, with variant support enabled if the Xentral article has size, color, or other attribute variations. The article number becomes the product's default_code (SKU); article_name maps to name. Multilingual labels stored in Xentral custom fields migrate to Odoo's product.template.inherit record with language-specific translations. Pricing tiers from Xentral map to Odoo Pricelist rules applied to the product template.

Xentral ERP

Sales Order

maps to

Odoo ERP

Sale Order

1:1
Fully supported

Xentral Sales Orders map to Odoo Sale Order records. The original Xentral order number is preserved in the name field and the xentral_order_id__c reference field. Line items map to sale.order.line with product_id resolved to the Odoo Product record created during the Article migration. Order status from Xentral (pending, confirmed, shipped, invoiced) maps to Odoo's sale_order_state with a custom field xentral_status__c for the original status audit trail.

Xentral ERP

Purchase Order

maps to

Odoo ERP

Purchase Order

1:1
Fully supported

Xentral Purchase Orders map to Odoo Purchase Order records. The po_number from Xentral is preserved in the name field. Vendor assignment resolves via the Partner mapping (is_vendor=True). Expected delivery dates and received quantities migrate to Odoo's date_planned and move_ids (stock moves). PO status mapping mirrors the Sales Order pattern with xentral_status__c preserved for audit.

Xentral ERP

Invoice (Outgoing)

maps to

Odoo ERP

Account Move (Invoice)

1:1
Fully supported

Xentral outgoing invoices map to Odoo Account Move records with move_type=out_invoice. The original Xentral invoice number is preserved in the ref field and a custom xentral_invoice_id__c field. Multi-currency amounts migrate with the exchange rate stored in a custom field; Odoo's currency_id is set accordingly. Tax lines are mapped to Odoo's account_tax records using the tax code lookup built during discovery.

Xentral ERP

Invoice (Incoming)

maps to

Odoo ERP

Account Move (Vendor Bill)

1:1
Fully supported

Xentral incoming invoices map to Odoo Account Move records with move_type=in_invoice. Vendor resolution uses the Partner mapping (is_vendor=True). The invoice date, due date, and amount are preserved. Multi-currency incoming invoices require the same exchange rate mapping as outgoing invoices. If the customer uses Odoo Accounting, reconciliation with the corresponding Purchase Order is preserved through the purchase_order_id link on the account.move.line records.

Xentral ERP

Warehouse and Inventory

maps to

Odoo ERP

Inventory Location + Quant

lossy
Fully supported

Xentral warehouse assignments per Article map to Odoo's Stock Location model. Each Xentral warehouse becomes an Odoo Stock Location with location_type=internal. Stock levels are migrated as Stock Quant records linked to the Product and Location. Batch and serial numbers from Xentral migrate to Odoo's lot_id and serial_number fields on stock.move.line records. A stock.freeze period is coordinated with the customer before the snapshot to ensure accurate quantities at cutover.

Xentral ERP

Project

maps to

Odoo ERP

Project

1:1
Fully supported

Xentral Project records with their custom fields migrate to Odoo Project. The original project_id is preserved in a custom xentral_project_id__c field. Task dependencies and time entries are flagged as requiring Odoo Timesheet App configuration post-migration since these require the Odoo Timesheet module to be activated. Project-linked custom fields from Xentral migrate to Odoo custom fields on the project.project model.

Xentral ERP

Financial Records and Chart of Accounts

maps to

Odoo ERP

Account Chart of Accounts

lossy
Mapping required

Xentral account codes and names map to Odoo account.account records. Tax code configurations, cost centre assignments, and SEPA bank account details are flagged as requiring manual reconfiguration in Odoo Accounting because accounting schema requirements are country-specific and depend on the customer's fiscal position settings. We deliver a written mapping of every Xentral account code to its Odoo account.account counterpart during the approach phase.

Xentral ERP

Custom Fields (Articles, Addresses, Projects)

maps to

Odoo ERP

Custom Fields

lossy
Mapping required

Xentral custom field definitions for Articles, Addresses, and Projects are exported as property values and mapped to Odoo custom fields (ir.model.fields with is_custom=True) on the equivalent Odoo model before data import begins. Any custom fields detected on Orders, Invoices, or Warehouse records in Xentral are flagged as workarounds (since Xentral does not natively support them on these objects) and added to a manual remediation list for post-migration review.

Xentral ERP

Attachments

maps to

Odoo ERP

Ir Attachment

1:1
Fully supported

File attachments linked to orders, articles, addresses, and invoices are downloaded from Xentral via the API, stored with their original filename and MIME type, and uploaded to Odoo as ir.attachment records linked to the corresponding res_model and res_id. Document associations (delivery notes, credit memos) are linked to their parent Sale Order or Account Move via the attachment's res_model field.

Xentral ERP

Xentral Flows Workflows

maps to

Odoo ERP

Studio Automation (not migratable)

1:1
Fully supported

Xentral Flows workflows stored in the Xentral Connect middleware are not accessible via the Xentral REST API and cannot be exported programmatically. During discovery, we review Xentral Connect execution logs to identify active workflows and document each one: trigger, conditions, actions, and target records. We deliver this as a written workflow inventory document with recommended Odoo Studio equivalents (automated actions, server actions) or Python-based Odoo addon logic. The customer must re-implement workflows post-migration either manually or with an Odoo partner.

Gotchas + challenges

What specifically takes care here

Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.

Xentral ERP logo

Xentral ERP gotchas

High

Xentral Flows workflows are not exported via API

Medium

CSV export requires mandatory masking character selection

Medium

Custom fields limited to three object types

Medium

Order volume limits create billing surprises on Business tier

Low

API rate limits are documented but not fully public

Odoo ERP logo

Odoo ERP gotchas

High

No rollback for CSV imports

High

External ID conflicts on re-import

Medium

Many2many field encoding in CSV imports

Medium

Large export timeouts require batching

Medium

Version schema drift between Odoo releases

Pair-specific challenges

  • Xentral Flows cannot be exported via API

    Workflows built in Xentral Flows live in the Xentral Connect middleware layer and are not exposed through the standard REST API. This is a platform-level limitation, not a pair-specific one. During discovery, we audit active workflows by reviewing Xentral Connect execution logs and document each workflow's trigger, conditions, and actions in a written handoff document. The customer must re-implement these in Odoo Studio or as custom Python server actions post-migration. This is the single largest non-data migration effort in any Xentral departure.

  • CSV masking character can corrupt exported field values

    Xentral's CSV export function requires a mandatory masking character — the system defaults to an apostrophe but may have been changed during setup. Downstream CSV parsers misinterpret fields that were masked during export, producing garbled values on the import side. We detect the configured masking character during the export phase and apply the inverse transformation before loading records into Odoo via the XML-RPC API, bypassing CSV import entirely for data integrity.

  • Xentral custom fields absent on Orders and Invoices require manual data recovery

    Xentral only supports custom fields on Articles, Addresses, and Projects. If business data was stored on Orders, Invoices, or Warehouse records using third-party workarounds or external documents, that data has no native home in Xentral's schema and therefore cannot be extracted via API in structured form. We flag these gaps during discovery scoping. The customer must identify and manually re-enter any such data as Odoo custom fields on the target model post-migration.

  • Multi-warehouse stock snapshots require a write-freeze period

    Xentral inventory is real-time and changes continuously as orders are placed and received. A stock level snapshot taken mid-day will not reflect the current state by the time the migration load runs. We coordinate a freeze window with the customer — typically 24 to 48 hours — during which warehouse-inventory writes are suspended. A final stock snapshot is exported, transformed, and loaded into Odoo's Stock Quant records linked to the correct Locations. If the freeze window is not possible, we flag the expected delta for manual adjustment post-migration.

  • Chart of accounts and tax codes require manual Odoo configuration

    Xentral's accounting module stores the chart of accounts, tax codes, and bank account connections. We map account codes and names to Odoo account.account records, but tax code configurations, cost centre assignments, and SEPA direct debit settings are country-specific and must be reconfigured manually in Odoo Accounting after migration. We deliver a written account code mapping document during the approach phase, but the Odoo configuration itself is performed by the customer's accountant or Odoo partner with knowledge of the local fiscal requirements.

Migration approach

Six steps for a successful Xentral ERP to Odoo ERP data migration

  1. Discovery and Xentral Flows audit

    We audit the source Xentral ERP instance across all active modules, identifying Addresses, Articles, Sales Orders, Purchase Orders, Invoices, Inventory records, Projects, and Attachments. We review Xentral Connect execution logs to document every active Xentral Flow workflow, capturing its trigger type, conditions, actions, and target records. This audit output is the written workflow inventory that the customer uses for Odoo rebuild planning. We also extract the current chart of accounts and tax code structure for mapping to Odoo Accounting.

  2. Schema design and Odoo app activation

    We define the destination schema in Odoo. This includes activating the required Odoo Apps (Sales, Purchase, Inventory, Accounting, Project), creating custom fields on each target model to match Xentral custom field definitions, configuring Stock Locations to mirror the Xentral warehouse structure, and setting up the Odoo chart of accounts using the Xentral account code mapping document. If the customer uses Odoo multi-company, we configure company assignments at this stage. Schema is validated in an Odoo test database before production migration begins.

  3. Data cleanup and Xentral freeze coordination

    We work with the customer to clean duplicate addresses, normalize article naming conventions, and resolve any dangling vendor references before migration. We coordinate the inventory write-freeze window with the warehouse team, ensuring all goods-receipt and goods-issue transactions are paused for the snapshot period. Any data quality issues (missing addresses, invalid tax IDs, orphaned order lines) are documented in a pre-migration remediation checklist and resolved by the customer before the migration load begins.

  4. Sandbox migration and reconciliation

    We run a full migration into an Odoo test database using production-equivalent data volume. The customer's operations lead reconciles record counts (addresses in, partners created; articles in, products created; orders in, sale orders created; invoices in, account moves created), spot-checks 25-50 random records against the Xentral source, and reviews the stock snapshot accuracy. Any mapping corrections are applied here. The customer signs off on the sandbox migration before production migration is scheduled.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Partners (split from Xentral Addresses), Products (from Articles), Stock Locations and Quants (inventory snapshot), Projects, Sale Orders, Purchase Orders, Account Moves (invoices and bills), and Attachments. Each phase emits a row-count reconciliation report before the next phase begins. We use Odoo's XML-RPC batch write endpoint with chunking and exponential backoff on 429 responses. Xentral Flows are not migrated as code; the workflow inventory document is delivered at this stage for the customer's Odoo rebuild team.

  6. Cutover, validation, and workflow rebuild handoff

    We freeze Xentral writes 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 chart of accounts mapping document, the custom field list, and the Xentral Flows inventory with Odoo Studio equivalents. We support a one-week hypercare window where we resolve any record-level reconciliation issues. We do not configure Odoo Accounting tax codes, SEPA bank accounts, or fiscal positions as part of the migration scope; these require the customer's accountant or Odoo partner with country-specific fiscal knowledge.

Platform deep dives

Context on both ends of the pair

Xentral ERP logo

Xentral ERP

Source

Strengths

  • Seamless multi-channel e-commerce integration with major platforms and marketplaces out of the box.
  • Integrated middleware (Xentral Connect) enables workflow automation without requiring custom development.
  • Cloud-native architecture with automatic updates and German/EU data hosting for GDPR compliance.
  • Unlimited user pricing across all tiers simplifies cost planning for growing teams.

Weaknesses

  • Non-intuitive interface with a steep learning curve for new users and complex features.
  • Custom field support limited to Articles, Addresses, and Projects — no native custom objects for other entities.
  • Workflow automations are tied to the Xentral Connect middleware and cannot be exported or migrated directly.
  • Advanced accounting and production planning features gated behind higher-priced tiers.
Odoo ERP logo

Odoo ERP

Destination

Strengths

  • Modular architecture with 80+ apps sharing one database — add Sales, Accounting, Inventory, and Manufacturing incrementally.
  • Free Community edition for self-hosting with no per-user license cost, backed by an active open-source community.
  • Per-user pricing starting around $24.90/month on Standard, significantly lower than comparable ERPs like NetSuite or SAP.
  • Automatic workflow propagation across modules — a confirmed sales order updates inventory, triggers invoicing, and posts accounting entries without manual steps.
  • Odoo.sh provides a managed cloud hosting environment with CI/CD for custom module deployment and staging databases.

Weaknesses

  • Performance suffers under heavy customization — large implementations with many active modules require dedicated optimization.
  • No single-click migration between Odoo major versions; each release introduces ORM changes, deprecated API calls, and schema revisions requiring manual adaptation.
  • Per-user and per-module licensing costs can escalate unpredictably for growing teams adding multiple apps.
  • Steep learning curve with hundreds of configuration options across dozens of modules creates adoption friction and training requirements.
  • Support tiers on Enterprise have inconsistent response times, pushing some customers toward alternatives with more reliable SLAs.

Complexity grading

How hard is this migration?

Standard ERP migration. 1 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Xentral ERP and Odoo ERP.

  • Object compatibility

    B

    1 of 8 objects need a mapping; the rest are 1:1.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    Xentral ERP: Documented at developer.xentral.com/reference/rate-limiting; specific per-endpoint limits not publicly enumerated.

  • Data volume sensitivity

    A

    Xentral ERP exposes a bulk API — large-volume migrations stream efficiently.

Estimator

Estimate your Xentral ERP to Odoo ERP migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about Xentral ERP to Odoo ERP data migrations

Answers to the questions buyers ask most during Xentral ERP to Odoo ERP migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your Xentral ERP to Odoo ERP migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most migrations land between four and eight weeks for accounts under 10,000 addresses, 5,000 articles, and 3,000 orders with a single warehouse and no complex multi-currency setup. Migrations with multi-warehouse stock, large invoice histories, complex chart-of-accounts mappings, or Odoo multi-company configurations move to ten to sixteen weeks because of stock freeze coordination, tax code reconciliation, and Odoo Accounting configuration time.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Xentral ERP.
Land in Odoo ERP, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day