Насколько мне известно, большинство магазинов используют довольно простой алгоритм рекомендуемых товаров: товары которых много и которые залежались на складе, суют в "рекомендуемые", "посмотрели так же" "обычно покупают с этим" и так далее.
Ну а если вы хотите сделать действительно полезную выборку, то нужно вести подробную статистику, какие товары пользователь просматривает, покупает. Зная статистику первого пользователя, вы можете её сравнивать со статистикой второго пользователя, если к примеру есть пять и более совпадений по просмотренным товарам, то будем считать что у пользователей похожие вкусы и можем рекомендовать другие просмотренные товары второго пользователя.
Если хотите сильно заморочиться на этой теме, то вот почитайте про продвинутые алгоритмы
ru.wikipedia.org/wiki/Slope_One