Оформление
Управление фидами через API
Фид раздела Смарт фиды описывает источник товарного каталога и стратегию его пересчёта/выгрузки. CRUD позволяет программно создавать фиды, менять источник и параметры пересчёта.
Доступ к содержимому фида (списку товаров, категориям, атрибутам, лог-операциям, ручному реимпорту, копированию, выгрузке) намеренно не вынесен в Public API — управляйте этим через админку Sales Ninja. Настройки обработки текстов и дополнительные атрибуты выгрузки доступны отдельными методами ниже.
База: https://api.sales-ninja.me/public/api/v1/manage/smart-feeds
| HTTP | Что делает |
|---|---|
GET / | Список фидов. |
POST /list | Список со сложным фильтром. |
GET /{id} | Полная сущность. |
POST / | Создать. |
PUT /{id} | Обновить. |
PATCH /{id} | Частично обновить поля сущности. |
DELETE /{id} | Удалить. |
Тело
json
{
"name": "Основной товарный фид",
"sourceType": "Url",
"sourceUrl": "https://example.com/feed.yml",
"sourceFormat": "YandexMarketYml",
"processingStrategy": "Standard",
"popularityIndexDefault": 0.5,
"optimizationMetric": "ConversionCount",
"conversionAttributionType": "AllConversions",
"popularitySliceStrategy": "TopByIndex",
"popularityIndexThreshold": 0.7,
"modeledConversionId": null,
"parentFeedId": null,
"recalculationScheduleType": "Daily",
"recalculationWindowStartHourUtc": 3,
"state": "Active",
"exportFormat": "YandexMarketYml",
"goals": [
{ "goalId": "299837db-9b51-45a4-996b-844d3fd05bbd", "relationType": "optimization", "contributionPower": 1.0 }
]
}Поля
| Поле | Описание |
|---|---|
name | Название фида в админке. |
sourceType | Откуда взять данные: Url, Upload, … |
sourceUrl | URL источника (если sourceType=Url). |
sourceFormat | Формат исходного фида (YandexMarketYml, Csv, …). |
processingStrategy | Стратегия обработки данных. |
optimizationMetric | Какой результат учитывать: ConversionCount, Revenue, NetProfit. LTV-варианты фид не принимает. |
conversionFunnelId | Идентификатор воронки, из которой брать цели. Отсутствующее поле сохраняет текущую связь; null снимает связь и сохраняет прежний набор целей. |
conversionAttributionType | Атрибуция конверсий на товары. |
popularitySliceStrategy | Стратегия отбора «топовых» товаров (TopByIndex, Threshold, …). |
popularityIndexDefault | Стартовое значение индекса для новых товаров (0…1). |
popularityIndexThreshold | Порог для Threshold-стратегии. |
modeledConversionId | Если оптимизируем по моделируемой конверсии. |
parentFeedId | Если фид — дочерний (отфильтрованная проекция родителя). |
recalculationScheduleType | Daily, Hourly, Manual, … |
recalculationWindowStartHourUtc | Час старта окна пересчёта (0…23) в UTC. |
state | Active / Paused / Archived (специфичные для фидов значения). |
exportFormat | Формат экспортного фида, если он включён. |
goals[] | Цели проекта: goalId — идентификатор, relationType — optimization для нужного поведения или minus для нежелательного, contributionPower — относительная важность цели. |
Точные допустимые значения enum’ов лучше узнавать из админки или из ответа GET /{id} уже существующего фида — полный список зависит от конфигурации проекта и эволюционирует.
У фидов PUT не обнуляет все отсутствующие настройки: например, не переданные name и sourceUrl сохраняют прежние значения. Чтобы явно очистить поле, используйте PATCH там, где оно допускает null.
Обработка текстов и атрибуты выгрузки
Все пути ниже начинаются с /public/api/v1/manage/smart-feeds и требуют X-SN-TOKEN.
| HTTP | Что делает |
|---|---|
GET /{id}/post-processing | Текущие настройки обработки названий и описаний, состояние обработки и revision |
PUT /{id}/post-processing | Сохранить revision, exportMode и массив items с настройками обработки |
POST /{id}/post-processing/preview | Получить примеры результата: можно передать previewItemCount, exportMode и items |
GET /{id}/output-attributes | Настройки и готовность дополнительных атрибутов, список blocks и revision |
PATCH /{id}/output-attributes | Передать revision и blocks: для каждого изменяемого блока — blockCode и isEnabled |
Перед сохранением прочитайте настройки и передайте их revision. Если настройки успели измениться, прочитайте их заново и примените правку к актуальной версии. Ответ на сохранение содержит entity с текущими настройками.
В items настройки обработки задаются полями targetField, variantIndex, processorMode, presetCode, customPromptText, isEnabled, isPrimary и id, если обработка уже сохранена. Исходный список и допустимые коды возьмите из текущих настроек в кабинете или ответа GET. Предпросмотр возвращает items[].variants с примерами названий и описаний.
Ответ
json
{
"feedId": "8f3a1e4b-…",
"createdFeed": true,
"entity": {
"id": "8f3a1e4b-…",
"name": "Основной товарный фид",
"goals": []
}
}