Pour utiliser l'API Merchant, vous devez associer votre projet Google Cloud à votre compte Merchant Center principal en vous inscrivant en tant que développeur. Au cours du cycle de vie de votre intégration, vous devrez peut-être modifier l'ID du projet Google Cloud associé à votre compte Merchant Center, gérer plusieurs projets dans différents environnements ou transférer des projets lors de la migration depuis Content API for Shopping.
Ce guide vous explique comment :
- Modifier ou alterner l'ID de projet Google Cloud pour une intégration existante de l'API Merchant sans temps d'arrêt.
- Désenregistrer un projet Google Cloud d'un compte Merchant Center et l'enregistrer dans un autre compte Merchant Center.
- Choisissez et exécutez la stratégie de transition de projet Google Cloud appropriée si vous migrez de Content API for Shopping vers Merchant API.
Prérequis
Avant de gérer ou de transférer des projets Google Cloud, vérifiez que vous remplissez les conditions préalables d'inscription des développeurs. Pour en savoir plus, consultez la section "Prérequis" du guide S'inscrire en tant que développeur.
Règles et limites principales
Lorsque vous planifiez des modifications de vos projets Google Cloud, tenez compte des règles suivantes :
- Enregistrement de projets un à plusieurs : un même compte Merchant Center principal peut être associé à plusieurs projets Google Cloud simultanément. Toutefois, chaque projet Google Cloud ne peut être enregistré que sur un seul compte Merchant Center principal à la fois. Si vous essayez d'enregistrer un projet déjà associé à un autre compte Merchant Center, une erreur
ALREADY_EXISTS(409 Conflict) est renvoyée avec le motifDUPLICATE_PROJECT_REGISTRATION. - Confidentialité de la propriété du projet : pour des raisons de sécurité et de confidentialité, l'assistance Google Shopping et Merchant API ne peut pas divulguer les adresses e-mail du propriétaire ou de l'administrateur d'un projet Google Cloud. Si vous perdez l'accès à un projet, contactez l'assistance Google Cloud.
- Les extensions d'arrêt de Content API for Shopping sont spécifiques à chaque projet : si vous avez reçu une approbation d'accès étendu pour Content API for Shopping, cette extension ne s'applique qu'à l'ID de projet Google Cloud spécifique indiqué dans votre demande. Les extensions ne sont pas transférées automatiquement vers les nouveaux projets Google Cloud.
Modifier l'ID de projet Google Cloud d'un compte Merchant API
Si vous utilisez déjà l'API Merchant et que vous devez transférer votre intégration vers un nouveau projet Google Cloud (par exemple, en raison d'une restructuration organisationnelle, de règles de rotation des identifiants ou de la perte de l'accès administrateur à un ancien projet), vous pouvez effectuer la transition sans temps d'arrêt. Comme un compte Merchant Center accepte plusieurs projets Google Cloud enregistrés simultanément, vous pouvez enregistrer le nouveau projet avant de supprimer l'ancien.
Étape 1 : Créez et configurez votre nouveau projet Google Cloud
- Créez un projet dans la console Google Cloud. Pour obtenir des instructions détaillées, consultez Créer un projet Google Cloud.
- Activez l'API Merchant (
merchantapi.googleapis.com) dans le nouveau projet. Consultez la section Activer l'API Merchant de la page Créer un projet Google Cloud. - Créez des identifiants d'authentification (un compte de service ou un ID client OAuth 2.0) dans le nouveau projet Google Cloud.
- Ajoutez l'adresse e-mail d'authentification (par exemple, l'adresse e-mail du nouveau compte de service) en tant qu'utilisateur avec le rôle
ADMINdans votre compte Merchant Center principal.
Étape 2 : Enregistrez le nouveau projet Google Cloud
Authentifiez-vous à l'aide des identifiants de votre nouveau projet Google Cloud et appelez la méthode accounts.developerRegistration.registerGcp pour associer le nouveau projet à votre compte Merchant Center principal. Pour obtenir des instructions détaillées, consultez la section Effectuer l'appel d'enregistrement de la page S'inscrire comme développeur.
Étape 3 : Vérifiez vos projets Google Cloud enregistrés
Pour vérifier que vos projets Google Cloud existants et nouveaux sont associés à votre compte Merchant Center, appelez la méthode accounts.developerRegistration.getDeveloperRegistration :
GET https://merchantapi.googleapis.com/accounts/v1/accounts/ACCOUNT_ID/developerRegistration
Authorization: Bearer ACCESS_TOKEN
Remplacez les éléments suivants :
ACCOUNT_ID: votre ID Merchant CenterACCESS_TOKEN: jeton d'autorisation permettant d'effectuer l'appel d'API.
La réponse renvoie la ressource DeveloperRegistration avec les numéros de projet Google Cloud de tous les projets associés dans le champ gcpIds :
{
"name": "accounts/ACCOUNT_ID/developerRegistration",
"gcpIds": [
"123456789012",
"987654321098"
]
}
Vous pouvez également vérifier à quel compte Merchant Center le projet Google Cloud appelant est enregistré en appelant la méthode accounts.developerRegistration.getAccountForGcpRegistration :
GET https://merchantapi.googleapis.com/accounts/v1/accounts:getAccountForGcpRegistration
Authorization: Bearer ACCESS_TOKEN
Remplacez les éléments suivants :
ACCESS_TOKEN: jeton d'autorisation généré à l'aide des identifiants du projet Google Cloud que vous souhaitez vérifier
Étape 4 : Changez de trafic et annulez l'enregistrement de l'ancien projet Google Cloud
- Mettez à jour la configuration de votre application pour utiliser les identifiants de votre nouveau projet Google Cloud. Comme les deux projets sont enregistrés, vos charges de travail sont transférées sans interruption.
- Une fois que tout le trafic utilise le nouveau projet, vous pouvez éventuellement supprimer l'ancien lien du projet en vous authentifiant avec les identifiants de l'ancien projet Google Cloud et en appelant la méthode
accounts.developerRegistration.unregisterGcp:
POST https://merchantapi.googleapis.com/accounts/v1/accounts/ACCOUNT_ID/developerRegistration:unregisterGcp
Content-Type: application/json
Authorization: Bearer OLD_PROJECT_ACCESS_TOKEN
Remplacez les éléments suivants :
ACCOUNT_ID: votre ID Merchant CenterOLD_PROJECT_ACCESS_TOKEN: jeton d'autorisation de l'ancien projet Google Cloud pour effectuer l'appel d'API.
Java
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.accounts.v1.DeveloperRegistrationName;
import com.google.shopping.merchant.accounts.v1.DeveloperRegistrationServiceClient;
import com.google.shopping.merchant.accounts.v1.DeveloperRegistrationServiceSettings;
import com.google.shopping.merchant.accounts.v1.UnregisterGcpRequest;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;
/**
* This class demonstrates how to unregister the GCP project currently used to call the Merchant API
* for a specific account.
*/
public class UnregisterGcpSample {
public static void unregisterGcp(Config config) throws Exception {
// Obtains OAuth token based on the user's configuration.
GoogleCredentials credential = new Authenticator().authenticate();
// Creates service settings using the credentials retrieved above.
DeveloperRegistrationServiceSettings developerRegistrationServiceSettings =
DeveloperRegistrationServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
// Creates DeveloperRegistration name to identify the DeveloperRegistration.
// The name has the format: accounts/{account}/developerRegistration
String name =
DeveloperRegistrationName.newBuilder()
.setAccount(config.getAccountId().toString())
.build()
.toString();
// Calls the API and propagates any network failures/errors.
try (DeveloperRegistrationServiceClient developerRegistrationServiceClient =
DeveloperRegistrationServiceClient.create(developerRegistrationServiceSettings)) {
// Creates a request to unregister the GCP project.
UnregisterGcpRequest request = UnregisterGcpRequest.newBuilder().setName(name).build();
System.out.println("Sending UnregisterGcp request for: " + name);
developerRegistrationServiceClient.unregisterGcp(request);
System.out.println("Unregister GCP successful.");
}
}
public static void main(String[] args) throws Exception {
Config config = Config.load();
unregisterGcp(config);
}
}
cURL
curl -X POST \
"https://merchantapi.googleapis.com/accounts/v1/accounts/ACCOUNT_ID/developerRegistration:unregisterGcp" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer OLD_PROJECT_ACCESS_TOKEN"
Réattribuer un projet Google Cloud enregistré à un autre compte Merchant Center
Étant donné qu'un projet Google Cloud ne peut être enregistré que sur un seul compte Merchant Center principal à la fois, suivez ces étapes pour réattribuer un projet existant d'un compte Merchant Center (OLD_ACCOUNT_ID) à un autre (NEW_ACCOUNT_ID). Pour savoir comment choisir le compte Merchant Center sur lequel enregistrer votre projet, consultez Remarques importantes :
- Authentifiez-vous à l'aide des identifiants du projet Google Cloud qui ont accès à
OLD_ACCOUNT_IDet appelezunregisterGcpsuraccounts/OLD_ACCOUNT_ID/developerRegistration. - Vérifiez que l'identité d'authentification dispose du rôle
ADMINsurNEW_ACCOUNT_IDet queNEW_ACCOUNT_IDdispose d'un site Web validé. - Appelez
registerGcpsuraccounts/NEW_ACCOUNT_ID/developerRegistrationà l'aide des identifiants du même projet Google Cloud. SiNEW_ACCOUNT_IDne dispose pas encore d'un utilisateur doté du rôleAPI_DEVELOPER, transmettez une adresse e-mail d'utilisateur valide dans le champ de requêtedeveloperEmail. Les adresses e-mail de compte de service se terminant par.gserviceaccount.comne peuvent pas être utilisées commedeveloperEmail.
Migrer des projets Google Cloud depuis Content API for Shopping
Lors de la migration de Content API for Shopping vers Merchant API, vous pouvez rencontrer des limites d'accès sur votre ancien projet Google Cloud. Par exemple, si vos clés API d'origine ont été configurées directement via l'ancien workflow d'authentification Merchant Center ou si le propriétaire du projet d'origine a quitté votre organisation.
Selon que vous souhaitez conserver votre projet existant ou utiliser un nouveau projet pour Merchant API tout en conservant Content API for Shopping sur votre ancien projet, choisissez l'une des deux options suivantes.
Choisir la stratégie de votre projet de migration
| Scénario | Accès administrateur à l'ancien projet requis ? | API à activer | L'extension Content API for Shopping est-elle requise pour un nouveau projet ? |
|---|---|---|---|
| Option 1 : Conserver votre projet existant | Oui (ou récupération via l'assistance Google Cloud) | Activez Merchant API sur le projet existant (Content API for Shopping est déjà activée). | Non (l'extension existante sur l'ancien ID du projet reste valide) |
| Option 2 : Conserver l'ancien projet pour Content API for Shopping et utiliser un nouveau projet pour Merchant API | Non | Activez la Merchant API sur le nouveau projet (gardez Content API for Shopping activée sur l'ancien projet). | Non (l'ancien projet conserve son extension, le nouveau projet n'appelle que Merchant API) |
Option 1 : Conserver votre projet Google Cloud existant
Choisissez cette option si vous souhaitez utiliser votre projet Google Cloud existant pour Content API for Shopping et Merchant API.
Avant de commencer, vérifiez ou récupérez l'accès à votre projet existant. Connectez-vous à la console Google Cloud et vérifiez que votre compte dispose de l'un des rôles suivants sur votre projet existant :
- Propriétaire (
roles/owner), - Éditeur (
roles/editor) - Administrateur de Service Usage (
roles/serviceusage.serviceUsageAdmin)
- Activer l'API Merchant : activez
merchantapi.googleapis.comdans la bibliothèque d'API Google Cloud ou avec la commandegcloud. Pour obtenir des instructions détaillées, consultez Configurer l'authentification de l'API depuis Merchant Center. - Enregistrez le projet Google Cloud auprès de Merchant Center : suivez les étapes du guide S'enregistrer en tant que développeur pour autoriser les requêtes de votre projet existant et appelez la méthode
registerGcppour associer votre projet Google Cloud existant à votre compte Merchant Center principal. Vos clés de compte de service existantes et l'extension Content API for Shopping approuvée continuent de fonctionner sans modification.
Option 2 : Utiliser l'ancien projet Google Cloud pour Content API for Shopping et un nouveau projet pour Merchant API
Choisissez cette option si votre ancienne intégration Content API for Shopping fonctionne déjà avec des identifiants valides et une extension approuvée sur votre ancien projet Google Cloud, et que vous souhaitez créer votre nouvelle intégration Merchant API dans un projet Google Cloud distinct et dédié :
- Conservez votre intégration Content API for Shopping sur l'ancien projet : laissez vos workflows et identifiants Content API for Shopping existants s'exécuter sur l'ancien projet Google Cloud. Si votre demande de prolongation pour l'ancien ID du projet a été approuvée, votre intégration actuelle de Content API for Shopping continuera de fonctionner jusqu'à la date limite prolongée.
- Créer un projet Google Cloud exclusivement pour l'API Merchant : créez un projet Google Cloud, activez
merchantapi.googleapis.comet créez des identifiants (un compte de service ou un ID client OAuth 2.0) pour vos nouvelles charges de travail de l'API Merchant. - Enregistrez le nouveau projet : suivez les étapes de la section S'inscrire comme développeur pour autoriser les requêtes de votre nouveau projet et appelez la méthode
registerGcpavec une adresse e-mail de contact de développeur valide. Les adresses e-mail des comptes de service (se terminant par.gserviceaccount.com) ne peuvent pas être utilisées commedeveloperEmail. - Migrez les charges de travail de manière incrémentielle : transférez progressivement les appels d'API de votre ancien projet Content API for Shopping vers votre nouveau projet Merchant API, avant la date d'abandon prévue de Content API for Shopping (ou avant l'expiration de l'extension approuvée), puis supprimez l'ancien projet une fois la migration terminée.
Cas particulier : vous avez perdu l'accès à votre ancien projet Google Cloud avant de terminer la migration
Comme Content API for Shopping est obsolète, elle ne figure plus dans la bibliothèque d'API Google Cloud et ne peut pas être activée sur les projets Google Cloud nouvellement créés. Par conséquent, vous ne pouvez pas déplacer vous-même des charges de travail Content API for Shopping existantes vers un nouveau projet Google Cloud.
Si vous ne pouvez plus effectuer d'appels Content API for Shopping depuis votre ancien projet (par exemple, en raison d'identifiants révoqués ou d'un accès au projet irrécupérable) :
- Contactez l'assistance Google Cloud pour récupérer l'accès à votre projet Google Cloud existant (option 1).
- Suivez l'option 2 pour créer et enregistrer un projet Google Cloud, puis migrer les workflows concernés directement vers l'API Merchant. Si vous rencontrez un problème critique qui bloque la migration, contactez l'assistance Merchant API.
Étapes suivantes
- Pour en savoir plus sur les conditions d'inscription des développeurs, consultez S'inscrire en tant que développeur et les questions fréquentes sur l'inscription des développeurs.
- Découvrez le comportement des anciens identifiants dans Configurer l'authentification de l'API depuis Merchant Center.
- Planifiez le déploiement de votre sous-API avec Lancement de la migration.
- Pour en savoir plus sur l'accès prolongé à Content API for Shopping, consultez Demander une prolongation de la migration.