Вы можете переместить корзину в базу данных. Если у вас нет очень быстрого процесса покупки или крайне избыточной среды, Session или Cache, вероятно, не будут достаточно долговечными. Поскольку они не сохраняются, у вас также не будет прямого метода для анализа решений о покупке, истощении и т. Д.
В зависимости от того, как часто меняется ваш инвентарь, вам может понадобиться только подтвердить, что товар в корзине доступен при оформлении заказа. Как пользователь, мне было бы очень странно видеть, что товар просто «волшебным образом» исчез из моей корзины или что цена изменилась. На мой взгляд, было бы лучше явно это назвать.
Опять же, база данных будет лучшим решением, поскольку вы можете отслеживать состояние товара в момент его добавления в корзину в соответствии с текущим определением товара.
Если вам необходимо использовать решение на основе сеанса или кэша, то предлагаемое решение @ VMAtm является допустимым вариантом.