Konta testowe w Merchant API

Funkcja kont testowych Merchant API zapewnia bezpieczną i odizolowaną przestrzeń do dokładnego testowania integracji przed wdrożeniem ich w środowisku produkcyjnym. Korzystając z kont testowych w środowisku piaskownicy, możesz eksperymentować z wywołaniami interfejsu API, weryfikować kod i identyfikować potencjalne problemy na wczesnym etapie cyklu rozwoju bez wpływu na dane produkcyjne, zakłócania operacji w czasie rzeczywistym ani nieumyślnego naruszania zasad Merchant Center.

Wymagania wstępne

Zanim utworzysz i zaczniesz używać kont testowych, musisz spełnić te wymagania:

Korzyści z kont testowych

Korzystanie z kont testowych ma kilka kluczowych zalet:

  • Prosta konfiguracja: konfiguracja konta testowego to proces o niskim stopniu złożoności, który pozwala szybko rozpocząć testowanie funkcji i integracji.
  • Integralność i bezpieczeństwo danych: dane produkcyjne pozostają chronione, a ryzyko naruszenia zasad na kontach produkcyjnych jest wyeliminowane.
  • Wydajność testowania: możesz testować wiele różnych scenariuszy i przypadków brzegowych bez konieczności prowadzenia równoległego konta produkcyjnego na potrzeby testów.
  • Natychmiastowa weryfikacja oferty: skorzystaj z automatycznego zwolnienia z wymogu zgłaszania i weryfikacji na stronie głównej w przypadku kont testowych, aby szybko testować wstawianie ofert. W przypadku kont testowych oferty są zatwierdzane domyślnie.
  • Realistyczna symulacja: środowisko odzwierciedla zachowanie środowiska produkcyjnego w przypadku kluczowych funkcji, takich jak przesyłanie produktów i zarządzanie asortymentem, co zapewnia wiarygodność wyników testów.
  • Płynniejsze migracje interfejsów API: konta testowe ułatwiają pewne i płynne przejście z Content API na Merchant API lub z jednej wersji interfejsu API na inną, umożliwiając równoległą weryfikację.

Jak tworzyć konta testowe

Konta testowe są tworzone za pomocą specjalnej metody niestandardowej w interfejsie Merchant API.

Użyj metody accounts.createTestAccount:

  POST https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}:createTestAccount
  Content-Type: application/json
  Authorization: Bearer {ACCESS_TOKEN}"

  {
    "account_name": "{TEST_ACCOUNT_NAME}",
    "time_zone": {
      "id": "America/Los_Angeles"
    },
    "language_code": "en-US"
  }

Zastąp te elementy:

  • ACCOUNT_ID: Twój identyfikator w Merchant Center.
  • ACCESS_TOKEN: token autoryzacji do wykonania wywołania interfejsu API.
  • TEST_ACCOUNT_NAME: nazwa konta testowego. Zalecamy używanie nazw, które sugerują, że są one używane do testowania. Na przykład w nazwie konta testowego umieść słowo test.

Podczas tworzenia konta testowego musisz podać te pola:

  • time_zone: strefa czasowa raportowania i wyświetlania na koncie.
  • language_code: kod języka BCP-47 dla konta, np. en-US.

Wywołanie zakończone pomyślnie zwraca zasób Account, który zawiera unikalny identyfikator accountId nowego konta testowego i nazwę zasobu:

  {
    "name": "accounts/{TEST_ACCOUNT_ID}",
    "accountId": "{TEST_ACCOUNT_ID}",
    "accountName": "{TEST_ACCOUNT_NAME}",
    "adultContent": false,
    "testAccount": true,
    "timeZone": {
      "id": "America/Los_Angeles"
    },
    "languageCode": "en-US"
  }

Poniższe przykłady kodu pokazują, jak utworzyć konto testowe:

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.AccountsServiceSettings;
import com.google.shopping.merchant.accounts.v1.CreateTestAccountRequest;
import com.google.type.TimeZone;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;

/**
 * This class demonstrates how to create a new Merchant Center test account.
 *
 * <p>For more information refer to:
 * https://developers.google.com/merchant/api/guides/accounts/test-accounts
 */
public class CreateTestAccountSample {

  // Method to create a test account.
  public static void createTestAccount(Config config, String newAccountName) 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 test account to be created.
      Account account =
          Account.newBuilder()
              .setAccountName(newAccountName)
              .setTimeZone(TimeZone.newBuilder().setId("Europe/Zurich"))
              .setLanguageCode("en-US")
              .build();

      // Creates parent to identify where to insert the account.
      String parent = String.format("accounts/%s", config.getAccountId());

      // Create the request message.
      CreateTestAccountRequest request =
          CreateTestAccountRequest.newBuilder().setParent(parent).setAccount(account).build();

      System.out.println("Sending Create Test Account request:");
      Account response = accountsServiceClient.createTestAccount(request);

      System.out.println("Created Test Account below:");
      System.out.println(response);
    } catch (Exception e) {
      System.err.println("Error during test account creation:");
      e.printStackTrace();
    }
  }

  // Main method to run the sample.
  public static void main(String[] args) throws Exception {
    Config config = Config.load();

    // This is the name of the new test account to be created.
    String newAccountName = "MyNewTestShop";

    createTestAccount(config, newAccountName);
  }
}

cURL

curl -X POST \
"https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/:createTestAccount" \
-H "Authorization: Bearer {ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
 "account_name": "{TEST_ACCOUNT_NAME}",
 "time_zone": {
   "id": "America/Los_Angeles"
   },
 "language_code": "en-US"
}'

Ograniczenia

Konta testowe są przeznaczone do weryfikacji funkcjonalnej i mają określone ograniczenia:

  • Liczba kont testowych: możesz utworzyć maksymalnie 5 kont testowych na konto Google. Konta testowe wliczają się do domyślnego limitu kont Merchant Center na konto Google.
  • Integracja z limitami Merchant API: z punktu widzenia limitów interfejsu API Merchant API traktuje konta testowe jako konta produkcyjne. Konta testowe podlegają tym samym limitom co konta produkcyjne. Zwiększenie limitu na kontach testowych jest niemożliwe.
  • Konta zaawansowane: nie możesz tworzyć zaawansowanych kont testowych ani przekształcać konta zaawansowanego w konto testowe.
  • Brak publicznego wyświetlania: dane przesłane na konto testowe nigdy nie będą publikowane na żadnej platformie Google, np. w reklamach w wyszukiwarce lub reklamach produktowych.
  • Ograniczone punkty końcowe: nie możesz używać kont testowych, korzystając z niektórych funkcji, takich jak:
  • Ograniczenia dotyczące łączenia: kont testowych nie można łączyć z innymi kontami Google Ads ani kontami w Profilu Firmy w Google.
  • Brak rejestracji kont testowych: nie możesz zarejestrować kont testowych.

Sprawdzone metody

Podczas korzystania z kont testowych zalecamy stosowanie tych sprawdzonych metod:

  • Najpierw piaskownica: zawsze sprawdzaj nowe funkcje integracji na koncie testowym, zanim zastosujesz je w środowisku produkcyjnym.
  • Zautomatyzowane testy integracyjne: używaj kont testowych jako stabilnych środowisk do przeprowadzania zautomatyzowanych testów regresji.
  • Nazewnictwo kont testowych: użyj znaku account_name, aby wskazać przeznaczenie każdego konta testowego, np. „Testowanie migracji” lub „Konto testowe integracji”.