Миграция источников данных

В этом руководстве объясняется, как перенести интеграцию из сервисов 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 вы можете создавать и управлять несколькими источниками данных типа API input.

  • Источники данных без метки и языка. 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 ), обеспечивая более точную настройку.