Ce guide explique comment migrer votre intégration des services datafeeds et datafeedstatuses de Content API for Shopping vers la sous-API Sources de données dans Merchant API. La nouvelle sous-API Sources de données 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.
Principales différences
Par rapport à Content API for Shopping, Merchant API présente 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 l'API Merchant, vous devez créer explicitement des sources de données avant de pouvoir y importer des produits. Vous pouvez ainsi mieux contrôler l'organisation et la gestion de vos pipelines de données produit dès le départ. 
- Compatibilité avec plusieurs sources de données d'API. Dans Content API for Shopping, vous étiez limité à une seule source de données "Content API" créée automatiquement. L'API Merchant vous permet de créer et de gérer plusieurs sources de données de type d'entrée - API.
- Sources de données sans libellé ni langue. L'API Merchant vous permet de créer une source de données principale sans spécifier de - feedLabelni de- contentLanguage. Ce type de source de données accepte les produits dans n'importe quelle combinaison de- feedLabelet- contentLanguage, ce qui simplifie l'importation 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 de- contentLanguage. Les flux avec plusieurs cibles de données sont obsolètes dans l'API Merchant.
- État de l'importation de fichier dédié : L'API Merchant Center représente l'état des sources de données basées sur des fichiers à l'aide d'une ressource - fileUploadsdistincte en lecture seule. Pour récupérer l'état d'un import de fichier, utilisez la méthode- fileUploads.getavec l'alias- latest.
- Nouveaux types de sources de données : La ressource - DataSourceest compatible avec davantage de secteurs, y compris les promotions, l'inventaire en magasin et l'inventaire régional. Elle offre ainsi un moyen unifié de gérer tous vos pipelines de données.
- Sources de données automatiques : Avec l'API Merchant, vous pouvez désormais activer ou désactiver la fonctionnalité Sources de données automatisées pour votre compte à l'aide de la méthode - autofeedSettings.updateAutofeedSettingsdans la sous-API Accounts. Pour en savoir plus, consultez Configurer les paramètres de l'alimentation automatique.
Requêtes
Le tableau suivant compare les formats d'URL de requête entre Content API for Shopping et l'API Merchant.
| Description de la requête | Content API for Shopping | API Merchant | 
|---|---|---|
| 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} | 
| Lister 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 | 
| Lister les états des sources de données | GET https://shoppingcontent.googleapis.com/content/v2.1/{MERCHANT_ID}/datafeedstatuses | Non disponible. Utilisez dataSources.listetfileUploads.getpour chaque source de données basée sur des fichiers. | 
Identifiants
L'API Merchant utilise un nom de ressource basé sur une chaîne de caractères comme identifiant.
| Description de l'identifiant | Content API for Shopping | API Merchant | 
|---|---|---|
| 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 Content API for Shopping datafeeds et datafeedstatuses à leurs équivalents dans l'API Merchant.
| Méthode Content API for Shopping | Méthode de l'API Merchant | 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 PATCHau lieu dePUT. | 
| datafeedstatuses.custombatch | Non disponible | Utilisez plutôt des appels d'API individuels. Pour en savoir plus, consultez Envoyer plusieurs demandes à la fois. | 
| datafeedstatuses.get | fileUploads.get | Disponible pour les sources de données basées sur des fichiers. Utilisez l'alias latestpour obtenir l'état de la dernière mise en ligne. Pour les autres types de sources de données, les informations sur l'état font partie de la ressourceDataSource. | 
| datafeedstatuses.list | Non disponible | Pour obtenir l'état de plusieurs sources de données, commencez par lister toutes les sources de données avec dataSources.list. Appelez ensuitefileUploads.getavec l'aliaslatestpour chaque source de données basée sur des fichiers. | 
Modifications détaillées des champs
Ce tableau présente les modifications au niveau des champs entre les ressources Datafeed et DatafeedStatus dans Content API for Shopping, et les ressources DataSource et FileUpload dans l'API Merchant.
| Content API for Shopping | API Merchant | Description | 
|---|---|---|
| Datafeed | DataSource | Ressource principale pour la configuration des sources de données. | 
| id | name | Identifiant de la ressource. L'ID numérique a été remplacé par 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 de récupération d'une source de données basée sur un fichier. Il est désormais imbriqué sous fileInput. | 
| fetchSchedule.paused | fileInput.fetchSettings.enabled | La logique est inversée. paused: trueest équivalent àenabled: false. | 
| format | Non disponible | Les champs fileEncoding,columnDelimiteretquotingModesont supprimés. Elles sont désormais détectées automatiquement. | 
| targets | primaryProductDataSource.feedLabel,primaryProductDataSource.contentLanguage,primaryProductDataSource.countries | Le champ répété targetsest supprimé. Chaque source de données dispose désormais d'une seule cible définie par ces champs, ce qui reflète l'abandon des flux multicibles de données. | 
| DatafeedStatus | FileUpload | L'état d'importation d'un fichier est désormais une ressource distincte 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 champseverity(ERRORouWARNING). | 
| 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 (ENABLEDouDISABLED), ce qui permet une configuration plus explicite. |