> For the complete documentation index, see [llms.txt](https://docs.spiroq.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.spiroq.com/en/guides/navody/everyday-operation/import-produktu.md).

# Import products

In the Hub, on the **Products** page, tap **Import**. The **Import products** dialog opens. You upload a CSV or XLSX and the catalog is created or updated.

The file does not assign slots, and it does not create stock in the slots. After import the product is active and has zero stock. To assign a product to a machine, see [Assigning a product to a slot](/en/guides/navody/everyday-operation/produkt-do-slotu.md).

## Template

In the dialog, download the CSV or XLSX template. Start from it — it has the correct column names and a legend under the data.

Leave the row whose first column contains `=== LEGENDA ===` in the file. Products must be **above** it. When rows are added, move the legend down. In CSV, legend rows starting with `#` are skipped.

One import takes at most **2000** data rows.

## Columns

| Column        | Required | Meaning                                                         |
| ------------- | -------- | --------------------------------------------------------------- |
| name          | yes      | Name                                                            |
| priceCents    | yes      | Price in cents. `2990` = 29.90 CZK                              |
| sku           | no       | Your product code                                               |
| ean           | no       | Barcode                                                         |
| currencyCode  | no       | Currency, default CZK                                           |
| vatRate       | no       | VAT in percent, default 21                                      |
| size          | no       | S, M, L, XL, or XXL                                             |
| shelfLifeDays | no       | Shelf life in days                                              |
| weightGrams   | no       | Weight in grams                                                 |
| category      | no       | Category name. When it is not in the Hub, the import creates it |

The older `price` column (an amount in korunas, for example `29.9`) is still read by the import. New templates use `priceCents`.

## Duplicates

Before you start, you choose what happens to a row that has the same EAN or SKU as a product in the catalog:

* **Skip** — the existing product does not change
* **Update** — the details are overwritten from the file
