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