Contact Us

If you still have questions or prefer to get help directly from an agent, please submit a request.
We’ll get back to you as soon as possible.

Please fill out the contact form below and we will reply as soon as possible.

  • Contact Us
English (US)
US English (US)
FI Finnish
  • Home

Export and import bundle products using CSV files

Learn easy ways to export and import Bundle products using CSV files!

Written by Petro Mäntylä

Updated at April 15th, 2025

Contact Us

If you still have questions or prefer to get help directly from an agent, please submit a request.
We’ll get back to you as soon as possible.

Please fill out the contact form below and we will reply as soon as possible.

  • AI Commerce
    Administration homepage Customer relationships Orders Order management Categories Quotation tool Products Configurations Modules Local regulations and taxes Front page FAQ -työkalu Tools Box Additional functions Svelte
  • Akeneo
  • Builder.io
  • Algolia
  • Google
  • Partners
  • Tuki
+ More

In product configurations (bundles) in AI Commerce platform, it may sometimes be necessary to update or add multiple “options” (bundle_options) and “selections” (bundle_selections) for multiple products at once. For this, CSV Export / Import tools have been implemented, which allow you to bulk edit data via Excel or a similar program.

  • CSV Export allows you to extract existing data – you will see the same columns and their default values that the platform expects during the Import phase.
  • CSV Import, on the other hand, reads the contents of a previously created CSV file and updates/creates the corresponding data in the system.

The user interface has the following four buttons on the Catalog page:

  1. CSV Export Bundle Options
  2. CSV Import Bundle Options
  3. CSV Export Bundle Selections
  4. CSV Import Bundle Selections

A good practice is to first create a sample bundle in the user interface, test that it works, and only then create an Export CSV file. This way you can see exactly which columns and values will be created in the CSV environment. You can use this export file as a basis for future mass edits and imports. This way you will avoid errors and learn the structure of the form best.

Also, please make a backup (e.g. save the export file to a safe place) before making any large-scale changes. This way, if something goes wrong, you can always revert to a known working situation by restoring the CSV, which has been tested.


Export Bundle Options

The “ CSV Export Bundle Options ” button will output a CSV file with these columns in the header row:

Column Description
option_code The code associated with the bundle option (e.g. option_5 or a more descriptive identifier of your choice).
parent_sku The product model of the bundle's "parent" tuotemalli , e.g. ABC-123 .
required Whether the option is mandatory (1) or optional (0).
position Ordinal number (smaller number = displayed first).
type The type selected for the option (e.g. radio , checkbox ).
language_code Language code (e.g. fi , en ) – tells you which language title and description belong to. You can find the languages in Locals & Taxes > Languages.
title The title to be displayed in the language.
description Additional text / explanation to be displayed in the language in question.

Each line in the CSV file corresponds to one (option + language) combination. If there are multiple languages for the same option, multiple lines will be displayed.


Export Bundle Selections

The “ CSV Export Bundle Selections ” button results in another CSV with the following columns:

Column Description
option_code Tells which bundle option this selection is related to (e.g. option_5 ).
parent_sku tuotemalli for the main product in the bundle.
sku tuotemalli selected “children's product”.
position Ordinal number.
is_default Whether the child product in question is selected by default (1) or not (0).
selection_price_type 0 = “fixed price” in the selection_price_value field, 1 = “linked”/addable price.
selection_price_value The price amount (e.g. 9.99 ). Often left blank if using linked pricing.
selection_qty Default quantity (e.g. 1 ).
selection_can_change_qty Whether the customer can change the quantity (1) or is it locked (0).

Each row corresponds to one selection within a specific option. If multiple child products are associated with the same option, each will appear on its own row.


Import Bundle Options

The “ CSV Import Bundle Options ” button allows you to add or update options. The columns in the CSV file are expected to be in the same order and with the same headings as in the Export:

option_code; parent_sku; required; position; nitrogen; language_code; title; description

  1. option_code
    • If option_code value is already found in the database, the option is updated (required, position, type, etc.).
    • If option_code value is missing (empty) or not found in the database, a completely new option is created.
      • In this case, the platform automatically generates “option_{ID}”, where ID is option_id created in the database.
  2. parent_sku
    • The corresponding products_id is retrieved from the main product. If the product is not found, the row is skipped.
  3. required , position , type
    • Updated as is to catalog_product_bundle_option table.
  4. language_code
    • Searches languages table (e.g. fi , en ...). If not found, the row is skipped.
  5. title , description
    • Stored in catalog_product_bundle_option_value table. Each row contains only one language.

Note: If option_code is missing, the system will automatically generate it, but it is recommended to provide the codes yourself, which makes them easier to manage and update.


Import Bundle Selections

The “ CSV Import Bundle Selections ” button is used to add or update child products belonging to the option. The CSV expects the following columns:

