How to import product data using a CSV file into AI Commerce ?
Use the CSV format to import products efficiently and flexibly into your store.
In the introduction, we will go over how CSV import works in AI Commerce and how to ensure the correctness of product data by using UTF-8 encoding and, if necessary, external PIM tools (such as Akeneo). You will also learn which columns you can select for import and how limiting it to only the fields you need will make your work easier and faster. The article provides tips on how to avoid errors and recommends starting with a small test file.
Step-by-step instructions
The CSV export of products serves as the basis for the import!
A CSV export of products is a great starting point for importing. You can speed up the process by skipping the preparation steps and using the export file as a base. However, please note that import supports more fields than export - see this article for more information. Export imports products from the folder and its subfolders where you click Export Products. If you want to export all products, create the export in the root directory.
Prepare a CSV file
- The minimum requirement is
products_model
field (SKU) that uniquely identifies the product. - Add only the columns you want to update or create (e.g.
products_price
for price update). - You can download the complete CSV import template from the page that opens behind the CSV Import Products button.
Use UTF-8 encoding
- Always save the CSV file in UTF-8 format.
- When opening, make sure that the program (e.g. Excel or a text editor) processes the file as UTF-8.
- This prevents character set problems where diacritics or other special characters are broken.
Take advantage of imported fields
-
Supported columns : For example,
products_name[fi]
,products_description[fi]
,products_image
etc. - The system will ignore fields that are not in the CSV. If a column is included but empty, that information will be purged from the database.
Note the maximum rows
- A single CSV file can contain a maximum of 10,000 rows.
- If you have more data, divide it into multiple batches.
Utilize PIM tools (e.g. Akeneo )
- Akeneo is natively integrated with AI Commerce .
- With Akeneo, you can manage and format CSV data more flexibly in your workflow.
Do a test migration before a larger update
- First, export a small amount of product data using CSV.
- Confirm that the information is correct and that the process is working.
- After this, you can safely import a larger amount of data.
CSV Error
"CSV ERROR on line X: found Y columns, expected Z columns." This means that the line has the wrong number of columns – often due to an incorrect delimiter or missing quotes. The check stops the import so that only properly formatted data is saved. CSV import requires that columns are separated by semicolons (;) and values are enclosed in quotes ("). Make sure you are using an up-to-date base file!
CSV documentation
The following table describes each CSV column, its purpose, and a typical input format. When building your CSV file, you can include only the columns you want to update (e.g., to update just the price, products_model
and products_price
are sufficient).
Note: Columns that show a language code in square brackets (e.g.
products_name[fi]
) are language-specific.fi
= Finnish,sv
= Swedish,en
= English. You can add or exclude language columns as needed.
Column | Description | Example value (e.g. in CSV) |
---|---|---|
products_model | Product model code/SKU. Identifies the product , so this is used to create or update the product. | 265-22-5932 |
products_name[en] | Finnish product name. Appears in Finnish on the product listing and page, among other things. | Sean Gray Neule |
products_description[en] | Finnish product description (long). Appears in the “Description” field on the product page. | Hieno paita edullisesti |
products_group | Product group/family name, if you want to group the products into the same “group”. If the group exists, it will be added to this group, otherwise a new one will be created. | sean_neuleet |
categories | Product categories separated by commas. The name is usually in the format category_id or a format supported by the system. |
402,403,409 |
products_image | The filename or URL of the main product image. If the value is a URL, it will be loaded/referenced externally. |
sean_neule.jpg or http://example.com/image.jpg
|
products_price | Sales price (tax-free or tax-inclusive, depending on system settings). Use a period as a decimal separator. | 14.90 |
products_date_added | The date the product was added (in YYYY-MM-DD format). If omitted, the default is the import date. |
2020-11-07 |
products_weight | Product weight in kilograms or in the desired unit, e.g. for calculating shipping costs. | 0.90 |
products_status | Product release status: 1 = shown (active), 0 = hidden. |
1 |
tax_rate | The product's tax rate in percentage (e.g. 24). The system converts the tax/tax-free price if necessary. | 24 |
manufacturer | Manufacturer/brand name. The system will try to match the name to an existing one or create a new one if necessary (depending on the logic). | Adidas |
products_price_sisa | Purchase price / buy-in price (tax-free or tax-inclusive, depending on store settings). | 5.20 |
products_package_size | Package size or similar additional information (e.g. “2.49” = 2.49 liters/package). | 2.49 |
products_location | Location information, e.g. from a storage location or shelf. | K01-H02-L03 |
products_name[en] | Swedish product name (optional). If the column is missing, the Swedish name will not be updated. | Sean Gray Knit |
products_name[en] | English product name (optional). | Sean Gray Knit |
products_description[en] | Swedish product description (long). | Jätte bra knit |
products_description[en] | English product description (long). | Very nice knit |
extra_image_1..9 | Up to 9 additional images. Can be a filename or URL. Each time the column is filled, the image will be added to the product image gallery. |
sean_neule_1.jpg (etc.) |
attributes_EAN | EAN/barcode, if used. (In this example, only the “attributes_EAN” column, no broader logic.) | 4274859283744 |
not_in_use | Deprecated or unused column (may be empty). | (blank) |
products_material[en] | Material information in Finnish. | 100% puuvillaa |
products_material[en] | Material information in Swedish. | 100% bomull |
products_material[en] | Material information in English. | 100% cotton |
products_specs[en] | Technical features or detailed additional information in Finnish. | Kiinnitys: Nappi |
products_specs[en] | Corresponding additional information in Swedish. | Montering: Knappad |
products_specs[en] | Corresponding additional information in English. | Mounting: Buttoned |
model_option | Possible additional field to specify the “model”. Usage depends on store settings. | 5 |
products_pdf | The path to the PDF file associated with the product. | sean_2020.pdf |
size_option | For example, size variant information stored in a single field (now only as a note, no variant logic). | M |
types (waist_cut) | For example, “type” or “waist model” field. Separated by punctuation if multiple. | 1,3,4 |
feature (fitting_option) | E.g. features / fits (equivalent to “feature_option”). | 1 |
products_bubbles | May contain product highlights / “bubbles” (e.g. a sales message). | 2 |
products_short_description[fi] | A short description of the product in Finnish. Appears in listings or as a quick description, for example. | Lyhyt tuotekuvaus |
products_short_description[sv] | Short description of the product in Swedish. | Kort produktbeskrivning |
products_short_description[en] | A brief description of the product in English. | Brief product description |
availability_in_stock | System ID or code that describes “Available in stock”. | 1 |
availability_out_of_stock | System ID or code that describes “Out of stock”. | 2 |
products_volume_weight | Volumetric weight, if used (e.g. 1.5). | 1.5 |
products_api_model | Internal field to use for integrations (for API). | 21242 |
products_length | The length of the physical product (e.g. in millimeters). | 400 |
products_width | Width of the physical product (mm). | 200 |
products_height | Height of the physical product (mm). | 100 |
products_price_vatid | B2B price or taxed/tax-free price, if you want to save separately according to a different VAT rate (depends on the store logic). | 12.90 |
products_free_shipping |
1 = product shipping costs = 0, 0 = shipping costs as usual. |
0 |
products_sort | Internal system sequence number for product listing. | 90 |
products_minimum | Minimum order quantity. | 2 |
products_discount_group | A discount group that can be used to control quantity-based or customer group-based discounts. | 5 |
is_customize |
1 = product needs to be customized (e.g. need to select features), 0 = no. |
1 |
hide_grouped_products |
1 = hide product from “group view” listing, 0 = show. |
1 |
products_link_href | External link from the product page, e.g. manufacturer's page. | https://www.apple.com/fi/iphone-13-pro/ |
products_price_disc | Possible “discounted” or promotional price, or other additional field. | 190.90 |
extra_image_top | One extra image for the “top spot” (e.g. for a highlighted hero image). | 1 |
products_youtube_link | YouTube address or embed link. | https://www.youtube.com/embed/befkWAWGDLM |
products_gallery_id | Gallery ID, if used. | 104 |
related_products |
Just SKUs separated by commas: SKU100,FILA112 In this case, the system creates a product line where all these SKUs are linked to each other with the main images of the products. SKU + extra ID in brackets: SKU100[12] If you want to attach an additional image ID (e.g. 12) to a related product, add it in brackets after the SKU. |
|
Where do you edit from?
- You can import your CSV file in the AI Commerce dashboard, for example, under: Tools > Import (the title may vary depending on your store settings).
- Select your own UTF-8 encoded CSV file and import.
- Check that the desired columns (such as
products_price
orproducts_name[fi]
) match the fields expected by the store.
Summary
CSV import in AI Commerce is a flexible and fast way to update basic product information, prices or language versions. By following UTF-8 encoding and starting with a small test file, you minimize errors. If necessary, you can expand the use with PIM systems, which will make CSV management significantly easier.