Na API Merchant, as contas avançadas podem ter uma relação de subconta com outra conta. As subcontas ajudam empresas que gerenciam vários vendedores e domínios em grande escala, como varejistas que operam em vários países. Para saber quais tipos de empresas se qualificam para uma conta avançada, consulte Empresas qualificadas para acessar as configurações avançadas da conta.
Você pode usar a API Merchant Accounts para criar novas subcontas na sua conta avançada. É necessário ter uma conta avançada para fazer essa chamada. Não é possível usar a API Merchant para mover contas de comerciantes independentes existentes para sua conta.
Para converter sua conta do Merchant Center em uma conta avançada, você precisa ser um administrador. Além disso, verifique se a conta não tem problemas pendentes. Para saber como conseguir uma conta avançada, consulte Solicitar a configuração de uma conta avançada.
Os provedores terceirizados podem usar a API Merchant Accounts para desenvolver uma interface que permita aos comerciantes criar e gerenciar os detalhes da conta.
Criar uma subconta
Para criar uma subconta na sua conta avançada, chame
accounts.createAndConfigure
:
- Informe os detalhes da subconta no campo
account
. - Especifique novos usuários autorizados no campo
users
. O acesso do usuário também é herdado da conta principal. Especifique
accountAggregation
no camposervice
.Confira um exemplo de como criar uma subconta na conta
account/123
, que é um agregador para a subconta:POST https://merchantapi.googleapis.com/accounts/v1beta/accounts:createAndConfigure { "account": { "accountName": "merchantStore", "adultContent": false, "testAccount": false, "timeZone": { "id": "America/New_York", } "languageCode": "en-US", }, "service": [ { "accountAggregation": {}, "provider": "providers/123" } ] }
O exemplo a seguir demonstra como usar o
pacote CreateAndConfigureAccountRequest
para
criar uma nova subconta.
Java
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.accounts.v1beta.Account;
import com.google.shopping.merchant.accounts.v1beta.AccountAggregation;
import com.google.shopping.merchant.accounts.v1beta.AccountsServiceClient;
import com.google.shopping.merchant.accounts.v1beta.AccountsServiceSettings;
import com.google.shopping.merchant.accounts.v1beta.CreateAndConfigureAccountRequest;
import com.google.shopping.merchant.accounts.v1beta.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 MCA 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 MCA 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);
}
}
Extrair subcontas
Para listar todas as subcontas de uma determinada conta de vários clientes, use o método
accounts.listSubaccounts
.
Confira um exemplo de solicitação:
GET https://merchantapi.googleapis.com/accounts/v1beta/accounts/{ACCOUNT_ID}:listSubaccounts
Confira um exemplo de resposta de uma chamada bem-sucedida:
{
"accounts": [
{
"name": "accounts/{ACCOUNT_ID}",
"accountId": "{ACCOUNT_ID}",
"accountName": "{ACCOUNT_NAME}",
"timeZone": {
"id": "America/Los_Angeles"
},
"languageCode": "en-US"
},
{
"name": "accounts/{ACCOUNT_ID}",
"accountId": "{ACCOUNT_ID}",
"accountName": "{ACCOUNT_NAME}",
"timeZone": {
"id": "America/Los_Angeles"
},
"languageCode": "en-US"
}
]
}
Excluir uma subconta
Para excluir uma subconta, use o método
accounts.delete
. A execução desse método requer acesso de administrador.
Confira um exemplo de solicitação:
DELETE https://merchantapi.googleapis.com/accounts/v1beta/accounts/{ACCOUNT_ID}
Se a solicitação for bem-sucedida, o corpo da resposta será um objeto JSON vazio.
Aceitar os Termos de Serviço
As subcontas herdam os Termos de Serviço (TOS) do Merchant Center que a conta principal assinou.
Atualizar as informações comerciais
Você pode usar a API Merchant Accounts para editar suas informações comerciais.
- Para conferir as informações da sua empresa, chame
accounts.getBusinessInfo
. - Para editar as informações comerciais, ligue para
accounts.updateBusinessInfo
.