Bezpośrednie wywołania interfejsu API

W tym podejściu do interakcji z interfejsem Merchant API wysyłasz nieprzetworzone żądania bezpośrednio do punktów końcowych interfejsu API, zwykle za pomocą protokołu HTTP(S). Ręcznie obsługujesz takie aspekty jak tworzenie treści żądania, ustawianie nagłówków (w tym uwierzytelniania) i parsowanie odpowiedzi.

Krok 1. Zarejestruj się jako programista

Aby korzystać z interfejsu Merchant API, musisz zarejestrować dane kontaktowe dewelopera.

Rejestracja umożliwia:

  • Tworzy kontakt techniczny dla konta Merchant Center, przypisując użytkownikowi rolę API developer. Dzięki temu Google może wysyłać ważne aktualizacje dotyczące konkretnie interfejsu API i funkcji, z których korzysta deweloper, np. ogłoszenia o usługach i informacje o nowych funkcjach, które mogą być mniej interesujące dla osób niebędących deweloperami.
  • Umożliwia korzystanie z wielu kont sprzedawców bez konieczności wielokrotnej rejestracji. Podczas rejestracji identyfikator projektu Google Cloud używany do uwierzytelniania w interfejsie Merchant API jest powiązany z kontem Merchant Center, które ma kontakty techniczne (API developer). Dzięki temu możesz otrzymywać ważne aktualizacje dotyczące wszystkich kont sprzedawcy, którymi zarządzasz, o ile uwierzytelnianie odbywa się za pomocą zarejestrowanego projektu Google Cloud.

Podczas rejestracji zapoznaj się z wymaganiami wstępnymi i ograniczeniami opisanymi w sekcji Rejestracja.

Aby zarejestrować się za pomocą metody developerRegistration.registerGcp, możesz zacząć od tego przykładu, zastępując {DEVELOPER_EMAIL} odpowiednim adresem e-mail w treści żądania.

POST https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/developerRegistration:registerGcp

{
  "developerEmail": "{DEVELOPER_EMAIL}"
}

Wywołanie zakończone pomyślnie zwraca zasób DeveloperRegistration, który potwierdza połączenie między Twoim projektem a kontem.

{
  "name": "accounts/{ACCOUNT_ID}/developerRegistration",
  "gcpIds": [
    "123456789012345"
  ]
}

Krok 2. Zarządzanie kontaktami dewelopera i uprawnieniami

Podczas rejestracji:

  • Jeśli adres e-mail należy do użytkownika konta Merchant Center, otrzyma on rolę API_DEVELOPER.
  • Jeśli adres e-mail nie należy do istniejącego użytkownika, na ten adres zostanie wysłane zaproszenie. Aby zostać dodanym jako nowy użytkownik z rolą API_DEVELOPER, odbiorca musi zaakceptować zaproszenie.

Po wstępnej rejestracji zalecamy dodanie kilku deweloperów i przyznanie im dodatkowych uprawnień dostępu.

Krok 2a. Przyznawanie dodatkowych uprawnień

Rola API_DEVELOPER jest wymagana do otrzymywania ważnych powiadomień, ale ma minimalne uprawnienia w Merchant Center. Aby umożliwić temu użytkownikowi wykonywanie innych wywołań interfejsu API lub zarządzanie ustawieniami w interfejsie Merchant Center, musisz przyznać mu dodatkowe role, takie jak STANDARD lub ADMIN. Więcej informacji znajdziesz w sekcji Typy dostępu.

Uprawnienia dostępu użytkownika możesz zaktualizować za pomocą metody accounts.users.patch.

Poniższy przykład pokazuje, jak zaktualizować użytkownika, aby przyznać mu role ADMINAPI_DEVELOPER. Dzięki temu będą mogli w pełni zarządzać kontem i otrzymywać powiadomienia dotyczące interfejsu API.

PATCH https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/users/{DEVELOPER_EMAIL}?update_mask=access_rights
{
  "access_rights": [
    "ADMIN",
    "API_DEVELOPER"
  ]
}

Krok 2b. Dodawanie deweloperów rezerwowych

Aby zapobiec przerwaniu dostępu do interfejsu API w przypadku, gdy główna osoba kontaktowa dewelopera opuści Twoją organizację, dodaj co najmniej jednego dewelopera rezerwowego.

Użytkownika możesz dodać za pomocą metody accounts.users.create, a zaktualizować za pomocą metody accounts.users.patch. Zalecamy przyznanie temu użytkownikowi ról ADMINAPI_DEVELOPER.

Krok 3. Tworzenie podstawowego źródła danych o produktach

Aby wstawić produkt, musisz mieć podstawowe źródło danych o produktach. Poniższa prośba pokazuje, jak utworzyć źródło danych, którego możesz użyć do wstawienia produktu na konto:

POST https://merchantapi.googleapis.com/datasources/v1/accounts/{ACCOUNT_ID}/dataSources

{
  "primaryProductDataSource": {
    "contentLanguage": "en",
    "countries": [
      "US"
    ],
    "feedLabel": "US"
  },
  "name": "primary-data-source",
  "displayName": "Primary Products Data Source"
}

Zastąp {ACCOUNT_ID} identyfikatorem utworzonego konta Merchant Center.

Po pomyślnym uruchomieniu tego żądania powinna pojawić się taka odpowiedź:

{
  "name": "accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID}",
  "dataSourceId": "{DATASOURCE_ID}",
  "displayName": "Primary Products Data Source",
  "primaryProductDataSource": {
    "feedLabel": "US",
    "contentLanguage": "en",
    "countries": [
      "US"
    ],
    "defaultRule": {
      "takeFromDataSources": [
        {
          "self": true
        }
      ]
    }
  },
  "input": "API"
}

Skopiuj wartość pola name. Będzie on potrzebny do wstawienia produktu.

To źródło danych możesz wyświetlić w interfejsie Merchant Center. Więcej informacji znajdziesz w artykule Jak znaleźć kartę Źródła danych.

Krok 4. Wstaw produkt

Po utworzeniu źródła danych spróbuj wstawić do niego produkt. Uruchom to polecenie, podając prawidłową wartość ACCOUNT_ID. Zastąp {DATASOURCE_NAME} skopiowaną wcześniej wartością.

POST https://merchantapi.googleapis.com/products/v1/accounts/{ACCOUNT_ID}/productInputs:insert?dataSource={DATASOURCE_NAME}
{
  "contentLanguage": "en",
  "feedLabel": "US",
  "name": "Red T-shirt",
  "productAttributes": {
    "gender": "MALE",
    "brand": "New brand"
  },
  "offerId": "tshirt-123"
}

Po pomyślnym uruchomieniu tego żądania powinna pojawić się taka odpowiedź:

{
  "name": "accounts/{ACCOUNT_ID}/productInputs/en~US~tshirt-123",
  "product": "accounts/{ACCOUNT_ID}/products/en~US~tshirt-123",
  "offerId": "tshirt-123",
  "contentLanguage": "en",
  "feedLabel": "US",
  "productAttributes": {
    "brand": "New brand",
    "gender": "MALE"
  }
}

Identyfikator nowo utworzonego produktu to en~US~tshirt-123. Aby pobrać szczegółowe informacje o tym produkcie, możesz użyć metody accounts.products.get. Możesz też wyświetlić ten produkt w interfejsie Merchant Center. Zobacz Wyświetlanie danych produktów.