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

# Importer votre flux de catalogue produits

> Synchronisez votre catalogue de produits dans Kameleoon à l'aide d'un fichier XML, d'un Google Merchant Feed, d'une REST API ou de la Product API pour alimenter les algorithmes de recommandation.

<Note>
  Il s'agit d'une fonctionnalité premium. Contactez votre Customer Success Manager pour l'activer sur votre compte Kameleoon.
</Note>

Il existe quatre méthodes simples pour synchroniser votre catalogue de produits dans Kameleoon :

1. Avec un **fichier XML** contenant toutes les métadonnées requises pour chacun de vos produits. Utilisez cette méthode si vous n'avez pas de data layer et que votre catalogue contient moins de 50 000 produits. Vous pouvez facilement choisir la fréquence à laquelle Kameleoon doit synchroniser votre catalogue dans la page des paramètres de la boutique. Vous devez effectuer un import XML toutes les 24 à 72 heures pour mettre à jour Kameleoon avec votre stock de produits.
2. Avec une **URL Google Merchant Feed**. Utilisez cette méthode si vous avez déjà téléchargé votre produit dans Google Merchant Center et si votre catalogue contient moins de 50 000 produits. Contactez votre Customer Success Manager Kameleoon pour activer cette méthode. Suivez [ces étapes](#étape-2--synchroniser-votre-fichier-de-flux-de-produits-avec-kameleoon) pour synchroniser Google Merchant avec Kameleoon.
3. **Via la [REST API](../../../developer-docs/apis/product-recommendation-api-rest/all-endpoints/Import/import-product) de Kameleoon**. Utilisez la REST API de Kameleoon pour mettre à jour votre catalogue si vous avez besoin de mises à jour régulières, en particulier lorsque vous traitez des produits qui sont rapidement en rupture de stock en raison d'une disponibilité limitée.
4. **Via la [Product API](../../../developer-docs/apis/activation-api-js/api-reference/api-reference#trackproductview)** de Kameleoon. Vous devez utiliser cette méthode si vous disposez d'un data layer contenant des informations détaillées sur vos produits et catégories de produits. Travailler avec l'API de Kameleoon nécessite que vous disposiez de métadonnées disponibles pour les produits et les catégories à partir de vos pages produit (par exemple, dans un data layer) que Kameleoon peut lire et alimenter dans nos algorithmes de recommandation de produits.

Gardez à l'esprit que, bien que la limite (fichier compressé gzip) soit fixée à 2 Go, plus votre catalogue est volumineux, plus le traitement du flux prendra du temps, optez donc pour une synchronisation de 6 heures ou plus.

<Note>
  Kameleoon marquera automatiquement comme en rupture de stock tous les produits non présents dans le flux. Ainsi, pour améliorer la vitesse de traitement du flux et réduire sa taille, nous vous recommandons d'exclure les produits en rupture de stock de votre flux.

  Il est important de noter qu'un inconvénient de la méthode Product API est que si les produits ne sont pas activement recherchés ou consultés par les visiteurs, Kameleoon peut ne pas être au courant de ces produits, et ils peuvent ne pas être proposés dans les blocs de recommandation de produits.
</Note>

## Synchroniser votre flux de produits à l'aide de la Product API de Kameleoon

La Product API alimente [les algorithmes de recommandation de produits de Kameleoon](./configure-and-add-a-recommendation-block#rules) et les messages de social proofing, tels que [les compteurs d'impressions et d'achats de produits](../../../developer-docs/apis/activation-api-js/api-reference/api-reference#obtainproductinteractions) et [les conditions de ciblage avancées](../../assets/segments/create-a-segment#visiting-behavior).

Une fois que les méthodes de la Product API de Kameleoon ont été activées sur votre site web, Kameleoon commencera à envoyer des événements de détail produit chaque fois que vos visiteurs parcourent une page produit ou catégorie, ajoutent un produit à leur panier ou effectuent un achat. Cela permettra également la collecte de statistiques sur un produit donné (par exemple, le nombre de fois qu'il a été acheté ou consulté au cours de la dernière heure, ou journée) et alimentera la création de groupes d'audience que vous pouvez utiliser dans notre segment builder à l'aide de critères de ciblage produit prédéfinis.

Vous devrez ajouter nos snippets de page Produit, page Catégorie, page Panier et page Merci à votre code source pour suivre les interactions avec vos produits et alimenter notre algorithme de Product Recommendations. Vous pouvez également les injecter à l'aide de [notre fonctionnalité Global custom script](../../project-management/manage-your-projects#configuration).

## trackProductView()

Utilisez la méthode `trackProductView()` sur les **pages produit** pour suivre lorsqu'un visiteur consulte un produit. Lisez-en plus sur la méthode [ici](../../../developer-docs/apis/activation-api-js/api-reference/api-reference#trackproductview).

<Note>
  Assurez-vous de fournir toutes les données nécessaires à votre configuration de social proofing. Seules les données envoyées via la méthode `trackProductView()` peuvent être récupérées ultérieurement via le point de terminaison [`obtainProductData()`](../../../developer-docs/apis/activation-api-js/api-reference/api-reference#obtainproductdata).
</Note>

## trackCategoryView()

Utilisez la méthode `trackCategoryView()` sur les **pages catégorie** pour suivre lorsqu'un visiteur consulte une catégorie de produits. Lisez-en plus sur la méthode [ici](../../../developer-docs/apis/activation-api-js/api-reference/api-reference#trackcategoryview).

Assurez-vous que l'**ID de catégorie** utilisé ici correspond à celui envoyé avec la méthode `trackProductView()`. Lisez-en plus sur l'objet Category [ici](../../../developer-docs/apis/activation-api-js/api-reference/api-reference#properties-of-the-category-object).

## trackAddToCart()

Utilisez la méthode `trackAddToCart()` sur **toute page où un visiteur peut ajouter un produit à son panier**, par exemple la page d'accueil, la page produit, la page catégorie ou la page panier.

Lisez-en plus sur la méthode `trackAddToCart()` [ici](../../../developer-docs/apis/activation-api-js/api-reference/api-reference#trackaddtocart).

## trackTransaction()

Utilisez la méthode `trackTransaction()` sur toute page affichée après qu'un visiteur a effectué un **achat ou une transaction**. Lisez-en plus sur la méthode [ici](../../../developer-docs/apis/activation-api-js/api-reference/api-reference#tracktransaction).

<Note>
  Kameleoon synchronise l'ensemble de votre catalogue de produits toutes les deux heures et marquera automatiquement les produits en rupture de stock comme "indisponibles" toutes les 12 heures. Un produit est considéré comme indisponible lorsque l'attribut [`availableQuantity`](../../../developer-docs/apis/activation-api-js/api-reference/api-reference#product) passé avec la méthode `addProductView` est égal à zéro, ce qui garantit que les recommandations de produits de Kameleoon n'incluent que des produits en stock. Vous pouvez également définir un produit comme étant en rupture de stock à l'aide de [l'attribut `availableQuantity`](../../../developer-docs/apis/activation-api-js/api-reference/api-reference#product) lors de l'utilisation de la méthode `addProductView`.
</Note>

## Synchroniser votre flux de produits à l'aide d'un fichier XML

La synchronisation de votre catalogue de produits à l'aide d'un fichier XML comprend les étapes suivantes :

1. Créez un fichier XML avec toutes les métadonnées requises pour chacun de vos produits, catégories et emplacements (par exemple, les pays ou emplacements dans lesquels vous opérez et où les prix, le stock ou les détails de vos produits sont différents). Le fichier doit être disponible à partir d'une URL distante. Assurez-vous de l'héberger dans une zone sécurisée (par exemple, un bucket S3) accessible à Kameleoon.
2. Synchronisez le fichier XML avec Kameleoon et choisissez l'intervalle de mise à jour qui correspond à vos besoins (par exemple, toutes les heures, trois heures, six heures)
3. Suivez les événements de vos visiteurs.

<Note>
  Les sites web multilingues ne sont pas pris en charge ; vous devez créer un [projet](../../project-management/manage-your-projects) distinct pour chaque langue et fournir un flux pour chacun.
</Note>

<Note>
  Mettez en liste blanche les adresses IP suivantes pour garantir un processus de téléchargement d'images fluide :

  * `95.216.99.81/26`
  * `95.216.99.220/26`
  * `95.216.23.145/26`
  * `95.216.10.183/26`
  * `95.216.114.218/26`
  * `95.217.32.105/26`
  * `95.216.4.144/26`
  * `95.216.102.29/26`
</Note>

### Étape 1 : créer votre flux de produits

Le flux de produits doit inclure des informations de base sur votre catalogue. Reportez-vous aux tableaux ci-dessous pour les attributs obligatoires que vous devez inclure.

```xml theme={null}
<?xml version="1.0" encoding="UTF-8"?>
<yml_catalog date="2022-10-03 22:00">
  <shop>
    <categories>
      <category id="270821163172" parentId="2708" url="https://myurl.com">Adidas</category>
       .......
    </categories>
    <offers>
      <offer id="6737859641508" available="true" leftovers="lot"></offer>
      ......	
    </offers>
   </shop>
</yml_catalog>
```

#### Élément : yml\_catalog

| **Attribut** | **Obligatoire** | **Description**                                                            |
| ------------ | --------------- | -------------------------------------------------------------------------- |
| `date`       | Oui             | Date de génération du document XML. Le format doit être : YYYY-MM-DD hh:mm |

#### Élément : yml\_catalog > shop

| **Élément**  | **Obligatoire** | **Description**                                            |
| ------------ | --------------- | ---------------------------------------------------------- |
| `categories` | Oui             | Liste des catégories de la boutique                        |
| `locations`  | Oui             | Liste des emplacements/pays où la boutique est représentée |
| `offers`     | Oui             | Liste des produits de la boutique                          |

#### Élément : yml\_catalog > shop > categories

L'élément **`categories`** contient une liste d'éléments category. Chaque catégorie de produits que vous utilisez pour grouper ou taguer vos produits est décrite par un élément **`category`** distinct.

| **Attribut** | **Obligatoire** | **Description**                   |
| ------------ | --------------- | --------------------------------- |
| `id`         | Oui             | ID de catégorie                   |
| `parentId`   | Non             | ID de catégorie parente           |
| `url`        | Non             | Lien vers la page de la catégorie |
| `alias`      | Non             | Identifiant alias de la catégorie |

Exemple :

```xml theme={null}
<categories>
  <category id="2" url="http://my-store.com/categories/discount/"> Category level 1</category>
  <category id="8" url="http://my-store.com/categories/men/">Category level 1</category>
  <category id="13" parentId="8" url="http://my-store.com/categories/men/shoes/">Category level 2</category>
  <category id="97" parentId="13" alias="men/shoes/leather" url="http://my-store.com/categories/men/shoes/leather">Category level 3</category>
</categories>
```

#### Élément : yml\_catalog > shop > locations

L'élément **`locations`** contient une liste des emplacements de votre boutique. Chaque emplacement est décrit par un élément **`location`** distinct.

Vous pouvez utiliser les attributs suivants pour l'élément **`locations`** :

| **Attribut** | **Obligatoire** | **Description**                                              |
| ------------ | --------------- | ------------------------------------------------------------ |
| `id`         | Oui             | ID de l'emplacement                                          |
| `parentId`   | Non             | ID de l'emplacement parent                                   |
| `type`       | Non             | Type d'emplacement. Valeurs disponibles : state, city, store |
| `name`       | Non             | Nom de l'emplacement                                         |

Exemple :

```xml theme={null}
<locations>
   <location id="1" type="city" name="New York" />
   <location id="2" type="city" name="Los Angeles" />
   <location id="145" parentId="1" type="store" name="New York City main store" />
</locations>
```

#### Élément : yml\_catalog > shop > offers

L'élément **`offers`** contient la liste de vos produits. Chaque produit est décrit par un élément **`offer`** distinct.

<Note>
  Si toutes les variantes d'un même produit sont disponibles à partir de la même URL dans votre boutique et qu'il n'y a pas d'identifiant commun pour les variantes de produit, Kameleoon choisira la variante de produit la moins chère lors de la recommandation de ce produit à vos visiteurs. Le drapeau de disponibilité dans ce cas doit s'inscrire dans la logique suivante : si au moins une variante de produit est en stock, alors le produit est considéré comme en stock.
</Note>

#### Élément : yml\_catalog > shop > offers > offer

Vous pouvez utiliser les attributs suivants pour l'élément **`offer`** :

| **Attribut** | **Obligatoire** | **Description**                                                                                                                                                                                                                                                                                         |
| ------------ | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`         | Oui             | ID produit / SKU / EAN                                                                                                                                                                                                                                                                                  |
| `group_id`   | Non             | ID de groupe de produits. Requis pour combiner des variantes de produit en un seul groupe. Kameleoon choisira la variante la moins chère lors de la recommandation de ce produit aux visiteurs                                                                                                          |
| `available`  | Oui             | Indication si le produit est en stock ("true/false"). Kameleoon mettra automatiquement en rupture de stock tous les produits qui ne sont pas dans le flux. Par conséquent, pour accélérer le traitement du flux et réduire sa taille, n'ajoutez pas de produits en rupture de stock dans votre flux.    |
| `leftovers`  | Non             | Indication de la quantité d'inventaire disponible pour un produit particulier. Elle peut prendre l'une des valeurs suivantes : one (le produit est disponible en un seul exemplaire), few (le produit est en quantités limitées, jusqu'à 10 unités), lot (disponible à partir de 10+ unités du produit) |

L'élément **offer** peut prendre les balises suivantes :

| **Élément**      | **Obligatoire** | **Description**                                                                                                                                                                                                                                                                                                                                                                                                                                |
| ---------------- | --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `name`           | Oui             | Nom du produit                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `picture`        | Oui             | Image principale du produit                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `price`          | Oui             | Prix de base du produit                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `url`            | Oui             | URL vers la page de détails du produit (commençant par HTTP/HTTPS)                                                                                                                                                                                                                                                                                                                                                                             |
| `categoryId`     | Oui             | Catégorie du produit. Si le produit est associé à plusieurs catégories, ajoutez autant d'éléments `categoryId` que nécessaire                                                                                                                                                                                                                                                                                                                  |
| `locations`      | Non             | Requis si les propriétés du produit (prix, disponibilité) sont différentes selon vos emplacements. Voir le tableau et l'exemple ci-dessous                                                                                                                                                                                                                                                                                                     |
| `accessories`    | Non             | Liste de produits qui peuvent être complémentaires ou équivalents au produit courant. Cela vous permet de recommander des produits qui peuvent être utilisés en combinaison avec le produit courant (ou en remplacement). Elle est généralement nécessaire pour une boutique de mode ou automobile et cette balise n'est compatible qu'avec l'algorithme [Store Recommendations](./select-an-algorithm-for-your-product-recommendation-block). |
| `oldprice`       | Non             | Prix précédent de l'article. Utilisé pour afficher le prix réduit du produit dans les blocs de recommandation de produits.                                                                                                                                                                                                                                                                                                                     |
| `price_margin`   | Non             | Facteur de pondération de la marge sur prix du produit, entre 0 et 100. Utilisé pour afficher les produits qui ont une marge plus élevée dans les blocs de recommandation de produits.                                                                                                                                                                                                                                                         |
| `barcode`        | Non             | Code-barres ou SKU du produit. Utilisé pour les algorithmes de recherche de Kameleoon.                                                                                                                                                                                                                                                                                                                                                         |
| `typePrefix`     | Non             | Type de produit (par exemple, "mobile phone", "washing machine", "corner sofa"). Utilisé pour les algorithmes de recherche de Kameleoon.                                                                                                                                                                                                                                                                                                       |
| `vendor`         | Non             | Fabricant/marque                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `vendorCode`     | Non             | Code du fabricant/marque. Utilisé pour les algorithmes de recherche de Kameleoon.                                                                                                                                                                                                                                                                                                                                                              |
| `model`          | Non             | Modèle et nom du produit (par exemple, iPhone 17 128GB). Utilisé pour les algorithmes de recherche de Kameleoon.                                                                                                                                                                                                                                                                                                                               |
| `seasonality`    | Non             | Saisonnalité des marchandises. Permet de recommander ce produit uniquement certains mois de l'année. Ajoutez autant d'éléments que nécessaire. Voir l'exemple ci-dessous                                                                                                                                                                                                                                                                       |
| `is_new`         | Non             | Doit être "1" si le produit est nouveau. Requis si vous utilisez l'algorithme "New arrivals"                                                                                                                                                                                                                                                                                                                                                   |
| `rating`         | Non             | Note du produit. Doit prendre une valeur de zéro à cinq. Doit être zéro si le produit n'a pas de note                                                                                                                                                                                                                                                                                                                                          |
| `description`    | Non             | Description du produit                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `stock_quantity` | Non             | Indication de la quantité en stock du produit                                                                                                                                                                                                                                                                                                                                                                                                  |
| `tags`           | Non             | Toute information supplémentaire décrivant le produit. Utilisé pour les algorithmes de recherche de Kameleoon. Vous pouvez ajouter un maximum de cinq tags. Voir le tableau et l'exemple ci-dessous                                                                                                                                                                                                                                            |
| `param`          | Non             | Utilisé pour fournir des options de filtrage dans la page de liste de recherche fournie par Kameleoon. Ajoutez autant d'éléments param que nécessaire. Voir l'exemple ci-dessous                                                                                                                                                                                                                                                               |
| `author`         | Non             | Requis uniquement si vous vendez des livres en ligne                                                                                                                                                                                                                                                                                                                                                                                           |
| `publisher`      | Non             | Requis uniquement si vous vendez des livres en ligne                                                                                                                                                                                                                                                                                                                                                                                           |
| `series`         | Non             | Requis uniquement si vous vendez des livres en ligne                                                                                                                                                                                                                                                                                                                                                                                           |
| `year`           | Non             | Requis uniquement si vous vendez des livres en ligne                                                                                                                                                                                                                                                                                                                                                                                           |
| `ISBN`           | Non             | Requis uniquement si vous vendez des livres en ligne                                                                                                                                                                                                                                                                                                                                                                                           |

Exemple :

```xml theme={null}
<accessories>
    <accessory id="5574" />
    <accessory id="131" />
    <accessory id="99444" />
    <accessory id="334411" />
</accessories>
```

#### Élément : yml\_catalog > shop > offers > offer > locations

L'élément **`locations`** contient une liste d'emplacements, ainsi que la disponibilité et le prix du produit courant à ces emplacements. Chaque emplacement est décrit par un élément `location` distinct dans la balise **`offer`**.

Vous pouvez utiliser les attributs suivants pour l'élément **`locations`** :

| **Attribut** | **Obligatoire** | **Description**                                                                                                                                                                                                     |
| ------------ | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`         | Oui             | ID de l'emplacement où le produit est actuellement répertorié. Doit être un ID provenant de l'un des éléments **`locations`** de l'élément Shop (voir section ci-dessus). Ajoutez autant d'éléments que nécessaire. |

<Note>
  Le produit ne sera considéré comme disponible à l'achat que dans les emplacements listés dans l'élément offer. Dans tous les autres emplacements non listés, le produit sera considéré comme en rupture de stock. Vous n'avez pas besoin d'ajouter des emplacements si votre produit est disponible dans tous les emplacements, car Kameleoon considérera automatiquement le produit en stock dans tous.
</Note>

L'élément **`locations`** peut prendre les balises suivantes (requises uniquement si le produit a un prix/quantité de stock différent dans certains de vos emplacements).

| **Élément**      | **Obligatoire** | **Description**                                 |
| ---------------- | --------------- | ----------------------------------------------- |
| `price`          | Non             | Le prix du produit dans l'emplacement listé     |
| `oldprice`       | Non             | Le prix précédent du produit dans l'emplacement |
| `stock_quantity` | Non             | Quantité en stock du produit dans l'emplacement |

#### Élément : yml\_catalog > shop > offers > offer > fashion

Utilisez la balise fashion si vous vendez des produits vestimentaires.

L'élément **fashion** peut prendre les balises suivantes :

| **Élément** | **Obligatoire** | **Description**                                                                                                                                                         |
| ----------- | --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `gender`    | non             | Genre du produit. Doit être "f" (Female) ou "m" (Male).                                                                                                                 |
| `type`      | non             | Type de produit. Voir le tableau ci-dessous pour les valeurs autorisées.                                                                                                |
| `sizes`     | non             | Tailles disponibles du produit. Voir le tableau ci-dessous pour les valeurs autorisées.                                                                                 |
| `color`     | non             | Couleur du produit. Voir l'exemple ci-dessous.                                                                                                                          |
| `feature`   | non             | Spécificités du produit. Utilisez cet élément pour indiquer si le produit est destiné aux adultes ou aux enfants uniquement. Doit prendre la valeur "child" ou "adult". |

<Note>
  Ne spécifiez pas l'élément **`gender`** s'il n'est pas pertinent. Le produit sera étiqueté "unisex" et aura une priorité de recommandation plus faible que les autres produits du même genre.
</Note>

L'élément **`type`** peut prendre les valeurs suivantes :

| **Valeur de l'élément (gender)** | **Description**                                   |
| -------------------------------- | ------------------------------------------------- |
| `shoe`                           | Chaussures                                        |
| `shirt`                          | Chemises, chemisiers, robes                       |
| `tshirt`                         | T-shirts                                          |
| `underwear`                      | Sous-vêtements                                    |
| `trouser`                        | Pantalons, jeans, shorts, jupes, maillots de bain |
| `jacket`                         | Vestes, manteaux, manteaux en fourrure            |
| `blazer`                         | Vestes, gilets, pulls                             |
| `sock`                           | Chaussettes                                       |
| `belt`                           | Ceintures                                         |
| `hat`                            | Chapeaux                                          |
| `glove`                          | Gants                                             |

Exemple :

```xml theme={null}
<offer ...>
    ...
    <fashion>
        <gender>f</gender>
        <type>shoe</type>
    </fashion>
</offer>
```

<Note>
  Le paramètre **`type`** est requis lors de l'utilisation du paramètre **`sizes`**. Vous pouvez ajouter une liste de tailles disponibles en ajoutant autant de balises **`size`** que nécessaire dans l'élément **`sizes`** (voir l'exemple ci-dessous). Si vous avez plusieurs **locations** et que la disponibilité des tailles de produit est différente d'un emplacement à l'autre, insérez une balise **`location`** avec la liste des tailles disponibles dans chaque élément **`size`** (voir l'exemple ci-dessous).
</Note>

| **Description**                     | **Exemple**     |
| ----------------------------------- | --------------- |
| Taille européenne                   | `e38`           |
| Taille internationale               | `M`, `L`, `u30` |
| Taille UK                           | `b6`            |
| Hauteur (pour les produits enfants) | `h89-95`        |
| Taille unique                       | `null`          |

Exemple :

```xml theme={null}
<offer ...>
    ...
    <fashion>
        <gender>f</gender>
        <type>shoe</type>
        <feature>adult</type>
        <sizes>
            <size>e41</size>
            <size>e42</size>
            <size>e44</size>
            <size>e48</size>
        </sizes>
    </fashion>
</offer>
<offer ...>
    ...
    <fashion>
        <gender>m</gender>
        <type>jacket</type>
        <sizes>
            <size value="M">
              <location id="3"/>
            </size>
        </sizes>
    </fashion>
</offer>
```

<Note>
  Un produit peut avoir plusieurs couleurs disponibles. Vous pouvez définir une image spécifique pour une couleur en ajoutant un attribut **`picture`**. Sinon, l'image principale sera affichée.
</Note>

Exemple :

```xml theme={null}
<offer ...>
    ...
    <fashion>
        <gender>f</gender>
        <type>shirt</type>
        <color>white</color>
        <color picture="https://example.com/products/shirts/395532-blue.jpg">blue</color>
    </fashion>
</offer>
```

#### Élément : yml\_catalog > shop > offers > offer > auto

Utilisez la balise **`auto`** si vous vendez des pièces et accessoires automobiles. L'algorithme de Kameleoon est conçu pour reconnaître automatiquement un acheteur potentiel avec certaines caractéristiques, comme la marque et le modèle de la voiture. Il sera utilisé pour afficher des pièces et accessoires dans des blocs de recommandation qui ne sont compatibles qu'avec des marques et modèles de voitures spécifiques.

L'élément **`auto`** contient une liste de voitures compatibles. Chaque marque et modèle de voiture est décrit par un élément **`compatibility`** distinct.

<Note>
  Si le produit est compatible avec toutes les voitures, vous n'avez pas besoin d'ajouter d'éléments **`compatibility`**. Si le produit est compatible avec tous les modèles d'une marque, vous n'avez pas à ajouter l'attribut **`model`**.
</Note>

Vous pouvez utiliser les attributs suivants pour l'élément **`compatibility`** :

| **Attribut** | **Obligatoire** | **Description**   |
| ------------ | --------------- | ----------------- |
| `brand`      | Oui             | Marque de voiture |
| `model`      | Non             | Modèle de voiture |

Si le produit n'est compatible qu'avec une liste de voitures, vous pouvez également ajouter un élément **`vds`** pour chaque voiture compatible. Le **`vds`** contient le Vehicle Identification Number (VIN) qui sert d'empreinte de la voiture.

Exemple :

```xml theme={null}
<offer ...>
    ...
    <auto>
        <compatibility brand="BMW" />
        <compatibility brand="Mini" model="Cooper S" />
        <compatibility brand="Mini" model="Cooper C" />
        <vds>BP8AN5</vds>
        <vds>BP8AN5</vds>
    </auto>
</offer>
```

#### Élément : yml\_catalog > shop > offers > offer > tags

L'élément **`tags`** contient une liste de tags associés au produit. Cela est utile pour améliorer la recommandation du moteur de recherche de Kameleoon. Chaque valeur est décrite par un élément **`tag`** distinct.

| **Élément** | **Obligatoire** | **Description** |
| ----------- | --------------- | --------------- |
| `tag`       | Oui             | Valeur du tag   |

**Vous trouverez ci-dessous des exemples de fichiers XML que vous pouvez utiliser comme modèle :**

* Flux produit XML - exemple 1 (sans éléments locations) :

```xml theme={null}
<?xml version="1.0" encoding="UTF-8"?>
<yml_catalog date="2022-10-03 22:00">
	<shop>
		<categories>
			<category id="270821163172" parentId="2708" url="https://kameleoon-store.myshopify.com/collections/adidas">Adidas</category>
			<category id="270821261476" parentId="2708" url="https://kameleoon-store.myshopify.com/collections/asics">Asics</category>
			<category id="270821228708" parentId="2708" url="https://kameleoon-store.myshopify.com/collections/converse">Converse</category>
			<category id="270821425316" parentId="2708" url="https://kameleoon-store.myshopify.com/collections/drmartens">Dr Martens</category>
			<category id="270821490852" parentId="2708" url="https://kameleoon-store.myshopify.com/collections/flex">Flex</category>
			<category id="2708211" parentId="2708" url="https://kameleoon-store.myshopify.com/collections/trainers">Sneakers</category>
			<category id="2708" url="https://kameleoon-store.myshopify.com/collections/all">Shoes</category>
		</categories>
		<offers>
			<offer id="6737859641508" available="true" leftovers="lot">
				<url>https://kameleoon-store.myshopify.com/products/adidas-kids-stan-smith</url>
				<price>50.99</price>
				<oldprice>90</oldprice>
				<price_margin>45</price_margin>
				<categoryId>270821163172</categoryId>
				<categoryId>2708211</categoryId>
				<picture>https://cdn.shopify.com/s/files/1/0564/9180/2788/products/7883dc186e15bf29dad696e1e989e914_grande.jpg?v=1622707556</picture>
				<name>ADIDAS | KID'S STAN SMITH</name>
				<is_new>1</is_new>
				<rating>4</rating>
				<vendor>Adidas</vendor>
				<description>The Stan Smith owned the tennis court in the '70s. Today it runs the streets with the same clean, classic style. These kids' shoes preserve the iconic look of the original, made in leather with punched 3-Stripes, heel and tongue logos and lightweight step-in cushioning. </description>
				<stock_quantity>300</stock_quantity>
				<tags>
					<tag>Sneakers</tag>
					<tag>Lean low top sneakers</tag>
					<tag>Men sneakers</tag>
				</tags>
				<fashion>
					<type>shoe</type>
					<color>black</color>
					<sizes>
						<size>9</size>
					</sizes>
					<feature>child</feature>
				</fashion>
				<param name="Size" unit="EU">9</param>
				<param name="Color">white</param>
			</offer>
			<offer id="6737859641509" available="false">
			......
			</offer>	
		</offers>
	</shop>
</yml_catalog>
```

* Flux produit XML - exemple 2 (avec éléments locations) :

```xml theme={null}
<?xml version="1.0" encoding="UTF-8"?>
<yml_catalog date="2022-10-03 22:00">
	<shop>
		<categories>
			<category id="270821163172" parentId="2708" url="https://kameleoon-store.myshopify.com/collections/adidas">Adidas</category>
			<category id="270821261476" parentId="2708" url="https://kameleoon-store.myshopify.com/collections/asics">Asics</category>
			<category id="270821228708" parentId="2708" url="https://kameleoon-store.myshopify.com/collections/converse">Converse</category>
			<category id="270821425316" parentId="2708" url="https://kameleoon-store.myshopify.com/collections/drmartens">Dr Martens</category>
			<category id="270821490852" parentId="2708" url="https://kameleoon-store.myshopify.com/collections/flex">Flex</category>
			<category id="2708211" parentId="2708" url="https://kameleoon-store.myshopify.com/collections/trainers">Sneakers</category>
			<category id="2708" url="https://kameleoon-store.myshopify.com/collections/all">Shoes</category>
		</categories>		
		<locations>
			<location id="1" type="city" name="New York" />
			<location id="2" type="city" name="Los Angeles" />
			<location id="145" parentId="1" type="store" name="New York City main store" />
		</locations>		
		<offers>
			<offer id="6737859641508" available="true" leftovers="lot">
				<url>https://kameleoon-store.myshopify.com/products/adidas-kids-stan-smith</url>
				<price>50.99</price>
				<oldprice>90</oldprice>
				<categoryId>270821163172</categoryId>
				<categoryId>2708211</categoryId>
				<picture>https://cdn.shopify.com/s/files/1/0564/9180/2788/products/7883dc186e15bf29dad696e1e989e914_grande.jpg?v=1622707556</picture>
				<name>ADIDAS | KID'S STAN SMITH</name>
				<is_new>1</is_new>
				<rating>4</rating>
				<vendor>Adidas</vendor>
				<description>The Stan Smith owned the tennis court in the '70s. Today it runs the streets with the same clean, classic style. These kids' shoes preserve the iconic look of the original, made in leather with punched 3-Stripes, heel and tongue logos and lightweight step-in cushioning. </description>
				<stock_quantity>300</stock_quantity>
				<tags>
					<tag>Sneakers</tag>
					<tag>Men</tag>
				</tags>
				<locations>
					<location id="145">
						<price>63</price>
						<oldprice>90</oldprice>
						<stock_quantity>90</stock_quantity>
					</location>
				</location>
				<customerRecommendations>67378596415,673785964150821,673785964150,673785964150811</customerRecommendations>
			</offer>
			<offer id="6737859641509" available="false">
				......
			</offer>	
		</offers>
	</shop>
</yml_catalog>
```

### Étape 2 : synchroniser votre fichier de flux de produits avec Kameleoon

Par défaut, le flux Kameleoon se synchronise avec votre fichier XML toutes les 24 heures. Toutefois, vous pouvez modifier ce paramètre si votre catalogue de produits est mis à jour plus fréquemment. Vous pouvez effectuer des ajustements dans **Store settings**.

<Frame>
  ![](https://storage.googleapis.com/kameleoon-storage-documentation/user-manual/images/recommendations-and-merchandising/recommendations/import-your-product-catalog-feed/0.png)
</Frame>

Vous pouvez également planifier l'import pour démarrer à une heure spécifique. Contactez votre Customer Success Manager Kameleoon pour activer cette option.

<Frame>
  ![](https://storage.googleapis.com/kameleoon-storage-documentation/user-manual/images/recommendations-and-merchandising/recommendations/import-your-product-catalog-feed/Screenshot-2024-07-01-at-1.28.50PM.png)
</Frame>

### Étape 3 : suivre les événements des visiteurs

En plus de synchroniser votre flux de produits XML, vous devez implémenter des événements pour suivre les événements produit, tels que la consultation de produit, l'ajout au panier et la transaction.

#### Vues de produit

Vous devez utiliser la méthode **`trackProductView`**.

`Kameleoon.API.Products.trackProductView("ProductID/SKU/EAN");`

[Lire les instructions détaillées](../../../developer-docs/apis/activation-api-js/api-reference/api-reference#trackproductview)

#### trackAddToCart()

Vous devez utiliser la méthode **`trackAddToCart()`** chaque fois qu'un produit a été ajouté au panier du visiteur ou lorsque le visiteur accède à la page du panier.

`Kameleoon.API.Products.trackAddToCart("ProductID/SKU/EAN");`

[Lire les instructions détaillées](../../../developer-docs/apis/activation-api-js/api-reference/api-reference#trackaddtocart)

#### Transaction

```javascript theme={null}
Kameleoon.API.Products.trackTransaction([
	{
	 "productID": "ProductID/SKU/EAN 1",
	 "quantity": 1
	}
]);
```

[](../../../developer-docs/apis/activation-api-js/api-reference/api-reference#tracktransaction)[Lire nos instructions détaillées](../../../developer-docs/apis/activation-api-js/api-reference/api-reference#tracktransaction)

## Valider le statut de synchronisation de votre flux

Si vous utilisez la Product API de Kameleoon, vous pouvez vérifier que votre implémentation a réussi en utilisant [la méthode `obtainProductData`](../../../developer-docs/apis/activation-api-js/api-reference/api-reference#obtainproductdata). Cette méthode vous permet de tester facilement votre implémentation en temps réel et de vérifier que Kameleoon a correctement collecté vos attributs produit.

Vous pouvez visualiser votre catalogue de produits à l'aide du menu **Data feed**.

<Frame>
  ![](https://storage.googleapis.com/kameleoon-storage-documentation/user-manual/images/recommendations-and-merchandising/recommendations/import-your-product-catalog-feed/data-feed.png)
</Frame>

Vous pouvez également accéder aux journaux d'import directement depuis le menu **Imports log** pour dépanner les problèmes d'import.

<Frame>
  ![](https://storage.googleapis.com/kameleoon-storage-documentation/user-manual/images/recommendations-and-merchandising/recommendations/import-your-product-catalog-feed/import-logs.png)
</Frame>

Vous pouvez ensuite cliquer sur n'importe quelle ligne pour accéder au journal d'import détaillé.
