Заказ меняется сам собой
Обработчик API берёт словарь корзины, создаёт из него заказ Order.from_cart(cart),
а потом очищает корзину: cart["items"].clear(). После этого заказ оказывается пустым.
Исправьте from_cart так, чтобы заказ не зависел от дальнейших изменений корзины.
Подсказка 1 из 2
Проверьте order.items is cart["items"].
Подсказка 2 из 2
Передайте в конструктор копию: list(cart["items"]).