option_code; parent_sku; sku; position; is_default; selection_price_type; selection_price_value; selection_qty; selection_can_change_qty

  1. option_code
    • Retrieve catalog_product_bundle_option.option_code . If the code is not found, the line is skipped (you could create a minimal equivalent to the option if you wanted, but the code has implemented “skip”).
  2. parent_sku
    • tuotemalli of the main product, retrieved by products_id . Required, otherwise ignored.
  3. sku
    • Child tuotemalli , looking for products_id . If missing, ignored.
  4. position, is_default, selection_price_type , etc.
    • Saving or updating to catalog_product_bundle_selection table:
      • If the (option_id + sku) in question already exists, it will be updated.
      • Otherwise, it is added as a new line.

CSV file format and recommendations

1. Encoding UTF-8
It is important that the CSV file is saved in UTF-8 format (without the BOM character) so that uppercase and special characters are displayed correctly.

2. Column order and names
The Export and Import functionalities expect the columns in a specific order and with specific headings. It is always a good idea to start with one Export, edit it and Import it back.

3. Backups
Before doing large Imports, make backups. Save the Export file with a name like “backup_bundles_options.csv” so you can restore it if something goes wrong.

4. Option_code

  • As mentioned above, you can enter your own codes (e.g. option_putkihattu_001 ), or leave the field blank, in which case the system will automatically generate the name “option_{ID}”.
  • The update is based on option_codeen ; if it is missing, it is treated as a new option by default.

5. Parent and child product references

  • The system will retrieve products_id field based on sku value. Check that the product numbers (SKUs) have been pre-created.
  • If parent_sku or sku is invalid (product not found), the row is skipped.

Example tables

bundle_options.csv (Export / Import)

option_code parent_sku required position type language_code title description
option_5 ABC-123 1 1 radio fi Fasteners Choose 2 brackets...
option_5 ABC-123 1 1 radio I don't Fixtures Select 2 fixtures...
option_6 ABC-123 0 2 checkbox fi Stand Choose a stand...
  • option_code = Code used for updates and links.
  • parent_sku = Parent product SKU.
  • required = Is the option required?
  • position = Order (1, 2, 3...).
  • type = radio , checkbox .
  • language_code = Language information (e.g. fi ).
  • title / description = Display texts in the language in question.

bundle_selections.csv (Export / Import)

option_code parent_sku sku position is_default selection_price_type selection_price_value selection_qty selection_can_change_qty
option_5 ABC-123 KNI-001 1 1 0 0.00 2 1
option_5 ABC-123 KNI-002 2 0 1 1.50 1 0
option_6 ABC-123 JAL-100 1 0 0 0.00 1 1
  • option_code = Which option does the child product belong to?
  • parent_sku = Parent product (SKU).
  • sku = Children's product SKU.
  • position = Display order within the same option.
  • is_default = Is the selection active by default (radio/checkbox).
  • selection_price_type = 0 = fixed price, 1 = “linked”.
  • selection_price_value = Price amount (e.g. 9.99). Can be 0.00 or empty if linked.
  • selection_qty = Default quantity.
  • selection_can_change_qty = Whether the customer can change the quantity.

Restrictions & things to consider

  1. UTF-8 encoding:
    The CSV file must be saved in UTF-8 format (without BOM) to avoid problems with special characters.
  2. Required fields:
    • In Options import, parent_sku and type and either option_code or empty → a new one is created.
    • In Selections import, option_code , parent_sku , sku are critical.
  3. No error correction :
    If the number of columns does not match or parent_sku / sku is not found, the row is usually skipped. Check the log or on-screen messages for any problems.
  4. Existence of products :
    It is a good idea to make sure that both the main and child products have been created in the system before importing the bundles.
  5. option_code
    • It is strongly recommended to set a permanent code to make updates easier. If you leave it blank, the system will come up with “option_123”, which may not be as descriptive.

Summary

CSV-based bulk editing is an efficient way to manage bundled products in AI Commerce platform, especially if there are a lot of products. However, the process is sensitive to the correct column names, ordering, and assumptions. We recommend first creating a few test bundles via the UI, doing an Export, viewing the resulting CSV structure, and only then doing a large-scale Import.

Always remember:

  1. Use backups (Export before Import).
  2. Save the CSV in UTF-8 format.
  3. Follow the column headings & order that the Export script shows.
  4. Check the SKUs ( parent_sku , sku ) and language codes ( language_code ).
  5. option_code is a unique identifier for options. If it is missing, a new option is created.

With these instructions and tested CSV templates, you will be more confident in managing and maintaining large bundles without errors!

export/import package

Was this article helpful?

Yes
No
Give feedback about this article

Related Articles

  • How to create families and variant families in Akeneo?
  • How to create families and variant families in Akeneo?
  • How do you activate a Klarna invoice?
  • How does Lemonsoft customer account synchronization work?
  • How to view a product's transaction history in the AI Commerce dashboard?

Copyright 2025 – AI Commerce Cloud.

Knowledge Base Software powered by Helpjuice

Expand