accountAggregation, accountManagement veya comparisonShopping kullanarak gelişmiş hesaba bağlanabilecek Merchant Center hesapları oluşturmak için Merchant API'yi kullanabilirsiniz. accounts.createAndConfigure yöntemi, hesap oluşturmanıza ve isteğe bağlı olarak hesabı kullanıcılarla yapılandırmanıza ve hizmetler aracılığıyla diğer hesaplara bağlamanıza olanak tanır.
Bu kılavuzda, accountAggregation, accountManagement veya comparisonShopping kullanarak hesap oluşturmak için Merchant API'nin nasıl kullanılacağı açıklanmaktadır:
accountAggregation: Pazar yerleri, çok markalı perakendeciler, uluslararası perakendeciler ve çok müşterili gelişmiş hesap altında alt hesaplar oluşturan iş ortakları tarafından kullanılır.accountManagement: Satıcıya ait bağımsız hesaplar oluşturan ajanslar tarafından kullanılır.comparisonShopping: AEA ve CSS'ye uygun ülkelerde hesap oluşturan Karşılaştırmalı Alışveriş Hizmetleri (CSS'ler) tarafından kullanılır.
accounts.createAndConfigure kullanırken service alanında accountAggregation, accountManagement veya comparisonShopping özelliklerinden en az birini belirterek yeni hesabı bir sağlayıcıya bağlamanız gerekir. Aynı istekte accountAggregation ve comparisonShopping parametrelerini belirtebilirsiniz ancak accountManagement, accountAggregation veya comparisonShopping ile birleştirilemez. accountManagement değerini belirtirseniz user veya users alanını kullanarak yeni hesaba en az bir kullanıcı ekleyin.
Ön koşullar
Merchant API'yi kullanarak hesap oluşturabilmek için kullandığınız hizmetlere bağlı olarak aşağıdaki şartları karşıladığınızdan emin olun:
- Yönetici erişimi:
accountManagement,comparisonShoppingveyaaccountAggregationkullanarak yeni bir hesap bağlarken sağlayıcı hesabına yönetici erişiminizin olması gerekir. - Gelişmiş hesap:
accountAggregationkullanıyorsanız sağlayıcı hesabınız, hesap birleştirme için yapılandırılmış bir gelişmiş hesap olmalıdır. Servis sağlayıcıysanız ve gelişmiş hesap oluşturmanız gerekiyorsa yapılandırma konusunda yardım almak için destek ekibiyle iletişime geçin.
Hesap oluşturma (hesap yönetimi veya karşılaştırmalı alışveriş kullanarak)
Yeni bir hesap oluşturmak için accounts.createAndConfigure numaralı telefonu arayın.
Bu, satıcıların hesaplarını yönetmelerine yardımcı olan iş ortakları için önerilen yaklaşımdır. Bu yaklaşım, satıcıların hesaplarının tam kontrolünü ve sahipliğini ellerinde tutarken iş ortaklarına belirli izinler vermelerine olanak tanır.
İstek gövdesinde:
- Oluşturmak istediğiniz hesabın ayrıntılarını
accountalanına girin. accountNamealanında tekrarlı ve gereksiz bir şekilde noktalama işareti, büyük harf, alt çizgi, tamamı büyük harfle yazılmış kelimeler, emoji veya/ya da_gibi alfanümerik olmayan simgeler kullanmayın. İşletme ekleri (ör. "A.Ş." veya "Ltd."), tanıtım metni, kişisel bilgiler veya uygunsuz dil kullanmaktan kaçının. Kısa, net ve profesyonel bir ad kullanın. Daha fazla bilgi için işletme adı ekleme başlıklı makaleyi inceleyin.accountManagementkullanıyorsanızuseralanında hesaba erişebilecek en az bir kullanıcı belirtin.servicealanında, bu hesaba sağlamak istediğiniz hizmetleri (ör.accountManagement) belirtin veproviderdeğerini hesabınızın kaynak adı (ör.providers/{YOUR_ACCOUNT_ID}) olarak ayarlayın.productsManagementveyacampaignsManagementgibi kullanılabilir hizmetlerin listesi için Hesap ilişkilerini yönetme başlıklı makaleyi inceleyin.
Aşağıda, "merchantStore" adlı bir hesap oluşturmak ve hesap ile ürün yönetimi için bu hesabı {YOUR_ACCOUNT_ID} hesabına bağlamak üzere gönderilen örnek bir istek verilmiştir:
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}"
}
]
}
Başarılı bir çağrı, yeni hesabı oluşturur ve belirtilen hizmetler için hesabınıza bağlar. Oluşturma sırasında accountManagement, accountAggregation veya comparisonShopping hizmetlerini belirtirseniz bunlar otomatik olarak onaylanır ve bağlantı durumu ESTABLISHED olur. Diğer hizmet bağlantıları, oluşturulan hesap tarafından kabul edilene kadar PENDING durumunda olabilir. Yanıt gövdesi, yeni oluşturulan Account kaynağını içerir.
Aşağıdaki örnekte, hesap oluşturmak ve yapılandırmak için accounts.createAndConfigure'ın nasıl kullanılacağı gösterilmektedir:
Java
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.accounts.v1.AccessRight;
import com.google.shopping.merchant.accounts.v1.Account;
import com.google.shopping.merchant.accounts.v1.AccountManagement;
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.shopping.merchant.accounts.v1.CreateAndConfigureAccountRequest.AddUser;
import com.google.shopping.merchant.accounts.v1.ProductsManagement;
import com.google.shopping.merchant.accounts.v1.User;
import com.google.type.TimeZone;
import java.util.List;
import shopping.merchant.samples.utils.Authenticator;
/**
* This class demonstrates how to create a new Merchant Center account and configure it with various
* services.
*/
public class CreateAndConfigureAccountSample {
public static void createAndConfigureAccount(
long providerId, String newAccountName, String userEmail) 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();
// Calls the API and catches and prints any network failures/errors.
try (AccountsServiceClient accountsServiceClient =
AccountsServiceClient.create(accountsServiceSettings)) {
// The account to be created.
Account account =
Account.newBuilder()
.setAccountName(newAccountName)
.setTimeZone(TimeZone.newBuilder().setId("Europe/Zurich").build())
.setLanguageCode("en-US")
.build();
// The services to be added to the new account.
// This sample shows how to configure a new account with account management and
// product management.
// For more information about the different services, see:
// https://developers.google.com/merchant/api/guides/accounts/services
AddAccountService accountManagementService =
AddAccountService.newBuilder()
.setProvider("accounts/" + providerId)
.setExternalAccountId("external_account_id")
.setAccountManagement(AccountManagement.newBuilder().build())
.build();
// This part is optional. You can also omit this and link the account later.
AddAccountService productsManagementService =
AddAccountService.newBuilder()
.setProvider("accounts/" + providerId)
.setExternalAccountId("external_account_id")
.setProductsManagement(ProductsManagement.newBuilder().build())
.build();
// For sub-account creation, use the AccountAggregation service. For an example on how to do
// this, see the `CreateSubAccount` sample.
// The user to be added to the new account.
// This part is optional.
AddUser user =
AddUser.newBuilder()
.setUserId(userEmail)
.setUser(User.newBuilder().addAccessRights(AccessRight.STANDARD).build())
.build();
CreateAndConfigureAccountRequest request =
CreateAndConfigureAccountRequest.newBuilder()
.setAccount(account)
.addAllService(List.of(accountManagementService, productsManagementService))
.addUser(user)
.build();
System.out.println("Sending Create and Configure Account request:");
Account response = accountsServiceClient.createAndConfigureAccount(request);
System.out.println("Created Account below");
System.out.println(response);
} catch (Exception e) {
System.out.println(e);
}
}
public static void main(String[] args) throws Exception {
// This is the provider ID of the e-commerce platform.
long providerId = 123L;
// This is the name of the new account to be created.
String newAccountName = "MyNewShop";
// This is the email of a user to be added to the new account.
String userEmail = "test-user@gmail.com";
createAndConfigureAccount(providerId, newAccountName, userEmail);
}
}
Böyle bir hesap oluşturduktan sonra Hizmet Şartları'nı kabul etme , işletme bilgilerini ayarlama ve web sitesini doğrulama gibi adımları uygulayarak hesabı kullanmaya başlayabilirsiniz.
Hesap oluşturma sırasında e-posta doğrulamasını engelleme
accounts.createAndConfigure ile hesap oluştururken, user alanını kullanarak eklenen yeni kullanıcılar için doğrulama e-postalarını isteğe bağlı olarak engelleyebilirsiniz. Bunun için, ilgili kullanıcının isteğinde verificationMailSettings.verificationMailMode değerini SUPPRESS_VERIFICATION_MAIL olarak ayarlamanız gerekir. Bu, kullanıcıları oluşturduktan hemen sonra users.verifySelf yöntemini kullanarak satıcı adına doğrulamak istediğinizde kullanışlıdır. Varsayılan olarak verificationMailMode, SEND_VERIFICATION_MAIL değerine ayarlanır ve hesap oluşturma sırasında eklenen yeni kullanıcılara doğrulama e-postaları gönderilir.
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}"
}
]
}
verificationMailMode değerini SUPPRESS_VERIFICATION_MAIL olarak ayarlarsanız doğrulama işlemini tamamlamak için oluşturma sırasında eklenen her kullanıcı için users.verifySelf yöntemini çağırmanız gerekir. Bu çağrının kimliği, doğrulanan kullanıcı (userId içinde belirtilen kullanıcı) olarak doğrulanmalıdır. Örneğin, kullanıcıdan alınan bir OAuth jetonu kullanılabilir.
Hesap oluşturma sırasında takma ad belirtme
CreateAndConfigureAccountRequest içinde bir sağlayıcı bağlamında bir hesap için takma ad belirtmek üzere setAlias alanını kullanabilirsiniz. Takma ad, sisteminizde hesabı tanımlamak için kullanılabilir. Servis sağlayıcıysanız GET /accounts/v1/accounts/{provider}~{alias} kullanarak hesabı almak için takma adı kullanabilirsiniz. Takma ad, belirli bir sağlayıcı için benzersiz olmalıdır ve isteğin service alanında aynı sağlayıcıya sahip bir hizmet belirtmeniz gerekir. Takma ad koşulları hakkında daha fazla bilgi için Hesap ilişkilerini yönetme başlıklı makaleyi inceleyin.
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"
}
]
}
Önerilen ilk katılım akışı
Bir satıcı adına hesap oluşturan bir iş ortağıysanız aşağıdaki akışı kullanmanızı öneririz:
- Hesap oluşturma: Yeni bir hesap oluşturmak için iş ortağı kimlik bilgilerinizle
accounts.createAndConfigureyöntemini çağırın.servicedeğerini, sağlayıcı kimliğinize bağlananaccountManagementdeğerini içerecek şekilde ayarlayın.useralanını kullanarak satıcıyı kullanıcı olarak ekleyin veverificationMailSettings.verificationMailModedeğeriniSUPPRESS_VERIFICATION_MAILolarak ayarlayın.
- Kullanıcıyı doğrulama: Satıcıdan alınan kimlik bilgileriyle (ör. OAuth jetonu kullanarak) kullanıcı durumunu
PENDINGyerineVERIFIEDolarak değiştirmek içinusers.verifySelfyöntemini çağırın. - İşletmenin bulunduğu ülkeyi ayarlama: Satıcı kimlik bilgileriyle,
accounts.updateBusinessInfokullanarakaddress.regionCodedeğerini güncelleyip işletmenin bulunduğu ülkeyi ayarlayın. Hizmet Şartları'nı kabul etmeden önce bu işlemi yapmanız gerekir . - Hizmet Şartları'nı kabul edin : Satıcı kimlik bilgileriyle Hizmet Şartları'nı kabul edin .
Bu akış, satıcıların Google'dan davet e-postası almadan platformunuza sorunsuz bir şekilde dahil edilmesini sağlar.
Müşteri hesabı oluşturma (hesap birleştirme özelliğini kullanarak)
Müşteri hesapları, accountAggregation hizmeti kullanılarak gelişmiş hesabınıza bağlanan ayrı Merchant Center hesaplarıdır. Bu hesaplar, ayrı ayarlar, web siteleri ve veri feed'leri korunurken merkezi yönetim sağlar. Yeni müşteri hesapları oluşturmak için Merchant Accounts alt API'sini kullanabilirsiniz.
Müşteri hesabı oluşturmak için öncelikle gelişmiş hesap kurulumu yapmanız gerekir. Merchant Center hesabınızı gelişmiş hesaba dönüştürmek için hesap yöneticisi olmanız ve hesabınızda beklemede olan sorun bulunmaması gerekir.
Yeni bir müşteri hesabı oluşturmak için accounts.createAndConfigure yöntemini çağırın.
İstek gövdesinde:
- Oluşturmak istediğiniz hesabın ayrıntılarını
accountalanına girin. accountNamealanında tekrarlı ve gereksiz bir şekilde noktalama işareti, büyük harf, alt çizgi veya alfanümerik olmayan simgeler ("/" veya "_" gibi) kullanmayın. İşletme sonekleri ("Inc." veya "GmbH" gibi), tanıtım metni, kişisel bilgiler veya uygunsuz dil kullanmaktan kaçının. Kısa, net ve profesyonel bir ad kullanın. Daha fazla bilgi için işletme adı ekleme başlıklı makaleyi inceleyin.- İsterseniz
useralanında yeni yetkili kullanıcıları belirtebilirsiniz. Hesaba kullanıcı erişimi de üst gelişmiş hesaptan devralınır. servicealanındaaccountAggregationdeğerini belirtin veproviderdeğerini gelişmiş hesabınızın kaynak adı (ör.providers/{ADVANCED_ACCOUNT_ID}) olarak ayarlayın. Bu işlem, gelişmiş hesabınızı yeni hesabın toplayıcısı olarak ayarlar.
Aşağıda, {ADVANCED_ACCOUNT_ID} numaralı gelişmiş hesaba bağlı "merchantStore" adlı bir müşteri hesabı oluşturmak için örnek bir istek verilmiştir:
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}"
}
]
}
Başarılı bir çağrı, yeni müşteri hesabını oluşturur ve belirttiğiniz gelişmiş hesaba bağlar. Yanıt gövdesi, yeni oluşturulan Account kaynağını içerir.
Aşağıdaki örneklerde, yeni bir müşteri hesabı oluşturmak için accounts.createAndConfigure'ın nasıl kullanılacağı gösterilmektedir.
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 Account 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());
return response;
}
}
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
def get_parent(account_id):
return f"accounts/{account_id}"
def create_sub_account(account_id: str) -> 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_id)
# 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)
return response
except RuntimeError as e:
print(e)
raise
if __name__ == "__main__":
_account_id = configuration.Configuration().read_merchant_info()
create_sub_account(_account_id)
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}"
}
]
}'
Müşteri hesaplarını alma
Belirli bir gelişmiş hesabın tüm müşteri hesaplarını listelemek için
accounts.listSubaccounts
yöntemini kullanın. İstek URL'sinin provider alanına gelişmiş hesabınızın kimliğini girin.
Aşağıda örnek bir istek verilmiştir:
GET https://merchantapi.googleapis.com/accounts/v1/accounts/{ADVANCED_ACCOUNT_ID}:listSubaccounts
Aşağıda, başarılı bir çağrıdan alınan örnek yanıt verilmiştir:
{
"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"
}
]
}
Aşağıdaki örneklerde, gelişmiş hesabınızın tüm müşteri hesaplarının nasıl listeleneceği gösterilmektedir.
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 ListSubAccountsPagedResponse 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);
return response;
}
}
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
def get_parent(account_id):
return f"accounts/{account_id}"
def list_sub_accounts(account_id: str):
"""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_id)
# 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}")
return response
except RuntimeError as e:
print("An error has occured: ")
print(e)
raise
if __name__ == "__main__":
_account_id = configuration.Configuration().read_merchant_info()
list_sub_accounts(_account_id)
cURL
curl -X GET \
"https://merchantapi.googleapis.com/accounts/v1/accounts/{ADVANCED_ACCOUNT_ID}:listSubaccounts" \
-H "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
Müşteri hesabını silme
Artık bir müşteri hesabını yönetmeniz gerekmiyorsa accounts.delete yöntemini kullanarak hesabı silebilirsiniz.
Bu yöntemi yürütmek için silinen hesaba yönetici erişimi gerekir.
Aşağıda örnek bir istek verilmiştir:
DELETE https://merchantapi.googleapis.com/accounts/v1/accounts/{SUB_ACCOUNT_ID}
İşlem başarılı olursa yanıt gövdesi boş bir JSON nesnesi olur. Bu, hesabın silindiğini gösterir.
Aşağıdaki örneklerde, müşteri hesabının nasıl silineceği gösterilmektedir.
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, String accountId) 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 account name to identify the account.
String name =
AccountName.newBuilder()
.setAccount(accountId)
.build()
.toString();
// Calls the API.
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.");
}
}
public static void deleteAccount(Config config) throws Exception {
deleteAccount(config, config.getAccountId().toString());
}
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
def get_parent(account_id):
return f"accounts/{account_id}"
def delete_account(account_id: str):
"""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_id)
# 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)
raise
if __name__ == "__main__":
_account_id = configuration.Configuration().read_merchant_info()
delete_account(_account_id)
cURL
curl -X DELETE \
"https://merchantapi.googleapis.com/accounts/v1/accounts/{SUB_ACCOUNT_ID}?force=true" \
-H "Authorization: Bearer {YOUR_ACCESS_TOKEN}" \
Hizmet Şartları'nı kabul edin
Müşteri hesapları, üst gelişmiş hesabın imzaladığı Merchant Center Hizmet Şartları'nı devralır.
İşletme bilgilerinizi güncelleyin
Müşteri hesaplarınızın işletme bilgilerini düzenlemek için Merchant Accounts API'yi kullanabilirsiniz.
- Bir hesabın işletme bilgilerini görüntülemek için
accounts.getBusinessInfoyöntemini çağırın. - Bir hesabın işletme bilgilerini düzenlemek için
accounts.updateBusinessInfonumaralı telefonu arayın.