NetSuite is a powerful cloud ERP, but it comes with enterprise pricing that doesn't always make sense for mid-market Australian businesses. When the annual bill climbs past $50,000โ$100,000 and you're still fighting customisation costs, Odoo starts looking very attractive โ especially now that Odoo Enterprise has matured into a genuine ERP platform.
Migrating from NetSuite to Odoo is more complex than migrating from Xero or MYOB because NetSuite is a full ERP, not just accounting software. This guide covers the end-to-end process.
Why businesses leave NetSuite
- Cost โ NetSuite licensing + SuiteCommerce + modules + customisation adds up fast. A $50k/year NetSuite bill can drop to under $15k/year with Odoo Enterprise.
- Customisation costs โ SuiteScript development is expensive. Finding NetSuite developers in Australia is difficult and rates are high.
- Complexity โ Many mid-market businesses were oversold into NetSuite and only use 20% of its capabilities.
- Contract lock-in โ NetSuite's multi-year contracts and price escalation clauses push businesses to evaluate alternatives at renewal time.
Step 1: Audit your NetSuite usage
Before planning the migration, document exactly what you're using in NetSuite:
- Modules in use โ Accounting, CRM, inventory, manufacturing, projects, HR, eCommerce?
- Custom records and fields โ List every custom record type, custom field, and saved search. These will need Odoo equivalents.
- SuiteScript customisations โ Document all custom scripts (client scripts, user event scripts, scheduled scripts). You'll need to decide which ones to rebuild in Odoo.
- Integrations โ What's connected via SuiteTalk/REST API? Shopify, payment gateways, 3PL, bank feeds?
- Subsidiaries โ If you're using OneWorld with multiple subsidiaries, map these to Odoo multi-company.
- Workflows and approvals โ Document all NetSuite workflows. Odoo has its own workflow engine but the logic will need to be rebuilt.
Run a NetSuite Saved Search on all custom records, custom fields, and workflow rules to get a complete list. Don't rely on memory โ there are always customisations people have forgotten about.
Step 2: Map NetSuite modules to Odoo
Here's how NetSuite modules typically map to Odoo:
- NetSuite Financials โ Odoo Accounting
- NetSuite CRM โ Odoo CRM
- NetSuite Inventory Management โ Odoo Inventory
- NetSuite Manufacturing (WIP/Routing) โ Odoo Manufacturing (MRP)
- NetSuite Projects โ Odoo Project + Timesheets
- NetSuite HR โ Odoo Employees + Payroll
- SuiteCommerce โ Odoo Website/eCommerce
- NetSuite Procurement โ Odoo Purchase
- NetSuite OneWorld (Subsidiaries) โ Odoo Multi-Company
- Custom Records โ Odoo Custom Models (Studio or development)
Step 3: Extract data from NetSuite
Use NetSuite's SuiteAnalytics Connect (ODBC) or CSV exports via Saved Searches to extract:
- Chart of accounts with account types and sub-accounts
- Customers and vendors with all custom fields
- Items (inventory, non-inventory, service, kit/assembly)
- Open transactions โ invoices, bills, sales orders, purchase orders
- Bill of Materials / assembly definitions
- Employee records (if migrating HR/payroll)
- Projects with task structures and time entries
- Custom record data
NetSuite's CSV import/export has record limits. For large datasets (10,000+ records), use ODBC or the SuiteTalk REST/SOAP API for reliable bulk extraction.
Step 4: Set up Odoo and configure modules
Install the relevant Odoo modules and configure them before importing data:
- Install Australian Accounting, configure chart of accounts, GST, and BAS
- Set up multi-company if migrating from NetSuite OneWorld
- Configure warehouses and stock locations to match NetSuite's inventory structure
- Set up manufacturing operations and work centres if using MRP
- Recreate NetSuite custom fields as Odoo custom fields (via Studio or development)
- Rebuild critical workflows and approval chains in Odoo
Step 5: Migrate the data
Import data in this order (dependencies matter):
- 1. Contacts โ Customers, vendors, employees
- 2. Products/Items โ With costs, prices, BOMs
- 3. Inventory โ Current stock levels per location
- 4. Open transactions โ Unpaid invoices, bills, open sales orders, open purchase orders
- 5. Opening balances โ Journal entry matching NetSuite's trial balance
- 6. Projects and timesheets โ Active projects with WIP
- 7. Custom record data โ Into the corresponding Odoo custom models
Step 6: Rebuild integrations
Any system that was integrated with NetSuite needs to be reconnected to Odoo:
- eCommerce โ Odoo has native Shopify, WooCommerce, and Amazon connectors
- Payment gateways โ Stripe, PayPal, and others have Odoo integrations
- Shipping/3PL โ Australia Post, StarTrack, Sendle have Odoo connectors or can be custom-integrated
- Bank feeds โ Set up via Basiq, Yodlee, or SaltEdge
- Custom API integrations โ Rebuild using Odoo's REST API (Odoo 17+) or XML-RPC
Step 7: Test and validate
- Run a trial balance in both systems and compare
- Verify inventory quantities match across both systems
- Test all rebuilt workflows and approval chains
- Process test transactions through every business process (quote โ sale โ invoice โ payment)
- Run a BAS report and compare to NetSuite
- Test all integrations end-to-end
- Train key users and run a parallel period if possible
Step 8: Go live and decommission NetSuite
- Set the go-live date (start of a BAS quarter is ideal)
- Freeze NetSuite โ no new transactions after cutover
- Verify final opening balances in Odoo
- Switch all integrations to point at Odoo
- Update payment remittance details on invoices
- Run hypercare support for 2โ4 weeks post go-live
- Keep NetSuite accessible (read-only) for at least 12 months for ATO compliance
Timeline and cost comparison
NetSuite-to-Odoo migrations typically take:
- Simple (accounting + CRM) โ 4โ6 weeks
- Standard (accounting + inventory + CRM + projects) โ 6โ12 weeks
- Complex (full ERP with manufacturing, multi-company, custom modules) โ 12โ20 weeks
The migration investment typically pays for itself within 12โ18 months through reduced licensing costs alone. A business spending $80k/year on NetSuite might spend $15k/year on Odoo Enterprise โ that's $65k saved annually after the initial migration cost.