хранение товара в сессии, уже не правильно (если товара много, а не 10-15 позиций)
если корзина отображается через view шаблон, то количество лучше получать через, как сказано выше, компонент или через compose который будет подписан на использование шаблона отображающего данные для корзины
посредник (middleware) не нужен
и еще вариант запрашивать запросом через js