ERP migration
Field-level mapping, validation, and rollback between Accolent ERP and Odoo ERP. We move data and schema; workflows are rebuilt natively in Odoo ERP.
Accolent ERP
Source
Odoo ERP
Destination
Compatibility
11 of 12
objects map 1:1 between Accolent ERP and Odoo ERP.
Complexity
CModerate
Timeline
4-8 weeks
Overview
Moving from Accolent ERP to Odoo ERP is an extraction-constrained migration: Accolent has no documented public API (GetApp FAQ confirms this), so all data leaves through direct SQL access for on-premise deployments or structured CSV exports arranged through ADS Solutions for cloud tenants. We map Accolent's relational schema across Customers, Vendors, Items, Sales Orders, Purchase Orders, and the Chart of Accounts into Odoo's modular PostgreSQL-backed model. Manufacturing customers with multi-level BOMs require pre-migration flattening to prevent circular-reference errors in Odoo's MRP module. Open AP/AR balances import as balance-forward records, not as re-created invoices. Workflows, automations, and the Accolent report designer configurations do not migrate; we deliver a written inventory of each for the customer's Odoo partner to rebuild in Studio or Python.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Accolent ERP object lands in Odoo ERP, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Accolent ERP
Customer
Odoo ERP
ResPartner (Customer)
1:1Accolent Customer records map to Odoo res.partner records with is_company=True. We extract billing address, shipping address, contact name, phone, email, payment terms, and account type flags. Odoo stores the customer type (individual vs company) on the partner itself; we set is_company=True when the Accolent record represents an organization and populate individual contacts as related partners with parent_id pointing to the company partner. Dedupe key is the customer code or, if absent, a normalized email address.
Accolent ERP
Vendor
Odoo ERP
ResPartner (Vendor)
1:1Accolent Vendor master records map to Odoo res.partner with is_company=True and supplier_rank=1. Address, payment terms, and PO defaults from Accolent map to Odoo's address fields and the vendor.payment_term_id and vendor_price list fields. We flag any Accolent vendor that has no email address for manual review before import because Odoo requires a partner to have at least a name or email for the purchase order workflow.
Accolent ERP
Item (Product/Inventory)
Odoo ERP
Product Product
1:1Accolent Item records map to Odoo product.product for stockable variants and product.template for the product definition. We extract item code, description, unit of measure, cost, sales price, pricing tiers, reorder point, warehouse locations, and any BOM link. Odoo's product_type field (product.type) is set to 'product' for stockable items, 'consu' for consumables, and 'service' for service items based on the Accolent item type flag. We resolve multi-warehouse stock levels as Odoo quant records per warehouse location.
Accolent ERP
Sales Order
Odoo ERP
Sale Order
1:1Accolent Sales Order headers and lines map to Odoo sale.order and sale.order.line. We extract order number, order date, customer reference, line items with quantities and prices, discount amounts, shipping address, and order status (open vs fulfilled). Fulfilled orders from Accolent import as sale.order in state='done' so they are read-only in Odoo; open orders import as 'sale_order' state='draft' or 'sent' for review before confirmation. We preserve the original Accolent order number in the client_order_ref field.
Accolent ERP
Purchase Order
Odoo ERP
Purchase Order
1:1Accolent Purchase Order headers and lines map to Odoo purchase.order and purchase.order.line. PO number, vendor, line items, quantities, prices, and receipt status migrate. Odoo's purchase.order workflow uses a receipt step linked to stock.picking; if the Accolent PO was partially received, we create the corresponding Odoo PO with the matched received quantity flagged in a custom field so the receiving team can reconcile on arrival.
Accolent ERP
Chart of Accounts
Odoo ERP
Account Account
1:1Accolent GL chart entries (account number, name, type: Asset/Liability/Expense/Revenue, cost-center flag) map directly to Odoo account.account records. We set the account type mapping per Odoo's account.account.account_type choices. If Accolent uses cost-center assignments at the account level, we recommend enabling Odoo's analytic accounting module during configuration to preserve cost-center reporting. Parent account hierarchy from Accolent becomes Odoo's parent_path for balance-sheet rollup.
Accolent ERP
Open AP/AR Balances
Odoo ERP
Account Move (balance-forward)
1:1Outstanding Accolent invoices and credit memos do not migrate as re-created invoices — they land as Odoo account.move records in draft state representing the balance-forward opening position. For AR, we create an opening customer statement move with the outstanding invoice amount as a receivable line against the partner. For AP, we create a vendor bill move with the outstanding amount as a payable line. We flag any record where the original invoice date is more than 90 days in the past for manual review before posting. This approach prevents Odoo from re-running tax computation on aged invoices that should reflect historical state.
Accolent ERP
Bills of Materials (BOM)
Odoo ERP
configuration
1:1Accolent multi-level BOMs (parent-component relationships, quantity-per, routing steps, work-center assignments, phantom BOM flags) map to Odoo mrp.bom and mrp.bom.line. We flatten BOMs to a maximum of two levels during import and flag any BOM with more than three levels for manual review before loading to prevent circular-reference errors in Odoo's MRP engine. Phantom BOMs from Accolent become Odoo phantom-type bom records with type='phantom'. Work-center assignments from Accolent routing steps map to Odoo mrp.workcenter records.
Accolent ERP
Warehouse Locations
Odoo ERP
Stock Warehouse + Stock Location
1:1Accolent multi-warehouse site definitions with bin/shelf location codes map to Odoo stock.warehouse records and the associated stock.location tree (view, internal, partner, and physical location types). We preserve Accolent bin and shelf codes in the Odoo location.lot_stock name field and map the warehouse code to Odoo's short_code field. Any cross-warehouse transfer orders in Accolent become Odoo inter-warehouse stock.picking records.
Accolent ERP
Financial Transactions (Journal Entries)
Odoo ERP
Account Move
1:1Historical Accolent GL journal entries (date, account, debit/credit amounts, source reference) map to Odoo account.move records with move_type='entry' for manual journal entries. We set the journal_id to a migration journal created specifically for historical data and preserve the original posting date and memo. We confirm Odoo's fiscal year sequences are open for all posting dates before loading; entries outside the configured fiscal periods require a journal entry sequence extension or a separate adjustment journal.
Accolent ERP
Fixed Assets
Odoo ERP
Account Asset
1:1Accolent fixed-asset records (acquisition cost, depreciation method, accumulated depreciation, asset class) map to Odoo account_asset module's account.asset records. We extract asset class, acquisition date, original cost, depreciation method (straight-line or declining), and accumulated depreciation. We create corresponding depreciation board entries in Odoo aligned with the Accolent depreciation schedule. Asset status (active, disposed, fully depreciated) maps to the Odoo asset state field.
Accolent ERP
Tax Codes
Odoo ERP
Account Tax
lossyAccolent tax code master records map to Odoo account.tax records with tax_scope and amount fields. We extract tax rate, applicability (sales vs purchase), and jurisdiction flags. Tax codes with complex compounding rules or jurisdiction-specific logic require manual review against Odoo's tax configuration because Odoo handles tax computation differently from Accolent. We flag any Accolent tax code with a name longer than 50 characters for field-length adjustment during import.
| Accolent ERP | Odoo ERP | Compatibility | |
|---|---|---|---|
| Customer | ResPartner (Customer)1:1 | Fully supported | |
| Vendor | ResPartner (Vendor)1:1 | Fully supported | |
| Item (Product/Inventory) | Product Product1:1 | Fully supported | |
| Sales Order | Sale Order1:1 | Fully supported | |
| Purchase Order | Purchase Order1:1 | Fully supported | |
| Chart of Accounts | Account Account1:1 | Mapping required | |
| Open AP/AR Balances | Account Move (balance-forward)1:1 | Mapping required | |
| Bills of Materials (BOM) | configuration1:1 | Mapping required | |
| Warehouse Locations | Stock Warehouse + Stock Location1:1 | Mapping required | |
| Financial Transactions (Journal Entries) | Account Move1:1 | Mapping required | |
| Fixed Assets | Account Asset1:1 | Mapping required | |
| Tax Codes | Account Taxlossy | Mapping required |
Gotchas + challenges
Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.
Accolent ERP gotchas
No public API means all migration runs through database access or vendor-assisted export
No bulk or batch API — file exports are the only high-volume path
BOM and manufacturing data requires manual schema mapping
Open AP/AR balances must be imported as live balance-forward records
Odoo ERP gotchas
No rollback for CSV imports
External ID conflicts on re-import
Many2many field encoding in CSV imports
Large export timeouts require batching
Version schema drift between Odoo releases
Pair-specific challenges
Migration approach
Discovery and extraction method confirmation
We audit the Accolent deployment (cloud vs on-premise), database connection type (SQL Server variant, Windows-auth vs SQL-auth), and the active data scopes across Customers, Vendors, Items, Sales Orders, Purchase Orders, Chart of Accounts, and any BOM or AP/AR records. For cloud tenants we coordinate with ADS Solutions to schedule a structured data export. For on-premise tenants we arrange a secure database connection during the scoping call and document the schema. We also capture the Accolent report designer exports for the customer's reference, since these do not migrate but serve as the business logic reference for Odoo report rebuilds.
Odoo edition and module selection
We work with the customer to select the right Odoo edition and module scope based on their Accolent usage. Odoo Community (free, self-hosted) covers core sales, purchase, inventory, and accounting for businesses comfortable with in-house IT. Odoo Starter ($31.10/user/mo) adds basic CRM features. Odoo Standard ($70/user/mo) includes full CRM, project management, and timesheet modules. Odoo Enterprise adds proprietary manufacturing, field service, and Odoo.sh hosting. We recommend starting with Community or Starter for businesses replacing Accolent's core distribution and inventory functions, and Standard or Enterprise if the customer also needs manufacturing or project management.
Odoo schema design and sandbox provisioning
We design the Odoo module configuration and custom field schema in a sandbox environment before production migration. This includes setting up warehouse locations to match Accolent's multi-warehouse structure, configuring Chart of Accounts and fiscal years, enabling and configuring the MRP module for BOM customers, and defining the product type hierarchy (stockable, consumable, service). We pre-create any custom fields needed for the AP/AR balance-forward migration and the BOM flattening configuration. The customer's Odoo administrator or partner validates the sandbox configuration before migration begins.
Data extraction, cleanup, and transformation
We extract data from Accolent via direct SQL query (on-premise) or the vendor-assisted CSV export (cloud). Extracted files are loaded into a staging environment where we run deduplication, field mapping, and BOM flattening transformations. Customer and vendor records are matched and deduplicated using normalized name and email. BOM structures are traversed and flattened to two levels with circular-reference checks. AP/AR records are converted to balance-forward account.move format. Each dataset emits a row-count and validation report for the customer's review before load.
Sandbox migration and reconciliation
We run a full migration into the Odoo sandbox environment using production-like data volume. The customer reconciles record counts (partners, products, sale orders, purchase orders, inventory quantities, journal entries) against Accolent reports and spot-checks 25-50 records per object for field-level accuracy. We correct any mapping errors identified during sandbox reconciliation before committing to production migration. Sandbox validation typically takes one to two weeks and is the most critical quality-control step in the engagement.
Production migration and cutover
We run production migration in dependency order: Chart of Accounts and fiscal year setup first, then warehouse locations, then partners (vendors followed by customers), then products, then open purchase orders and sales orders, then inventory quant records, then AP/AR balance-forward moves, then historical journal entries, then BOM structures, then fixed assets. Each phase emits a row-count reconciliation report. We freeze Accolent writes during cutover, run a delta migration of any records modified during the window, then hand over Odoo as the system of record.
Workflow inventory handoff and hypercare
We deliver a written inventory of every Accolent report designer configuration and automated workflow pattern, organized by module, with a description of the logic and a recommended Odoo equivalent (Studio report, Python action, or scheduled action). The customer's Odoo administrator or implementation partner uses this inventory to rebuild reports and automations post-migration. We do not rebuild workflows, automations, or report configurations as part of the migration scope. We support a one-week hypercare window for post-go-live reconciliation of any record discrepancies identified by the end-user team.
Platform deep dives
Accolent ERP
Source
Strengths
Weaknesses
Odoo ERP
Destination
Strengths
Weaknesses
Complexity grading
Moderate ERP migration. 4 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Moderate migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Accolent ERP and Odoo ERP.
Object compatibility
4 of 8 objects need a mapping; the rest are 1:1.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
Accolent ERP: Not applicable.
Data volume sensitivity
Accolent ERP doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during Accolent ERP to Odoo ERP migration scoping. Not seeing yours? Book a call.
Walk through your Accolent ERP to Odoo ERP migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Accolent ERP
Other ways to arrive at Odoo ERP
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.