Skip to content
Auboros

Odoo Product Import Template Builder (Variants)

An Odoo product import needs a name, the appropriate product type and tax settings, plus stable external IDs for later updates. Create attributes and values before templates reference them, then check variant combinations, internal references and barcodes. Build a file for the selected model and version, inspect the validation report and test a small 3-row sample before importing the catalogue.

Your figures

Example values — replace with yours
Calculator inputs

Rows ready for import

$0.00

Show breakdown

Calculation breakdown

Valid rows
$0.00
Calculation breakdown
Valid rows$0.00

Choose a versioned import layout, map your columns and resolve every blocking error before downloading.

Rates as at 7 Sept 2026 · Gs1

Nothing you type leaves your browser unless you choose Email PDF.

At a glance

Layouts
Odoo 18 product templates and updates to existing product variants
Input
paste or upload your current list, or generate SKU planning rows from attributes
Validation
required fields, unique IDs, referential integrity, lengths, types, GTIN check digits
Output
CSV or XLSX in the import screen's column order, plus a validation report and import notes
Import order
attributes and classes first, then items, then variants or matrix children
Note
Nothing is uploaded; the file is built and validated in your browser

How it is calculated

Match source columns to the selected layout, apply explicit defaults and validate every output row. Required fields, identifiers, declared references, types and barcodes must pass before download.

source rows → column mapping → defaults → validation → download
  • Rates as at 2026-09-07 from Gs1

Tool rates and release history

Why do product imports fail?

Spreadsheet data often lacks the relationships the target system requires. Codes can collide after whitespace and case normalisation; attribute values may not exist yet; and tax codes or units may differ from the tenant’s configured values. The builder checks the selected layout against the reference lists you declare. It cannot query the tenant or reproduce every server-side rule, so a successful validation report must still be followed by a native test import.

What does an Odoo product import need?

For Odoo 18, select Goods or Service; inventory tracking is a separate Track Inventory flag. A product template carries the sales and purchase settings, taxes, category and attribute lines. Import the attributes and values first, using their external IDs. Each attribute line also needs its own stable External ID: omitting it can create extra lines and variants on re-import. When updating existing lines, retain their actual exported IDs. Additional attributes use continuation rows with the parent fields left blank; the builder does not apply parent defaults or generate an ID on those rows.

Odoo generates variants from the template’s attribute combinations. To update a variant’s reference, barcode, cost or weight, export its actual External ID from Odoo and retain that ID in the update file. Never invent a replacement variant ID or use the SKU alone as its identity. Selling price is shared by the template; variant price differences need attribute extra prices or a separately configured pricelist, not an independent price column in this update layout.

When should the import file be built?

Start during discovery, before the full migration. A representative sample makes the catalogue size, variant structure, attributes and tax requirements visible. Validate the source, test it in a non-production tenant, inspect the imported records and repeat an update using the same identifiers. Expand to the full catalogue only after those checks pass; customisations and tenant settings may require a different layout.

Product import validation rules by group
GroupRulesBlocking
Required fieldsEvery required column in the layout is present and non-emptyYes
IdentifiersUnique codes; length limits; allowed characters; trimmed; stable external IDsYes
ReferencesItem class, tax code, UoM, warehouse, accounts, categories exist in the declared listsYes
VariantsEvery attribute value referenced is defined; no duplicate combinations; ID template produces unique childrenYes
TypesPrices, costs, weights, dimensions numeric and non-negative; dates ISO; booleans normalisedYes
BarcodesGTIN length and check digit; uniqueYes
TextLength limits; no control characters; initial zeroes preservedYes
WarningsEmpty description; missing barcode; price below cost; zero weight on a storable item; duplicate rows collapsedNo

Frequently asked questions

Why do product imports need stable external IDs?

External IDs let a later import identify the same product and update it rather than creating another record. Keep them stable across exports and revisions. Check that template IDs, variant IDs and attribute references remain distinct and that each file targets the correct import model.

How should attribute lines be prepared before importing variants?

Create or import the attributes and their permitted values before product templates reference them. Map the template’s attribute lines consistently, then handle variant references and any variant-specific values in the appropriate model. Test a small representative product before importing the full catalogue.

Is my product data uploaded anywhere?

No. The file you paste or upload is read in your browser, validated there, and the output is generated there. Nothing is sent to our servers or anyone else's. If you want to keep your mapping and defaults for next time, turn on "Remember my settings", which stores only the settings, not the data.

Will the file import without changes?

Validation checks the selected layout and the reference lists you supply; it cannot check your live database or every customisation. Use the recorded Odoo version, retain the correct external IDs, and run a small representative file through Odoo’s Test and Import actions before importing the catalogue.

Bring the validated file to a discovery call and we will size the implementation from it.

Book a conversation