Product catalog export and import
Getting started
In this article, you will learn how to extract a product catalog in the form of CSV files and how to import it back. The overview for each product catalog file is here.
Export can be found in Import / Export > Export / catalog (1)
Import can be found in Import / Export > Import > Type > Catalog mass import (2)
![]() |
Visualization of the product catalog options in the Import / export module |
Table of contents:
- Export catalog
- Catalog files
- Catalog import
- How to make mass import
- Overview - catalog_product.csv
- Overview - catalog_product_description.csv
- Overview - catalog_product_attribute.csv
- Overview - catalog_product_stock.csv
- Overview - dict_tag_catalog_product.csv
- Overview - dict_property.csv
- Overview - dict_tag.csv
- Overview - catalog_product_category.csv
- Overview - alt_shop_catalog_product.csv
- Overview - catalog_product_category.csv
- Overview - dict_tag_catalog_product_remove.csv
- Order of processing files
Export catalog
Catalog export has some filtering options for thinning out the results of extracted data.
![]() |
Visualization of the Catalog export |
- Alt shop - Chooses for which alt shop the catalog should be exported. If left empty, products from all alt shops will be exported. You can learn more about altshops in the Alt shops - Introduction article.
- Product status - Chooses between Active and Inactive products. If left empty, all products will be exported.
- Is altshop active? - Choose if the product exported are active on chosen altshop or inactive.
- Product SKU - A list of product SKUs. A list of multiple SKUs needs to be separated by commas (i.e. 123456,654321,55555).
-
Two buttons:
- Apply filters - A button, which will apply selected filters and automatically start the download of the filtered products.
- Clear filters - A button, which clears all already chosen filters.
Exported files described in Catalog files section are packed in a .zip file, which needs to be unpacked.
Catalog files
The downloaded archive will contain the following files:
- alt_shop_catalog_product.csv - Contains data for Alt shops > Products / list (You can find more information about this module in Products / list - browsing and managing products in altshop module article)
- catalog_product.csv - Contains data for Catalog > Products / list (More information about this module in [UNDER CONSTRUCTION])
- catalog_product_attribute.csv - Contains data for Catalog > Products / list > View product > Add color (More information about this module in [UNDER CONSTRUCTION])
- catalog_product_description.csv - Contains data for Catalog > Products / list > View product, Description tab (More information about this module in [UNDER CONSTRUCTION])
- catalog_product_meta.csv - Contains data for
- Catalog > Products / list > View product, Metadata tab (More information about this module in [UNDER CONSTRUCTION])
- catalog_product_stock.csv - Contains data for Catalog > Products / list > View product, Stock tab (More information about this module in [UNDER CONSTRUCTION])
- dict_property.csv - Contains data for Catalog > Properties / list (More information about this module in [UNDER CONSTRUCTION])
- dict_tag.csv - Contains data for Catalog > Tags / list (More information about this module in [UNDER CONSTRUCTION])
- dict_tag_catalog_product.csv - Contains data for Catalog > Products / list > View product, Tags tab (More information about this module in [UNDER CONSTRUCTION])
- catalog_product_category.csv - Contains data for Catalog > Products / list > View product, edit product tab. You can find more information about the category module in Catalog categorization article.
- dict_tag_catalog_product_remove.csv - Contains exact same data structure as dict_tag_catalog_product.csv, but it removes the assigned tags from the selected products.
Catalog import
All the exported files can be edited and imported back to the administration panel to update catalog data. Files can be imported separately or in groups but their import must always be consolidated in a .zip file. The file names must be exactly the same as defined in this article and they cannot be changed. There are no mandatory files, so it is possible to import only catalog_product_description.csv without any other files as long as it is in the .zip file. Packed .csv files can be in any folder structure as long as file names are not duplicated.
Other file formats than .zip will be rejected and won't be uploaded.
Files specification
Since the imported files directly correspond with the database some rules must be followed while creating and editing import files, here is a general specification for these:
- Field type BOOLEAN:
- 0 - NO
- 1 - YES
- Field type DATE must be in the following format "YYYY-MM-DD"
-
EOL (End Of Line) column must contain EOL in every row with a product. This column shows our system, that for a selected product its info ends with this column, and the system can move to another row. Here is an example of EOL use:
-
column1;column2;EOL
-
“abc”;”abc”;EOL
-
“cde”;”cde”;EOL
-
- The decimal separator must be a dot "." for example: "199.99"
- While editing files in text editors (not spreadsheets) all columns have to be separated by semicolon ";"
- STRING field type can be filled with any text and/or number. The only exception to this exists in every field with URL value, these must be strings without any special/regional characters besides "/" as a start to the URL and "_" as a separator for word f.x. "/new_product_sku_123"
How to make mass import
Mass import is a product import of a ZIP file that contains prepared .csv files. This operation changes the product data based on their SKU or creates a new product if the selected SKU doesn't exist in the catalog database. You don't need to put every .csv file in the .zip, only the ones that you have modified can be put in the .zip file and then imported. In order to import catalog files, they have to be in CSV format, coded in UTF-8. Go to Import/Export > Import and choose Catalog mass import in the Type.
![]() |
Visualization of Import / Export, Import |
- File * - Choose a file, and find your zip archive with CSV files.
- Type* - Click and choose Catalog mass import in order to perform the change in the catalog database.
- Options - Test import allows for virtual database calculation after importing a chosen archive. You'll be able to check the results of this import by receiving a report for each imported file. Test import won't perform any actual changes in the environment.
- Import file - Click to perform an import. The file will start processing right after clicking.
RememberProduct descriptions can be enriched by HTML and CSS codes.
Overview - catalog_product.csv
File catalog_product.csv contain mainly data regarding imported products. Mass import of this file allows to:
- Adding new records
- Updating records (on a base of unique SKU)
# | Column name | Value type | Max length | Can be empty? | Description | What, if empty |
1 | SKU | STRING | 7 | No | Product code | - |
2 | is_active | BOOLEAN (0/1) | 1 | No | Is the product visible? | - |
3 | name | STRING | 255 | No | Product name | - |
4 | title | STRING | 255 | Yes | Title for product | Empty product title |
5 | short_description | STRING | 255 | Yes | Short description | Empty description |
6 | capacity | STRING | 125 | Yes | Capacity/size of the product | Capacity undefined |
7 | sort_order | INTEGER | 1 | Yes | Sort Order | 0 |
8 | price | DECIMAL | 10,2 | No | Catalog price | - |
9 | f_green_point | BOOLEAN (0/1) | 1 | Yes | Flag: green point | 0 |
10 | f_bestseller | BOOLEAN (0/1) | 1 | Yes | Flag: bestseller | 0 |
11 | f_limited_edition | BOOLEAN (0/1) | 1 | Yes | Flag: limited edition | 0 |
12 | f_set | BOOLEAN (0/1) | 1 | Yes | Flag: set | 0 |
13 | f_gift | BOOLEAN (0/1) | 1 | Yes | Flag: gift | 0 |
14 | f_gift_choice | BOOLEAN (0/1) | 1 | Yes | Flag: gift of choice | 0 |
15 | f_outlet | BOOLEAN (0/1) | 1 | Yes | Flag: outlet 0 | 0 |
16 | is_new_until | DATE | 10 | Yes | Date till the product is marked as "new". Should be in a DD-MM-YYY format. |
The product won't be marked as "new" |
17 | friendly_url | STRING | 255 | Yes | URL for the product | - |
18 |
ean | STRING |
13 |
Yes |
EAN code. Multiple EANs can be separated by a comma (,). The system verifies in the import process if the typed EAN is in correct EAN-8 or EAN-13 format. |
- |
19 | EOL | STRING | 3 | No | Always must be “EOL” | - |
Overview - catalog_product_description.csv
File catalog_product_description.csv contains descriptions for the products. Mass import allows to:
- Adding new records
- Updating records (on a base of unique SKU)
Warning There must be a product in the database with SKU matching the value of the SKU column in order to apply any changes.
# | Column name | Value type | Max length | Can be empty? | Description | What, if empty |
1 | SKU | STRING | 7 | No | Product code | - |
2 | description_main | STRING | undefined | Yes | Main description | empty description |
3 | description_effect | STRING | undefined | Yes | Effects description | empty description |
4 | description_usage | STRING | 5 | Yes | Usage description | empty description |
5 | description_ingredient | STRING | undefined | Yes | Ingredients | empty description |
6 | description_capacity | STRING | undefined | Yes | Type of package and capacity | empty description |
7 | description_additional_info | STRING | undefined | Yes | Additional information | empty description |
8 | description_notes | STRING | undefined | Yes | Results | empty description |
9 | EOL | STRING | 3 | No | Always must be “EOL” | - |
RememberNew lines in descriptions fields will be changed to <br> HTML can be used to customize the text.
Overview - catalog_product_attribute.csv
File catalog_product_attribute.csv contains data about color variants of imported products. Mass import allows to:
- Adding new records
- Updating records (on a base of unique SKU)
Warning There must be a product in the database with SKU matching the value of the SKU column in order to apply any changes. If there is no color from the color column in the database then a new color will be created and assigned to the new attribute.
# | Column name | Value type | Max length | Can be empty? | Description | What, if empty |
1 | SKU_parent | STRING | 7 | No | Code of the parent product | - |
2 | SKU | STRING | 7 | No | Code of the color variant | - |
3 | color | STRING | 255 | No | Color name | - |
4 | is_active | BOOLEAN (0/1) | 1 | No | Flag: is active? | - |
5 | EOL | STRING | 3 | No | Always must be “EOL” | - |
Overview - catalog_product_stock.csv
File catalog_product_stock.csv contains information about the stock resources of the imported products. Mass import allows to:
- Updating records (on a base of unique SKU)
Warning There must be a product in the database with SKU matching the value of the SKU column in order to apply any changes.
# | Column name | Value type | Max length |
Can be empty? | Description | What, if empty |
1 | SKU | STRING | 7 | No | Product code | - |
2 | stock_value | INTEGER | 5 | No | Amount of stock value | - |
3 | always_in_stock | BOOLEAN(0/1) | 1 | Yes | Flag: product is always in stock | 0 |
4 | min_stock_value | INTEGER | 5 | Yes | Minimal stock value | Default value from the database |
5 | warn_stock_value | INTEGER | 5 | Yes | Stock limit at which administrator will receive a warning about low stock value | Default value from the database |
6 | EOL | STRING | 3 | No | Always must be “EOL” | - |
Overview - dict_tag_catalog_product.csv
File dict_tag_catalog_product.csv contains information about tags of imported products. Mass import allows to:
- Adding new assignments
- Updating already existing assignments
Warning There must be a product in the database with SKU matching the value of the SKU column in order to apply any changes. The same applies to tags columns and properties.
# | Column name | Value type | Max length | Can be empty? | Description | What, if empty |
1 | SKU | STRING | 7 | No |
Product code, if color variant then uses parent code. |
- |
2 | property | STRING | 45 | No | Property name | - |
3 | tag1 | STRING | 150 | No | Tag name | - |
4 | tag2 | STRING | 150 | Yes | Tag name | - |
5 | tag3 | STRING | 150 | Yes | Tag name | - |
6 | tag4 | STRING | 150 | Yes | Tag name | - |
7 | tag5 | STRING | 150 | Yes | Tag name | - |
9 | EOL | STRING | 3 | No | Always must be “EOL” | - |
In order to assign more than 5 tags to one product, use another row, here is an example of how to assign 6 tags to SKU1 in property "część ciała":
-
SKU1;”część ciała”;”twarz”;”włosy”;”dłoNo”;”nogi”;”ramiona”;EOL
-
SKU1;”część ciała”;”uda”;;;;;EOL
In order to delete a tag from a product add “<delete>” before it. Here is an example of deleting the tag "40+":
-
“<delete>40+”
Overview - dict_property.csv
File dict_property.csv contains information about properties. Mass import allows:
- Adding new properties
# | Column name | Value type | Max length | Can be empty? | Description | What, if empty |
1 | name | STRING | 45 | No |
Property name |
- |
2 | url_name | STRING | 45 | Yes | Friendly URL | Will be generated automatically from the property name |
3 | sort_order | INTEGER | 5 | No | Sort Order | - |
4 | is_active | BOOLEAN(0/1) | 1 | No | Flag: Is this property active? | - |
5 | EOL | STRING | 3 | No | Always must be “EOL” | - |
Overview - dict_tag.csv
File dict_tag.csv contains information about tags. Mass import allows to:
Warning There must be a property in the database in order to add new tags.
# | Column name | Value type | Max length | Can be empty? | Description | What, if empty |
1 | property_name | STRING | 45 | No |
Nazwa cechy, do której jest przypisany tag |
- |
2 | name | STRING | 150 | No | Nazwa tagu (wartość cechy) | - |
3 | url_name | STRING | 150 | Yes | friendly URL for the tag | Will be generated automatically from the tag name |
4 | EOL | STRING | 3 | No | Always must be “EOL” | - |
Overview - alt_shop_catalog_product.csv
File alt_show_catalog_product.csv contains information about availability in altshops and discounts counted from catalog prices. Mass import allows to:
- Adding new altshop assignments and promotions
- Editing existing altshop assignments and promotions
Warning Adding values to promotion_price, price_discount and percentage_discount won't be updated if the product is_active=0. Rows is_active=0 serves as a forced deactivation in altshop. It is a good practice to add only alt_shops that products should be active.
# | Column name | Value type | Max length | Can be empty? | Description | What, if empty |
1 | alt_shop | STRING | undefined | No | Altshop system name | - |
2 | SKU | STRING | 7 | No |
Product code |
- |
3 | is_active | BOOLEAN(0/1) | 1 | No | Is the product active in altshop | - |
4 | promotion_price | DECIMAL | undefined | Yes | Promotion price | No promotion price or set-by-price/percentage discounts |
5 | price_discount | DECIMAL | undefined | Yes | Price discount subtracts value from the catalog price | No discount or discounted by promotion price/percentage discount |
6 | percentage_discount | DECIMAL | 2 | Yes | Percentage discount counted from catalog price. | No promotion or discounted by promotion price/ price discount |
7 | promotion_start_date | DATE | undefined | Yes |
Information: date of promotion start |
No date of promotion start |
8 | promotion_end_date | DATE | undefined | Yes |
Information: date of promotion end |
No date of promotion end |
9 | promotion_valid_text | STRING | undefined | Yes | Text informing about promotion validation | Lack of text even, if promotion start and end dates are present. |
10 | EOL | STRING | 3 | No | Always must be “EOL” | EOL |
Overview - catalog_product_category.csv
File catalog_product_category.csv contains information about categories assigned to the products. Mass import allows to:
RememberYou can find more information about catalog categories in the Catalog categorization article.
- Adding currently present categories to the selected products
- Editing categories of the selected products.
# | Column name | Value type | Max length | Can be empty? | Description | What, if empty |
1 |
SKU |
STRING |
7 |
No |
Product code | - |
2 |
category_path | STRING |
undefined | No |
Category path. Path steps need to be separated by a Guillemet ("»") i.e. E-commerce » Włosy » Szampony. The category path should always start with E-commerce. |
- |
3 |
is_main |
BOOLEAN(0/1) | 1 |
No |
A flag that shows if a selected category path for a selected SKU is marked as a main one |
- |
4 |
EOL | STRING | 3 | No | Always must be “EOL” | EOL |
Warning Please note that this process overwrites product categories for products that are being edited.
In case the user has the following record already in the database on the website:
SKU | category_path | is_main | EOL |
32611 | E-commerce » Vůně | 1 | EOL |
and there is a need to add a new category the already existing record also needs to be included in the import.
Example of an incorrect import file that overwrites the product categories:
SKU | category_path | is_main | EOL |
32611 | E-commerce » Vlasy | 0 | EOL |
When the file looks like that the E-commerce » Vůně will be removed from the product, and only E-commerce » Vlasy will be available after the import.
Example of a correct import file that doesn't overwrite the product categories:
SKU | category_path | is_main | EOL |
32611 | E-commerce » Vůně | 1 | EOL |
32611 | E-commerce » Vlasy | 0 | EOL |
In this case both E-commerce » Vůně and E-commerce » Vlasy will be included in the product 32611 after the import.
Overview - dict_tag_catalog_product_remove.csv
File dict_tag_catalog_product_remove.csv contains a list of SKUs with tags, that should be removed from the product. The content of this file is exactly the same as dict_tag_catalog_product.csv. This file is not automatically created when exporting the product catalog.
Mass import allows to:
# | Column name | Value type | Max length | Can be empty? | Description | What, if empty |
1 | SKU | STRING | 7 | No |
Product code, if color variant then uses parent code. |
- |
2 | property | STRING | 45 | No | Property name | - |
3 | tag1 | STRING | 150 | No | Tag name | - |
4 | tag2 | STRING | 150 | Yes | Tag name | - |
5 | tag3 | STRING | 150 | Yes | Tag name | - |
6 | tag4 | STRING | 150 | Yes | Tag name | - |
7 | tag5 | STRING | 150 | Yes | Tag name | - |
9 | EOL | STRING | 3 | No | Always must be “EOL” | - |
Tag removal doesn't remove properties by itself. Whenever a product has all of it's tags removed, the property is removed automatically.
For example, if the product has the following propety with a tags:
SKU | property | tag1 | tag2 | tag3 | tag4 | tag5 | EOL |
69726 | Péče o tělo | Tělové oleje | Tělové peelingy | EOL |
And the dict_tag_catalog_product_remove.csv contains the following data:
SKU | property | tag1 | tag2 | tag3 | tag4 | tag5 | EOL |
69726 | Péče o tělo | Tělové peelingy | EOL |
Tělové peelingy will be removed from the product tags list, but Tělové oleje will remain, which would result with the following record:
SKU | property | tag1 | tag2 | tag3 | tag4 | tag5 | EOL |
69726 | Péče o tělo | Tělové oleje | EOL |
Order of processing files
The system while importing the files is processing them in a selected order, to make sure there will be no mistakes while importing, like changing the price of a product that doesn't exist in the database. You can find an order of processing below:
Order | File name |
1 | dict_property.csv |
2 | dict_tag.csv |
3 | catalog_product.csv |
4 | catalog_product_description.csv |
5 |
catalog_product_category.csv |
6 |
catalog_product_attribute.csv |
7 |
catalog_product_meta.csv |
8 | catalog_product_stock.csv |
9 | dict_tag_catalog_product.csv |
10 | alt_shop_catalog_product.csv |
11 |
dict_tag_catalog_product_remove.csv |