Прямые вызовы API

При таком подходе к взаимодействию с Merchant API вы отправляете необработанные запросы непосредственно к конечным точкам API, обычно по протоколу HTTP(S). Вы вручную обрабатываете такие аспекты, как формирование тела запроса, настройка заголовков (включая аутентификацию) и анализ ответа.

Шаг 1. Зарегистрируйтесь как разработчик

Чтобы использовать Merchant API, необходимо зарегистрировать контактную информацию разработчика.

Регистрация позволяет:

  • Создает технический контакт для аккаунта Merchant Center, назначая пользователю роль API developer. Это позволяет Google отправлять важные обновления, касающиеся API и функций, которые использует разработчик, например служебные уведомления и информацию о новых функциях, которые могут быть менее интересны неразработчикам.
  • Позволяет работать с несколькими аккаунтами продавца без необходимости регистрироваться несколько раз. При регистрации идентификатор проекта Google Cloud, используемый для аутентификации в Merchant API, связывается с вашим аккаунтом Merchant Center, в котором указаны технические контакты (API developer). Таким образом, вы сможете получать важные обновления для всех управляемых вами аккаунтов продавцов, если аутентификация выполняется с помощью зарегистрированного проекта Google Cloud.

При регистрации соблюдайте требования и ограничения, описанные в разделе Регистрация.

Чтобы зарегистрироваться с помощью метода developerRegistration.registerGcp, вы можете начать с этого примера, заменив {DEVELOPER_EMAIL} на соответствующий адрес электронной почты в теле запроса.

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

{
  "developerEmail": "{DEVELOPER_EMAIL}"
}

При успешном вызове возвращается ресурс DeveloperRegistration, который подтверждает связь между проектом и аккаунтом.

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

Шаг 2. Управление контактами и разрешениями разработчиков

При регистрации:

  • Если адрес электронной почты принадлежит пользователю в аккаунте Merchant Center, этому пользователю предоставляется роль API_DEVELOPER.
  • Если адрес электронной почты не принадлежит существующему пользователю, на этот адрес отправляется приглашение. Получатель должен принять приглашение, чтобы стать новым пользователем с ролью "API_DEVELOPER".

После первоначальной регистрации рекомендуем добавить нескольких разработчиков и предоставить им дополнительные права доступа.

Шаг 2а. Предоставьте дополнительные разрешения

Роль API_DEVELOPER необходима для получения важных уведомлений, но у нее минимальные разрешения в Merchant Center. Чтобы разрешить пользователю выполнять другие вызовы API или управлять настройками в интерфейсе Merchant Center, необходимо предоставить ему дополнительные роли, например STANDARD или ADMIN. Подробнее о типах доступа…

Вы можете изменить права доступа пользователя с помощью метода accounts.users.patch.

В примере ниже показано, как предоставить пользователю роли ADMIN и API_DEVELOPER. Это позволит им полностью управлять аккаунтом и получать сообщения, связанные с API.

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

Шаг 2б. Добавьте резервных разработчиков

Чтобы не потерять доступ к API, если основной разработчик покинет организацию, добавьте хотя бы одного резервного разработчика.

Вы можете добавить пользователя с помощью метода accounts.users.create или обновить его с помощью метода accounts.users.patch. Рекомендуем назначить этому пользователю роли ADMIN и API_DEVELOPER.

Шаг 3. Как создать основной источник данных о товарах

Чтобы добавить товар, вам нужен основной источник данных о товарах. В примере ниже показано, как создать источник данных, который можно использовать для добавления товара в аккаунт.

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

Замените {ACCOUNT_ID} на идентификатор созданного вами аккаунта Merchant Center.

После успешного выполнения этого запроса вы должны увидеть следующий ответ:

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

Скопируйте значение поля name. Он понадобится вам, чтобы вставить товар.

Этот источник данных можно посмотреть в интерфейсе Merchant Center. Подробнее о том, как найти вкладку "Источники данных"…

Шаг 4. Вставить товар

После создания источника данных попробуйте добавить в него товар. Выполните следующую команду, указав правильное значение ACCOUNT_ID. Замените {DATASOURCE_NAME} значением, которое вы скопировали ранее.

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

После успешного выполнения этого запроса вы должны увидеть следующий ответ:

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

Идентификатор нового товара – en~US~tshirt-123. Чтобы получить подробные сведения об этом товаре, используйте метод accounts.products.get. Вы также можете посмотреть этот товар в интерфейсе Merchant Center. Подробнее о том, как просматривать сведения о товарах в Merchant Center…