В Merchant API расширенные учетные записи могут иметь отношение дочерних учетных записей к другой учетной записи. Субаккаунты помогают компаниям, которые управляют несколькими продавцами и крупными доменами, например розничным торговцам, работающим в нескольких странах. Типы компаний, которые имеют право на расширенную учетную запись, см. в разделе Компании, которые имеют право на доступ к расширенным настройкам учетной записи .
Вы можете использовать API учетных записей торговцев для создания новых субсчетов в своей расширенной учетной записи. Для совершения этого звонка у вас должна быть существующая расширенная учетная запись. Вы не можете использовать Merchant API для перемещения существующих отдельных учетных записей продавцов под свою учетную запись.
Чтобы преобразовать свою учетную запись Merchant Center в расширенную учетную запись, вы должны быть администратором учетной записи. Вы также должны убедиться, что с вашей учетной записью нет нерешенных проблем . Информацию о том, как получить расширенную учетную запись, см. в разделе Запрос на расширенную настройку учетной записи .
Сторонние поставщики могут использовать API учетных записей торговцев для разработки интерфейса, который позволяет продавцам создавать данные своей учетной записи и управлять ими .
Создать дополнительный аккаунт
Чтобы создать новую суб-учетную запись в вашей расширенной учетной записи, accounts.createAndConfigure
:
- Укажите данные субсчета в поле
account
. - Укажите новых авторизованных пользователей в поле
users
. Доступ пользователя также наследуется от родительской учетной записи. Укажите
accountAggregation
в полеservice
.Вот пример создания суб-аккаунта в аккаунте
account/123
, который является агрегатором для суб-аккаунта:POST https://merchantapi.googleapis.com/accounts/v1beta/accounts:createAndConfigure { "account": { "accountName": "merchantStore", "adultContent": false, "timeZone": { "id": "America/New_York", } "languageCode": "en-US", }, "service": [ { "accountAggregation": {}, "provider": "providers/123" } ] }
В следующем примере показано, как можно использовать пакет CreateAndConfigureAccountRequest
для создания новой дополнительной учетной записи.
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);
}
}
Получить субаккаунты
Чтобы вывести список всех дочерних учетных записей для данной многоклиентской учетной записи, используйте метод accounts.listSubaccounts
.
Вот пример запроса:
GET https://merchantapi.googleapis.com/accounts/v1beta/accounts/{ACCOUNT_ID} :listSubaccounts
Вот пример ответа на успешный вызов:
{
"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"
}
]
}
Удалить дополнительный аккаунт
Чтобы удалить дополнительную учетную запись, используйте метод accounts.delete
. Для выполнения этого метода требуется доступ администратора .
Вот пример запроса:
DELETE https://merchantapi.googleapis.com/accounts/v1beta/accounts/{ACCOUNT_ID}
В случае успеха тело ответа представляет собой пустой объект JSON.
Примите Условия обслуживания
Дочерние аккаунты наследуют Условия использования Merchant Center (TOS), подписанные родительским аккаунтом.
Обновите информацию о своей компании
Вы можете использовать API учетных записей торговцев для редактирования информации о своей компании .
- Чтобы просмотреть информацию о своей компании,
accounts.getBusinessInfo
. - Чтобы изменить информацию о своей компании,
accounts.updateBusinessInfo
.