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 piaskownicy, możesz eksperymentować z wywołaniami interfejsu API, sprawdzać 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 konta testowe i zaczniesz z nich korzystać, musisz spełnić te wymagania:

Zalety 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 utrzymywania równoległego konta produkcyjnego na potrzeby testowania.
  • Natychmiastowa weryfikacja oferty: skorzystaj z automatycznego zwolnienia z obowiązku zgłaszania i weryfikacji strony głównej w przypadku kont testowych, aby szybko testować wstawianie ofert. Oferty są domyślnie zatwierdzane na kontach testowych.
  • Realistyczna symulacja: środowisko odzwierciedla zachowanie produkcyjne w przypadku najważniejszych funkcji, takich jak przesyłanie produktów i zarządzanie asortymentem, co zapewnia wiarygodność wyników testów.
  • Płynniejsze migracje interfejsu 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 weryfikację równoległą.

Jak utworzyć konta testowe

Konta testowe są tworzone za pomocą specjalnej metody niestandardowej w 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: 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 nazwa konta testowego powinna 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 BCP-47 na koncie, np. en-US.

Pomyślne wywołanie 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"
  }

Te 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: na 1 konto Google możesz utworzyć maksymalnie 5 kont testowych. Konta testowe są uwzględniane w domyślnym limicie kont Merchant Center na konto Google.
  • Integracja z limitami Merchant API: z perspektywy limitu interfejsu API Merchant API traktuje konta testowe jako konta produkcyjne. Konta testowe podlegają tym samym limitom co konta produkcyjne. Nie można zwiększyć limitu na kontach testowych.
  • Konta zaawansowane: nie możesz utworzyć zaawansowanych kont testowych ani przekształcić konta zaawansowanego w konto testowe.
  • Brak publicznego wyświetlania: dane przesłane na konto testowe nigdy nie będą publikowane na żadnej platformie Google, takiej jak wyszukiwarka czy reklamy produktowe.
  • Ograniczone punkty końcowe: nie możesz używać kont testowych, korzystając z niektórych funkcji, takich jak:
  • Ograniczenia dotyczące łączenia: nie możesz łączyć kont testowych z innymi kontami Google Ads ani profilami firm w Google.
  • Brak rejestracji kont testowych: nie możesz wykonać rejestracji kont testowych.

Sprawdzone metody

Podczas korzystania z kont testowych zalecamy stosowanie tych sprawdzonych metod:

  • Rozwój w piaskownicy: zawsze sprawdzaj nowe funkcje integracji na koncie testowym, zanim zastosujesz je w środowisku produkcyjnym.
  • Automatyczne testowanie integracji: używaj kont testowych jako stabilnych środowisk do przeprowadzania automatycznych testów regresyjnych.
  • Nazewnictwo kont testowych: używaj parametru account_name, aby wskazać cel każdego konta testowego, np. „Testowanie migracji” lub „Konto testowe integracji”.