# Создание товарной рекомендации

Сайт → Товарные рекомендации → Добавить.

# Смысл для бизнеса

# Название

Имя рекомендации в админке.

# Статус

Работает / Остановлено / В архиве.

# Источник каталога

Smart-фид (или другой unified feed) — откуда брать товары. Без фида рекомендация не из чего строить выдачу.

# Сигнал для обучения

# Метрика оптимизации

Что максимизируем при ранжировании (конверсии, выручка и т.д. — список в UI).

# Цель конверсии

Конкретная цель для обучения.

# Моделируемая конверсия (опционально)

Связь с моделируемой конверсией для согласованного сигнала с рекламой.

# После сохранения

  • Создайте плейсменты и выберите способ их показа.
  • Политика обновления модели подбирается автоматически по настройкам продукта.

# Размещения

Размещение связывает одну или несколько товарных рекомендаций с местом на сайте. В нём можно задать сценарий, число товаров, условия активации и фильтр товаров.

# Управляемый блок

Sales Ninja сам собирает карточки и вставляет блок по CSS-селектору. В редакторе доступны сетка, список или карусель, размеры и стиль карточек, параметры изображения, состав контента, текст кнопки и безопасные цвета. Настройки сгруппированы над превью, которое обновляется сразу и переключается между desktop- и mobile-режимами.

# JS-интеграция

Для SPA можно выбрать режим без автоматической отрисовки:

const unsubscribe = await ninja('onProductRecommendations', {
  placementId: 'placement-id',
  handler: ({ status, placementId, items, presentation }) => {
    if (status === 'cleared') return clearRecommendations(placementId)
    // Передайте данные в React/Vue/другой renderer.
  }
})

Если placementId не указан, handler получит все data-only размещения. Bundle повторно вызывает handler при SPA-переходах. status: 'cleared' и items: [] означают, что старый блок нужно убрать. Функция unsubscribe освобождает подписку. Сохраните unsubscribe и вызовите его только при размонтировании SPA-компонента или окончательном отключении интеграции.

# См. также