How to Import Master Data in Odoo 18 for Trading Businesses
By Braincuber Team
Published on January 17, 2026
Migrating to Odoo—or setting up a fresh database—means transferring your existing business data: products, customers, vendors, orders, and invoices. Doing this manually record by record would take weeks. Fortunately, Odoo's import functionality handles bulk data in minutes, provided your files are properly formatted.
This tutorial covers importing the core master data for trading businesses: product categories, product variants, customers, vendors, sales orders, and purchase orders. We'll show you how to export templates, structure your data, and avoid common import errors.
Import Order Matters: Always import in this sequence: Categories → Attributes → Products → Partners (Customers/Vendors) → Orders. Each record type depends on the previous ones being in place.
What You Can Import
Product Categories
Hierarchical organization for products. Import parents first, then child categories to maintain relationships.
Products & Variants
Product templates with attributes (size, color) and their variant combinations. Requires attributes to be imported first.
Customers & Vendors
Contact records with addresses, payment terms, and fiscal information. Same partner model, different type flag.
Sales & Purchase Orders
Quotations, confirmed orders, RFQs. Requires products and partners to exist before import.
The Universal Import Process
Every import in Odoo follows the same three-step pattern:
Export a Template
- Go to the record list (Products, Customers, etc.)
- Select an existing record
- Click Action → Export
- Choose fields to export and select XLSX or CSV format
- This gives you the exact structure Odoo expects
Prepare Your Data
- Open the exported template in Excel or Google Sheets
- Add your data following the same column structure
- Use exact field names (case-sensitive)
- Reference related records by name or External ID
Import & Validate
- Go back to the record list
- Click Action → Import Records
- Upload your file & click Test to validate
- Fix any errors, then click Import
1. Importing Product Categories
Categories organize your products hierarchically. Import parent categories before children.
Name,Parent Category Electronics,All Computers,Electronics Laptops,Computers Desktops,Computers Accessories,Electronics Cables,Accessories Chargers,Accessories
Path: Sales → Configuration → Product Categories → Action → Import Records
2. Importing Products with Variants
For products with variants, first import Attributes, then Products:
Attribute,Values,Display Type,Variant Creation Mode Color,"Red,Blue,Black",Color,Instantly Size,"S,M,L,XL",Radio,Instantly Storage,"128GB,256GB,512GB",Select,Instantly
Name,Product Category,Sales Price,Cost,Product Type,Attribute Values Wireless Mouse,Accessories,29.99,15.00,Storable Product, Gaming Keyboard,Accessories,79.99,45.00,Storable Product, T-Shirt,Clothing,24.99,8.00,Storable Product,"Size: S, M, L, XL; Color: Red, Blue, Black" USB-C Cable,Cables,12.99,5.00,Storable Product,"Length: 1m, 2m, 3m"
Path: Sales → Products → Products → Action → Import Records
3. Importing Customers & Vendors
Both use the same partner model. The Is a Company and type fields differentiate them:
Name,Is a Company,Email,Phone,Street,City,Country,Customer Payment Terms Acme Corporation,TRUE,orders@acme.com,+1-555-0100,123 Business Ave,New York,United States,30 Days Global Traders Ltd,TRUE,info@globaltraders.com,+44-20-7946-0958,45 Commerce Street,London,United Kingdom,15 Days John Smith,FALSE,john.smith@email.com,+1-555-0123,789 Oak Lane,Chicago,United States,Immediate Payment
Name,Is a Company,Email,Phone,Street,City,Country,Vendor Payment Terms TechSupply Inc,TRUE,sales@techsupply.com,+1-555-0200,500 Industrial Blvd,San Francisco,United States,Net 45 Component World,TRUE,orders@componentworld.com,+86-21-6888-8888,888 Manufacturing Road,Shanghai,China,Net 30
Path: Sales → Customers → Action → Import Records (for customers)
Purchase → Vendors → Action → Import Records (for vendors)
4. Importing Sales & Purchase Orders
Orders require products and partners to exist first. Each line item needs a separate row:
Order Reference,Customer,Order Date,Order Lines/Product,Order Lines/Quantity,Order Lines/Unit Price SO001,Acme Corporation,2025-01-15,Wireless Mouse,10,29.99 SO001,Acme Corporation,2025-01-15,Gaming Keyboard,5,79.99 SO002,Global Traders Ltd,2025-01-16,USB-C Cable,50,12.99 SO002,Global Traders Ltd,2025-01-16,Wireless Mouse,25,29.99
Important: Multiple lines with the same Order Reference become line items on the same order. The customer and date should be identical for all lines of an order.
Common Import Errors & Solutions
| Error | Cause | Solution |
|---|---|---|
| Field not found | Column name doesn't match Odoo field | Export a sample and use exact column names |
| No matching record found | Referenced record (category, customer) doesn't exist | Import dependencies first, or use External ID |
| Invalid format | Date/number format mismatch | Use YYYY-MM-DD for dates, period for decimals |
| Duplicate External ID | Trying to create a record that already exists | Remove duplicates or update instead of create |
Best Practices
Import Tips:
- Always export first: Use Odoo's export as your template—never guess at field names.
- Test before importing: The Test button catches errors before data is committed.
- Use External IDs: For complex imports, External IDs let you reference records reliably across files.
- Import in order: Categories → Attributes → Products → Partners → Orders.
- Backup first: Before large imports, take a database backup in case you need to rollback.
Conclusion
Importing master data into Odoo 18 follows a consistent pattern: export a template, prepare your data in the same structure, test, and import. By respecting the dependency order—categories before products, partners before orders—you'll avoid most common errors. For trading businesses with thousands of SKUs and contacts, mastering this workflow is essential for a smooth Odoo implementation.
Key Takeaway: Export existing record as template → Prepare data in XLSX/CSV matching the structure → Navigate to record list → Action → Import Records → Test → Import. Always import dependencies (categories, partners) before dependents (products, orders).
