appels de ressource "Products"

La ressource products offre une grande flexibilité et plus de contrôle sur plus de 60 attributs de produit.Plusieurs champs sont obligatoires et doivent être définis pour que l'affichage du produit sur Google Shopping soit approuvé. Des champs facultatifs peuvent devenir obligatoires en fonction de divers facteurs, tels que l'emplacement, le type de produit, les variantes de produits et les offres groupées. Pour en savoir plus sur l'ensemble des paramètres facultatifs pouvant être configurés pour les produits, consultez l'article Spécifications des données produit.

La ressource products permet d'insérer, d'obtenir, de mettre à jour et de supprimer un produit à la fois (à l'aide des méthodes insert, get, update et delete), ainsi que de lister tous les produits dans la base de données Merchant Center (méthode list).

La ressource productstatuses permet de vérifier si un produit spécifique est approuvé ou refusé pour une destination. Consultez le guide sur l'état des produits pour en savoir plus sur les produits susceptibles de présenter des problèmes de qualité des données et sur la nature de ces problèmes.

Dans nos exemples d'API, nous utilisons trois produits : deux t-shirts Google et une casquette Google. Pour effectuer les appels de ressource products permettant d'insérer, d'obtenir, de mettre à jour, de lister et de supprimer des produits individuels et des lots de produits, nous utilisons l'ensemble réduit de données produit présentées dans le tableau ci-dessous.

Nous vous recommandons de configurer les informations sur la livraison et les taxes au niveau du compte plutôt qu'au niveau du produit.

Pour les sous-comptes multivendeurs des places de marché, tous les produits doivent inclure le champ external_seller_id. Pour en savoir plus, consultez Identifiants produit.

id online:en:US:1111111111 online:en:US:2222222222 online:en:US:3333333333
offerId 1111111111 2222222222 3333333333
titre T-shirt Google noir T-shirt Google vert Casquette sergée Google
description T-shirt Google noir T-shirt Google 100 % coton Casquette Google classique
identifiant de groupe d'articles google_tee google_tee
lien http://my.site.com/blacktee http://my.site.com/greentee http://my.site.com/blackhat
état Nouveau Nouveau Nouveau
price 21,99 EUR 21,99 EUR 10.99 EUR
disponibilité En stock En stock En stock
imageLink https://shop.example.com/store/20160512512/assets/items/images/GGOEGXXX1100.jpg https://shop.example.com/store/20160512512/assets/items/images/GGOEGXXX0906.jpg https://shop.example.com/store/20160512512/assets/items/images/GGOEGHPB071610.jpg
gtin 9504000059422 9504000059446 9504000059452
mpn 00638NIC 00638ANG 00638ABC
brand Google Google Google
Catégorie de produits Google Vêtements et accessoires > Vêtements Vêtements et accessoires > Vêtements Vêtements et accessoires > Accessoires vestimentaires > Chapeaux
couleur noir vert noir
taille L M M
age_group adulte adulte adulte
gender (genre) male male unisexe
included_destination Shopping Actions, annonces Shopping Shopping Actions, annonces Shopping Shopping Actions

products.insert

Pour insérer un produit, utilisez l'URL de requête suivante, en indiquant votre ID de marchand et un extrait de corps JSON. La méthode insert permet de créer un produit. Si des valeurs sont définies pour les attributs channel, contentLanguage, offerId et feedLabel d'un produit donné, cette méthode met à jour l'entrée concernée et remplace toutes les données des appels d'API précédents pour ce produit.

Les produits exclus de l'ensemble des destinations pendant plus de sept jours sont automatiquement supprimés.

L'exemple ci-dessous insère un nouveau "T-shirt Google noir" dans la liste des produits disponibles.

POST https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products

Exemple d'appel du corps de la requête pour products.insert :

{
 "kind": "content#product",
 "offerId": "1111111111",
 "title": "Google Tee Black",
 "description": "The Black Google Tee is available in unisex sizing.",
 "link": "http://my.site.com/blacktee/",
 "imageLink": "https://shop.example.com/.../images/GGOEGXXX1100.jpg",
 "contentLanguage": "en",
 "targetCountry": "US",
 "feedLabel": "US",
 "channel": "online",
 "ageGroup": "adult",
 "availability": "in stock",
 "availabilityDate": "2019-01-25T13:00:00-08:00",
 "brand": "Google",
 "color": "black",
 "condition": "new",
 "gender": "male",
 "googleProductCategory": "1604",
 "gtin": "608802531656",
 "itemGroupId": "google_tee",
 "mpn": "608802531656",
 "price": {
  "value": "21.99",
  "currency": "USD"
 },
 "sizes": [
  "Large"
 ]
}

Des attributs personnalisés peuvent également être définis pour un produit dans le corps de la requête JSON. Par exemple, nous pouvons définir un attribut purchase_quantity_limit pour un seul produit afin de limiter le nombre d'articles qu'un client peut commander :

"customAttributes": [
 {
   "name": "purchase_quantity_limit",
   "value": "4"
 }
]

Notez que l'attribut personnalisé purchase_quantity_limit permet de fixer une limite d'achat par commande client dans la définition du produit, et qu'il est également accepté dans les flux. Il est actuellement en version bêta jusqu'à ce qu'il soit entièrement compatible avec l'API. Les marchands peuvent ajouter des attributs personnalisés supplémentaires, mais ceux-ci ne font l'objet d'aucun traitement spécifique par les API.

Les appels réussis affichent un code HTTP 200 et un corps de réponse contenant la ressource Products insérée avec seulement les attributs id, offerId, contentLanguage, feedLabel et channel renseignés :

{
 "kind": "content#product",
 "id": "online:en:US:1111111111",
 "offerId": "1111111111",
 "contentLanguage": "en",
 "targetCountry": "US",
 "feedLabel": "US",
 "channel": "online"
}

products.get

Pour obtenir des informations sur un produit spécifique figurant dans la base de données Merchant Center, utilisez products.get. Il peut s'écouler quelques minutes avant qu'un produit nouvellement inséré soit disponible via cet appel.

Saisissez l'URL de requête HTTP et les paramètres ci-dessous, votre ID de marchand et l'identifiant (identifiant REST) du produit que vous souhaitez récupérer :

GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId}

