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