Odoo Migration & Upgrade
Move to Odoo 18 or 19 with every balance reconciled.
From Excel, QuickBooks, SAP Business One, Zoho, Tally or an older Odoo version, your data moves in validated batches, each reconciled against the source before the next begins. Every checkpoint has a rollback point, and the old system stays available until the numbers tie out.
- Excel and QuickBooks
- SAP Business One
- Zoho and Tally
- Odoo 14–17 to 18/19
- OpenUpgrade for Community
- Target Odoo versions
- Batches reconciled before the next
- Fee for the assessment
- Consultant from audit to cutover
What we move
Migrations and upgrades held to an accountant's standard
An import that finishes without errors can still leave balances that fail to tie out and stock that exists only on screen. We only call a batch done when it reconciles.
From Excel and spreadsheets
Customers, vendors, products and opening balances are cleaned of duplicates and stale prices before they enter Odoo, with your sign-off on each batch.
From QuickBooks and Zoho
Chart of accounts mapped with your accountant, open invoices and bills carried over, and closed periods preserved for reference.
From SAP Business One
Multi-company and multi-currency structures mapped before any data moves, and each legacy customization decided one by one, in writing.
From Tally
Ledgers, party balances and GST registrations for Indian entities, mapped and reconciled like any other source.
Odoo version upgrades
Odoo 14, 15, 16 or 17 to 18 or 19, run on a copy first, with custom modules ported and tested before cutover.
OpenUpgrade for Community
Odoo's own upgrade service covers Enterprise databases. Community databases go through the open-source OpenUpgrade path, which we run, and the license stays at $0.
Custom module porting
Every custom module is scanned against the target version's deprecated APIs. Code patched into core is rebuilt as separate, tested modules, so the next upgrade costs less.
Open items at cutover
Open sales orders, half-received purchase orders, unreconciled payments and stock in transit each get a named path into Odoo.
History and archive
Most companies bring two to three years of transactions plus all open items. The rest stays in a read-only archive that meets retention rules.
The upgrade path
Production stays untouched until the copy passes
Odoo supports its three most recent major versions, so staying put eventually means running without security fixes. We run the whole upgrade on a copy of your database, including a full month-end close, and schedule cutover only after your team has compared real invoices and stock moves on both versions.
- Deprecated-API scan before any quote
- Full month-end close on the upgraded copy
- Snapshot taken at the moment of cutover
- Back on the old version the same day if needed
Assessment
Every custom module inventoried and checked against the target version, with a written list of what ports cleanly.
Rehearsal on a copy
Views, data scripts and reports are exercised on the copy, so failures show up where they harm nothing.
Port and validate
Modules ported with tests, then quote-to-cash and month-end close run side by side until the numbers match.
Cutover
Scheduled overnight or over a weekend, with a snapshot kept as the rollback point.
Common starting points
Three moves we run most often
Spreadsheets or QuickBooks to Odoo
A single-entity move from an accounting package usually completes in weeks, not months. With Community's $0 license, the migration itself is usually the main cost, and it is quoted as a fixed price.
SAP Business One or a legacy ERP
Several entities, heavier history and years of customization. Each department signs off its own dataset, and a parallel run keeps the old system answering questions until the numbers prove out.
Older Odoo to 18 or 19
The data model is familiar, so the real work sits in custom modules written for the old version. Jumping several versions at once is possible: you test the start and end points, and we manage the steps between.
Data we have to get right
Every sector has one dataset that cannot slip
We identify that dataset in the source audit and give it its own reconciliation check before cutover.
- ManufacturingBOMs, routings and work-in-progress valuation.
- Wholesale & DistributionCustomer pricelists, credit limits and open backorders.
- Retail & E-commerceProduct variants, barcodes and stock per branch.
- ConstructionOpen progress claims, retention held and costs per site.
- PharmaceuticalsLot numbers and expiry dates on every unit in stock.
- Food & BeverageRecipes, batch records and shelf-life dates.
- Real EstateUnits, active leases and deposits held.
- Loan ManagementRepayment schedules and outstanding principal per borrower.
How a migration runs
Five steps, each signed off before the next
1. Source audit
We profile duplicates, orphans, encodings and mixed date formats, working from a database backup rather than the export menu.
2. Mapping and cleanup rules
Field mapping, chart of accounts and merge, fix or drop rules agreed in writing.
3. Timed rehearsal
The full migration runs on staging with a stopwatch, so the freeze window is known in advance.
4. Batch and reconcile
Masters first, then transactions, then balances, with a reconciliation report after each batch.
5. Parallel run and sign-off
Both systems run until trial balance, open receivables, payables and stock valuation tie out, and each department signs its own data.
Sources and tooling
The systems we move from and the tools we use
- Excel
- QuickBooks
- SAP Business One
- Zoho
- Tally
- Odoo 14–17
- Odoo 18
- Odoo 19
- OpenUpgrade
- PostgreSQL
- Python
- XML-RPC
- Docker
- Git
What you can hold us to
The old system retires only on evidence
Nothing is switched off until the parallel run reconciles and each department has signed its own data. What remains is a read-only archive for tax and audit retention, planned as part of the migration rather than as an afterthought.
Plan my migration- History most companies bring
- Reconciliation sessions
- Offices covering cutover weekends
- Community license after upgrade
- Reply time (business days)
FAQ
Questions clients ask first
How long does an Odoo migration take?
For one company leaving an accounting package, plan in weeks. A group moving off a heavily customized ERP should plan in months. We commit to a date only after the source audit, and it goes into the written quote.
How much does an Odoo migration or upgrade cost?
Cost depends on data quality and custom code, not record count, so any price given before seeing your data is a guess. The assessment is a small fixed fee, and the migration or upgrade is then quoted as a fixed price based on what it found.
Can you upgrade Odoo Community, or only Enterprise?
Both. Odoo's own upgrade service handles Enterprise databases, while Community databases go through the open-source OpenUpgrade project, which we run for you. Porting your custom modules is our work either way, and a Community license stays at $0.
Can we jump from Odoo 14 straight to Odoo 19?
Yes. The migration scripts step through each version internally, but managing those steps is our job; your team tests the starting point and the result. Older versions usually mean more deprecated APIs in custom code, and the assessment prices that before you commit.
Will the business stop during cutover?
Only for the final freeze, which is typically a weekend. Batches load from snapshots while your team keeps working in the old system, and because the full run is rehearsed and timed on staging, you know the freeze length before you pick a date. A snapshot at cutover keeps the old system ready if anything forces a rollback.
How much history should we migrate?
Technically all of it. In practice most companies bring two to three years of transactions plus every open item, and keep the rest in a read-only archive. That keeps Odoo fast and the migration affordable, and because we price per phase rather than per hour, we have no reason to haul data you will never open.
Get started
Start with a fixed-fee assessment
Tell us what you run today, which Odoo version you are aiming for and roughly how many years of history matter. We reply within one business day, and the assessment ends with a written plan and a firm quote you can use with anyone.
- Reply within one business day
- Rollback point at every checkpoint
- Reconciliation sessions in Thai or English
Prefer to talk first? Call us or WhatsApp us.