This guide covers taking a company that already runs on something (Tally, QuickBooks, SAP B1, Excel, a legacy ERP, paper) and moving it onto Odoo 18/19/20 without breaking day-to-day operations.
It follows Odoo's own "Odoo Implementation Methodology" (used by Odoo S.A. and Gold partners), extended with what partners do in real projects.
0. The big picture
PHASE 0 PHASE 1 PHASE 2 PHASE 3 PHASE 4 PHASE 5 PHASE 6
Pre-sales → Discovery → Solution → Build & → Data & → Go-live → Hypercare &
& scoping (Analysis) design (Fit-Gap) configure testing (UAT) (Cut-over) continuous improvement
1–2 wks 1–4 wks 1–3 wks 2–10 wks 2–6 wks 1 wk 4–12 wks
Typical durations:
| Company type | Users | Apps | Typical duration |
|---|---|---|---|
| Small trading/service | 5–20 | Sales, Purchase, Inventory, Accounting | 6–10 weeks |
| Mid-size distributor / manufacturer | 20–100 | + MRP, Quality, Barcode, eCommerce | 3–6 months |
| Multi-company group, several sites | 100+ | + inter-company, POS, HR/Payroll, custom modules | 6–12 months (phased) |
Golden rule (Odoo's own): use the standard first, configure second, use Studio third, and write custom code last. Every customisation is a cost at each yearly upgrade.
Phase 0 · Pre-sales and scoping
Goal: agree on what will be implemented, for whom, and by when, before any configuration.
Steps
- Kick-off call with the decision maker. Why ERP now? (growth, stock errors, month-end takes 15 days, no visibility, audit issues…)
- High-level process walk-through: sell → buy → stock → make → deliver → invoice → collect → pay → report.
- Choose the Odoo edition and hosting:
| Option | When |
|---|---|
| Odoo Online (SaaS), Standard plan | No custom code, no multi-company, small/medium. Cheapest and fastest; always the latest version |
| Odoo Online, Custom plan | Needs Studio, multi-company, external API |
| Odoo.sh (Custom plan) | Custom modules, staging branches, Git workflow |
| On-premise (Custom plan / Community) | Data sovereignty, heavy integrations, own IT team |
- Licensing check (important from Odoo 20): an active HR employee record with no user now counts as a Light User (~US$8.90/month, about ₹195 in India). Count employees early. See .
- Phase the scope. Phase 1 = core flows that keep the business running (Sales, Purchase, Inventory, Accounting). Phase 2 = MRP/Quality/eCommerce/POS. Phase 3 = HR, Payroll, Helpdesk, AI…
- Deliverables: Statement of Work (SoW), app list, user list by role, high-level timeline, budget (licences + services), RACI.
Roles you need from day one
| Role | Who | Responsibility |
|---|---|---|
| Project sponsor | Owner/CEO | Decisions, budget, unblocks people |
| Key user per department | Best operator in Sales, Stock, Accounts… | Explains the process, tests, trains colleagues |
| Customer project manager | Ops/IT manager | Planning, data collection, internal communication |
| Functional consultant (you) | Partner | Analysis, configuration, training, documentation |
| Developer | Partner | Only for gaps that can't be configured |
Phase 1 · Discovery (business analysis)
Goal: understand the as-is process in detail, and the numbers.
How
- Workshops per department (2–3 h each). Use the questionnaire in the discovery questionnaire.
- Collect real documents: 5 sample sales invoices, POs, delivery challans, a stock report, a P&L, the chart of accounts, payroll sheet, price lists, BoMs.
- Map processes as swimlanes (Sales / Warehouse / Accounts / Customer). Draw.io or Odoo Knowledge is enough.
- Quantify: orders/day, SKUs, warehouses, lines per order, invoices/month, users per role, peak season.
- Find the pain points and KPIs the owner cares about (stock accuracy, DSO, on-time delivery, gross margin by product).
Deliverable: Business Requirements Document (BRD), i.e. a list of requirements, each with an ID, priority (Must/Should/Could) and the department.
Phase 2 · Solution design (Fit-Gap)
For each requirement decide:
| Classification | Meaning | Example |
|---|---|---|
| Fit | Standard Odoo, just configure | Multi-step delivery, pricelists, GST |
| Fit with process change | Business adapts to Odoo's way | Stop manual stock edits; use inventory adjustments |
| Studio | Small field/view/report/automation | Add "Transporter" field on delivery, print it |
| Gap → Custom | Needs a module | Integration with a weighbridge, special commission logic |
| Out of scope / later phase |
Then write the Solution Design Document (SDD):
- Company structure: companies, branches, warehouses, locations, currencies, fiscal year.
- Master-data design: product categories (drive accounting and costing), UoMs, routes, pricelists, payment terms, taxes, fiscal positions, analytic plans.
- Process designs: one page per flow (O2C, P2P, MTO, MRP, returns, landed costs, month-end) with the Odoo menu path for every step.
- Access rights matrix: role → apps → access level (User / Administrator / custom group).
- Reports and dashboards needed.
- Integrations (bank, payment gateway, shipping, marketplace, e-invoicing portal).
Use the template in the fit-gap & solution design template.
Configuration order that avoids rework
1 Company / users / languages / currencies
2 Accounting localisation (chart of accounts, taxes, fiscal positions, journals, bank)
3 Product categories (costing + valuation + accounts) ← decide BEFORE any stock move
4 Warehouses, locations, routes, operation types
5 UoM, product attributes, products, BoMs, work centers
6 Pricelists, payment terms, sales teams, CRM stages
7 Purchase settings, vendor pricelists
8 Approvals, automations, email templates, report layouts
9 Studio customisations
Phase 3 · Build and configure (iterative sprints)
- Work in 2-week sprints. At the end of each sprint, demo the flow to key users in the test database. Don't wait for "the end".
- Keep a configuration log: setting, value, reason, date. It becomes the admin manual.
- Prefer configuration over Studio, and Studio over code.
- Custom code goes on Odoo.sh staging branches with tests.
- Build reports early (invoice layout, delivery slip, GST invoice). Users judge an ERP by its printouts.
Phase 4 · Data migration and testing
Detailed playbook: the data migration playbook.
Testing levels
- Unit/functional test (consultant): each configured step works.
- Integration test: whole flows across apps (SO → delivery → invoice → payment → bank reconciliation → P&L).
- UAT (key users): scripted scenarios with their real data, signed off per department.
- Parallel run (optional, 1 month-end): old system and Odoo side by side; compare stock value, AR, AP and P&L.
Template: the testing & go-live chapter.
Phase 5 · Go-live (cut-over)
Choose a month-start (ideally a quarter or year start) so opening balances are clean.
Cut-over checklist (simplified):
| When | Task |
|---|---|
| T-14 days | Freeze master-data design. Final trial migration. Train all users |
| T-7 | Users get logins; do a "day-in-the-life" rehearsal |
| T-2 | Stop creating new products/customers in the old system |
| T-1 (last day) | Physical stock count. Close old books; export trial balance, open AR/AP, open SO/PO |
| Go-live day | Import opening stock (inventory adjustment at the counted qty and cost), opening balances (journal entry), open invoices/bills, open SO/PO. Reconcile totals with the old trial balance. First real transaction in Odoo |
| Day +1 to +5 | Consultant on site/online every day: "war room" |
Phase 6 · Hypercare and continuous improvement
- 4–12 weeks of close support; a ticket list with priority.
- First month-end close in Odoo done together with the accountant. Since Odoo 19 this includes the inventory valuation closing entry and accruals.
- Measure the KPIs from Phase 1 and compare.
- Plan Phase 2 apps.
- Plan yearly upgrades (Odoo supports the last 3 major versions on-premise; Odoo Online upgrades automatically).
Common failure reasons (and how to avoid them)
| Failure | Prevention |
|---|---|
| Copying the old system's process 1:1 | Challenge each "we always did it like this" with the standard Odoo flow |
| Dirty master data | Clean product, customer and vendor lists before import; deduplicate |
| Product category / costing decided late | Decide costing method and valuation (manual vs automated) in Phase 2. Changing them later is painful |
| No key users, or key users too busy | Get management to free 20–30 % of their time |
| Too much customisation | Each custom module adds upgrade cost; ask "what is the business value?" |
| Skipping UAT sign-off | No go-live without signed scenarios |
| Big-bang with too many apps | Phase it; core flows first |
| Ignoring licence changes | From Odoo 20: Light Users and employee records count |
| AI before clean data | "AI can only be as good as the layers underneath it." (Fabien Pinckaers, Odoo Experience 2026) |