Migrer des sources de données

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 feedLabel ni de contentLanguage. Ce type de source de données accepte les produits dans n'importe quelle combinaison de feedLabel et de contentLanguage, 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 feedLabel et de contentLanguage. 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 :

    1. 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.list ou dans l'interface utilisateur de Merchant Center. Les sources de données principales de Content API ne sont compatibles qu'avec les feedLabel et contentLanguage spé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 paires feedLabel et contentLanguage spécifiques.

    2. 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 feedLabel et contentLanguage (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 des feedLabel et contentLanguage spécifiques. Vous devrez créer une source de données distincte pour chaque paire feedLabel et contentLanguage que vous utilisez.

    3. 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 feedLabel et contentLanguage. 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 fileUploads distincte et en lecture seule. Pour récupérer l'état d'une importation de fichier, utilisez la méthode fileUploads.get avec l'alias latest.

  • Nouveaux types de sources de données : la ressource DataSource est 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.updateAutofeedSettings dans 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.