> For the complete documentation index, see [llms.txt](https://help.citrusad.com/retail-media-interface/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.citrusad.com/retail-media-interface/integration/fr/data-api/catalog-products-2/syncing-products-via-api.md).

# Synchronisation des produits via l'API

## Synchronisation standard de produits

Une fois votre catalogue créé, vous êtes en mesure d'y synchroniser des produits. L'exemple ci-dessous décrit un contexte standard pour synchroniser des produits :

```http
POST $BASE_URL/v1/catalog-products?teamId=<YOUR_TEAM_ID> HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
{
    "catalogProducts": [
        {
            "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
            "gtin": "23556578965543",
            "inventory": 50,
            "price": "19.99",
            "tags": [
                 "imageurl:https://your.image.host.com/image.jpg","name:Covergirl Clean 120 Creamy Natural Liquid Foundation30mL"
            ],
            "filters": [
                 "category:Health&Beauty","category:Grocery","brand:Covergirl","Special_Flag:0"
            ]
        }
    ]
}
```

En cas de succès, l'objet suivant sera retourné :

```json
{
    "catalogProducts": [
        {
            "teamId": "e8158f9b-bbb9-49fb-93fe-3ad481ca8450",
            "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
            "gtin": "23556578965543",
            "inventory": 50,
            "price": 19.99,
            "tags": [
                 "imageurl:https://your.image.host.com/image.jpg",
                 "name:Covergirl Clean 120 Creamy Natural Liquid Foundation30mL"
            ],
            "filters": [
                 "category:Health&Beauty",
              	 "category:Grocery",
              	 "brand:Covergirl",
              	 "Special_Flag:0"
            ],
            "groups": [],
            "profit": null
        }
    ]
}
```

Dans ce contexte, les valeurs vides ou nulles pour les groupes et les bénéfices peuvent être ignorées.

## Synchroniser les informations de localisation

Vous pouvez également synchroniser des filtres pour divers emplacements où vos produits sont en magasin. Cela est utile pour l'optimisation au niveau du magasin/de l'emplacement de vos informations produits.

```http
POST $BASE_URL/v1/catalog-products?teamId=<YOUR_TEAM_ID> HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
{
    "catalogProducts": [
        {
            "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
            "gtin": "23556578965543",
            "inventory": 50,
            "price": "19.99",
            "tags": [
                 "imageurl:https://your.image.host.com/image.jpg","name:Covergirl Clean 120 Creamy Natural Liquid Foundation30mL"
            ],
            "filters": [
                 "category:Health&Beauty","category:Grocery","brand:Covergirl","Special_Flag:0","location:123","location:ABC"
            ]
        }
    ]
}
```

En cas de succès, l'objet suivant sera retourné :

```json
{
    "catalogProducts": [
        {
            "teamId": "e8158f9b-bbb9-49fb-93fe-3ad481ca8450",
            "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
            "gtin": "23556578965543",
            "inventory": 50,
            "price": 19.99,
            "tags": [
                 "imageurl:https://your.image.host.com/image.jpg",
                 "name:Covergirl Clean 120 Creamy Natural Liquid Foundation30mL"
            ],
            "filters": [
                 "category:Health&Beauty",
              	 "category:Grocery",
              	 "brand:Covergirl",
              	 "Special_Flag:0",
              	 "location:123",
              	 "location:ABC"
            ],
            "groups": [],
            "profit": null
        }
    ]
}
```

## Synchronisation des informations HFSS

Dans votre synchronisation de produits, vous devrez envoyer un filtre de `hfss:true` or `hfss:false`. Cela permet à Epsilon Retail Media de filtrer correctement notre interface.

```json
POST $BASE_URL/v1/catalog-products?teamId=<YOUR_TEAM_ID> HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
{
    "catalogProducts": [
        {
            "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
            "gtin": "23556578965543",
            "inventory": 50,
            "price": "19.99",
            "tags": [
                 "imageurl:https://your.image.host.com/image.jpg","name:Covergirl Clean 120 Creamy Natural Liquid Foundation30mL"
            ],
            "filters": [
                 "hfss:true","category:Health&Beauty","category:Grocery","brand:Covergirl","Special_Flag:0","location:123","location:ABC"
            ]
        }
    ]
}
```

{% hint style="info" %}
Besoin d'en savoir plus sur le HFSS ?

Consultez la publication du gouvernement britannique ici : <https://www.gov.uk/government/publications/restricting-promotions-of-products-high-in-fat-sugar-or-salt-by-location-and-by-volume-price/restricting-promotions-of-products-high-in-fat-sugar-or-salt-by-location-and-by-volume-price-implementation-guidance>
{% endhint %}

## Synchroniser plusieurs produits

Si vous synchronisez plusieurs produits, vous pouvez en séquencer jusqu'à 100 par requête.

Un exemple de contexte pour la synchronisation de deux produits est décrit ci-dessous :

```http
POST $BASE_URL/v1/catalog-products?teamId=<YOUR_TEAM_ID> HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
{
    "catalogProducts": [
        {
            "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
            "gtin": "23556578965543",
            "inventory": 50,
            "price": "19.99",
            "tags": [
                 "imageurl:https://your.image.host.com/image.jpg",
                 "name:Covergirl Clean 120 Creamy Natural Liquid Foundation30mL"
            ],
            "filters": [
                 "category:Health&Beauty",
              	 "category:Grocery",
              	 "brand:Covergirl",
              	 "Special_Flag:0"
            ],
            "profit": "1.50"
        },
        {
            "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
            "gtin": "23556578965738",
            "inventory": 26,
            "price": "8.50",
            "tags": [
                "imageurl:https://your.image.host.com/image.jpg",
                "name:Kelloggs Froot Loops Breakfast Cereal 500g"
            ],
            "filters": [
                "brand:Kelloggs",
                "category:Pantry",
                "category:BreakfastFoods",
                "category:Cereals",
                "Special_Flag:0"
            ],
            "profit": "0.50"
        }
    ]
}
```

En cas de succès, l'objet suivant sera retourné :

```json
{
    "catalogProducts": [
        {
            "gtin": "23556578965543",
            "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
            "price": 19.99,
            "teamId": "e8158f9b-bbb9-49fb-93fe-3ad481ca8450",
            "groups": [],
            "tags": [
                 "imageurl:https://your.image.host.com/image.jpg",
                 "name:Covergirl Clean 120 Creamy Natural Liquid Foundation30mL"
            ],
            "filters": [
                 "category:Health&Beauty",
              	 "category:Grocery",
              	 "brand:Covergirl",
              	 "Special_Flag:0"
            ],
            "inventory": 50,
            "profit": 1.50,
            "tags": [
                "Natural",
                "Lasting",
                "Dry Skin",
                "Beige"
            ]
        },
        {
            "gtin": "23556578965736688",
            "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
            "price": 8.50,
            "teamId": "e8158f9b-bbb9-49fb-93fe-3ad481ca8450",
            "groups": [],
            "tags": [
                "imageurl:https://your.image.host.com/image.jpg",
                "name:Kelloggs Froot Loops Breakfast Cereal 500g"
            ],
            "filters": [
                "brand:Kelloggs",
                "category:Pantry",
                "category:BreakfastFoods",
                "category:Cereals",
                "Special_Flag:0"
            ],
            "inventory": 26,
            "profit": 0.50,
            "tags": [
                "Pantry",
                "BreakfastFoods",
                "Cereals",
                "Kelloggs"
            ]
        }
    ]
}
```

## Mise à jour de l'inventaire des produits

Pour mettre à jour l'inventaire d'un produit, vous devrez resynchroniser le produit avec Epsilon Retail Media. Dans votre synchronisation, signalez l'inventaire du produit comme `0`. Un exemple est décrit ci-dessous :

```http
POST $BASE_URL/v1/catalog-products?teamId=<YOUR_TEAM_ID> HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
{
    "catalogProducts": [
        {
            "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
            "gtin": "23556578965543",
            "inventory": 0,
            "price": "19.99",
            "tags": [
                 "imageurl:https://your.image.host.com/image.jpg","name:Covergirl Clean 120 Creamy Natural Liquid Foundation30mL"
            ],
            "filters": [
                 "category:Health&Beauty","category:Grocery","brand:Covergirl","Special_Flag:0"
            ]
        }
    ]
}
```

<br>

## Mise à jour des images de produits

Epsilon met les URL d'images en cache pour garantir des performances constantes et réduire les requêtes vers votre serveur d'images. Si vous mettez à jour une image sans modifier son URL, vous devez déclencher explicitement un rafraîchissement dans Epsilon. Pour ce faire :

* Supprimez l'image\_url existante du produit.
* Renvoyez la même image\_url une fois la mise à jour terminée.

Sinon, si votre serveur d'images le prend en charge, vous pouvez forcer un rafraîchissement en ajoutant une chaîne de requête (par exemple, une version ou un horodatage) à l'URL existante. Cela amènera Epsilon à recharger l'image..

{% hint style="info" %}
Les images ne sont utilisées que dans l'UI

Les images de produits ne sont pas fournies dans les réponses publicitaires. Les mises à jour d'images n'affectent que l'apparence du produit dans l'interface utilisateur de Epsilon pendant que le rafraîchissement du cache s'effectue.
{% endhint %}

## Récupération des produits

Une fois qu'un produit est dans votre catalogue, vous souhaiterez peut-être récupérer ses informations actuelles ultérieurement.

Pour ce faire, vous pouvez effectuer une requête HTTP **GET** avec le format d'URL **`v1/catalog-products/catalogId/<PRODUCT_CODE>`**. Le point de terminaison est capable d'accepter un code produit par requête. Une requête type est décrite ci-dessous :

```http
GET $BASE_URL/v1/catalog-products/<CATALOG_ID>/<PRODUCT_CODE> HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
```

Vous devriez recevoir les informations actuelles ingérées dans le système Epsilon Retail Media pour ce code produit. Un exemple est fourni ci-dessous

{% hint style="info" %}
L'envoi d'une mise à jour de produit n'est pas instantané dans le système Epsilon Retail Media , cela peut prendre un court instant pour que Epsilon Retail Media ingère complètement une mise à jour de produit. Ne vous inquiétez pas si les informations d'un produit ne sont pas instantanément mises à jour lors de la récupération des détails.
{% endhint %}

## Suppression de produits

Pour retirer un produit de votre catalogue, envoyez une requête HTTP DELETE en utilisant le format suivant lorsque le produit n'est plus nécessaire.

### Paramètres de la requête

Le point de terminaison accepte un code produit par requête, généralement votre identifiant GTIN.

```http
DELETE $BASE_URL/v1/catalog-products/<CATALOG_ID>/<PRODUCT_CODE> HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
```

### Suppression de produits avec un ID vendeur

Si le produit inclut un ID vendeur, spécifiez-le en tant que paramètre de requête lors de la suppression du produit :

```http
DELETE $BASE_URL/v1/catalog-products/<CATALOG_ID>/<PRODUCT_CODE>?sellerId=abc123> HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
```

### Délai de traitement

La suppression d'un produit peut prendre entre 30 minutes et une heure pour être traitée.

{% hint style="info" %}
Important

Si un produit est en rupture de stock, définissez son inventaire sur 0 au lieu de le supprimer. La suppression d'un produit retire la possibilité pour les annonceurs de le sélectionner dans la plateforme Epsilon Retail Media , même lorsqu'il est de nouveau en stock.
{% endhint %}

### Gestion des erreurs

Si vous recevez une erreur « produit non trouvé », cela signifie probablement que le produit n'a pas été ingéré dans le système Epsilon Retail Media .


---

# 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.citrusad.com/retail-media-interface/integration/fr/data-api/catalog-products-2/syncing-products-via-api.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
