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/ |
https://shop.example.com/ |
https://shop.example.com/ |
gtin | 9504000059422 | 9504000059446 | 9504000059452 |
mpn | 00638NIC | 00638ANG | 00638ABC |
brand | |||
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"
]
}
]
}