Za pomocą interfejsu Merchant API możesz tworzyć konta Merchant Center, które można
połączyć z kontem zaawansowanym
za pomocą accountAggregation, accountManagement lub comparisonShopping. Metoda
accounts.createAndConfigure
umożliwia utworzenie konta i opcjonalne skonfigurowanie go z użytkownikami oraz
połączenie z innymi kontami za pomocą usług.
Z tego przewodnika dowiesz się, jak używać interfejsu Merchant API do tworzenia kont za pomocą usług takich jak accountManagement, comparisonShopping lub accountAggregation. Gdy używasz metody accounts.createAndConfigure, musisz połączyć nowe konto z aprowizatorem, określając w polu service co najmniej jedną z tych usług: accountAggregation, accountManagement lub comparisonShopping.
W tym samym żądaniu możesz określić usługi accountAggregation i comparisonShopping, ale usługi accountManagement nie można łączyć z usługami accountAggregation ani comparisonShopping.
Jeśli określisz usługę accountManagement, musisz też dodać do
nowego konta co najmniej 1 użytkownika za pomocą pola user lub users.
Wymagania wstępne
Zanim zaczniesz tworzyć konta za pomocą interfejsu Merchant API, upewnij się, że spełniasz te wymagania w zależności od używanych usług:
- Dostęp administratora: podczas łączenia nowego konta za pomocą usług
accountManagement,comparisonShoppinglubaccountAggregationmusisz mieć dostęp administratora do konta dostawcy. - Konto zaawansowane: jeśli używasz usługi
accountAggregation, Twoje konto dostawcy musi być kontem zaawansowanym skonfigurowanym pod kątem agregacji kont. Jeśli jesteś usługodawcą i musisz skonfigurować konto zaawansowane, skontaktuj się z zespołem pomocy w celu uzyskania pomocy w konfiguracji.
Tworzenie konta (za pomocą usługi zarządzania kontem lub porównywania cen)
Aby utworzyć nowe konto, wywołaj metodę
accounts.createAndConfigure.
Jest to zalecane rozwiązanie dla partnerów, którzy pomagają sprzedawcom zarządzać kontami, ponieważ umożliwia sprzedawcom zachowanie pełnej kontroli i własności konta, a jednocześnie przyznanie partnerom określonych uprawnień.
W treści żądania:
- W polu
accountpodaj szczegóły konta, które chcesz utworzyć. - W polu
accountNamenie używaj powtarzających się ani niepotrzebnych znaków interpunkcyjnych, wielkich liter, podkreśleń, samych wielkich liter, emoji ani symboli innych niż alfanumeryczne, takich jak/czy_. Unikaj sufiksów firmowych (np. „sp. z o.o.” lub „GmbH”), tekstów promocyjnych, danych osobowych i nieodpowiednich sformułowań. Użyj krótkiej, jasnej i profesjonalnej nazwy. Więcej informacji znajdziesz w artykule o dodawaniu nazwy firmy. - Jeśli używasz usługi
accountManagement, w poluuserokreśl co najmniej 1 użytkownika, który będzie mieć dostęp do konta. - W polu
serviceokreśl usługi, które chcesz świadczyć na tym koncie, np.accountManagement, i ustaw wartośćproviderna nazwę zasobu Twojego konta (np.providers/{YOUR_ACCOUNT_ID}). Listę dostępnych usług, takich jakproductsManagementczycampaignsManagement, znajdziesz w artykule Zarządzanie relacjami między kontami.
Oto przykładowe żądanie utworzenia konta o nazwie „merchantStore” i połączenia go z kontem {YOUR_ACCOUNT_ID} na potrzeby zarządzania kontem i produktami:
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}"
}
]
}
Pomyślne wywołanie tworzy nowe konto i łączy je z Twoim kontem w przypadku określonych usług. Jeśli podczas tworzenia określisz usługi accountManagement, accountAggregation lub comparisonShopping, zostaną one automatycznie zatwierdzone, a stan połączenia będzie ESTABLISHED. Inne połączenia usług mogą mieć stan PENDING, dopóki nie zostaną zaakceptowane przez utworzone konto. Treść odpowiedzi
zawiera nowo utworzony
Account zasób.
Po utworzeniu takiego konta musisz je skonfigurować, wykonując takie czynności jak zaakceptowanie Warunków korzystania z usługi , skonfigurowanie informacji o firmie, i zweryfikowanie witryny.
Pomijanie weryfikacji adresu e-mail podczas tworzenia konta
Podczas tworzenia konta za pomocą metody accounts.createAndConfigure możesz opcjonalnie pominąć wysyłanie e-maili weryfikacyjnych do nowych użytkowników dodanych za pomocą pola user, ustawiając w żądaniu dla tego użytkownika wartość verificationMailSettings.verificationMailMode na SUPPRESS_VERIFICATION_MAIL. Jest to przydatne, jeśli zamierzasz zweryfikować użytkowników w imieniu sprzedawcy bezpośrednio po utworzeniu konta za pomocą metody users.verifySelf. Domyślnie wartość verificationMailMode to SEND_VERIFICATION_MAIL, a e-maile weryfikacyjne są wysyłane do nowych użytkowników dodanych podczas tworzenia konta.
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}"
}
]
}
Jeśli ustawisz wartość verificationMailMode na SUPPRESS_VERIFICATION_MAIL, musisz wywołać metodę users.verifySelf dla każdego użytkownika dodanego podczas tworzenia konta, aby dokończyć weryfikację. To wywołanie musi być uwierzytelnione jako weryfikowany użytkownik (użytkownik określony w polu userId), np. za pomocą tokena OAuth od użytkownika.
Określanie aliasu podczas tworzenia konta
W kontekście dostawcy możesz określić alias konta w polu setAlias w polu CreateAndConfigureAccountRequest. Alias może służyć do identyfikowania konta w Twoim systemie. Jeśli jesteś usługodawcą, możesz użyć aliasu, aby pobrać konto za pomocą metody GET /accounts/v1/accounts/{provider}~{alias}. Alias musi być unikalny dla danego dostawcy, a w polu service żądania musisz określić usługę z tym samym dostawcą. Więcej informacji o wymaganiach dotyczących aliasów,
znajdziesz w artykule Zarządzanie relacjami między kontami.
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"
}
]
}
Zalecany proces wprowadzania
Jeśli jesteś partnerem, który tworzy konto w imieniu sprzedawcy, zalecamy wykonanie tych czynności:
- Utwórz konto: wywołaj metodę
accounts.createAndConfigurez danymi logowania partnera, aby utworzyć nowe konto.- Ustaw wartość
servicetak, aby obejmowała usługęaccountManagementłączącą się z Twoim identyfikatorem dostawcy. - Dodaj sprzedawcę jako użytkownika za pomocą pola
useri ustaw wartośćverificationMailSettings.verificationMailModenaSUPPRESS_VERIFICATION_MAIL.
- Ustaw wartość
- Zweryfikuj użytkownika: za pomocą danych logowania sprzedawcy (np. używając
tokena OAuth) wywołaj metodę
users.verifySelf, aby zmienić stan użytkownika zPENDINGnaVERIFIED. - Ustaw kraj firmy: za pomocą danych logowania sprzedawcy ustaw kraj
firmy, aktualizując wartość
address.regionCodeza pomocąaccounts.updateBusinessInfo. Jest to wymagane przed zaakceptowaniem Warunków korzystania z usługi . - Zaakceptuj Warunki korzystania z usługi : za pomocą danych logowania sprzedawcy zaakceptuj Warunki korzystania z usługi .
Ten proces umożliwia sprzedawcy bezproblemowe wprowadzenie na Twojej platformie bez otrzymywania e-maili z zaproszeniem od Google.
Tworzenie konta klienta (za pomocą usługi agregacji kont)
Konta klientów to odrębne konta Merchant Center połączone z Twoim kontem zaawansowanym za pomocą usługi accountAggregation, co umożliwia centralne zarządzanie przy zachowaniu oddzielnych ustawień, witryn i plików danych. Do tworzenia nowych kont klientów możesz użyć podrzędnego interfejsu Merchant Accounts API.
Aby utworzyć konta klientów, musisz najpierw skonfigurować konto zaawansowane . Aby przekształcić konto Merchant Center w konto zaawansowane, musisz być administratorem konta, a na koncie nie mogą występować żadne nierozwiązane problemy.
Aby utworzyć nowe konto klienta, wywołaj metodę
accounts.createAndConfigure.
W treści żądania:
- W polu
accountpodaj szczegóły konta, które chcesz utworzyć. - W polu
accountNamenie używaj powtarzających się ani niepotrzebnych znaków interpunkcyjnych, wielkich liter, podkreśleń ani symboli innych niż alfanumeryczne (np. „/” lub „_”). Unikaj sufiksów firmowych (np. „sp. z o.o.” lub „GmbH”), tekstów promocyjnych, danych osobowych i nieodpowiednich sformułowań. Użyj krótkiej, jasnej i profesjonalnej nazwy. Więcej informacji znajdziesz w artykule o dodawaniu nazwy firmy. - Opcjonalnie w polu
userokreśl nowych autoryzowanych użytkowników. Dostęp użytkowników do konta jest też dziedziczony z nadrzędnego konta zaawansowanego. - W
servicepolu określaccountAggregationi ustaw wartośćproviderna nazwę zasobu Twojego konta zaawansowanego (np.providers/{ADVANCED_ACCOUNT_ID}). Dzięki temu Twoje konto zaawansowane będzie agregatorem nowego konta.
Oto przykładowe żądanie utworzenia konta klienta o nazwie „merchantStore” połączonego z kontem zaawansowanym {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}"
}
]
}
Pomyślne wywołanie tworzy nowe konto klienta i łączy je z określonym kontem zaawansowanym. Treść odpowiedzi będzie zawierała nowo utworzony
Account zasób.
Z tych przykładów dowiesz się, jak utworzyć nowe konto klienta za pomocą metody
accounts.createAndConfigure.
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}"
}
]
}'
Pobieranie kont klientów
Aby wyświetlić listę wszystkich kont klientów danego konta zaawansowanego, użyj
accounts.listSubaccounts
metody. W polu provider adresu URL żądania podaj identyfikator konta zaawansowanego.
Oto przykładowe żądanie:
GET https://merchantapi.googleapis.com/accounts/v1/accounts/{ADVANCED_ACCOUNT_ID}:listSubaccounts
Oto przykładowa odpowiedź na pomyślne wywołanie:
{
"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"
}
]
}
Z tych przykładów dowiesz się, jak wyświetlić listę wszystkich kont klientów na koncie zaawansowanym.
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}" \
Usuwanie konta klienta
Jeśli nie musisz już zarządzać kontem klienta, możesz je usunąć za pomocą metody
accounts.delete.
Aby wykonać tę metodę, musisz mieć dostęp administratora do usuwanego konta.
Oto przykładowe żądanie:
DELETE https://merchantapi.googleapis.com/accounts/v1/accounts/{SUB_ACCOUNT_ID}
Jeśli operacja się uda, treść odpowiedzi będzie zawierała pusty obiekt JSON, co oznacza, że konto zostało usunięte.
Z tych przykładów dowiesz się, jak usunąć konto klienta.
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}" \
Zaakceptuj Warunki korzystania z usługi
Konta klientów dziedziczą Warunki korzystania z usługi Merchant Center (TOS) które zostały zaakceptowane przez nadrzędne konto zaawansowane.
Aktualizacja informacji o firmie
Za pomocą interfejsu Merchant Accounts API możesz edytować informacje o firmie na kontach klientów.
- Aby wyświetlić informacje o firmie na koncie, wywołaj metodę
accounts.getBusinessInfo. - Aby edytować informacje o firmie na koncie, wywołaj metodę
accounts.updateBusinessInfo.