> For the complete documentation index, see [llms.txt](https://doc.commandersact.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.commandersact.com/fr/fonctionnalites/sources/sources-catalog/product-catalog/products-file-importer.md).

# Importateur de produits CSV

Importez un catalogue produit, ou toute autre table de référence, depuis un fichier dans un Data Store.

{% hint style="info" %}
Si vous souhaitez importer un catalogue de produits dans notre CDP, consultez la [page d'importation des fichiers de catalogue de produits](/fr/fonctionnalites/sources/sources-catalog/product-catalog/product-catalog-files-importer-ftp.md) .
{% endhint %}

## À quoi ça sert

Vos événements contiennent un `product_id`, mais pas la marge, le prix ou la catégorie. Ces informations se trouvent dans votre back office. Importez ce catalogue sous forme de fichier, puis utilisez un enrichissement pour rattacher les attributs manquants à vos événements avant qu'ils n'atteignent vos destinations.&#x20;

Il en va de même pour toute table de référence qui n'est pas rattachée à un visiteur : liste de magasins, liste de prix, table de correspondance.

{% hint style="info" %}
Cette source ne remplit que le Data Store. Rattacher les données à vos événements est une étape distincte, configurée dans Enrichments. Tous les types d'enrichissement peuvent lire depuis le Data Store.
{% endhint %}

Cet importeur CSV est **à ne pas confondre avec le** **CSV Conversions Importer**, qui importe des `achat` événements rattachés à un visiteur.

## Avant de commencer

* Un fichier CSV avec une ligne d'en-tête, une ligne par élément et une colonne qui identifie de manière unique chaque ligne (par exemple `product_id`).
* une connexion FTP configurée dans les identifiants du connecteur.&#x20;
* L'autorisation de créer des Data Stores, si vous souhaitez en créer un pendant la configuration plutôt que réutiliser un Data Store existant.

## Configuration

**Sources** > **Catalogue des Sources** > **Import de fichiers** > **Importeur CSV de produits**.

### 1. Paramètres

Nom et environnement.

### 2. Paramètres du fichier

Le fichier d'exemple que vous fournissez ici n'est utilisé que pour **générer le mapping**. Ses lignes ne sont pas importées, le fichier n'est pas conservé, et le déposer ne compte pas comme un import. Un court extrait avec les bons en-têtes suffit.

### 3. Data Store

Choisissez le Data Store qui recevra vos données, ou créez-en un ici.\
Seuls les Data Stores **sans périmètre utilisateur** sont listés : cette source importe des données de référence, pas des données de visiteurs. Voir [Data Stores](/fr/fonctionnalites/enrichments/storage-settings.md).\
Rien n'est enregistré avant la dernière étape. Un Data Store créé ici n'existe nulle part tant que vous n'avez pas enregistré la source.

### 4. Champs

Déclarez ce qui est stocké : le nom du champ à gauche, la colonne de votre fichier qui l'alimente à droite.\
**Un champ doit être la clé de correspondance**. C'est ce qui fait de chaque import une mise à jour plutôt qu'un doublon : une ligne dont la clé existe déjà écrase cet enregistrement, une nouvelle clé en crée un. Les enregistrements absents du fichier ne sont pas modifiés — importer un fichier plus court ne supprime rien.

<figure><img src="https://3282103337-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mk6XpTQ2LaRLcr2tA-d%2Fuploads%2FZEk05pbRjH31L5nwnbiS%2Fimage.png?alt=media&amp;token=c8d6f545-a426-47ab-baa2-64639f7b5ab8" alt=""><figcaption></figcaption></figure>

\
Si vous réutilisez un Data Store existant, les champs sont préremplis en faisant correspondre les noms de vos colonnes avec ceux déjà déclarés. Vérifiez-les avant d'activer : il s'agit d'une correspondance de noms, pas d'un contrôle du contenu. La clé de correspondance et les types de champs proviennent du Data Store et ne peuvent pas être modifiés depuis la source ; saisir un nouveau nom de champ l'ajoute au Data Store.

\
Les fichiers suivants sont lus avec cette même configuration : la question n'est pas reposée à chaque import. Vous pouvez l'ajuster ensuite depuis l'onglet Champs de la source, par exemple pour changer la colonne qui alimente un champ.

### 5. Récupération du fichier

Où le fichier est récupéré, et quand.

* Exécuter une seule fois — un import unique.
* Exécuter périodiquement — selon un calendrier récurrent, éventuellement limité à une date de début et une date de fin. Faites correspondre la fréquence à la fréquence réelle des changements de votre catalogue.

\
**Activer la suppression du fichier après traitement** supprime le fichier du FTP une fois lu. Utilisez-le si votre système dépose un nouveau fichier à chaque fois ; laissez-le désactivé si le même fichier est écrasé sur place.\
Définissez les adresses d'alerte dans **Notifications**: un import échoué reste sinon silencieux jusqu'à ce que quelqu'un remarque l'absence de données en aval.

## Ce qui se passe à chaque import

| Situation                                | Résultat                                                       |
| ---------------------------------------- | -------------------------------------------------------------- |
| Ligne sans valeur dans la colonne de clé | Ligne ignorée, l'import continue                               |
| Même clé deux fois dans un même fichier  | La dernière ligne l'emporte                                    |
| Ligne mal formée                         | L'import s'arrête là ; les lignes déjà écrites restent écrites |

## Vérifier que cela fonctionne

Le contenu d'un Data Store ne peut pas être parcouru enregistrement par enregistrement. Deux points à vérifier :

* la colonne Enregistrements (24h) dans la liste des Data Stores, qui montre ce qui est arrivé au cours des 24 dernières heures ;
* le Live Event Inspector, qui montre si un événement en direct a bien été enrichi. C'est le vrai test.

\
Si un événement arrive sans les attributs attendus, trois causes sont possibles et méritent d'être distinguées : l'import ne s'est pas exécuté, la valeur de la clé sur l'événement n'existe pas dans votre catalogue, ou l'enrichissement n'est pas configuré pour ajouter ce champ.

## Limitations

* Une clé de correspondance par Data Store, modifiable depuis le Data Store lui-même, jamais depuis la source. Pour faire la correspondance sur une deuxième clé, utilisez un deuxième Data Store.
* Modifier la clé de correspondance d'un Data Store qui contient déjà des enregistrements crée un ensemble dupliqué au prochain import : les enregistrements existants ne sont pas réindexés. Créez plutôt un nouveau Data Store.
* Les enregistrements ne peuvent pas être consultés, modifiés ou supprimés individuellement.
* Mise à jour uniquement : remplacer tout le catalogue ou ajouter sans mettre à jour n'est pas disponible.
* Les enregistrements n'expirent jamais. Une entrée obsolète reste en place jusqu'à ce qu'un import ultérieur l'écrase.
* La suppression du Data Store ne supprime pas la source, mais la source n'a alors plus de cible et doit être reconnectée avant de produire quoi que ce soit.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://doc.commandersact.com/fr/fonctionnalites/sources/sources-catalog/product-catalog/products-file-importer.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