Les appels réussis affichent un code HTTP 200 et la ressource "Products" dans le corps de la réponse. Voici un exemple des données produit récupérées à partir d'un produit ayant l'identifiant online:en:US:1111111111 :

{
 "kind": "content#product",
 "id": "online:en:US:1111111111",
 "offerId": "1111111111",
 "source": "api",
 "title": "Google Tee Black",
 "description": "The Black Google Tee is available in unisex sizing.",
 "link": "http://my.site.com/blacktee/",
 "imageLink": "https://shop.example.com/.../images/GGOEGXXX1100.jpg",
 "contentLanguage": "en",
 "targetCountry": "US",
 "feedLabel": "US",
 "channel": "online",
 "ageGroup": "adult",
 "availability": "in stock",
 "availabilityDate": "2019-01-25T13:00:00-08:00",
 "brand": "Google",
 "color": "black",
 "condition": "new",
 "gender": "male",
 "googleProductCategory": "1604",
 "gtin": "608802531656",
 "itemGroupId": "google_tee",
 "mpn": "608802531656",
 "price": {
  "value": "21.99",
  "currency": "USD"
 },
 "sizes": [
  "Large"
 ]
}

products.update

Pour mettre à jour un produit, utilisez l'URL de requête suivante avec la méthode PATCH, en indiquant votre ID de marchand, l'identifiant produit et un corps JSON qui contient les données que vous voulez mettre à jour pour le produit. Contrairement à products.insert, où vous devez indiquer tous les champs obligatoires, vous ne devez spécifier que les champs à modifier pour products.update.

Pour ajouter ou modifier un attribut, indiquez le champ avec la nouvelle valeur dans le corps JSON. L'exemple ci-dessous met à jour les champs title et description d'un "T-shirt Google noir" existant avec les données produit fournies dans le corps de la requête. Tous les autres champs restent inchangés.

PATCH https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId}

Exemple d'appel du corps de la requête pour products.update :

{
 "title": "Google Tee Black Limited Edition",
 "description": "The Limited Edition Tee is available in unisex sizing and features a retail fit."
}

Seuls les champs de premier niveau peuvent être mis à jour via une requête products.update. Si vous souhaitez mettre à jour des champs imbriqués, vous devez fournir l'objet de premier niveau dans son intégralité.

L'exemple ci-dessous met à jour l'objet salePrice de premier niveau, y compris les champs imbriqués d'un produit existant, avec les données produit fournies dans le corps de la requête. Tous les autres champs restent inchangés.

PATCH https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId}
{
 "salePrice": {
  "value": "17.99",
  "currency": "USD"
 }
}

Pour sélectionner certains champs à mettre à jour sans modifier les autres champs inclus dans le corps de la requête, vous pouvez spécifier un updateMask. Ce paramètre de chaîne de requête doit être une liste des champs à modifier, séparés par une virgule. Un updateMask est utile lorsque vous voulez indiquer que seuls les champs nommés seront mis à jour. Si vous ne spécifiez pas d'updateMask, cela équivaut à marquer tous les champs de la requête comme devant être mis à jour, comme dans l'exemple ci-dessus.

L'exemple ci-dessous met à jour uniquement les champs description et availability d'un "T-shirt Google noir" existant avec les données produit respectives fournies dans le corps de la requête. Tous les autres champs, y compris title, restent inchangés.

PATCH https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId}?updateMask=description,availability

Exemple d'appel du corps de la requête pour products.update :

{
 "title": "Google Tee Black",
 "description": "This Limited Edition is out of print.",
 "availability": "out of stock"
}

Si un champ figure dans la liste updateMask mais pas dans le corps de la requête, il est supprimé de la ressource Product s'il existe.

