Перенос источников данных

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

  • Источники данных без ярлыка и языка. Merchant API позволяет создать основной источник данных без указания атрибутов feedLabel и contentLanguage. В этот тип источника данных можно добавлять товары с любыми сочетаниями значений атрибутов feedLabel и contentLanguage. Это упрощает загрузку товаров для интеграций, в которых не требуются отдельные источники данных для разных регионов.

  • Упрощенные цели данных. Теперь каждый источник данных соответствует одной цели, которая определяется уникальным сочетанием feedLabel и contentLanguage. Целевые фиды с таргетингом на несколько ярлыков и языков больше не поддерживаются в Merchant API.

  • Отдельный статус загрузки файлов. Merchant API представляет статус источников данных на основе файлов с помощью отдельного ресурса fileUploads, доступного только для чтения. Чтобы получить статус загрузки файла, используйте метод fileUploads.get с псевдонимом latest.

  • Новые типы источников данных. Ресурс DataSource поддерживает больше вертикалей, включая промоакции, местный и региональный ассортимент, и позволяет управлять всеми конвейерами данных.

  • Автоматические источники данных. Теперь вы можете включать и отключать автоматические источники данных в аккаунте с помощью метода autofeedSettings.updateAutofeedSettings в Accounts sub-API. Подробнее о настройке автофида…

Выберите стратегию работы с источниками данных

Управлять источниками данных можно тремя способами:

  • Создайте один источник данных Merchant API для любого ярлыка фида и языка. Этот вариант упрощает управление данными, поскольку вы можете использовать один источник данных для товаров с любыми значениями атрибутов feedLabel и contentLanguage. В старой версии Content API вы определяете правила для определенных ярлыков и языков через отдельные источники данных и вставляете товары в источник данных с соответствующими целевыми правилами. Если вы выберете этот вариант, рекомендуем перенести все товары в новый источник данных и удалить источники данных Content API после завершения переноса.

  • Создайте новые источники данных Merchant API для каждого ярлыка и языка. Используйте этот вариант, если вам нужно поддерживать новые комбинации feedLabel и contentLanguage (и вы предпочитаете строгое разделение между ними) или если вы используете настройку правил источника данных, которая зависит от конкретных feedLabel и contentLanguage. Для каждой пары значений атрибутов feedLabel и contentLanguage нужно создать отдельный источник данных. Источники данных Merchant API можно объединять с источниками данных, созданными с помощью Content API for Shopping.

  • Сохраните существующие источники данных Content API. Вы можете продолжать использовать источники данных, созданные с помощью Content API for Shopping, поскольку они совместимы с Merchant API. Названия ресурсов можно найти с помощью dataSources.list или в интерфейсе Merchant Center. Основные источники данных Content API поддерживают только те значения атрибутов feedLabel и contentLanguage, с которыми они были созданы. Источники данных Content API показываются в Merchant Center с пометкой "Источник Content API", даже если товары добавлены с помощью Merchant API. Вы можете объединить их с новыми источниками данных Merchant API, которые также таргетированы на определенные пары feedLabel и contentLanguage.

Рекомендуем заполнить базу данных о товарах местного ассортимента, сохранив названия всех основных источников данных по одному разу для каждого товара. Это позволит избежать повторных вызовов dataSources.list.

Запросы

В таблице ниже сравниваются форматы URL запросов в Content API for Shopping и Merchant API.

Описание запроса Content API for Shopping Merchant 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 для каждого источника данных на основе файла.

Идентификаторы

В Merchant API в качестве идентификатора используется строковое название ресурса.

Описание идентификатора Content API for Shopping Merchant API
Идентификатор источника данных datafeedId (числовое значение) name (строка, формат: accounts/{account}/dataSources/{datasource})

Методы

В таблице ниже сравниваются методы из сервисов datafeeds и datafeedstatuses Content API for Shopping с их эквивалентами в Merchant API.

Метод Content API for Shopping Метод Merchant 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 в Content API for Shopping и ресурсами DataSource и FileUpload в Merchant API.

Content API for Shopping Merchant 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). Это позволяет более точно задать конфигурацию.