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

Это был далекий 2015 год. На тот момент уже был опыт работы в e-commerce разных масштабов и стандартные решения «по популярности» не устраивали. Начались поиски как это сделать наилучшим образом.

Были определены следующие задачи:

  • Полная автоматизация
  • Разных сегменты товаров по цене (присутствие как дешевых так и дорогих товаров)
  • Приоритет по просмотрам
  • Приоритет по продажам
  • На первые 10 позиций должны приходится все популярные товары по:
    • цене
    • просмотрам
    • продажам
    • доходности

В итоге получилась формула которая учитывает все эти данные и считает автоматически.

image
n7 — просмотры 7 дней
n30 — просмотры 30 дней
n355 — просмотры 355 дней
s355 — количество продаж 355
ac355 — добавлений в корзину 355
d — доход с продажи 1 позиции
avg — средний доход в категории

Пришел к данному решению методом проб и ошибок разных вариантов

Рассмотрим все по порядку:
Первая часть отвечает за просмотры товаров — эти данные можно собирать из аналитики от Google или из CMS. Почему 3 параметра? Для учета сезонного всплеска — проведения акций и рекламных компаний — т.к. при бурном росте просмотров за неделю товар резко поднимается в списке.

Средняя часть — продажи и добавления в корзину.

image

Почему 2 параметра? — Часто есть продукция где присутствует длительный промежуток между кнопкой добавить и добором сопровождающих товаров и самой покупкой, это надо учитывать, также есть большая доля продаж где отказываются от покупки после добавления в корзину.

Последняя часть в формуле, но пожалуй главная по содержанию — доходность товара, которая выражается в произведении количества продаж на сумму грязного заработка относительно категории в среднем. Тут стоит учитывать средний заработок именно исходя из категории товаров. Т.к. в рамках всего магазина этот показатель очень часто различный.

Для большей наглядности приведу скриншот из таблицы с реальными данными для магазина на 2015 год.

image

Тут ссылка на гуглдок с исходниками таблицы и всеми формулами

Это решение не претендует на истину последней инстанции, является исключительно моей фантазией и т.к. за все это время я не смог найти ему коммерческого применения отдаю в вольное использование — если это поможет хотя бы кому то — я буду очень рад.

Комментарии (7)


  1. apapacy
    05.01.2020 15:59

    ИМХО ничем не отличается от общей формулы
    A сумма( Ki Xi ^ Pi) + B * произведение(Xi ^ Qi)
    Весь вопрос в том какие коэффициенты выбрать и как они повлияют на состояние бизнеса в краткосрочной и долгосрочной перспективе.
    И вообще все зависит от бизнеса. Если есть затоваренные склады то на них также нужно ориентироваться.


    1. leks2git Автор
      05.01.2020 16:07

      Бизнесу часто нужно не «общие формулы», а конкретное решение.
      На тему «все зависит от бизнеса» — наверное стоило уточнить что компания работала вообще без своих складов(все отправлялось на прямую от поставщиков).
      В данном случае формула больше выступает — точкой отсчета, а уже правки в результат её работы все равно вносит тот кто понимает что происходит. Учесть всех факторов к сожалению не реально.


  1. lxsmkv
    05.01.2020 23:49
    +1

    А как же например пользовательский рейтинг, т.е. оценка товара покупателями? Мне кажется, это менее синтетический показатель.

    Еще меня смущает то, что представленный метод не устойчив к эффекту снежного кома. Первый товар жестко укрепится на этой позиции и никакая динамика его оттуда не выбьет, потому что люди часто смотрят детали первой позиции поисковой выдачи. И эти просмотры будут набивать этому товару индекс.

    В том же «Амазоне», некоторые товары можно найти только по чистой случайности. И это иногда доводит до отчаяния, потому что там рекомендательный алгоритм решает, что ты увидишь а что нет. Вот этого хотелось бы во что бы то ни стало избежать.


    1. Tomasina
      06.01.2020 10:01

      пользовательский рейтинг
      Так он же влегкую сливается (минусуется) конкурентами. И выходит предоставление недостоверных данных.


    1. leks2git Автор
      07.01.2020 19:53

      Как правильно написали — пользовательский рейтинг это такой себе показатель, лучше для него отдельный метод сортировки использовать.
      Если товар закрепился в текущей ситуации то скорей всего это хорошо, тут правда стоит еще добавить ручные коэффициенты и учет наличия.


  1. ua30
    06.01.2020 10:50

    Это был далекий 2015 год.
    Хорошее оправдание для велосипеда.

    Конечно, бывают ниши где это неактуально. Но что с новыми товарами? В большинстве случаев, им надо давать приоритет. А тут они наоборот в игноре.


    1. leks2git Автор
      07.01.2020 19:55

      Хорошее замечание, сейчас хочу все таки запаковать это в код готовый, и там уже больше нюансов будет учтено.