Merchant Center'ı ve özelliklerini kullanmak için işletme konumunuzla ilgili Merchant Center Hizmet Şartları'nı (ToS) kabul etmeniz gerekir. Bu sözleşmeler, Merchant Center hizmetlerinin kullanımına ilişkin yasal şartları belirtir.
Bu kılavuzda, kendi hesabınız veya üçüncü taraf sağlayıcı (3P) olarak yönettiğiniz hesaplar için bu sözleşmeleri yönetmek üzere Merchant API'yi nasıl kullanabileceğiniz açıklanmaktadır.
Aşağıdakileri yapabilirsiniz:
- Bir hesabın mevcut Hizmet Şartları sözleşme durumunu kontrol edin.
- Satıcıları gerekli Hizmet Şartları'nı kabul etmeye yönlendirin.
- Müşteri hesapları veya bağımsız hesaplar için üçüncü taraf sağlayıcı olarak Hizmet Şartları'nı yönetme
Ön koşullar
Merchant API'yi kullanmak için Merchant Center hesabınızın olması gerekir. Merchant Center kullanıcı arayüzünü (UI) kullanarak oluşturduktan sonra hesabı değiştirebilirsiniz (ör. işletme bilgilerinizi güncelleyebilir, kullanıcıları yönetebilirsiniz). Bu değişiklikleri kullanıcı arayüzünü veya API'yi kullanarak yapabilirsiniz.
Birden fazla hesabı yönetmeniz gerekiyorsa Merchant API'yi kullanarak müşteri hesapları oluşturabilirsiniz. Alt hesap oluşturma ve yönetme başlıklı makaleyi inceleyin.
Bir hesabın Hizmet Şartları sözleşme durumunu kontrol etme
Bir satıcının Merchant Center'ı tam olarak kullanabilmesi için veya mevcut sözleşme durumunu doğrulamanız gerektiğinde Hizmet Şartları sözleşmesinin durumunu alabilirsiniz.
Temel Merchant Center uygulaması için Hizmet Şartları sözleşme durumunu almak üzere
termsOfServiceAgreementStates.retrieveForApplication
yöntemini kullanın.
Bu yöntem, varsa mevcut Hizmet Şartlarınızı ve Hizmet Şartları son kabulünüzden bu yana güncellendiyse kabul etmeniz gereken en son sürümü döndürür.
Aşağıda örnek bir istek verilmiştir:
GET https://merchantapi.googleapis.com/accounts/v1beta/accounts/{ACCOUNT_ID}/termsOfServiceAgreementStates:retrieveForApplication
Başarılı bir çağrı, TermsOfServiceAgreementState
kaynağını döndürür. Bu kaynakta şunlar yer alır:
name
: Bu sözleşme durumunun tanımlayıcısı.regionCode
: Bu sözleşme durumunun geçerli olduğu ülke (genellikle hesabın işletme ülkesi).termsOfServiceKind
: Bu,MERCHANT_CENTER
olacaktır.accepted
: Hesabın kabul ettiği Hizmet Şartları sürümüyle ilgili ayrıntılar.termsOfService
kaynak adı (ör.termsOfService/132
) veacceptedBy
dahil. Ayrıca, daha yeni bir Hizmet Şartları sürümüvalidUntil
iserequired
tarihi de içerebilir.required
: Hesabın kabul etmesi gereken bir Hizmet Şartları sürümüyle ilgili ayrıntılar. Bu,termsOfService
kaynak adını ve kullanıcıların okuyabileceği Hizmet Şartları belgesine işaret eden birtosFileUri
içerir.
Örnek Yanıt:
{
"name": "accounts/{ACCOUNT_ID}/termsOfServiceAgreementStates/MERCHANT_CENTER-{REGION_CODE}",
"regionCode": "{REGION_CODE}",
"termsOfServiceKind": "MERCHANT_CENTER",
"accepted": {
"termsOfService": "termsOfService/132",
"acceptedBy": "accounts/{ACCOUNT_ID}"
},
"required": {
"termsOfService": "termsOfService/132",
"tosFileUri": "https://www.google.com/intl/{REGION_CODE}/policies/merchants/terms/"
}
}
Yeni bir Hizmet Şartları required
ise satıcıyı bunu kabul etmeye yönlendirmelisiniz.
Belirli bir hesap ve ülke için Hizmet Şartları sözleşme durumunu almak üzere kullanabileceğiniz bir örnek aşağıda verilmiştir:
Java
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.accounts.v1beta.GetTermsOfServiceAgreementStateRequest;
import com.google.shopping.merchant.accounts.v1beta.TermsOfServiceAgreementState;
import com.google.shopping.merchant.accounts.v1beta.TermsOfServiceAgreementStateName;
import com.google.shopping.merchant.accounts.v1beta.TermsOfServiceAgreementStateServiceClient;
import com.google.shopping.merchant.accounts.v1beta.TermsOfServiceAgreementStateServiceSettings;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;
/**
* This class demonstrates how to get a TermsOfServiceAgreementState for a specific
* TermsOfServiceKind and country.
*/
public class GetTermsOfServiceAgreementStateSample {
public static void getTermsOfServiceAgreementState(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.
TermsOfServiceAgreementStateServiceSettings termsOfServiceAgreementStateServiceSettings =
TermsOfServiceAgreementStateServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
// Creates TermsOfServiceAgreementState name to identify TermsOfServiceAgreementState.
String name =
TermsOfServiceAgreementStateName.newBuilder()
.setAccount(config.getAccountId().toString())
// The Identifier is: "{TermsOfServiceKind}-{country}"
.setIdentifier("MERCHANT_CENTER-US")
.build()
.toString();
System.out.println(name);
// Calls the API and catches and prints any network failures/errors.
try (TermsOfServiceAgreementStateServiceClient termsOfServiceAgreementStateServiceClient =
TermsOfServiceAgreementStateServiceClient.create(
termsOfServiceAgreementStateServiceSettings)) {
// The name has the format:
// accounts/{account}/termsOfServiceAgreementStates/{TermsOfServiceKind}-{country}
GetTermsOfServiceAgreementStateRequest request =
GetTermsOfServiceAgreementStateRequest.newBuilder().setName(name).build();
System.out.println("Sending Get TermsOfServiceAgreementState request:");
TermsOfServiceAgreementState response =
termsOfServiceAgreementStateServiceClient.getTermsOfServiceAgreementState(request);
System.out.println("Retrieved TermsOfServiceAgreementState below");
// If the terms of service needs to be accepted, the "required" field will include the
// specific version of the terms of service which needs to be accepted, alongside a link to
// the terms of service itself.
System.out.println(response);
} catch (Exception e) {
System.out.println(e);
}
}
public static void main(String[] args) throws Exception {
Config config = Config.load();
getTermsOfServiceAgreementState(config);
}
}
PHP
use Google\ApiCore\ApiException;
use Google\Shopping\Merchant\Accounts\V1beta\Client\TermsOfServiceAgreementStateServiceClient;
use Google\Shopping\Merchant\Accounts\V1beta\GetTermsOfServiceAgreementStateRequest;
/**
* Demonstrates how to get a TermsOfServiceAgreementState.
*/
class GetTermsOfServiceAgreementState
{
/**
* Gets a TermsOfServiceAgreementState.
*
* @param array $config The configuration data.
* @return void
*/
public static function getTermsOfServiceAgreementState($config): void
{
// Get OAuth credentials.
$credentials = Authentication::useServiceAccountOrTokenFile();
// Create client options.
$options = ['credentials' => $credentials];
// Create a TermsOfServiceAgreementStateServiceClient.
$termsOfServiceAgreementStateServiceClient = new TermsOfServiceAgreementStateServiceClient($options);
// Service agreeement identifier
$identifier = "MERCHANT_CENTER-US";
// Create TermsOfServiceAgreementState name.
$name = "accounts/" . $config['accountId'] . "/termsOfServiceAgreementStates/" . $identifier;
print $name . PHP_EOL;
try {
// Prepare the request.
$request = new GetTermsOfServiceAgreementStateRequest([
'name' => $name,
]);
print "Sending Get TermsOfServiceAgreementState request:" . PHP_EOL;
$response = $termsOfServiceAgreementStateServiceClient->getTermsOfServiceAgreementState($request);
print "Retrieved TermsOfServiceAgreementState below\n";
print $response->serializeToJsonString() . PHP_EOL;
} catch (ApiException $e) {
print $e->getMessage();
}
}
/**
* Helper to execute the sample.
*
* @return void
*/
public function callSample(): void
{
$config = Config::generateConfig();
self::getTermsOfServiceAgreementState($config);
}
}
// Run the script
$sample = new GetTermsOfServiceAgreementState();
$sample->callSample();
Python
from examples.authentication import configuration
from examples.authentication import generate_user_credentials
from google.shopping.merchant_accounts_v1beta import GetTermsOfServiceAgreementStateRequest
from google.shopping.merchant_accounts_v1beta import TermsOfServiceAgreementStateServiceClient
# Replace with your actual value.
_ACCOUNT_ID = configuration.Configuration().read_merchant_info()
_IDENTIFIER = "MERCHANT_CENTER-US" # Replace with your identifier
def get_terms_of_service_agreement_state():
"""Gets a TermsOfServiceAgreementState for a specific TermsOfServiceKind and country."""
credentials = generate_user_credentials.main()
client = TermsOfServiceAgreementStateServiceClient(credentials=credentials)
name = (
"accounts/"
+ _ACCOUNT_ID
+ "/termsOfServiceAgreementStates/"
+ _IDENTIFIER
)
print(name)
request = GetTermsOfServiceAgreementStateRequest(name=name)
try:
print("Sending Get TermsOfServiceAgreementState request:")
response = client.get_terms_of_service_agreement_state(request=request)
print("Retrieved TermsOfServiceAgreementState below")
print(response)
except RuntimeError as e:
print(e)
if __name__ == "__main__":
get_terms_of_service_agreement_state()
Hizmet Şartları'nı kabul edin
Satıcıların Merchant Center özelliklerine erişmeye devam edebilmesi için en son Hizmet Şartları'nı kabul etmesi gerekir.
Kendi hesabınız için Hizmet Şartları'nı kabul etme
Kendi Merchant Center hesabınızı yönetiyorsanız aşağıdakileri yapın:
- Hizmet şartlarının
required
olup olmadığını belirlemek içintermsOfServiceAgreementStates.retrieveForApplication
numaralı telefonu arayın. - Hizmet Şartları gerekiyorsa
termsOfService
alanındakirequired
adını (ör.termsOfService/132
) not edin. Hizmet Şartları'nı kabul etmek için
termsOfService.accept
numaralı telefonu arayın. Hizmet Şartları adı,ACCOUNT_ID
ve retrieveForApplication tarafından döndürülenregionCode
gerekir.Aşağıda örnek bir istek verilmiştir:
POST https://merchantapi.googleapis.com/accounts/v1beta/{name={termsOfService/VERSION}}:accept { "account": "accounts/{ACCOUNT_ID}", "regionCode": "{REGION_CODE}" }
Başarılı bir çağrı, boş bir yanıt gövdesi döndürür ve hesabın Hizmet Şartları sözleşme durumunu günceller.
Satıcıları, Hizmet Şartları'nı (üçüncü taraf sağlayıcılar için) kabul etmeye yönlendirme
Diğer işletmeler için bağımsız Merchant Center hesaplarını yöneten bir üçüncü taraf sağlayıcı (3P) iseniz Hizmet Şartları'nı onlar adına kabul etmemelisiniz. Bunun yerine şunları yapmalısınız:
En son Hizmet Şartları'nı alma: Satıcının
termsOfService.retrieveLatest
regionCode
veMERCHANT_CENTER
türü için arama yaparak kabul etmeleri gerekebilecek en son Hizmet Şartları sürümünün ayrıntılarını alın.Örnek İstek:
GET https://merchantapi.googleapis.com/accounts/v1beta/termsOfService:retrieveLatest?regionCode={REGION_CODE}&kind=MERCHANT_CENTER
Örnek yanıt:
{ "name": "{termsOfService/VERSION}", "regionCode": "{REGION_CODE}", "kind": "MERCHANT_CENTER", "fileUri": "https://www.google.com/intl/{REGION_CODE}/policies/merchants/terms/" }
Hizmet Şartları'nı gösterin: Uygulamanızın kullanıcı arayüzünde satıcıya Hizmet Şartları'nın tam metnini göstermek için yanıttaki
fileUri
simgesini kullanın.Satıcı kabulü alma: Satıcı, kullanıcı arayüzünüzdeki şartları açıkça kabul etmelidir.
API'yi kullanarak kabulü kaydedin: Satıcı kabul ettikten sonra 1. adımda alınan Hükümler ve Koşullar'ın
name
, satıcınınACCOUNT_ID
veregionCode
kullanılaraktermsOfService.accept
çağrısı yapın.Örnek İstek:
POST https://merchantapi.googleapis.com/accounts/v1beta/{name={termsOfService/VERSION}}:accept { "account": "accounts/{MERCHANT_ACCOUNT_ID}", "regionCode": "{REGION_CODE}" }
Belirli bir hesap için Hizmet Şartları Sözleşmesi'ni kabul etmek üzere kullanabileceğiniz bir örnek aşağıda verilmiştir (satıcı kabul ettikten sonra):
Java
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.accounts.v1beta.AcceptTermsOfServiceRequest;
import com.google.shopping.merchant.accounts.v1beta.TermsOfServiceServiceClient;
import com.google.shopping.merchant.accounts.v1beta.TermsOfServiceServiceSettings;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;
/** This class demonstrates how to accept the TermsOfService agreement in a given account. */
public class AcceptTermsOfServiceSample {
public static void acceptTermsOfService(String accountId, String tosVersion, String regionCode)
throws Exception {
// Obtains OAuth token based on the user's configuration.
GoogleCredentials credential = new Authenticator().authenticate();
// Creates service settings using the credentials retrieved above.
TermsOfServiceServiceSettings tosServiceSettings =
TermsOfServiceServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
// Calls the API and catches and prints any network failures/errors.
try (TermsOfServiceServiceClient tosServiceClient =
TermsOfServiceServiceClient.create(tosServiceSettings)) {
// The parent has the format: accounts/{account}
AcceptTermsOfServiceRequest request =
AcceptTermsOfServiceRequest.newBuilder()
.setName(String.format("termsOfService/%s", tosVersion))
.setAccount(String.format("accounts/%s", accountId))
.setRegionCode(regionCode)
.build();
System.out.println("Sending request to accept terms of service...");
tosServiceClient.acceptTermsOfService(request);
System.out.println("Successfully accepted terms of service.");
} catch (Exception e) {
System.out.println(e);
}
}
public static void main(String[] args) throws Exception {
Config config = Config.load();
// See GetTermsOfServiceAgreementStateSample to understand how to check which version of the
// terms of service needs to be accepted, if any.
// Likewise, if you know that the terms of service needs to be accepted, you can also simply
// call RetrieveLatestTermsOfService to get the latest version of the terms of service.
// Region code is either a country when the ToS applies specifically to that country or 001 when
// it applies globally.
acceptTermsOfService(config.getAccountId().toString(), "VERSION_HERE", "REGION_CODE_HERE");
}
}
PHP
use Google\ApiCore\ApiException;
use Google\Shopping\Merchant\Accounts\V1beta\AcceptTermsOfServiceRequest;
use Google\Shopping\Merchant\Accounts\V1beta\Client\TermsOfServiceServiceClient;
/**
* Demonstrates how to accept the TermsOfService agreement in a given account.
*/
class AcceptTermsOfService
{
/**
* Accepts the Terms of Service agreement.
*
* @param string $accountId The account ID.
* @param string $tosVersion The Terms of Service version.
* @param string $regionCode The region code.
* @return void
*/
public static function acceptTermsOfService($accountId, $tosVersion, $regionCode): void
{
// Get OAuth credentials.
$credentials = Authentication::useServiceAccountOrTokenFile();
// Create client options.
$options = ['credentials' => $credentials];
// Create a TermsOfServiceServiceClient.
$tosServiceClient = new TermsOfServiceServiceClient($options);
try {
// Prepare the request.
$request = new AcceptTermsOfServiceRequest([
'name' => sprintf("termsOfService/%s", $tosVersion),
'account' => sprintf("accounts/%s", $accountId),
'region_code' => $regionCode,
]);
print "Sending request to accept terms of service...\n";
$tosServiceClient->acceptTermsOfService($request);
print "Successfully accepted terms of service.\n";
} catch (ApiException $e) {
print $e->getMessage();
}
}
/**
* Helper to execute the sample.
*
* @return void
*/
public function callSample(): void
{
$config = Config::generateConfig();
// Replace with actual values.
$tosVersion = "132";
$regionCode = "US";
self::acceptTermsOfService($config['accountId'], $tosVersion, $regionCode);
}
}
// Run the script
$sample = new AcceptTermsOfService();
$sample->callSample();
Python
from examples.authentication import configuration
from examples.authentication import generate_user_credentials
from google.shopping.merchant_accounts_v1beta import AcceptTermsOfServiceRequest
from google.shopping.merchant_accounts_v1beta import TermsOfServiceServiceClient
# Replace with your actual values.
_ACCOUNT_ID = configuration.Configuration().read_merchant_info()
_TOS_VERSION = ( # Replace with the Terms of Service version to accept
"VERSION_HERE"
)
_REGION_CODE = "US" # Replace with the region code
def accept_terms_of_service():
"""Accepts the Terms of Service agreement for a given account."""
credentials = generate_user_credentials.main()
client = TermsOfServiceServiceClient(credentials=credentials)
# Construct the request
request = AcceptTermsOfServiceRequest(
name=f"termsOfService/{_TOS_VERSION}",
account=f"accounts/{_ACCOUNT_ID}",
region_code=_REGION_CODE,
)
try:
print("Sending request to accept terms of service...")
client.accept_terms_of_service(request=request)
print("Successfully accepted terms of service.")
except RuntimeError as e:
print(e)
if __name__ == "__main__":
accept_terms_of_service()
Üçüncü taraf sağlayıcıların dikkat etmesi gereken noktalar
Üçüncü taraf sağlayıcı olarak, müşteri hesaplarının veya bağımsız hesapların Hizmet Şartları'nı yönetebilirsiniz.
Müşteri hesaplarının Hizmet Şartları'nı yönetme
Gelişmiş hesap yönetiyorsanız ve farklı işletmeler için müşteri hesapları oluşturuyorsanız:
- Gelişmiş hesap kabulü: Gelişmiş bir hesap, müşteri hesaplarına hesap toplama hizmeti sağlıyorsa gelişmiş hesap tarafından kabul edilen Hizmet Şartları, bu hizmeti kullanan tüm müşteri hesapları için de geçerli olur.
- Görüntüleme ve izin: Gelişmiş hesabın kabulü müşteri hesaplarını kapsasa bile, her bir müşteri hesabının gerçek işletme sahibine ilgili Google Merchant Center Hizmet Şartları'nı göstermek en iyi uygulamadır (ve yasal bir beklenti olabilir). Kabul için API çağrısı gelişmiş hesap düzeyinde yapılsa bile bu şartları anladıklarına ve kabul ettiklerine dair açık rızalarını almanız gerekir.
- Müşteri hesabı durumunu kontrol etme: Hizmet Şartları durumunu doğrulamak ve gelişmiş hesabın sözleşmesi kapsamında olup olmadığını ya da doğrudan işlem yapılması gerekip gerekmediğini görmek için belirli bir müşteri hesabında
termsOfServiceAgreementStates.retrieveForApplication
kullanın.
Bağımsız hesapların Hizmet Şartları'nı yönetme
Satıcıları Hizmet Şartları'nı kabul etmeye yönlendirme başlıklı makalede ayrıntılı olarak açıklandığı gibi, bir işletmenin bağımsız bir Merchant Center hesabı oluşturmasına veya yönetmesine yardımcı olduğunuzda bu işletmenin (hesap sahibi) Hizmet Şartları'nı şahsen kabul etmesi gerekir. Kullanıcı arayüzünüz üzerinden açık rıza verdikten sonra Hizmet Şartları'nı alıp görüntüleyerek ve ardından kullanıcı adına termsOfService.accept
yöntemini çağırarak bu işlemi kolaylaştırırsınız.