> ## Documentation Index
> Fetch the complete documentation index at: https://docs.scentxp.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Feed Format

## CSV specification

The Product Feed is a CSV file containing the list of perfumes you want ScentXP to manage. Column names must be **exactly as shown** (lowercase).

## Required columns

These four columns are the minimum requirement. They must appear in this order:

| Column      | Position   | Description                                                                                                                                                                                                                             |
| ----------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ean`       | 1st column | 13-character EAN barcode. One EAN per row — if a product has multiple sizes (50ml, 100ml, 200ml), each gets its own row. Must be a valid EAN, not an internal reference or SAP code. Values with fewer than 12 digits will be rejected. |
| `name`      | 2nd column | Product name, as detailed as possible. Must distinguish variants — e.g., *Dior Sauvage Eau de Parfum* vs. *Dior Sauvage Eau de Toilette*, or *Light Blue Pour Homme* vs. *Light Blue for Her*.                                          |
| `image_url` | —          | Valid URL to the product image. Used for visual verification during EAN matching.                                                                                                                                                       |
| `brand`     | —          | Brand name of the product.                                                                                                                                                                                                              |

## Optional columns

Including additional fields significantly improves matching accuracy and enables richer experiences across ScentXP products.

| Column           | Description                                                                                                                                       |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| `product_url`    | URL to the product detail page (PDP)                                                                                                              |
| `gender`         | Product gender: masculine, feminine, unisex                                                                                                       |
| `size`           | Product size (e.g., 100ml, 50ml). Can also be included in the `name` field                                                                        |
| `type`           | Fragrance type: EDT, EDP, Parfum, Elixir, Cologne                                                                                                 |
| `currency`       | Price currency (ISO standard, e.g., EUR, USD)                                                                                                     |
| `price`          | Price as a numeric value                                                                                                                          |
| `price_discount` | Price with discount applied                                                                                                                       |
| `ranking`        | Bestseller ranking. Same product in different sizes should share the same ranking. Only needed if you want a Bestseller section in search results |
| `have_stock`     | Whether the product is available (0 or 1)                                                                                                         |
| `attributes`     | Free-text attributes, e.g., "exclusive", "online only"                                                                                            |

## Custom labels

Custom labels let you tag products for merchandising purposes. Each label is a separate column with binary values:

| Column       | Description                                                                 | Values              |
| ------------ | --------------------------------------------------------------------------- | ------------------- |
| `new`        | Product is newly released                                                   | `0` = no, `1` = yes |
| `hot`        | Product is trending or popular                                              | `0` = no, `1` = yes |
| `last_units` | Limited stock remaining                                                     | `0` = no, `1` = yes |
| `offer`      | Product is on sale, promotion, or discounted                                | `0` = no, `1` = yes |
| `promoted`   | Highlighted product (e.g., "Expert's Choice", "Natural ingredients", "Bio") | `0` = no, `1` = yes |

## ScentBot-specific columns

If you are integrating the ScentBot widget, these additional columns enable extra functionality within the chatbot experience. Simply add them to your existing Product Feed — no need to modify or remove existing columns.

| Column             | Description                                                                                                                                     |
| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| `price`            | Price as a numeric value                                                                                                                        |
| `currency`         | Price currency (ISO standard)                                                                                                                   |
| `url`              | Product sale URL. If provided, the **Buy** button in ScentBot links to this URL. If omitted, an `sxp.scentbot.addToCart` event is fired instead |
| `external_id`      | Your internal product ID. When no `url` is provided, the `sxp.scentbot.addToCart` window event includes both `ean` and `id`                     |
| `custom_label`     | Label displayed with the product (e.g., "Hot", "New", "Last Units")                                                                             |
| `product_page_url` | URL to the product page                                                                                                                         |
