Merchant Center Hizmet Şartları sözleşmelerini yönetme

Merchant Center'ı ve özelliklerini kullanmak için işletmenizin bulunduğu konumun Merchant Center Hizmet Şartları'nı kabul etmeniz gerekir. Bu sözleşmeler, Merchant Center hizmetlerini kullanmayla ilgili 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 amacıyla Merchant API'yi nasıl kullanabileceğiniz açıklanmaktadır.

Şunları yapabilirsiniz:

  • Bir hesabın mevcut Hizmet Şartları sözleşmesi durumunu kontrol edin.
  • Satıcıları gerekli Hizmet Şartları'nı kabul etmeye yönlendirin.
  • Müşteri hesapları için servis 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 hesabı oluşturduktan sonra, kullanıcı arayüzünü veya API'yi kullanarak hesapta değişiklik yapabilirsiniz (ör. işletme bilgilerinizi güncelleme, kullanıcıları yönetme vb.).

Birden fazla hesabı yönetmeniz gerekiyorsa Merchant API'yi kullanarak müşteri hesapları oluşturabilirsiniz. Hesap oluşturma başlıklı makaleyi inceleyin.

Bir hesabın Hizmet Şartları sözleşme durumunu kontrol etme

Bir satıcı Merchant Center'ı tam olarak kullanmadan önce veya satıcının mevcut sözleşme durumunu doğrulamanız gerekiyorsa 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 sonra güncellendiyse kabul etmeniz gereken en yeni sürümü döndürür.

Aşağıda örnek bir istek verilmiştir:

GET https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/termsOfServiceAgreementStates:retrieveForApplication

Başarılı bir çağrı, TermsOfServiceAgreementState kaynağı 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 olacak.
  • accepted: Hesabın kabul ettiği Hizmet Şartları sürümüyle ilgili ayrıntılar. termsOfService kaynak adı (ör. termsOfService/132) ve şartları acceptedBy bilgisi de bu ayrıntılara dahildir. Ayrıca, daha yeni bir Hizmet Şartları sürümü required ise validUntil tarihini de içerebilir.
  • required: Hesabın kabul etmesi gereken Hizmet Şartları sürümüyle ilgili ayrıntılar. Buna termsOfService kaynak adı ve kullanıcıların okuyabileceği Hizmet Şartları dokümanına yönlendiren bir tosFileUri dahildir.

Ö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, satıcıyı bunu kabul etmeye yönlendirmeniz gerekir.

Belirli bir hesap ve ülke için Hizmet Şartları sözleşmesinin 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.v1.GetTermsOfServiceAgreementStateRequest;
import com.google.shopping.merchant.accounts.v1.TermsOfServiceAgreementState;
import com.google.shopping.merchant.accounts.v1.TermsOfServiceAgreementStateName;
import com.google.shopping.merchant.accounts.v1.TermsOfServiceAgreementStateServiceClient;
import com.google.shopping.merchant.accounts.v1.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\V1\Client\TermsOfServiceAgreementStateServiceClient;
use Google\Shopping\Merchant\Accounts\V1\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_v1 import GetTermsOfServiceAgreementStateRequest
from google.shopping.merchant_accounts_v1 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 edebilmek için en güncel 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:

  1. required olan hizmet şartı olup olmadığını belirlemek için termsOfServiceAgreementStates.retrieveForApplication numaralı telefonu arayın.
  2. Hizmet Şartları gerekiyorsa required alanındaki termsOfService adını (ör. termsOfService/132) not edin.
  3. 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ülen regionCode gerekir.

    Aşağıda örnek bir istek verilmiştir:

    POST https://merchantapi.googleapis.com/accounts/v1/{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ı kabul etmeye yönlendirme (üçüncü taraf sağlayıcılar için)

Diğer işletmelerin Merchant Center hesaplarını yöneten bir üçüncü taraf sağlayıcıysanız (3P) Hizmet Şartları'nı bu işletmeler adına kabul etmemeniz gerekir. Bunun yerine şunları yapmalısınız:

  1. En son Hizmet Şartları'nı alma: Satıcının kabul etmesi gerekebilecek en son Hizmet Şartları sürümünün ayrıntılarını almak için satıcının regionCode ve MERCHANT_CENTER türü için termsOfService.retrieveLatest yöntemini çağırın.

    Örnek İstek:

    GET https://merchantapi.googleapis.com/accounts/v1/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/"
    }
    
  2. Hizmet Şartları'nı görüntüleme: Hizmet Şartları'nın tam metnini uygulamanızın kullanıcı arayüzünde satıcıya göstermek için yanıttaki fileUri değerini kullanın.

  3. Satıcı onayı alma: Satıcı, kullanıcı arayüzünüzdeki şartları açıkça kabul etmelidir.

  4. API'yi kullanarak kabulü kaydedin: Satıcı kabul ettikten sonra 1. adımda elde edilen Hizmet Şartları'nın name, satıcının ACCOUNT_ID ve regionCode değerlerini kullanarak termsOfService.accept yöntemini çağırın.

    Örnek İstek:

    POST https://merchantapi.googleapis.com/accounts/v1/{name={termsOfService/VERSION}}:accept
    {
      "account": "accounts/{MERCHANT_ACCOUNT_ID}",
      "regionCode": "{REGION_CODE}"
    }
    

Belirli bir hesap için Hizmet Şartları sözleşmesini 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.v1.AcceptTermsOfServiceRequest;
import com.google.shopping.merchant.accounts.v1.TermsOfServiceServiceClient;
import com.google.shopping.merchant.accounts.v1.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\V1\AcceptTermsOfServiceRequest;
use Google\Shopping\Merchant\Accounts\V1\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_v1 import AcceptTermsOfServiceRequest
from google.shopping.merchant_accounts_v1 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 için özel hususlar

Üçüncü taraf sağlayıcı olarak, müşteri hesaplarının Hizmet Şartları'nı yönetebilirsiniz.

Müşteri hesapları için Hizmet Şartları'nı yönetme

Gelişmiş hesap kullanıyor 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 rıza: Gelişmiş hesabın kabulü müşteri hesaplarını kapsasa bile, ilgili Google Merchant Center Hizmet Şartları'nı her bir müşterinin gerçek işletme sahibine 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, kullanıcılardan bu şartları anladıklarına ve kabul ettiklerine dair açık rıza 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ı veya doğrudan işlem yapılması gerekip gerekmediğini görmek için belirli bir müşteri hesabında termsOfServiceAgreementStates.retrieveForApplication kullanın.

Diğer hesaplar için Hizmet Şartları'nı yönetme

Satıcıların Hizmet Şartları'nı kabul etmesine yardımcı olma bölümünde ayrıntılı olarak açıklandığı gibi, bir işletmeye kendi hesabını oluşturma veya yönetme konusunda yardımcı olduğunuzda, ilgili işletmenin (hesap sahibi) Hizmet Şartları'nı şahsen kabul etmesi gerekir . Bunu, Hizmet Şartları'nı alıp göstererek ve ardından kullanıcı arayüzünüz aracılığıyla açık rıza verdikten sonra kullanıcı adına termsOfService.accept yöntemini çağırarak yapabilirsiniz.