Vous pouvez utiliser Merchant API pour créer des comptes Merchant Center, qui peuvent être
associés à un compte avancé
à l'aide de accountAggregation, accountManagement ou comparisonShopping. La
accounts.createAndConfigure
méthode vous permet de créer un compte et, si vous le souhaitez, de le configurer avec des utilisateurs et
de l'associer à d'autres comptes via des services.
Ce guide explique comment utiliser Merchant API pour créer des comptes à l'aide de services tels que accountManagement, comparisonShopping ou accountAggregation. Lorsque vous utilisez accounts.createAndConfigure, vous devez associer le nouveau compte à un fournisseur en spécifiant au moins l'un des éléments suivants dans le champ service : accountAggregation, accountManagement ou comparisonShopping.
Vous pouvez spécifier accountAggregation et comparisonShopping dans la même requête, mais accountManagement ne peut pas être combiné avec accountAggregation ni comparisonShopping.
Si vous spécifiez accountManagement, vous devez également ajouter au moins un utilisateur au
nouveau compte à l'aide du champ user ou users.
Prérequis
Avant de pouvoir créer des comptes à l'aide de Merchant API, assurez-vous de répondre aux exigences suivantes en fonction des services que vous utilisez :
- Accès administrateur : vous devez disposer d'un accès administrateur au
compte fournisseur lorsque vous associez un nouveau compte à l'aide de
accountManagement,comparisonShopping, ouaccountAggregation. - Compte avancé : si vous utilisez
accountAggregation, votre compte fournisseur doit être un compte avancé configuré pour l'agrégation de comptes. Si vous êtes un fournisseur de services et que vous devez configurer un compte avancé, contactez l'assistance pour obtenir de l'aide.
Créer un compte (à l'aide de la gestion des comptes ou du comparateur de prix)
Pour créer un compte, appelez
accounts.createAndConfigure.
Il s'agit de l'approche recommandée pour les partenaires qui aident les marchands à gérer leurs comptes, car elle leur permet de conserver le contrôle total et la propriété de leur compte tout en accordant des autorisations spécifiques aux partenaires.
Dans le corps de la requête :
- Fournissez les détails du compte que vous souhaitez créer dans le
accountchamp. - Dans le champ
accountName, n'utilisez pas de ponctuation répétée et inutile, de majuscules, de traits de soulignement, de lettres majuscules, d'emojis ou de symboles non alphanumériques comme/ou_. Évitez les suffixes d'entreprise (comme "Inc." ou "GmbH"), les textes promotionnels, les informations personnelles ou le langage inapproprié. Utilisez un nom court, clair et professionnel. Pour en savoir plus, consultez Ajouter un nom d'entreprise. - Si vous utilisez
accountManagement, spécifiez au moins un utilisateur dans leuserchamp qui aura accès au compte. - Dans le
servicechamp, spécifiez les services que vous souhaitez fournir à ce compte, par exempleaccountManagement, et définissez leprovidersur le nom de ressource de votre compte (par exemple,providers/{YOUR_ACCOUNT_ID}). Pour obtenir la liste des services disponibles tels queproductsManagementoucampaignsManagement, consultez Gérer les relations entre les comptes.
Voici un exemple de requête permettant de créer un compte nommé "merchantStore" et de l'associer au compte {YOUR_ACCOUNT_ID} pour la gestion des comptes et des produits :
POST https://merchantapi.googleapis.com/accounts/v1/accounts:createAndConfigure
{
"account": {
"accountName": "merchantStore",
"adultContent": false,
"timeZone": {
"id": "America/New_York"
},
"languageCode": "en-US"
},
"user": [
{
"userId": "test@example.com",
"user": {
"accessRights": ["ADMIN"]
}
}
],
"service": [
{
"accountManagement": {},
"provider": "providers/{YOUR_ACCOUNT_ID}"
},
{
"productsManagement": {},
"provider": "providers/{YOUR_ACCOUNT_ID}"
}
]
}
Si l'appel aboutit, le nouveau compte est créé et associé à votre compte pour les services spécifiés. Si vous spécifiez les services accountManagement, accountAggregation ou comparisonShopping lors de la création, ils sont automatiquement approuvés et l'état de l'association est ESTABLISHED. Les autres associations de services peuvent être à l'état PENDING jusqu'à ce qu'elles soient acceptées par le compte créé. Le corps de la réponse
contient la ressource
Account nouvellement créée.
Après avoir créé un compte de ce type, vous devez l'intégrer en effectuant des étapes telles que l'acceptation des conditions d'utilisation, la configuration des informations sur l'entreprise, et la validation du site Web.
Supprimer la validation par e-mail lors de la création d'un compte
Lorsque vous créez un compte avec accounts.createAndConfigure, vous pouvez éventuellement supprimer les e-mails de validation pour les nouveaux utilisateurs ajoutés à l'aide du champ user en définissant verificationMailSettings.verificationMailMode sur SUPPRESS_VERIFICATION_MAIL dans la requête de cet utilisateur. Cela est utile si vous
prévoyez de valider les utilisateurs pour le compte du marchand immédiatement après la création
à l'aide de la
users.verifySelf
méthode. Par défaut, verificationMailMode est défini sur SEND_VERIFICATION_MAIL, et des e-mails de validation sont envoyés aux nouveaux utilisateurs ajoutés lors de la création du compte.
POST https://merchantapi.googleapis.com/accounts/v1/accounts:createAndConfigure
{
"account": {
"accountName": "merchantStore",
"adultContent": false,
"timeZone": {
"id": "America/New_York"
},
"languageCode": "en-US"
},
"user": [
{
"userId": "test@example.com",
"user": {
"accessRights": ["ADMIN"]
},
"verificationMailSettings": {
"verificationMailMode": "SUPPRESS_VERIFICATION_MAIL"
}
}
],
"service": [
{
"accountManagement": {},
"provider": "providers/{YOUR_ACCOUNT_ID}"
}
]
}
Si vous définissez verificationMailMode sur SUPPRESS_VERIFICATION_MAIL, vous devez appeler users.verifySelf pour chaque utilisateur ajouté lors de la création afin de terminer la validation. Cet appel doit être authentifié en tant qu'utilisateur en cours de validation (l'utilisateur spécifié dans userId), par exemple à l'aide d'un jeton OAuth de l'utilisateur.
Spécifier un alias lors de la création d'un compte
Vous pouvez spécifier un alias pour un compte dans le contexte d'un fournisseur dans CreateAndConfigureAccountRequest à l'aide du champ setAlias. L'alias peut être utilisé pour identifier le compte dans votre système. Si vous êtes un fournisseur de services, vous pouvez utiliser l'alias pour récupérer le compte à l'aide de GET /accounts/v1/accounts/{provider}~{alias}. L'alias doit être unique pour un fournisseur donné, et vous devez spécifier un service avec le même fournisseur dans le champ service de la requête. Pour en savoir plus sur les exigences concernant les alias,
consultez Gérer les relations entre les comptes.
POST https://merchantapi.googleapis.com/accounts/v1/accounts:createAndConfigure
{
"account": {
"accountName": "merchantStore",
"adultContent": false,
"timeZone": {
"id": "America/New_York"
},
"languageCode": "en-US"
},
"service": [
{
"accountManagement": {},
"provider": "providers/{YOUR_ACCOUNT_ID}"
}
],
"setAlias": [
{
"provider": "providers/{YOUR_ACCOUNT_ID}",
"accountIdAlias": "my-merchant-alias"
}
]
}
Flux d'intégration recommandé
Si vous êtes un partenaire qui crée un compte pour le compte d'un marchand, nous vous recommandons le flux suivant :
- Créer un compte : appelez
accounts.createAndConfigureavec vos identifiants de partenaire pour créer un compte.- Définissez
servicepour inclureaccountManagementen le liant à votre ID de fournisseur. - Ajoutez le marchand en tant qu'utilisateur à l'aide du champ
useret définissezverificationMailSettings.verificationMailModesurSUPPRESS_VERIFICATION_MAIL.
- Définissez
- Valider l'utilisateur : avec les identifiants du marchand (par exemple, à l'aide d'
un jeton OAuth), appelez
users.verifySelfpour faire passer l'état de l'utilisateur dePENDINGàVERIFIED. - Définir le pays de l'entreprise : avec les identifiants du marchand, définissez le pays de l'entreprise en mettant à jour
address.regionCodeà l'aide deaccounts.updateBusinessInfo. Cette étape est obligatoire avant d'accepter les conditions d'utilisation. - Accepter les conditions d'utilisation : avec les identifiants du marchand, acceptez les conditions d'utilisation.
Ce flux permet à un marchand d'être intégré de manière transparente à votre plate-forme sans recevoir d'e-mails d'invitation de Google.
Créer un compte client (à l'aide de l'agrégation de comptes)
Les comptes client sont des comptes Merchant Center distincts associés à votre compte avancé à l'aide du service accountAggregation. Ils permettent une gestion centralisée tout en conservant des paramètres, des sites Web et des flux de données distincts.
Vous pouvez utiliser la sous-API Merchant Accounts pour créer des comptes client.
Pour créer des comptes client, vous devez d'abord configurer un compte avancé. Vous devez être administrateur de compte pour convertir votre compte Merchant Center en compte avancé, et votre compte ne doit pas présenter de problèmes en attente de problèmes.
Pour créer un compte client, appelez
accounts.createAndConfigure.
Dans le corps de la requête :
- Fournissez les détails du compte que vous souhaitez créer dans le
accountchamp. - Dans le champ
accountName, n'utilisez pas de ponctuation, de majuscules, de traits de soulignement ou de symboles non alphanumériques répétés et inutiles (comme "/" ou "_"). Évitez les suffixes d'entreprise (comme "Inc." ou "GmbH"), les textes promotionnels, les informations personnelles ou le langage inapproprié. Utilisez un nom court, clair et professionnel. Pour en savoir plus, consultez Ajouter un nom d'entreprise. - Vous pouvez éventuellement spécifier de nouveaux utilisateurs autorisés dans le
userchamp. L'accès utilisateur au compte est également hérité du compte avancé parent. - Dans le
servicechamp, spécifiezaccountAggregationet définissez leprovidersur le nom de ressource de votre compte avancé (par exemple,providers/{ADVANCED_ACCOUNT_ID}). Cela établit votre compte avancé en tant qu'agrégateur pour le nouveau compte.
Voici un exemple de requête permettant de créer un compte client nommé "merchantStore" associé au compte avancé {ADVANCED_ACCOUNT_ID} :
POST https://merchantapi.googleapis.com/accounts/v1/accounts:createAndConfigure
{
"account": {
"accountName": "merchantStore",
"adultContent": false,
"timeZone": {
"id": "America/New_York"
},
"languageCode": "en-US"
},
"service": [
{
"accountAggregation": {},
"provider": "providers/{ADVANCED_ACCOUNT_ID}"
}
]
}
Si l'appel aboutit, le nouveau compte client est créé et associé au compte avancé spécifié. Le corps de la réponse contient la ressource nouvellement créée
Account.
Les exemples suivants montrent comment utiliser les
accounts.createAndConfigure pour créer
un compte client.
Java
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.accounts.v1.Account;
import com.google.shopping.merchant.accounts.v1.AccountAggregation;
import com.google.shopping.merchant.accounts.v1.AccountsServiceClient;
import com.google.shopping.merchant.accounts.v1.AccountsServiceSettings;
import com.google.shopping.merchant.accounts.v1.CreateAndConfigureAccountRequest;
import com.google.shopping.merchant.accounts.v1.CreateAndConfigureAccountRequest.AddAccountService;
import com.google.type.TimeZone;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;
/** This class demonstrates how to create a sub-account under an advanced account. */
public class CreateSubAccountSample {
private static String getParent(String accountId) {
return String.format("accounts/%s", accountId);
}
public static void createSubAccount(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.
AccountsServiceSettings accountsServiceSettings =
AccountsServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
// Creates parent/provider to identify the advanced account into which to insert the subaccount.
String parent = getParent(config.getAccountId().toString());
// Calls the API and catches and prints any network failures/errors.
try (AccountsServiceClient accountsServiceClient =
AccountsServiceClient.create(accountsServiceSettings)) {
CreateAndConfigureAccountRequest request =
CreateAndConfigureAccountRequest.newBuilder()
.setAccount(
Account.newBuilder()
.setAccountName("Demo Business")
.setAdultContent(false)
.setTimeZone(TimeZone.newBuilder().setId("America/New_York").build())
.setLanguageCode("en-US")
.build())
.addService(
AddAccountService.newBuilder()
.setProvider(parent)
.setAccountAggregation(AccountAggregation.getDefaultInstance())
.build())
.build();
System.out.println("Sending Create SubAccount request");
Account response = accountsServiceClient.createAndConfigureAccount(request);
System.out.println("Inserted Account Name below");
// Format: `accounts/{account}
System.out.println(response.getName());
} catch (Exception e) {
System.out.println(e);
}
}
public static void main(String[] args) throws Exception {
Config config = Config.load();
createSubAccount(config);
}
}
PHP
use Google\ApiCore\ApiException;
use Google\Shopping\Merchant\Accounts\V1\Account;
use Google\Shopping\Merchant\Accounts\V1\AccountAggregation;
use Google\Shopping\Merchant\Accounts\V1\Client\AccountsServiceClient;
use Google\Shopping\Merchant\Accounts\V1\CreateAndConfigureAccountRequest;
use Google\Shopping\Merchant\Accounts\V1\CreateAndConfigureAccountRequest\AddAccountService;
use Google\Type\TimeZone;
/**
* This class demonstrates how to create a sub-account under an MCA account.
*/
class CreateSubAccount
{
private static function getParent(string $accountId): string
{
return sprintf("accounts/%s", $accountId);
}
public static function createSubAccount(array $config): void
{
// Gets the OAuth credentials to make the request.
$credentials = Authentication::useServiceAccountOrTokenFile();
// Creates options config containing credentials for the client to use.
$options = ['credentials' => $credentials];
// Creates a client.
$accountsServiceClient = new AccountsServiceClient($options);
// Creates parent/provider to identify the MCA account into which to insert the subaccount.
$parent = self::getParent($config['accountId']);
// Calls the API and catches and prints any network failures/errors.
try {
$request = new CreateAndConfigureAccountRequest([
'account' => (new Account([
'account_name' => 'Demo Business',
'adult_content' => false,
'time_zone' => (new TimeZone(['id' => 'America/New_York'])),
'language_code' => 'en-US',
])),
'service' => [
(new AddAccountService([
'provider' => $parent,
'account_aggregation' => new AccountAggregation,
])),
],
]);
print "Sending Create SubAccount request\n";
$response = $accountsServiceClient->createAndConfigureAccount($request);
print "Inserted Account Name below\n";
// Format: `accounts/{account}
print $response->getName() . PHP_EOL;
} catch (ApiException $e) {
print $e->getMessage();
}
}
public function callSample(): void
{
$config = Config::generateConfig();
self::createSubAccount($config);
}
}
$sample = new CreateSubAccount();
$sample->callSample();
Python
from examples.authentication import configuration
from examples.authentication import generate_user_credentials
from google.shopping.merchant_accounts_v1 import Account
from google.shopping.merchant_accounts_v1 import AccountAggregation
from google.shopping.merchant_accounts_v1 import AccountsServiceClient
from google.shopping.merchant_accounts_v1 import CreateAndConfigureAccountRequest
_ACCOUNT = configuration.Configuration().read_merchant_info()
def get_parent(account_id):
return f"accounts/{account_id}"
def create_sub_account():
"""Creates a sub-account under an advanced account."""
# Get OAuth credentials.
credentials = generate_user_credentials.main()
# Create a client.
client = AccountsServiceClient(credentials=credentials)
# Get the parent advanced account ID.
parent = get_parent(_ACCOUNT)
# Create the request.
request = CreateAndConfigureAccountRequest(
account=Account(
account_name="Demo Business",
adult_content=False,
time_zone={"id": "America/New_York"},
language_code="en-US",
),
service=[
CreateAndConfigureAccountRequest.AddAccountService(
provider=parent,
account_aggregation=AccountAggregation(),
)
],
)
# Make the request and print the response.
try:
print("Sending Create SubAccount request")
response = client.create_and_configure_account(request=request)
print("Inserted Account Name below")
print(response.name)
except RuntimeError as e:
print(e)
if __name__ == "__main__":
create_sub_account()
cURL
curl -X POST \
"https://merchantapi.googleapis.com/accounts/v1/accounts:createAndConfigure" \
-H "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"account": {
"accountName": "Demo Business",
"adultContent": false,
"timeZone": {
"id": "America/New_York"
},
"languageCode": "en-US"
},
"service": [
{
"accountAggregation": {},
"provider": "providers/{ADVANCED_ACCOUNT_ID}"
}
]
}'
Récupérer des comptes client
Pour lister tous les comptes client d'un compte avancé donné, utilisez la
accounts.listSubaccounts
méthode. Fournissez l'ID de votre compte avancé dans le champ provider de l'URL de la requête.
Voici un exemple de requête :
GET https://merchantapi.googleapis.com/accounts/v1/accounts/{ADVANCED_ACCOUNT_ID}:listSubaccounts
Voici un exemple de réponse à un appel réussi :
{
"accounts": [
{
"name": "accounts/<var class=\"readonly\">{SUB_ACCOUNT_ID_1}</var>",
"accountId": "<var class=\"readonly\">{SUB_ACCOUNT_ID_1}</var>",
"accountName": "<var class=\"readonly\">{SUB_ACCOUNT_NAME_1}</var>",
"timeZone": {
"id": "America/Los_Angeles"
},
"languageCode": "en-US"
},
{
"name": "accounts/<var class=\"readonly\">{SUB_ACCOUNT_ID_2}</var>",
"accountId": "<var class=\"readonly\">{SUB_ACCOUNT_ID_2}</var>",
"accountName": "<var class=\"readonly\">{SUB_ACCOUNT_NAME_2}</var>",
"timeZone": {
"id": "America/Los_Angeles"
},
"languageCode": "en-US"
}
]
}
Les exemples suivants montrent comment lister tous les comptes client de votre compte avancé.
Java
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.accounts.v1.Account;
import com.google.shopping.merchant.accounts.v1.AccountsServiceClient;
import com.google.shopping.merchant.accounts.v1.AccountsServiceClient.ListSubAccountsPagedResponse;
import com.google.shopping.merchant.accounts.v1.AccountsServiceSettings;
import com.google.shopping.merchant.accounts.v1.ListSubAccountsRequest;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;
/** This class demonstrates how to list all the subaccounts of an advanced account. */
public class ListSubAccountsSample {
private static String getParent(String accountId) {
return String.format("accounts/%s", accountId);
}
public static void listSubAccounts(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.
AccountsServiceSettings accountsServiceSettings =
AccountsServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
// Creates parent/provider to identify the advanced account from which to list all sub-accounts.
String parent = getParent(config.getAccountId().toString());
// Calls the API and catches and prints any network failures/errors.
try (AccountsServiceClient accountsServiceClient =
AccountsServiceClient.create(accountsServiceSettings)) {
// The parent has the format: accounts/{account}
ListSubAccountsRequest request =
ListSubAccountsRequest.newBuilder().setProvider(parent).build();
System.out.println("Sending list subaccounts request:");
ListSubAccountsPagedResponse response = accountsServiceClient.listSubAccounts(request);
int count = 0;
// Iterates over all rows in all pages and prints the datasource in each row.
// Automatically uses the `nextPageToken` if returned to fetch all pages of data.
for (Account account : response.iterateAll()) {
System.out.println(account);
count++;
}
System.out.print("The following count of accounts were returned: ");
System.out.println(count);
} catch (Exception e) {
System.out.println("An error has occured: ");
System.out.println(e);
}
}
public static void main(String[] args) throws Exception {
Config config = Config.load();
listSubAccounts(config);
}
}
PHP
use Google\ApiCore\ApiException;
use Google\Shopping\Merchant\Accounts\V1\Client\AccountsServiceClient;
use Google\Shopping\Merchant\Accounts\V1\ListSubAccountsRequest;
/**
* This class demonstrates how to list all the subaccounts of an advanced account.
*/
class ListSubAccounts
{
private static function getParent(string $accountId): string
{
return sprintf("accounts/%s", $accountId);
}
public static function listSubAccounts(array $config): void
{
// Gets the OAuth credentials to make the request.
$credentials = Authentication::useServiceAccountOrTokenFile();
// Creates options config containing credentials for the client to use.
$options = ['credentials' => $credentials];
// Creates a client.
$accountsServiceClient = new AccountsServiceClient($options);
// Creates parent/provider to identify the advanced account from which
//to list all accounts.
$parent = self::getParent($config['accountId']);
// Calls the API and catches and prints any network failures/errors.
try {
// The parent has the format: accounts/{account}
$request = new ListSubAccountsRequest(['provider' => $parent]);
print "Sending list subaccounts request:\n";
$response = $accountsServiceClient->listSubAccounts($request);
$count = 0;
// Iterates over all rows in all pages and prints the datasource in each row.
// Automatically uses the `nextPageToken` if returned to fetch all pages of data.
foreach ($response->iterateAllElements() as $account) {
print_r($account);
$count++;
}
print "The following count of accounts were returned: ";
print $count . PHP_EOL;
} catch (ApiException $e) {
print "An error has occured: \n";
print $e->getMessage();
}
}
public function callSample(): void
{
$config = Config::generateConfig();
self::listSubAccounts($config);
}
}
$sample = new ListSubAccounts();
$sample->callSample();
Python
from examples.authentication import configuration
from examples.authentication import generate_user_credentials
from google.shopping.merchant_accounts_v1 import AccountsServiceClient
from google.shopping.merchant_accounts_v1 import ListSubAccountsRequest
_ACCOUNT = configuration.Configuration().read_merchant_info()
def get_parent(account_id):
return f"accounts/{account_id}"
def list_sub_accounts():
"""Lists all the subaccounts of an advanced account."""
# Get OAuth credentials.
credentials = generate_user_credentials.main()
# Create a client.
client = AccountsServiceClient(credentials=credentials)
# Get the parent advanced account ID.
parent = get_parent(_ACCOUNT)
# Create the request.
request = ListSubAccountsRequest(provider=parent)
# Make the request and print the response.
try:
print("Sending list subaccounts request:")
response = client.list_sub_accounts(request=request)
count = 0
for account in response:
print(account)
count += 1
print(f"The following count of accounts were returned: {count}")
except RuntimeError as e:
print("An error has occured: ")
print(e)
if __name__ == "__main__":
list_sub_accounts()
cURL
curl -X GET \
"https://merchantapi.googleapis.com/accounts/v1/accounts/{ADVANCED_ACCOUNT_ID}:listSubaccounts" \
-H "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
Supprimer un compte client
Si vous n'avez plus besoin de gérer un compte client, vous pouvez le supprimer à l'aide de la
accounts.delete
méthode.
L'exécution de cette méthode nécessite un accès administrateur au compte en cours de suppression.
Voici un exemple de requête :
DELETE https://merchantapi.googleapis.com/accounts/v1/accounts/{SUB_ACCOUNT_ID}
Si la requête aboutit, le corps de la réponse est un objet JSON vide, indiquant que le compte a été supprimé.
Les exemples suivants montrent comment supprimer un compte client.
Java
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.accounts.v1.AccountName;
import com.google.shopping.merchant.accounts.v1.AccountsServiceClient;
import com.google.shopping.merchant.accounts.v1.AccountsServiceSettings;
import com.google.shopping.merchant.accounts.v1.DeleteAccountRequest;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;
/** This class demonstrates how to delete a given Merchant Center account. */
public class DeleteAccountSample {
// This method can delete a standalone, advanced account or sub-account. If you delete an advanced
// account,
// all sub-accounts will also be deleted.
// Admin user access is required to execute this method.
public static void deleteAccount(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.
AccountsServiceSettings accountsServiceSettings =
AccountsServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
// Gets the account ID from the config file.
String accountId = config.getAccountId().toString();
// Creates account name to identify the account.
String name =
AccountName.newBuilder()
.setAccount(accountId)
.build()
.toString();
// Calls the API and catches and prints any network failures/errors.
try (AccountsServiceClient accountsServiceClient =
AccountsServiceClient.create(accountsServiceSettings)) {
DeleteAccountRequest request =
DeleteAccountRequest.newBuilder()
.setName(name)
// Optional. If set to true, the account will be deleted even if it has offers or
// provides services to other accounts. Defaults to 'false'.
.setForce(true)
.build();
System.out.println("Sending Delete Account request");
accountsServiceClient.deleteAccount(request); // No response returned on success.
System.out.println("Delete successful.");
} catch (Exception e) {
System.out.println(e);
}
}
public static void main(String[] args) throws Exception {
Config config = Config.load();
deleteAccount(config);
}
}
PHP
use Google\ApiCore\ApiException;
use Google\Shopping\Merchant\Accounts\V1\Client\AccountsServiceClient;
use Google\Shopping\Merchant\Accounts\V1\DeleteAccountRequest;
/**
* This class demonstrates how to delete a given Merchant Center account.
*/
class DeleteAccount
{
private static function getParent(string $accountId): string
{
return sprintf("accounts/%s", $accountId);
}
// This method can delete a standalone, advanced account or sub-account.
// If you delete an advanced account, all sub-accounts will also be deleted.
// Admin user access is required to execute this method.
public static function deleteAccount(array $config): void
{
// Gets the OAuth credentials to make the request.
$credentials = Authentication::useServiceAccountOrTokenFile();
// Creates options config containing credentials for the client to use.
$options = ['credentials' => $credentials];
// Creates a client.
$accountsServiceClient = new AccountsServiceClient($options);
// Gets the account ID from the config file.
$accountId = $config['accountId'];
// Creates account name to identify the account.
$name = self::getParent($accountId);
// Calls the API and catches and prints any network failures/errors.
try {
$request = new DeleteAccountRequest([
'name' => $name,
// Optional. If set to true, the account will be deleted even if it has offers or
// provides services to other accounts. Defaults to 'false'.
'force' => true,
]);
print "Sending Delete Account request\n";
$accountsServiceClient->deleteAccount($request); // No response returned on success.
print "Delete successful.\n";
} catch (ApiException $e) {
print $e->getMessage();
}
}
public function callSample(): void
{
$config = Config::generateConfig();
self::deleteAccount($config);
}
}
$sample = new DeleteAccount();
$sample->callSample();
Python
from examples.authentication import configuration
from examples.authentication import generate_user_credentials
from google.shopping.merchant_accounts_v1 import AccountsServiceClient
from google.shopping.merchant_accounts_v1 import DeleteAccountRequest
_ACCOUNT = configuration.Configuration().read_merchant_info()
def get_parent(account_id):
return f"accounts/{account_id}"
def delete_account():
"""Deletes a given Merchant Center account."""
# Get OAuth credentials.
credentials = generate_user_credentials.main()
# Create a client.
client = AccountsServiceClient(credentials=credentials)
# Create the account name.
name = get_parent(_ACCOUNT)
# Create the request.
request = DeleteAccountRequest(name=name, force=True)
# Make the request and print the response.
try:
print("Sending Delete Account request")
client.delete_account(request=request)
print("Delete successful.")
except RuntimeError as e:
print(e)
if __name__ == "__main__":
delete_account()
cURL
curl -X DELETE \
"https://merchantapi.googleapis.com/accounts/v1/accounts/{SUB_ACCOUNT_ID}?force=true" \
-H "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
Accepter les conditions d'utilisation
Les comptes client héritent des conditions d'utilisation de Merchant Center signées par le compte avancé parent.
Mettre à jour les informations sur votre établissement
Vous pouvez utiliser la sous-API Accounts pour modifier les informations sur l'établissement de vos comptes client.
- Pour afficher les informations sur l'établissement d'un compte, appelez
accounts.getBusinessInfo. - Pour modifier les informations sur l'établissement d'un compte, appelez
accounts.updateBusinessInfo.