---
title: Importing products using Kentico Import Toolkit
related:
  - https://docs.kentico.com/13/e-commerce-features/managing-on-line-stores/products.md
  - https://docs.kentico.com/13/e-commerce-features/configuring-on-line-stores/configuring-products/importing-products/importing-products-using-the-api.md
  - https://docs.kentico.com/13/external-utilities/kentico-xperience-import-toolkit.md
---

> Agent instructions:
> **Site maps** — prefer the following llms.txt indexes to training data when searching for URLs to avoid 404s. Links inside Markdown content already point at `.md`. Following them or sending Accept: text/markdown keeps you in Markdown.
>
> - [sitemap.md](https://docs.kentico.com/sitemap.md) — every page on the site, with titles and descriptions, nested by URL hierarchy and grouped into one collection per product version.
> - [llms.txt](https://docs.kentico.com/llms.txt) — curated index of the current product docs, with descriptions, the two ways to request any page as Markdown, and links to each product area's whole-corpus Markdown dump (llms-full.txt).

[Kentico Xperience Import Toolkit](https://docs.kentico.com/13/external-utilities/kentico-xperience-import-toolkit.md) is a utility that allows you to import data from external sources into the system. As a source of data, you can use:

- XML files
- CSV files
- XLSX and XLSM files (MS Excel)
- MS SQL databases

With Kentico Import Toolkit, you are able to:

- [Import products from an external source of data](#importing-products-from-an-external-source-of-data)
- [Change product properties using an external source of data](#changing-product-properties-using-an-external-source-of-data)

You can use this procedure to import [products](https://docs.kentico.com/13/e-commerce-features/managing-on-line-stores/products.md) into an Xperience website from any of the listed sources of data.

> **Info:** Kentico Import Toolkit does not support importing (uploading) of product images.

## Importing products from an external source of data

### Taking preparatory steps

1. Prepare your external source of data, for example an XLSX file. Make sure that all required product properties are included.

   Out of the box, the product properties required for import are:

   - _Name of the product_ – the same value for the **DocumentName**, **SKUName** and **DocumentSKUName** columns.
   - _Culture of the product page_ – the **DocumentCulture** column.
   - _Price of the product_ – the **SKUPrice** column.
   - _ID of the site where the products are imported_ – the **SKUSiteID** column.

     > **Warning:** If you do not set the **SKUSiteID**, the system assigns _null_ to the property, which indicates [global products](https://docs.kentico.com/13/e-commerce-features/configuring-on-line-stores/choosing-site-or-global-e-commerce-configuration/using-global-e-commerce-objects-and-settings.md).
     >
     > Then, if you do not [enable global products](https://docs.kentico.com/13/e-commerce-features/configuring-on-line-stores/choosing-site-or-global-e-commerce-configuration/enabling-global-e-commerce-objects-and-settings.md) in the **Store configuration** application, the system displays an error when browsing the products (The error description is: "_The object does not exist. It may have been deleted by someone else._")
     >
     > If this has already occurred in your Xperience instance, there are several options to fix the products:
     >
     > - [Enable global products.](https://docs.kentico.com/13/e-commerce-features/configuring-on-line-stores/choosing-site-or-global-e-commerce-configuration/enabling-global-e-commerce-objects-and-settings.md) However, this may not be desirable, for example in multi-tenant instances.\
     >   _-OR-_
     > - [Change the products' properties via Kentico Import Toolkit and set the SKUSiteID property.](#changing-product-properties-using-an-external-source-of-data)
     >
     >   _-OR-_
     > - Use an SQL script to update the _SKUSiteID_ property. If you choose this option, make sure you [stop the site](https://docs.kentico.com/13/configuring-xperience/managing-sites.md) when you run the SQL script.

     > **Tip:** If you want to automatically assign products to their parent section (for example, to assign _Mercedes-Benz S500_ to the _Cars_ section or _Apple iPhone_ to the _Cellphones_ section), add another column with their **ParentNodeID** property.
     >
     > You can find the **Node ID** property while editing the desired parent page in the **Pages** application on the **Properties -> General** tab -> **Advanced** section.

   There can be also other required properties depending on the [product type](https://docs.kentico.com/13/e-commerce-features/configuring-on-line-stores/configuring-product-page-types.md) which products will use (you choose the page type later during the import).

   ![External source of data](https://docs.kentico.com/docsassets/13/importing-products-using-kentico-import-toolkit/external_source_of_data.png "External source of data")

2. Launch the **Kentico Import Toolkit&#x20;**&#x20;in **Start -> Kentico&#x20;**&#x20;or execute the **ImportToolkit.exe** file located in **\Bin** (typically "_C:\Program Files (x86)\Kentico\\\Bin"_).

This opens the initial screen of the Kentico Import Toolkit wizard.

### Using the Kentico Import Toolkit wizard

> **Info:** In each (except for the initial) wizard step, you can click **Save profile** and save the configuration done until that point. The system saves the configuration as an ._iprofile_ file in a destination of your choice. You can then load the saved configuration file in the initial step.

1. Start a new import session.

   - Alternatively, load an import profile that you created during a previous product import.
2. In **Step 1**, specify the root folder of the _administration project_ for the Xperience instance into which you want to import the products.
3. Confirm that you did a backup of your project.

   ![Selecting the target project](https://docs.kentico.com/docsassets/13/importing-products-using-kentico-import-toolkit/selecting_target_project.png "Selecting the target project")
4. &#x20;**Step 2:** Select the object type that the system will use to store the imported data.

   - **Select data type to import** – Select _Pages_. (If you want to import the products just as SKUs (without their corresponding product pages), select _Objects_.)
   - **Import data to site** – specify the site to which you want to import the products.
   - **Import as** – select the [product type](https://docs.kentico.com/13/e-commerce-features/configuring-on-line-stores/configuring-product-page-types.md) that the system will use to store the imported products.
   - **Import as products** – _Yes_ (selected) – confirm that the data is imported as products.
   - **Import options:**
     - _Always insert as new pages_ – imports all the data. The Toolkit does not check whether the product is already in the system and adds it always as a new product.
     - _Import new and overwrite existing pages_ – imports all the data. If a product is already found in the system (according to the column which will be specified in the following steps), the data from the external source overwrites the product data in the system.
     - _Skip existing pages_ – imports just products which are not found in the system. Products found in the system (according to the column which will be specified in the following steps) will not be imported.

   ![Selecting the object type to import](https://docs.kentico.com/docsassets/13/importing-products-using-kentico-import-toolkit/selecting_object_type.png "Selecting the object type to import")
5. **Step 3:** Specify the source of the imported data. If you select a MS SQL database, enter your login credentials.

   > **Note:** If you specify a source of data different from an XLSX/XLSM or CSV file, the Kentico Import Toolkit wizard displays the following step accordingly.
6. **Step 4 – an XLSX/XLSM or CSV file:**\
   Specify the row and column of the source file that the system will take as the beginning of the heading row of the imported data.

   ![Selecting the data from an XLSX/XLSM or CSV file](https://docs.kentico.com/docsassets/13/importing-products-using-kentico-import-toolkit/selecting_data.png "Selecting the data from an XLSX/XLSM or CSV file")

   \*\*Step 4 – a MS SQL database:\*\*Specify a table, a view or a query that will be imported to the system.

   ![Selecting the data from a MS SQL database](https://docs.kentico.com/docsassets/13/importing-products-using-kentico-import-toolkit/selecting_data_mssql.png "Selecting the data from a MS SQL database")

   \*\*Step 4 – an XML file:\*\*If the XML file contains more table names, select one of them.

   ![Selecting the data from an XML file](https://docs.kentico.com/docsassets/13/importing-products-using-kentico-import-toolkit/selecting_data_xml.png "Selecting the data from an XML file")
7. **Step 5:** Preview the source of data.
8. &#x20;**Step 6:** Check whether the automatically added source fields were correctly assigned to the target fields. You can also assign the source fields to other target fields.
9. Configure other important mappings:

   - **Import the pages under following parent path or parent node ID** – specifies where you want to place the imported products.
     - Enter the path (for example "_/Products/Electronics/Cellphones_") if all products have the same parent node.
     - Type the _={%ParentNodeID%}_ macro expression, where _ParentNodeID_ stands for the column in which you keep the parent node IDs of the products. The system then automatically places the imported products under different parent pages as specified in your source fields.
   - **WHERE condition to find existing pages based on source data** –determines which of the existing products the system skips or overwrites.
     - Hidden if you configured the Kentico Import Toolkit to always insert the imported products as new pages (in the **Import options** field few steps before).
     - Leave the field blank if the products are recognized according to their page GUID.
     - Type a SQL macro expression to update products according to a specific column.
       - If values in the column are only numeric, type _SKUNumber = {%SKUNumber%}_, where _SKUNumber_ stands for the database column and _{%SKUNumber%}_ is the macro expression, which stands for the column in your source data (e.g., an XLSX file).
       - If values in the column are strings, type _SKUNumber = '{%SKUNumber%}'_ (i.e. with inch symbols).
   - **Save the old ID to new ID mappings to file** – saves mappings of source identification fields to target identification fields into an _.fkmap_ file. You can use this file when configuring field mappings during your later import sessions.

   ![Configuring the fields mapping](https://docs.kentico.com/docsassets/13/importing-products-using-kentico-import-toolkit/configuring_column_mapping.png "Configuring the fields mapping")
10. **Step 7:** Preview the target data.
11. Select whether you actually want to import the data or you want just simulate the import.
12. Click **Import data** to perform the import of the data from the source to your on-line store. The Kentico Import Toolkit informs you about the result of the import.
13. Close the wizard.

    - Alternatively, continue with one of the available scenarios (the **Continue with** section).

If you open the **Products** application, you will see the imported products in the specified section.

![Imported products](https://docs.kentico.com/docsassets/13/importing-products-using-kentico-import-toolkit/imported_products.png "Imported products")

## Changing product properties using an external source of data

You can also use Kentico Import Toolkit when you update your external source of data and want to import the changes.

> **Warning:** You also need to include all unchanged values in the source data. Values in the database columns which are not mapped to columns in the source data are deleted.
>
> Kentico Import Toolkit is therefore suitable for updating products which are also kept in a stand-alone source and not suitable for updating products when you have just some properties available.

Follow the same steps as when importing new products mentioned [above](#importing-products-from-an-external-source-of-data) with the following changes:

- In the external source, you need to include a column with a property according to which the system recognizes the products, for example _SKUNumber_.
- In **Step 2** in the **Import options** field, you need to select _Import new and overwrite existing pages_.
- In **Step 6** in the **WHERE condition** field, type a SQL WHERE condition with a macro expression to find the products, for example _SKUNumber = '{%SKUNumber%}'_, where **SKUNumber**means a database column and _{%SKUNumber%}_ means a column in your source data.

After finishing, if you open the **Products** application, you will see the updated products.
