Dynamic recommendations without rebuilds: remove sold‑out items and improve conversion

By: WebGoodPeople, Author

Если в блоке “Рекомендуем” регулярно появляются распроданные товары — проблема обычно не в дизайне.
Проблема в том, что рекомендации “запекаются” при билде/кеше и перестают быть актуальными.

Почему статические рекомендации ломают конверсию


Когда рекомендации строятся “заранее”, они:

  • не учитывают актуальные остатки
  • не знают про контекст пользователя здесь и сейчас
  • плохо реагируют на изменения ассортимента и цен
  • заставляют команду “пересобирать” страницы ради данных

Решение: рекомендации через API (в реальном времени)


Вместо “рекомендации как часть страницы” делаем “рекомендации как сервис”:

  • виджет на фронте запрашивает рекомендации по API
  • сервис учитывает остатки/доступность/правила
  • можно персонализировать под пользователя и сценарий
  • можно кэшировать коротко (30–120 секунд) без пересборки страниц

Что передавать в API (минимум)


Чтобы рекомендации были полезными, обычно достаточно:

  • user_id/session_id (или анонимный ключ)
  • context (страница/категория/товар)
  • exclude_ids (например, текущий товар)
  • limit
  • request_id (корреляция)

Как выкатывать безопасно (без регрессов)


Рекомендации — это часть конверсии, поэтому важен контроль:

  • staged rollout (часть трафика → весь трафик)
  • сравнение метрик (CTR блока, add-to-cart, конверсия)
  • быстрый откат через feature flag

Почему request_id здесь критически важен


Когда рекомендации идут через цепочку “фронт → API → БД/поиск”, без корреляции всё превращается в угадайку.
Один request_id на весь путь позволяет:

  • собрать весь запрос end-to-end
  • увидеть, где “едится” время
  • быстрее чинить инциденты и регрессы

Чек‑лист интеграции


  1. Отделить блок рекомендаций в отдельный API‑вызов.
  2. Добавить учёт остатков/доступности.
  3. Добавить request_id и минимальное логирование.
  4. Завести feature flag + staged rollout.
  5. Зафиксировать метрики “до/после”.

Следующий шаг


Если вы хотите внедрить динамические рекомендации без рисков — начните с пилота.

Продукт: https://webgoodpeople.com/ru/products/headless-next-elasticsearch

Tell us about your project

Our offices

  • Russia
    Saint Petersburg, Rizhskaya st. 5, bldg. 1, office 402
    +7 (967) 555-90-32
  • Kazakhstan
    Almaty
    +7 (707) 340-29-12