Konta testowe w Merchant API

Funkcja kont testowych interfejsu Merchant API zapewnia bezpieczne i odizolowane środowisko do dokładnego testowania integracji przed ich wdrożeniem w środowisku produkcyjnym. Korzystając z kont testowych w piaskownicy, możesz eksperymentować z wywołaniami interfejsu API, sprawdzać poprawność kodu i identyfikować potencjalne problemy na wczesnym etapie cyklu programowania bez wpływu na dane produkcyjne, zakłócania operacji w czasie rzeczywistym lub nieumyślnego naruszania zasad Merchant Center.

Wymagania wstępne

Zanim utworzysz konta testowe i zaczniesz z nich korzystać, musisz spełnić te wymagania:

  • Konto Merchant Center: musisz mieć konto Merchant Center.
  • Dostęp do interfejsu Merchant API: musisz być zarejestrowanym użytkownikiem interfejsu Merchant API.

Zalety kont testowych

Korzystanie z kont testowych zapewnia kilka kluczowych korzyści:

  • Prosta konfiguracja: zakładanie konta testowego jest mało skomplikowane i pozwala szybko rozpocząć testowanie funkcji i integracji.
  • Integralność danych i bezpieczeństwo: Dane produkcyjne pozostają chronione, a ryzyko naruszenia zasad na kontach produkcyjnych jest wyeliminowane.
  • Wydajność testowania: możesz testować różne scenariusze i przypadki skrajne bez konieczności utrzymywania równoległego konta produkcyjnego do celów testowych.
  • Natychmiastowa weryfikacja oferty: skorzystaj z automatycznego zwolnienia z obowiązku zgłaszania praw do strony głównej i jej weryfikacji w przypadku kont testowych, aby szybko przetestować wstawianie ofert. W przypadku kont testowych oferty są domyślnie zatwierdzane.
  • Realistyczna symulacja: środowisko odzwierciedla zachowanie produkcyjne w przypadku kluczowych funkcji, takich jak przesyłanie produktów i zarządzanie asortymentem, co zapewnia wiarygodność wyników testów.
  • Płynniejsza migracja interfejsu API: konta testowe ułatwiają bezproblemowe przejście z Content API na Merchant API lub z jednej wersji interfejsu API na inną, umożliwiając równoległą weryfikację.

Jak utworzyć konta testowe

Konta testowe są tworzone za pomocą określonej 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 wywołania interfejsu API.
  • TEST_ACCOUNT_NAME: nazwa konta testowego. Zalecamy używanie zrozumiałych nazw, które sugerują, że są one używane do testowania. Na przykład nazwa konta testowego może zawierać słowo test.

Podczas tworzenia konta testowego wymagane są te pola:

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

Pomyślne wywołanie zwraca zasób Account, który zawiera unikalny identyfikator accountId i nazwę zasobu nowego konta testowego:

  {
    "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"
}'

Zaawansowane konta testowe i subkonta

Metoda accounts.createTestAccount zawsze tworzy samodzielne konto testowe. Aby skonfigurować hierarchię konta zaawansowanego na potrzeby testowania:

  1. Utwórz samodzielne konto testowe, używając adresu accounts.createTestAccount.
  2. Przekształć to samodzielne konto testowe w konto zaawansowane w Merchant Center, postępując zgodnie ze wskazówkami podanymi w artykule w Centrum pomocy Przekształcanie konta w konto zaawansowane.
  3. Utwórz dodatkowe testowe subkonta na zaawansowanym koncie testowym, wywołując metodę accounts.createAndConfigure i określając zaawansowane konto testowe jako dostawcę accountAggregation. Każde subkonto utworzone na koncie dostawcy testowego jest automatycznie tworzone jako konto testowe (testAccount: true).

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 perspektywy 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 nie jest możliwe.
  • Przekształcanie konta i konta zaawansowane: nie możesz przekształcić zwykłego (aktywnego) konta – samodzielnego ani zaawansowanego – w konto testowe ani konta testowego w konto aktywne. Nie możesz też bezpośrednio utworzyć zaawansowanego konta testowego za pomocą accounts.createTestAccount. Najpierw utwórz samodzielne konto testowe, a następnie przekształć je w konto zaawansowane.
  • Brak publicznego wyświetlania: dane przesłane na konto testowe nigdy nie zostaną opublikowane na żadnej platformie Google, np. w wyszukiwarce czy reklamach produktowych.
  • Punkty końcowe z ograniczeniami: nie możesz używać kont testowych, gdy korzystasz 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:

  • Programowanie najpierw w piaskownicy: zawsze sprawdzaj nowe funkcje integracji na koncie testowym, zanim zastosujesz je w środowisku produkcyjnym.
  • Zautomatyzowane testowanie integracji: używaj kont testowych jako stabilnych środowisk do przeprowadzania automatycznych testów regresji.
  • Nazwy kont testowych: użyj account_name, aby wskazać przeznaczenie każdego konta testowego, np. „Testowanie migracji” lub „Konto testowe integracji”.