Миграция продуктов

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 .