Пропавший промокод
Покупатель вводит промокод ещё на пустую корзину, потом добавляет товар — и промокод пропадает.
Корзины хранятся в словаре carts по user_id. get_cart(carts, user_id) должна вернуть
существующую корзину покупателя, а новую создавать, только если корзины у него ещё нет.
Исправьте get_cart.
Подсказка 1 из 2
Выведите bool(Cart(7)).
Подсказка 2 из 2
Отсутствие корзины проверяйте через is None.