Ce guide explique comment migrer votre intégration des datafeeds et
datafeedstatuses services de Content API for Shopping vers la Data sources
sous-API de Merchant API. La nouvelle sous-API Data sources offre un contrôle plus direct sur vos pipelines de données et simplifie la gestion des sources de données.
Pour en savoir plus sur les nouvelles fonctionnalités, consultez le guide Gérer vos sources de données.
Différences majeures
Par rapport à Content API for Shopping, Merchant API offre plusieurs avantages.
Création explicite de sources de données : l'API ne crée plus automatiquement de source de données "Content API" lors de la première insertion de produit. Dans Merchant API, vous créez explicitement des sources de données avant de pouvoir y importer des produits. Vous bénéficiez ainsi d'un meilleur contrôle sur l'organisation et la gestion de vos pipelines de données produit dès le début.
Compatibilité avec plusieurs sources de données API : dans Content API for Shopping, vous étiez limité à une seule source de données "Content API" créée automatiquement. Avec Merchant API, vous pouvez créer et gérer plusieurs sources de données de type d'entrée
API.Sources de données sans libellé ni langue : Merchant API vous permet de créer une source de données principale sans spécifier de
feedLabelni decontentLanguage. Ce type de source de données accepte les produits dans n'importe quelle combinaison defeedLabelet decontentLanguage, ce qui simplifie les importations de produits pour les intégrations qui ne nécessitent pas de sources de données distinctes pour différentes régions.Cibles de données simplifiées : chaque source de données correspond désormais à une seule cible, définie par une combinaison unique de
feedLabelet decontentLanguage. Les flux avec plusieurs cibles de données sont obsolètes dans Merchant API.Choisissez votre stratégie de source de données : vous disposez de trois options pour gérer vos sources de données :
Conserver les sources de données Content API existantes : vous pouvez continuer à utiliser les sources de données créées avec Content API for Shopping, car elles sont compatibles avec Merchant API. Vous pouvez trouver leurs noms de ressources à l'aide de
dataSources.listou dans l'interface utilisateur de Merchant Center. Les sources de données principales de Content API ne sont compatibles qu'avec lesfeedLabeletcontentLanguagespécifiques avec lesquels elles ont été créées. Les sources de données Content API s'affichent dans Merchant Center avec la source "Content API", même si les produits sont insérés à l'aide de Merchant API. Vous pouvez les combiner avec de nouvelles sources de données Merchant API qui ciblent également des pairesfeedLabeletcontentLanguagespécifiques.Créer des sources de données Merchant API pour chaque libellé et chaque langue : utilisez cette option si vous devez prendre en charge de nouvelles combinaisons
feedLabeletcontentLanguage(et préférez les séparer strictement) ou si vous utilisez la configuration des règles de source de données qui repose sur desfeedLabeletcontentLanguagespécifiques. Vous devrez créer une source de données distincte pour chaque pairefeedLabeletcontentLanguageque vous utilisez.Créer une seule source de données Merchant API pour n'importe quel libellé et n'importe quelle langue : utilisez cette option pour simplifier votre gestion en disposant d'une seule source de données qui accepte les produits avec n'importe quel
feedLabeletcontentLanguage. Si vous choisissez cette option, nous vous recommandons de migrer tous vos produits vers cette nouvelle source de données et de supprimer vos anciennes sources de données Content API une fois les produits migrés.
État dédié de l'importation de fichiers : Merchant API représente l'état des sources de données basées sur des fichiers à l'aide d'une ressource
fileUploadsdistincte et en lecture seule. Pour récupérer l'état d'une importation de fichier, utilisez la méthodefileUploads.getavec l'aliaslatest.Nouveaux types de sources de données : la ressource
DataSourceest compatible avec davantage de secteurs, y compris les promotions, l'inventaire local et l'inventaire régional, ce qui vous permet de gérer tous vos pipelines de données de manière unifiée.Sources de données automatiques : avec Merchant API, vous pouvez désormais activer ou désactiver la fonctionnalité Sources de données automatiques pour votre compte à l'aide de la méthode
autofeedSettings.updateAutofeedSettingsdans la sous-API Accounts. Pour en savoir plus, consultez Configurer les paramètres des flux automatiques.
Requêtes
Le tableau suivant compare les formats d'URL de requête entre Content API for Shopping et Merchant API.
| Description de la requête | Content API for Shopping | Merchant API |
|---|---|---|
| Créer une source de données | POST https://shoppingcontent.googleapis.com/content/v2.1/{MERCHANT_ID}/datafeeds |
POST https://merchantapi.googleapis.com/v1/accounts/{ACCOUNT_ID}/dataSources |
| Obtenir une source de données | GET https://shoppingcontent.googleapis.com/content/v2.1/{MERCHANT_ID}/datafeeds/{DATAFEED_ID} |
GET https://merchantapi.googleapis.com/v1/accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID} |
| Répertorier les sources de données | GET https://shoppingcontent.googleapis.com/content/v2.1/{MERCHANT_ID}/datafeeds |
GET https://merchantapi.googleapis.com/v1/accounts/{ACCOUNT_ID}/dataSources |
| Mettre à jour une source de données | PUT https://shoppingcontent.googleapis.com/content/v2.1/{MERCHANT_ID}/datafeeds/{DATAFEED_ID} |
PATCH https://merchantapi.googleapis.com/v1/accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID} |
| Supprimer une source de données | DELETE https://shoppingcontent.googleapis.com/content/v2.1/{MERCHANT_ID}/datafeeds/{DATAFEED_ID} |
DELETE https://merchantapi.googleapis.com/v1/accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID} |
| Extraire une source de données | POST https://shoppingcontent.googleapis.com/content/v2.1/{MERCHANT_ID}/datafeeds/{DATAFEED_ID}/fetchNow |
POST https://merchantapi.googleapis.com/v1/accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID}:fetch |
| Obtenir l'état d'une source de données | GET https://shoppingcontent.googleapis.com/content/v2.1/{MERCHANT_ID}/datafeedstatuses/{DATAFEED_ID} |
GET https://merchantapi.googleapis.com/v1/accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID}/fileUploads/latest |
| Répertorier les états des sources de données | GET https://shoppingcontent.googleapis.com/content/v2.1/{MERCHANT_ID}/datafeedstatuses |
Non disponible. Utilisez dataSources.list et fileUploads.get pour chaque source de données basée sur un fichier. |
Identifiants
Merchant API utilise un nom de ressource basé sur une chaîne comme identifiant.
| Description de l'identifiant | Content API for Shopping | Merchant API |
|---|---|---|
| Identifiant de la source de données | datafeedId (numérique) |
name (chaîne, format : accounts/{account}/dataSources/{datasource}) |
Méthodes
Ce tableau compare les méthodes des services datafeeds
et datafeedstatuses de Content API for Shopping à leurs équivalents dans Merchant API.
| Méthode Content API for Shopping | Méthode Merchant API | Disponibilité et remarques |
|---|---|---|
datafeeds.custombatch |
Non disponible | Utilisez plutôt des appels d'API individuels. |
datafeeds.delete |
dataSources.delete |
Disponible. |
datafeeds.fetchnow |
dataSources.fetch |
Disponible. Cette méthode ne fonctionne désormais que pour les sources de données avec une entrée de fichier. |
datafeeds.get |
dataSources.get |
Disponible. |
datafeeds.insert |
dataSources.create |
Disponible. |
datafeeds.list |
dataSources.list |
Disponible. |
datafeeds.update |
dataSources.update |
Disponible. Utilise la sémantique PATCH au lieu de PUT. |
datafeedstatuses.custombatch |
Non disponible | Utilisez plutôt des appels d'API individuels. Pour en savoir plus, consultez Envoyer plusieurs requêtes à la fois. |
datafeedstatuses.get |
fileUploads.get |
Disponible pour les sources de données basées sur des fichiers. Utilisez l'alias latest pour obtenir l'état de l'importation la plus récente. Pour les autres types de sources de données, les informations sur l'état font partie de la ressource DataSource. |
datafeedstatuses.list |
Non disponible | Pour obtenir l'état de plusieurs sources de données, commencez par répertorier toutes les sources de données avec dataSources.list. Appelez ensuite fileUploads.get avec l'alias latest pour chaque source de données basée sur un fichier. |
Modifications détaillées des champs
Ce tableau présente les modifications au niveau des champs entre les Datafeed et
DatafeedStatus ressources dans Content API for Shopping, et les DataSource
et FileUpload ressources dans Merchant API.
| Content API for Shopping | Merchant API | Description |
|---|---|---|
Datafeed |
DataSource |
Ressource principale pour la configuration de la source de données. |
id |
name |
Identifiant de la ressource. Passé d'un ID numérique à un nom de ressource de chaîne. |
name |
displayName |
Nom de la source de données visible par l'utilisateur. |
attributeLanguage |
primaryProductDataSource.contentLanguage |
Code de langue ISO 639-1 à deux lettres des éléments de la source de données. |
fileName |
fileInput.fileName |
Nom du fichier importé. Ce champ est désormais imbriqué sous fileInput. |
fetchSchedule |
fileInput.fetchSettings |
Planning d'extraction d'une source de données basée sur un fichier. Ce champ est désormais imbriqué sous fileInput. |
fetchSchedule.paused |
fileInput.fetchSettings.enabled |
La logique est inversée. paused: true équivaut à enabled: false. |
format |
Non disponible | Les champs fileEncoding, columnDelimiter et quotingMode sont supprimés. Ils sont désormais détectés automatiquement. |
targets |
primaryProductDataSource.feedLabel, primaryProductDataSource.contentLanguage, primaryProductDataSource.countries |
Le champ targets répété est supprimé. Chaque source de données possède désormais une seule cible définie par ces champs, ce qui reflète l'abandon des flux avec plusieurs cibles de données. |
DatafeedStatus |
FileUpload |
L'état d'une importation de fichier est désormais une ressource distincte et en lecture seule. |
datafeedId |
name |
Identifiant de l'importation de fichier, faisant référence à sa source de données parente. |
processingStatus |
processingState |
État de traitement de l'importation. Les valeurs de chaîne (success, failure, in progress) sont remplacées par une énumération (SUCCEEDED, FAILED, IN_PROGRESS). |
errors, warnings |
issues |
Les erreurs et les avertissements sont fusionnés dans une seule liste issues. Chaque problème comporte un champ severity (ERROR ou WARNING). |
lastUploadDate |
uploadTime |
Code temporel de la dernière importation. Le format est passé d'une chaîne à un objet Timestamp. |
country, language, feedLabel |
Non applicable | Ces champs ne figurent plus dans la ressource d'état. Ils font partie de la ressource DataSource. |
targets[].included_destinations, targets[].excluded_destinations |
primaryProductDataSource.destinations |
Les deux listes distinctes pour les destinations incluses et exclues sont remplacées par une seule liste destinations. Chaque élément de la nouvelle liste est un objet qui spécifie la destination et son état (ENABLED ou DISABLED), ce qui offre une configuration plus explicite. |