Migrating from Microsoft Dynamics to Odoo is one of the most critical phases in an ERP transformation, particularly for businesses operating in the FMCG, tobacco distribution, convenience goods, and bulk retail supply sectors.

These industries handle thousands of customers, complex billing relationships, and extensive product assortments, making clean data migration a non-negotiable requirement.

We recently completed a full-scale migration for a large wholesale distributor in the FMCG & tobacco industry, and their challenges turned into a blueprint that can help anyone planning the same transition.

This blog breaks down the practical steps, field mappings, relationship logic, and automation scripts we built, so your migration is smoother, cleaner, and far more compliant.

Explore Odoo for Wholesalers & Distributors>>

Why Data Mapping Becomes a Pain when you Migrate from Microsoft Dynamics to Odoo?

Businesses in wholesale & distribution typically have:

  • Large customer base
  • Multiple store branches tied to one billing customer
  • Compliance-sensitive product categories
  • Complex product variants and item codes
  • Vendor imports from multiple sources
  • Huge SKU catalogs

In Microsoft Dynamics, many of these fields exist under different names or formats compared to Odoo. Without structured mapping, you risk:

❌ Broken customer/vendor imports
❌ Missing parent–child relationships
❌ Incorrect product variant groupings
❌ Duplicates across contacts
❌ Loss of legacy identifiers
❌ Failed inventory valuation

This is why mapping must be designed before the first import script runs.

How to Perform Smooth Data Migration from Microsoft Dynamics to Odoo?

Part 1: Customer & Vendor Migration- Cleaning & Structuring Contacts

  1. Custom Fields Required for the Industry

For distributors, contacts usually require:

  • Multiple phone numbers
  • Multiple email addresses
  • Tobacco/Cigarette permit details
  • Account numbers
  • Customer type (Wholesale/Retail)
  • Application method (Manual / Apply to Oldest)
  • Alternative search names

All these fields were added inside Odoo to ensure the imported data retains its business meaning.

  1. Automated Excel → Odoo Import Script

The Microsoft Dynamic to Odoo migration Script was designed to:

✔ Read Excel exports from MS Dynamics
✔ Map each field to Odoo equivalents
✔ Validate data formats
✔ Import customers & vendors
✔ Log every success/failure
✔ Provide clear traceability for re-imports

This avoids the human errors common in manual import processes.

  1. Rebuilding Parent–Child Billing Structure

Distributors often have:

  • One main billing customer
  • Dozens of branches or outlets under it

But MS Dynamics stores this as No and Bill-to Customer No.

In Odoo, we rebuilt this logic:

  • If a customer had a Bill-to Customer No →
  • Search for the parent customer →
  • Assign it as the invoice address (parent) in Odoo

Real Industry Example

A chain store like “Beverage Depot” might have:

  • HQ = Parent Billing Account
  • 30+ branches = Child Invoice Addresses

The mapping ensures:

  • Invoice consolidation
  • Store-level reporting
  • Clean ERP structure

Part 2: Product & Variant Migration: Getting Inventory Right

  1. Mapping Units, Durability & Tax Reporting

FMCG & tobacco distributors require fields like:

  • Tax reporting weight
  • Stick/pack quantities
  • Durability or shelf-life values
  • Legacy item numbers

These fields were added to Odoo in structured sections (“Tax Reporting”, “Durability”).

  1. Importing Templates + Variants Together

Two sheets were used:

  • Product Template file
  • Product Variant file

We matched them using:

  • Template → No
  • Variant → Item No

This ensured all variants grouped correctly under one template.

  1. Auto-Creating Attributes from Descriptions

Industry products often follow patterns like:

  • CLASSIC BLUE
  • CLASSIC RED BOX
  • CLASSIC MENTHOL

So we built logic to:

  • Take the shared template description
  • Subtract it from the variant description
  • Use the remainder as the attribute value

This automated attribute generation saved weeks of manual work.

Planning a Migration soon?
5 Takeaways for Anyone Migrating from MS Dynamics to Odoo:

  1. Don’t rely on raw exports- clean & map first.

Legacy fields do not always match Odoo’s structure.

  1. Automate as much as possible.

Python-based scripts save enormous time and minimize errors.

  1. Rebuild relationships logically, not manually.

Parent–child customers and product variants rely on rule-based mapping.

  1. Create custom fields where needed.

For continuity and reporting, replicate legacy fields inside Odoo.

  1. Treat product migration as its own project.

If Variants and UOM mappings are complex, allocate dedicated time.

If your business deals with:

  • FMCG
  • Tobacco
  • Packaged beverages
  • C-store supplies
  • Groceries
  • Convenience retail distribution

…you likely face the same challenges.

Our migration framework ensures your Odoo setup is accurate, scalable, compliant, and standardized.

Contact us for a smooth Data Migration from Microsoft Dynamics to Odoo.