В этом руководстве объясняется, как перенести интеграцию из сервисов datafeeds и datafeedstatuses из Content API for Shopping в под-API источников данных в Merchant API. Новый под-API источников данных обеспечивает более прямой контроль над конвейерами данных и упрощает управление источниками данных.
Дополнительную информацию о новых функциях см. в руководстве «Управление источниками данных» .
Ключевые отличия
По сравнению с Content API for Shopping, Merchant API предлагает ряд преимуществ.
Явное создание источника данных. API больше не создаёт автоматически источник данных «Content API» при первой добавлении товара. В Merchant API вы явно создаёте источники данных до того, как сможете загрузить в них товары. Это даёт вам больше контроля над организацией и управлением конвейерами данных о товарах с самого начала.
Поддержка нескольких источников данных API. В Content API for Shopping вы были ограничены одним автоматически создаваемым источником данных «Content API». С помощью Merchant API вы можете создавать и управлять несколькими источниками данных типа
APIinput.Источники данных без метки и языка. API Merchant позволяет создать основной источник данных без указания свойств
feedLabelиcontentLanguage. Этот тип источника данных принимает товары в любой комбинации свойствfeedLabelиcontentLanguage, что упрощает загрузку товаров для интеграций, не требующих отдельных источников данных для разных регионов.Упрощенные целевые данные. Каждый источник данных теперь соответствует одной целевой базе, определяемой уникальной комбинацией свойств
feedLabelиcontentLanguage. Многоцелевые фиды данных устарели в Merchant API.Выделенный статус загрузки файлов. API продавца отображает статус файловых источников данных с помощью отдельного ресурса
fileUploads, доступного только для чтения. Чтобы получить статус загрузки файла, используйте методfileUploads.getсlatestпсевдонимом.Новые типы источников данных. Ресурс
DataSourceподдерживает больше вертикалей, включая акции, локальный и региональный инвентарь, обеспечивая унифицированный способ управления всеми вашими потоками данных.Автоматизированные источники данных. С помощью API Merchant вы теперь можете включать и отключать функцию автоматизированных источников данных для своего аккаунта, используя метод
autofeedSettings.updateAutofeedSettingsв подAPI Accounts. Подробнее см. в разделе «Настройка параметров автоподачи» .
Запросы
В следующей таблице сравниваются форматы URL-адресов запроса между Content API for Shopping и Merchant API.
| Запросить описание | API контента для покупок | API торговца |
|---|---|---|
| Создать источник данных | POST https://shoppingcontent.googleapis.com/content/v2.1/ {MERCHANT_ID} /datafeeds | POST https://merchantapi.googleapis.com/v1/accounts/ {ACCOUNT_ID} /dataSources |
| Получить источник данных | GET https://shoppingcontent.googleapis.com/content/v2.1/ {MERCHANT_ID} /datafeeds/ {DATAFEED_ID} | GET https://merchantapi.googleapis.com/v1/accounts/ {ACCOUNT_ID} /dataSources/ {DATASOURCE_ID} |
| Список источников данных | GET https://shoppingcontent.googleapis.com/content/v2.1/ {MERCHANT_ID} /datafeeds | GET https://merchantapi.googleapis.com/v1/accounts/ {ACCOUNT_ID} /dataSources |
| Обновить источник данных | PUT https://shoppingcontent.googleapis.com/content/v2.1/ {MERCHANT_ID} /datafeeds/ {DATAFEED_ID} | PATCH https://merchantapi.googleapis.com/v1/accounts/ {ACCOUNT_ID} /dataSources/ {DATASOURCE_ID} |
| Удалить источник данных | DELETE https://shoppingcontent.googleapis.com/content/v2.1/ {MERCHANT_ID} /datafeeds/ {DATAFEED_ID} | DELETE https://merchantapi.googleapis.com/v1/accounts/ {ACCOUNT_ID} /dataSources/ {DATASOURCE_ID} |
| Получить источник данных | POST https://shoppingcontent.googleapis.com/content/v2.1/ {MERCHANT_ID} /datafeeds/ {DATAFEED_ID} /fetchNow | POST https://merchantapi.googleapis.com/v1/accounts/ {ACCOUNT_ID} /dataSources/ {DATASOURCE_ID} :fetch |
| Получить статус источника данных | GET https://shoppingcontent.googleapis.com/content/v2.1/ {MERCHANT_ID} /datafeedstatuses/ {DATAFEED_ID} | GET https://merchantapi.googleapis.com/v1/accounts/ {ACCOUNT_ID} /dataSources/ {DATASOURCE_ID} /fileUploads/latest |
| Список статусов источников данных | GET https://shoppingcontent.googleapis.com/content/v2.1/ {MERCHANT_ID} /datafeedstatuses | Недоступно. Используйте dataSources.list и fileUploads.get для каждого файлового источника данных. |
Идентификаторы
API продавца использует в качестве идентификатора строковое имя ресурса.
| Описание идентификатора | API контента для покупок | API торговца |
|---|---|---|
| Идентификатор источника данных | datafeedId (числовой) | name (строка, формат: accounts/{account}/dataSources/{datasource} ) |
Методы
В этой таблице сравниваются методы из API контента для сервисов datafeeds и datafeedstatuses покупок с их эквивалентами в API торговца.
| API контента для метода покупок | Метод API торговца | Наличие и примечания |
|---|---|---|
datafeeds.custombatch | Нет в наличии | Вместо этого используйте отдельные вызовы API. |
datafeeds.delete | dataSources.delete | Доступный. |
datafeeds.fetchnow | dataSources.fetch | Доступно. Этот метод теперь работает только для источников данных с файловым входом. |
datafeeds.get | dataSources.get | Доступный. |
datafeeds.insert | dataSources.create | Доступный. |
datafeeds.list | dataSources.list | Доступный. |
datafeeds.update | dataSources.update | Доступно. Использует семантику PATCH вместо PUT . |
datafeedstatuses.custombatch | Нет в наличии | Вместо этого используйте отдельные вызовы API. Подробнее см. в разделе «Отправка нескольких запросов одновременно» . |
datafeedstatuses.get | fileUploads.get | Доступно для файловых источников данных. Используйте псевдоним latest для получения статуса последней загрузки. Для других типов источников данных информация о статусе является частью ресурса DataSource . |
datafeedstatuses.list | Нет в наличии | Чтобы получить статус нескольких источников данных, сначала перечислите все источники данных с помощью dataSources.list . Затем вызовите fileUploads.get с latest псевдонимом для каждого файлового источника данных. |
Подробные изменения полей
В этой таблице показаны изменения на уровне полей между ресурсами Datafeed и DatafeedStatus в API контента для покупок и ресурсами DataSource и FileUpload в API торговца.
| API контента для покупок | API торговца | Описание |
|---|---|---|
Datafeed | DataSource | Основной ресурс для настройки источника данных. |
id | name | Идентификатор ресурса. Изменён с числового идентификатора на строковое имя ресурса. |
name | displayName | Имя источника данных, видимое пользователю. |
attributeLanguage | primaryProductDataSource.contentLanguage | Двухбуквенный код языка ISO 639-1 элементов в источнике данных. |
fileName | fileInput.fileName | Имя загруженного файла. Это поле теперь вложено в fileInput . |
fetchSchedule | fileInput.fetchSettings | Расписание для загрузки файлового источника данных. Теперь оно вложено в fileInput . |
fetchSchedule.paused | fileInput.fetchSettings.enabled | Логика обратная. paused: true эквивалентно enabled: false . |
format | Нет в наличии | Поля fileEncoding , columnDelimiter и quotingMode удалены. Теперь они определяются автоматически. |
targets | primaryProductDataSource.feedLabel , primaryProductDataSource.contentLanguage , primaryProductDataSource.countries | Поле «Повторяющиеся targets удалено. Теперь каждый источник данных имеет одну цель, определяемую этими полями, что отражает прекращение поддержки каналов с несколькими целями данных. |
DatafeedStatus | FileUpload | Статус загрузки файла теперь является отдельным ресурсом, доступным только для чтения. |
datafeedId | name | Идентификатор загрузки файла, ссылающийся на его родительский источник данных. |
processingStatus | processingState | Статус обработки загрузки. Строковые значения ( success , failure , in progress ) заменяются перечислением ( SUCCEEDED , FAILED , IN_PROGRESS ). |
errors , warnings | issues | Ошибки и предупреждения объединены в один список issues . У каждой проблемы есть поле severity ( ERROR или WARNING ). |
lastUploadDate | uploadTime | Временная метка последней загрузки. Формат изменен со строки на объект Timestamp . |
country , language , feedLabel | Непригодный | Эти поля больше не входят в ресурс статуса. Они являются частью ресурса DataSource . |
targets[].included_destinations , targets[].excluded_destinations | primaryProductDataSource.destinations | Два отдельных списка для включённых и исключённых пунктов назначения заменены одним списком destinations . Каждый элемент в новом списке представляет собой объект, определяющий пункт назначения и его состояние ( ENABLED или DISABLED ), обеспечивая более точную настройку. |