AIVcoreOdoo development
en
All publications
Article5 February 20263 min read

Moving from 1C to Odoo: a data migration checklist

What to migrate, what to archive, how to verify the result, and why a parallel run matters more than any technical decision. A practical checklist from our projects.

Project facts

Stack
Odoo1СXML-RPCPostgreSQL

Migrations fail on decisions that were not made in time, not on technology. This is the checklist we run on every 1C to Odoo project.

Step 1. Decide what NOT to migrate

The most common mistake is trying to migrate ten years of history. Usually you need:

  • master data — products, partners, contracts, employees, warehouses;
  • balances at the cut-off date — stock, cash, settlements;
  • open documents — unfulfilled orders, work in progress;
  • 1–2 years of history, if it is genuinely needed for analytics.

Everything else stays in a read-only archive copy of 1C. Cheaper, faster and safer.

Step 2. Object mapping

Build a table: 1C object → Odoo model → transformation rule → owner. Typical mappings:

1COdoo
Productsproduct.template / product.product
Counterpartiesres.partner
Contractssale.order or a custom model
Bills of materialsmrp.bom
Warehouses, binsstock.warehouse, stock.location
Stock balancesstock.quant (inventory adjustment)

Decide separately how to handle product characteristics: in 1C they are often a separate catalogue, while Odoo uses product variants (product.attribute). Copying them mechanically explodes the number of items.

Step 3. Clean the data BEFORE migrating

Moving garbage into a new system is pointless. The mandatory minimum:

  • duplicate partners by tax ID;
  • products without units of measure or with empty names;
  • items with no movement for 3 years — archive them;
  • partners without legal details.

The client does the cleaning — only they know what is alive. We provide ready-made reports on problem records.

Step 4. Idempotent loading

Write the loader so it can be repeated any number of times without duplicates: every record gets an external identifier such as 1c_import.partner_00123. On a repeat run Odoo updates the record instead of creating a new one.

In practice we run at least three full loads on a test database before the real cut-over.

Step 5. Reconciliation

Control points that must match to the cent:

  • total stock by warehouse;
  • settlement balance per partner;
  • cash balances;
  • number of active product items.

Find discrepancies with a reconciliation script, not by eye.

Step 6. Parallel run

One month of working in both systems. Yes, it doubles the load on people — and it is the only way to surface process mismatches before they become problems. Typically 5–10 nuances nobody mentioned during the audit appear in weeks two and three.

Step 7. Train before go-live

Not after. Role-based sessions: warehouse, sales, purchasing, manufacturing, accounting. Each role gets a short guide for its own scenarios, not a 200-page manual.

How long it takes

From our experience: a small trading company takes 4–6 weeks; manufacturing with BOMs and warehouse management takes 3–5 months. Most of the time goes into agreeing the target processes, not into moving the data.

Similar challenge?

Describe your process — we will estimate the scope and timeline.

Related publications