Изменения корзины не сохраняются
CartTransaction должна откатывать изменения корзины, если в блоке случилась ошибка.
Но откатываются и удачные изменения: после блока корзина всегда такая, как до него.
Исправьте CartTransaction.
Подсказка 1 из 2
Выведите exc_type в __exit__ после успешного блока.
Подсказка 2 из 2
Откатывайте только под if exc_type is not None:.