Писал похожий компонент, но для последних просмотренных товаров (товары добавляются по мере просмотра, каждый просмотр вытесняет первый элемент, если превышен лимит показываемых товаров).
Можно хранить ид сессии в куки, дальше смотреть отличаются ли текущий ид и хранящийся в куки. Если отличаются - выводить товары, ид которых где-то тоже хранить (либо в базе, либо в куки).
Можно хранить ид сессии в куки, дальше смотреть отличаются ли текущий ид и хранящийся в куки. Если отличаются - выводить товары, ид которых где-то тоже хранить (либо в базе, либо в куки).