Skip to Content
API ReferenceImport Tool

Odoo Data Import Tool

Migrate data from Odoo (v15-v17) to Arkan ERP using CSV files or a live XML-RPC connection.

Overview

The import tool supports a 5-phase migration process:

  1. Master Data — Accounts, journals, taxes, categories, UOMs
  2. Partners — Clients (customers) and vendors (suppliers)
  3. Products — Product catalog, variants, vendor pricing
  4. Inventory — Warehouses, locations, opening stock, lots
  5. Transactions — Journal entries, invoices, payments, sales orders, purchase orders

Import Workflow

1. Create a Session

POST /api/v1/import/sessions { "source": "odoo_csv", "source_version": "17.0" }

The session tracks progress, errors, and Odoo-to-Arkan ID mappings.

2. Upload and Analyze CSV

Export data from Odoo (Settings → Technical → Database Structure → Export), then:

POST /api/v1/import/analyze { "csv_content": "id,name,code,account_type\n1,Cash,1001,asset_cash\n...", "delimiter": "," }

The system auto-detects the Odoo model from column headers.

3. Validate

POST /api/v1/import/validate { "csv_content": "...", "model": "account.account" }

Returns validation errors (missing required fields, duplicates, invalid formats).

4. Import

Import each model in dependency order:

POST /api/v1/import/sessions/{id}/import/accounts { "csv_content": "..." } POST /api/v1/import/sessions/{id}/import/journals { "csv_content": "..." } POST /api/v1/import/sessions/{id}/import/partners { "csv_content": "..." } POST /api/v1/import/sessions/{id}/import/products { "csv_content": "..." }

5. Validate Results

POST /api/v1/import/sessions/{id}/validate

Returns:

  • Record count audit per model
  • Trial balance check (debits = credits)
  • Referential integrity check (orphaned FK references)
  • Open document summary (unpaid invoices, pending orders)

Odoo Live Connector

Connect directly to a running Odoo instance via XML-RPC:

POST /api/v1/import/odoo/connect { "url": "https://mycompany.odoo.com", "database": "mycompany", "username": "admin@example.com", "password": "api-key-or-password" }

One-Click Extract and Import

POST /api/v1/import/odoo/extract-and-import { "url": "https://mycompany.odoo.com", "database": "mycompany", "username": "admin@example.com", "password": "...", "session_id": "uuid", "model": "account.account", "fields": ["id", "name", "code", "account_type"] }

Import Sequence

Follow this order to satisfy foreign key dependencies:

PhaseModelsDepends On
1Accounts, Journals, Taxes, Categories, UOMsNone
2Clients, VendorsPhase 1
3Products, Vendor Products, Price ListsPhase 1-2
4Warehouses, Locations, Opening Stock, LotsPhase 1-3
5Journal Entries, Invoices, Payments, OrdersPhase 1-4

Supported Models

Odoo ModelArkan ModelNotes
account.accountAcctAccountType mapping: asset_receivable→asset, etc.
account.journalAcctJournalDirect mapping
account.taxAcctTaxVAT/GST/withholding
product.categoryInvCategoryHierarchical (parents first)
uom.uomInvUnitOfMeasureFactor-based conversion
res.partnerClient + VendorSplit by customer_rank / supplier_rank
product.templateInvProductIncludes tracking, barcode, category
product.supplierinfoInvVendorProductPricing, lead time, preferred vendor
stock.warehouseInvWarehouseCode + name
stock.locationInvLocationInternal type only
stock.quantInvStockQuantOpening stock by location
stock.lotInvLotLot number + expiration
account.moveAcctMovePosted entries only (invoices + journal entries)
account.paymentAcctPaymentPosted + reconciled
sale.orderSalesOrderConfirmed orders (draft → SalesQuote)
purchase.orderInvPurchaseOrderState mapping

UI Wizard

Access the import wizard in the web app at Settings → Import. The wizard provides:

  • Session management (create, resume, view history)
  • CSV file upload with delimiter selection
  • Auto-model detection from headers
  • Field preview with sample data
  • Validation results with error table
  • Import progress tracking
  • Error details with Odoo ID references
Last updated on