Алгоритмов много, я напирмер юзаю такой, блогодаря ему покупаемость вырастает на 90%:
Допустим мы хотим купить системный блок.
В магазине у нас все по категориям, системные блоки по такому пути: электроника->компьютеры->системные блоки (тут же клавиатуры, мыши, мониторы, колонки и подобное на компьюьтерную тематику)
вот выбраи мы системный блок и подумали а что нам еще надо?
А тут как раз нам любезно показывают
«С этим системным блоком чаще всего покупают:»
Монитор Sony
Клавиатуру и мышь Logitech
Колонки anse. И естственно возникнет желание прикупить еще чтонибуть))
А работает такой подбор по принципу:
Берем текущую категорию товара (у системных блоков у меня категория — компьютеры) и дальше будем выбирать из нее товары из подкатегорий (клавиатуры, мониторы)
Причем товары попадающее под условие (это алгоритм дальнейшей ваборки) —
условие «есть в наличии» — считаю обязательным и нужно проверять для каждого следующего пункта выборки
конечно еще желательно условие ко всем селдующим что бы цена не сильно была выше чем цена текущего выбор покупателя.
берем подкаьтегорию с наивысшим рейтингом (я выставляю его в админке, к примеру в разделе компьютеры имеют наивысшую — процессоры потом мониторы потом мыши и тд)

1. или если это залежавшийся товар 😉 или это новинка — в админке для товара есть рейтинг — какой товар выдавать первым при поиске похожих (рейтинг у меня идет по категориям т.е. для мониторов например Sony идет первым т.к. это к примеру новинка)
т.е. таким образом мы выведем новинки или уже залежавшиеся, причем нужно поставить ограничения на показ например 3 штуки по такому критерию.

2. Товар(допустим монитор) есть в списке покупок вместе с текущим выбором(системным блоком) покупателя у других и самый часто покупаемый.

3. потенциальный товар (например клавиатура) совпадает по цвету с системником или фирмой изготовителем, т.е. ищем совпадения по «параметрам товара» и товары, у которых числосовпадений наибольшее, выводим.

так же у меня есть «побочные категории» каталог которых организован так же как и главный, но в ней товары — необходимые, полезные, просто «для них» (например в разделе мониторы у меня салфетки для чистки) , ипричем товар может дублироваться в нескольких побочных — например диски для чистки у меня в категориях где приводы и где системные блоки и ноутбуки
из них я так же вывожу товар по вышеперечисленным критериям.
При оформлении покупки я предлагаю покупателю указать почему ему товар приглянулся — простым щелчком по кол-ву звездорчек — к примеру 4 звездочки из 5 что потому что стильный , потому что удобный, функциональный, привычный и т.д.
среднее значение этих результато в так же учитывается при выборе в пункте №1

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

Таким способом убиваю трех зайцев — покупатели чуствуют «заботу» магазина, потенциальные покупатели мгут прочитать мнение других, а продавцы знают что им необходимо еще завести в магазин, завозить меньше, или вообще незавозить. Для стимулиорвания честных отзывов — я выдаю скидку на следующие покупки (естественно скидка — если суммарная стоимость покупок с последней скидки достаточная — но они ведь не знают;-)
К сожалению на деле показать немогу, т.к. нуджно сначало приехать в тот магазин и чтото купить, а там выдадут доступ в онлайн)
т.к. покупатели -оптовики из других городов и поэтому было уделено ОГРОМНОЕ внимание на подбор «похожих» товаров, причем поиск по сайту есть даже по совпадению картинок а для ВИП клиентов есть ортдельная форма запроса с ручной обработкой
Надеюсь помог)