Utiliser des flux supplémentaires avec Content API

Vous pouvez utiliser des flux supplémentaires pour effectuer des mises à jour partielles de vos données produit en ajoutant feedId comme paramètre de requête lorsque vous appelez les méthodes products.insert, products.delete, products.custombatch.insert et products.custombatch.delete.

Par exemple, vous pouvez effectuer un appel de méthode de flux supplémentaires products.insert sur l'URL suivante :

POST https://shoppingcontent.googleapis.com/content/v2.1/merchantId/products?feedId=feedId

products.insert

La méthode de flux supplémentaires products.insert ajoute les champs de produit que vous envoyez dans le corps de la requête, en remplaçant ces champs s'ils existent. Lorsque vous utilisez un flux supplémentaire, cette méthode ne modifie pas les autres champs concernant le produit, sauf s'ils ont été inclus dans une requête précédente pour le même flux. Chaque requête remplace les requêtes précédentes pour ce même flux, tandis que les données ajoutées via d'autres flux sont préservées. Cela signifie que si vous ajoutez ou mettez à jour un champ via une requête de flux supplémentaire, et que vous n'incluez pas le champ dans une requête ultérieure, les données du champ omis sont supprimées du flux. Ce comportement diffère de l'appel de méthode products.insert sans flux supplémentaire, qui supprime toutes les données produit existantes et les remplace par les champs que vous envoyez dans le corps de la requête.

Utilisez l'URL suivante pour envoyer une requête au service de flux supplémentaire Product.insert :

POST https://shoppingcontent.googleapis.com/content/v2.1/merchantId/products?feedId=feedId

Vous devez inclure les champs offerId, feedLabel, channel et contentLanguage dans le corps de la requête. Tous les autres sont facultatifs.

Exemple

Pour modifier la disponibilité d'un produit de "en stock" à "non disponible", vous pouvez utiliser le corps de requête suivant pour effectuer un appel de méthode Product.insert pour des flux supplémentaires :

{
 "offerId": "1111111111",
 "contentLanguage": "en",
 "feedLabel": "US",
 "channel": "online",
 "availability": "out of stock",
}

products.delete

La méthode products.delete supprime toutes les données supplémentaires précédemment ajoutées par les appels products.insert via le flux supplémentaire spécifié. En appelant cette méthode pour un flux supplémentaire, vous ne modifiez pas les données produit d'origine ajoutées avant le ou les appels Product.insert du flux supplémentaire. Cela équivaut à supprimer une couche de données pour un flux spécifique. Les données ajoutées via d'autres flux ne sont pas affectées, et le produit revient à son état précédent, avant l'ajout de la couche de flux supplémentaire. Ce comportement diffère de l'appel de products.delete sans flux supplémentaire, qui supprime entièrement le produit et ses données.

Utilisez l'URL suivante pour envoyer une requête au service de flux supplémentaire products.delete, où productId correspond à l'identifiant REST du produit, représenté par channel:contentLanguage:feedLabel:offerId :

DELETE https://shoppingcontent.googleapis.com/content/v2.1/merchantId/products/productId?feedId=feedId

Aucun corps de requête n'est requis pour les appels de méthode products.delete pour les flux supplémentaires.

products.custombatch

Les méthodes custombatch vous permettent d'insérer (insert) ou de supprimer (delete) des données de flux supplémentaire pour plusieurs produits à la fois dans un seul appel d'API, et de réduire ainsi le nombre d'appels d'API effectués.

Utilisez l'URL de requête suivante pour effectuer un appel custombatch :

https://shoppingcontent.googleapis.com/content/v2.1/products/batch

Pour tous les appels custombatch de flux supplémentaires, vous devez inclure les paramètres batchId, merchantID, method et feedId dans le corps de la requête.

products.custombatch:insert

Lorsque vous effectuez des appels de flux supplémentaires via la méthode products.custombatch:insert, vous devez inclure les éléments offerId, feedLabel, channel et contentLanguage dans le corps de la requête, en plus des paramètres batchId, merchantID et method. Tous les champs de produit sont facultatifs.

Exemple

Pour mettre à jour la valeur price pour deux produits existants, vous pouvez utiliser la requête suivante afin d'effectuer un appel de méthode products.custombatch:insert :

{
  "entries": [
    {
      "batchId": 1111,
      "merchantId": 1234567,
      "method": "insert",
      "feedId": "7654321",
      "product": {
         "offerId": "1111111111",
         "contentLanguage": "en",
         "targetCountry": "US",
         "feedLabel": "US",
         "channel": "online",
         "price": {
          "value": "30.99",
          "currency": "USD"
         }
      }
    },
    {
      "batchId": 1112,
      "merchantId": 1234567,
      "method": "insert",
      "feedId": "7654321",
      "product": {
         "offerId": "2222222222",
         "contentLanguage": "en",
         "targetCountry": "US",
         "feedLabel": "US",
         "channel": "online",
         "price": {
          "value": "33.99",
          "currency": "USD"
         },
      },
    }
}

products.custombatch:delete

Pour supprimer toutes les mises à jour apportées à deux produits via un flux supplémentaire spécifié, vous pouvez utiliser la requête suivante afin d'effectuer un appel de méthode products.custombatch:delete :

{
  "entries": [
    {
      "batchId": 1115,
      "merchantId": 1234567,
      "method": "delete",
      "feedId": "7654321",
      "productId": "online:en:US:1111111111"
    },
    {
      "batchId": 1116,
      "merchantId": 1234567,
      "method": "delete",
      "feedId": "7654321",
      "productId": "online:en:US:2222222222"
    }
  ]
}