API продавца представляет более надёжный и интуитивно понятный способ управления данными о товарах. Главное изменение заключается в разделении данных о товарах на два отдельных ресурса: ProductInput
для отправки данных и Product
для просмотра финальной, обработанной версии, включая статус товара и проблемы. Эта новая структура обеспечивает более предсказуемый и прозрачный опыт.
Это руководство познакомит вас с ключевыми различиями, которые помогут вам перенести интеграцию из Content API for Shopping. Подробное руководство по использованию новых функций см. в разделе «Управление товарами» .
Ключевые отличия
Ниже приведены наиболее существенные изменения в управлении товарами в Merchant API по сравнению с Content API for Shopping:
Выделенные ресурсы для входных и обработанных данных : API продавца разделяет управление товарами на два ресурса. Ресурс
ProductInput
можно использовать для добавления, обновления и удаления данных о товаре. РесурсProduct
доступный только для чтения, можно использовать для просмотра конечного товара после того, как Google обработает ваши входные данные, применит правила и объединит данные из дополнительных источников.Интегрированный статус продукта : служба
productstatuses
удалена. Проблемы с проверкой продукта и статусы назначения теперь напрямую включены в ресурсProduct
в полеproductStatus
, что упрощает поиск данных.Предсказуемые обновления товаров : новый метод
productInputs.patch
напрямую изменяет данные о конкретном товаре. Это значительное улучшение по сравнению с Content API для покупок, где обновления могли быть неожиданно перезаписаны другими загрузками фида. В Merchant API обновление сохраняется до тех пор, пока данные о конкретном товаре не будут обновлены или удалены. Обновления товаров применяются к ресурсуProductInput
, а не к обработанному ресурсуProduct
.Выберите источник данных для более эффективного управления данными : теперь все операции записи
productInputs
требуют параметра запросаdataSource
, что позволяет точно определить, какой источник данных вы изменяете. Это особенно полезно, если у вас несколько источников данных.Новые идентификаторы ресурсов : продукты теперь идентифицируются по
name
ресурса RESTful вместо поляid
. Формат:accounts/{account}/products/{product}
.Нет пользовательских пакетов : метод
custombatch
больше недоступен. Вы можете использовать асинхронные запросы или HTTP-пакетирование для отправки нескольких запросов в одном HTTP-вызове.Источники данных для любой метки фида и языка : API торговца позволяет создавать источники данных без указания метки фида и языка и, следовательно, позволяет вставлять продукт с любой меткой фида и языком.
Запросы
В этом разделе сравниваются форматы запросов для Content API for Shopping и Merchant API.
Запросить описание | API контента для покупок | API торговца |
---|---|---|
Получить продукт | GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId} | GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products/{product} |
Список продуктов | GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products | GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products |
Вставьте продукт | POST https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products | POST https://merchantapi.googleapis.com/products/v1/accounts/{account}/productInputs:insert |
Обновить продукт | PATCH https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId} | PATCH https://merchantapi.googleapis.com/products/v1/accounts/{account}/productInputs/{productinput} |
Удалить продукт | DELETE https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId} | DELETE https://merchantapi.googleapis.com/products/v1/accounts/{account}/productInputs/{productinput} |
Получить статус продукта | GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/productstatuses/{productId} | GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products/{product} |
Список статусов продукта | GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/productstatuses | GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products |
Пакетная обработка нескольких запросов | POST https://shoppingcontent.googleapis.com/content/v2.1/products/custombatch | Асинхронные запросы, HTTP-пакетирование |
Идентификаторы
Формат идентификаторов продуктов в API торговца изменился на стандартное имя ресурса REST.
Описание идентификатора | API контента для покупок | API торговца |
---|---|---|
Идентификатор продукта | Строка, состоящая из сегментов, разделенных двоеточием ( : ).Формат: channel:contentLanguage:targetCountry:offerId или channel:contentLanguage:feedLabel:offerId .Пример: online:en:US:sku123 | Строка name ресурса REST.Формат: accounts/{account}/products/{product} где {product} — это contentLanguage~feedLabel~offerId .Пример: accounts/12345/products/en~US~sku123 |
Методы
В этой таблице показаны методы API контента для покупок и их эквиваленты в API торговца.
API контента для метода покупок | Метод API торговца | Доступность и примечания |
---|---|---|
products.get | products.get | Возвращает конечный, обработанный продукт. |
products.list | products.list | Перечисляет конечные, переработанные продукты. |
products.insert | productInputs.insert | Вставляет данные о продукте. Требуется dataSource . |
products.update | productInputs.update | Поведение существенно отличается. Оно обновляет конкретный входной сигнал продукта и является постоянным. |
products.delete | productInputs.delete | Удаляет указанный ввод данных о продукте. Требуется dataSource . |
products.custombatch | Нет в наличии | Используйте асинхронные запросы или HTTP-пакетирование. |
productstatuses.get | products.get | Сервис productstatuses удалён. Информация о статусе теперь является частью ресурса Product . |
productstatuses.list | products.list | Сервис productstatuses удалён. Информация о статусе теперь является частью ресурса Product . |
productstatuses.custombatch | Нет в наличии | Использовать [асинхронный |
запросы](/merchant/api/samples/insert-product-input-async) или HTTP-пакетирование . |
Подробные изменения полей
В этой таблице выделены важные поля, которые были изменены, добавлены или удалены в API торговца.
API контента для покупок | API торговца | Описание |
---|---|---|
id | name | Основным идентификатором продукта теперь является name ресурса REST. |
Атрибуты спецификации данных о продукте верхнего уровня (например, title , price , link ) | объект productAttributes | Атрибуты продукта, такие как title , price и link , больше не являются полями верхнего уровня. Теперь они сгруппированы в объекте productAttributes как в ресурсах Product , так и в ресурсах ProductInput . Это обеспечивает более чёткую и организованную структуру ресурсов. |
targetCountry | feedLabel | В названии ресурса теперь используется feedLabel вместо targetCountry для соответствия функциональности Merchant Center. |
feedId | dataSource (параметр запроса) | Имя dataSource теперь является обязательным параметром запроса для всех методов записи productInputs ( insert , update , delete ). |
channel | Недоступно. Используйте legacy_local для продуктов, доступных только локально. | Поле channel больше не присутствует в API продавца. Для товаров с LOCAL каналом в Content API for Shopping вместо этого следует установить поле legacy_local в значение true. |
Нет в наличии | versionNumber | Новое необязательное поле в ProductInput , которое можно использовать для предотвращения нерегулярных вставок в первичные источники данных. |
поля string типа с определенным набором значений | поля типа enum с определенным набором значений | Поля в атрибутах продукта с определенным набором значений (например, excluded_destinations , availability ) теперь имеют тип enum . |