L'API Merchant offre un moyen plus robuste et intuitif de gérer vos données produit. Le principal changement est la séparation des données produit en deux ressources distinctes : ProductInput
pour envoyer vos données et Product
pour afficher la version finale traitée, y compris l'état et les problèmes des produits. Cette nouvelle structure offre une expérience plus prévisible et transparente.
Ce guide vous présente les principales différences pour vous aider à migrer votre intégration depuis Content API for Shopping. Pour obtenir un guide détaillé sur l'utilisation des nouvelles fonctionnalités, consultez Gérer vos produits.
Principales différences
Voici les principales différences entre la gestion des produits dans l'API Merchant et dans Content API for Shopping :
Ressources dédiées aux données d'entrée et traitées : l'API Merchant divise la gestion des produits en deux ressources. Vous pouvez utiliser la ressource
ProductInput
pour insérer, mettre à jour et supprimer vos données produit. Vous pouvez utiliser la ressourceProduct
en lecture seule pour afficher le produit final une fois que Google a traité vos entrées, appliqué les règles et combiné les données provenant de sources supplémentaires.État du produit intégré : le service
productstatuses
est supprimé. Les problèmes de validation des produits et les états des destinations sont désormais directement inclus dans la ressourceProduct
du champproductStatus
, ce qui simplifie la récupération des données.Mises à jour prévisibles des produits : la nouvelle méthode
productInputs.patch
modifie directement une entrée de produit spécifique. Il s'agit d'une amélioration significative par rapport à Content API for Shopping, où les mises à jour pouvaient être remplacées de manière inattendue par d'autres importations de flux. Dans l'API Merchant, une mise à jour reste en place jusqu'à ce que l'entrée de produit spécifique soit à nouveau mise à jour ou supprimée. Les mises à jour des produits sont appliquées à la ressourceProductInput
au lieu d'être traitées par la ressourceProduct
.Choisissez votre source de données pour une gestion plus propre des données : toutes les opérations d'écriture
productInputs
nécessitent désormais un paramètre de requêtedataSource
, ce qui permet de savoir explicitement quelle source de données vous modifiez. Cela est particulièrement utile si vous disposez de plusieurs sources de données.Nouveaux identifiants de ressources : les produits sont désormais identifiés par une ressource RESTful
name
au lieu du champid
. Il a le format suivant :accounts/{account}/products/{product}
.Pas de lots personnalisés : la méthode
custombatch
n'est plus disponible. Vous pouvez utiliser des requêtes asynchrones ou le traitement par lot HTTP pour envoyer plusieurs requêtes en un seul appel HTTP.Sources de données pour n'importe quel libellé de flux et n'importe quelle langue : l'API Merchant permet de créer une source de données sans spécifier de libellé de flux ni de langue, et donc d'insérer des produits avec n'importe quel libellé de flux et n'importe quelle langue.
Requêtes
Cette section compare les formats de requête pour Content API for Shopping et l'API Merchant.
Description de la requête | Content API for Shopping | API Merchant |
---|---|---|
Obtenir un produit | GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId} |
GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products/{product} |
Répertorier les produits | GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products |
GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products |
Insérer un produit | POST https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products |
POST https://merchantapi.googleapis.com/products/v1/accounts/{account}/productInputs:insert |
Mettre à jour un produit | PATCH https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId} |
PATCH https://merchantapi.googleapis.com/products/v1/accounts/{account}/productInputs/{productinput} |
Supprimer un produit | DELETE https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId} |
DELETE https://merchantapi.googleapis.com/products/v1/accounts/{account}/productInputs/{productinput} |
Obtenir l'état d'un produit | GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/productstatuses/{productId} |
GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products/{product} |
Lister les états des produits | GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/productstatuses |
GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products |
Regrouper plusieurs requêtes | POST https://shoppingcontent.googleapis.com/content/v2.1/products/custombatch |
Requêtes asynchrones, traitement par lot HTTP |
Identifiants
Le format des identifiants produit a été modifié dans Merchant API pour devenir un nom de ressource REST standard.
Description de l'identifiant | Content API for Shopping | API Merchant |
---|---|---|
ID produit | Chaîne composée de segments séparés par un deux-points (: ).Format : channel:contentLanguage:targetCountry:offerId ou channel:contentLanguage:feedLabel:offerId .Exemple : online:en:US:sku123 |
Chaîne name de ressource REST.Format : accounts/{account}/products/{product} , où {product} correspond à contentLanguage~feedLabel~offerId .Exemple : accounts/12345/products/en~US~sku123 |
Méthodes
Ce tableau présente les méthodes Content API for Shopping et leurs équivalents dans l'API Merchant.
Méthode Content API for Shopping | Méthode de l'API Merchant | Disponibilité et remarques |
---|---|---|
products.get |
products.get |
Récupère le produit final traité. |
products.list |
products.list |
Liste les produits finaux traités. |
products.insert |
productInputs.insert |
Insère une entrée de produit. Nécessite un dataSource . |
products.update |
productInputs.update |
Le comportement est très différent. Il met à jour une entrée de produit spécifique et est persistant. |
products.delete |
productInputs.delete |
Supprime une entrée de produit spécifique. Nécessite un dataSource . |
products.custombatch |
Non disponible | Utilisez des requêtes asynchrones ou le traitement par lot HTTP. |
productstatuses.get |
products.get |
Le service productstatuses est supprimé. Les informations sur l'état font désormais partie de la ressource Product . |
productstatuses.list |
products.list |
Le service productstatuses est supprimé. Les informations sur l'état font désormais partie de la ressource Product . |
productstatuses.custombatch |
Non disponible | Utilisez [asynchronous |
requests](/merchant/api/samples/insert-product-input-async) ou regroupement HTTP. |
Modifications détaillées des champs
Ce tableau met en évidence les champs importants qui ont été modifiés, ajoutés ou supprimés dans l'API Merchant.
Content API for Shopping | API Merchant | Description |
---|---|---|
id |
name |
L'identifiant principal d'un produit est désormais la ressource REST name . |
Attributs de premier niveau des spécifications des données produit (par exemple, title , price , link ) |
Objet productAttributes |
Les attributs de produit tels que title , price et link ne sont plus des champs de premier niveau. Ils sont désormais regroupés dans l'objet productAttributes des ressources Product et ProductInput . Cela permet d'obtenir une structure de ressources plus propre et plus organisée. |
targetCountry |
feedLabel |
Le nom de la ressource utilise désormais feedLabel au lieu de targetCountry pour s'aligner sur les fonctionnalités de Merchant Center. |
feedId |
dataSource (paramètre de requête) |
Un nom dataSource est désormais un paramètre de requête obligatoire pour toutes les méthodes d'écriture productInputs (insert , update , delete ). |
channel |
Non disponible. Utilisez legacy_local pour les produits disponibles uniquement en magasin. |
Le champ channel n'est plus présent dans l'API Merchant. Les produits avec le canal LOCAL dans Content API for Shopping doivent plutôt définir le champ legacy_local sur "true". |
Non disponible | versionNumber |
Un nouveau champ facultatif sur ProductInput qui peut être utilisé pour éviter les insertions dans le désordre dans les sources de données principales. |
Champs de type string avec un ensemble de valeurs défini |
Champs de type enum avec un ensemble de valeurs défini |
Les champs des attributs de produit avec un ensemble de valeurs défini (par exemple, excluded_destinations , availability ) sont désormais de type enum . |