L'exemple ci-dessous utilise updateMask afin de supprimer la valeur pour le champ salePrice.

PATCH https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId}?updateMask=salePrice

L'exemple de corps de requête ne doit pas inclure le champ salePrice pour pouvoir le supprimer. Vous pouvez également ne pas indiquer de corps ou le laisser vide. Tous les autres champs restent inchangés à condition qu'ils n'apparaissent pas dans l'updateMask.

Pour utiliser updateMask dans une requête products.custombatch, vous devez spécifier updateMask dans le corps de la requête.

L'exemple ci-dessous met à jour les champs price et availability d'un "T-shirt Google noir" existant à l'aide de products.custombatch avec les données produit fournies dans l'entrée de lot. Tous les autres champs, y compris title et description, restent inchangés.

POST https://shoppingcontent.googleapis.com/content/v2.1/products/batch
{
  "entries": [{
    "batchId": 1,
    "merchantId": "MERCHANT_ID",
    "productId": "online:en:US:1111111111",
    "method": "update",
    "product": {
      "title": "Google Tee Black",
      "description": "The Black Google Tee is available in unisex sizing.",
      "availability": "in stock",
      "price": {
        "value": "19.99",
        "currency": "USD"
      }
    },
    "updateMask": "availability,price"
  }]
}

products.delete

Pour supprimer un produit, exécutez products.delete en indiquant l'exemple d'URL de requête HTTP, votre ID de marchand et l'identifiant produit (au format REST, par exemple online:en:US:1111111111) :

DELETE https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId}

Les appels réussis affichent le code HTTP Status 204 avec un corps de réponse vide.

products.list

products.list liste tous les produits figurant dans la base de données Merchant Center d'un marchand. Pour ce faire, saisissez l'URL de requête suivante :

GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products

Les appels réussis affichent un code HTTP 200 et les données JSON des produits dans la clé "resources".

Les trois exemples de produits suivants sont renvoyés :

{
 "kind": "content#productsListResponse",
 "resources": [
  {
   "kind": "content#product",
   "id": "online:en:US:1111111111",
   "offerId": "1111111111",
   "source": "api",
   "title": "Google Tee Black",
   "description": "The Black Google Tee is available in unisex sizing.",
   "link": "http://my.site.com/blacktee/",
   "imageLink": "https://shop.example.com/.../images/GGOEGXXX1100.jpg",
   "contentLanguage": "en",
   "targetCountry": "US",
   "feedLabel": "US",
   "channel": "online",
   "ageGroup": "adult",
   "availability": "in stock",
   "availabilityDate": "2019-01-25T13:00:00-08:00",
   "brand": "Google",
   "color": "black",
   "condition": "new",
   "gender": "male",
   "googleProductCategory": "1604",
   "gtin": "608802531656",
   "itemGroupId": "google_tee",
   "mpn": "608802531656",
   "price": {
    "value": "21.99",
    "currency": "USD"
   },
   "sizes": [
    "Large"
   ]
  },
  {
   "kind": "content#product",
   "id": "online:en:US:2222222222",
   "offerId": "2222222222",
   "source": "api",
   "title": "Google Tee Green",
   "description": "100% cotton jersey fabric sets this Google t-shirt above the crowd.
    Features the google logo across the chest. Unisex sizing.",
   "link": "http://my.site.com/greentee/",
   "imageLink": "https://shop.example.com/.../images/GGOEGXXX0906.jpg",
   "contentLanguage": "en",
   "targetCountry": "US",
   "feedLabel": "US",
   "channel": "online",
   "ageGroup": "adult",
   "availability": "in stock",
   "availabilityDate": "2019-01-25T13:00:00-08:00",
   "brand": "Google",
   "color": "green",
   "condition": "new",
   "gender": "male",
   "googleProductCategory": "1604",
   "gtin": "608802531649",
   "itemGroupId": "google_tee",
   "mpn": "608802531649",
   "price": {
    "value": "21.99",
    "currency": "USD"
   },
   "sizes": [
    "Medium"
   ]
  },
  {
   "kind": "content#product",
   "id": "online:en:US:3333333333",
   "offerId": "3333333333",
   "source": "api",
   "title": "Google Twill Cap",
   "description": "Classic urban styling distinguishes this Google cap.
    Retains its shape, even when not being worn.",
   "link": "http://my.site.com/blackhat/",
   "imageLink": "https://shop.example.com/.../images/GGOEGHPB071610.jpg",
   "contentLanguage": "en",
   "targetCountry": "US",
   "feedLabel": "US",
   "channel": "online",
   "ageGroup": "adult",
   "availability": "in stock",
   "availabilityDate": "2019-01-07T13:00:00-08:00",
   "brand": "Google",
   "color": "black",
   "condition": "new",
   "gender": "male",
   "googleProductCategory": "173",
   "gtin": "689355417246",
   "mpn": "689355417246",
   "price": {
    "value": "10.99",
    "currency": "USD"
   },
   "sizes": [
    "Medium"
   ]
  }
 ]
}