diff --git a/addons/website_sale/controllers/main.py b/addons/website_sale/controllers/main.py index dc127243818..c46c2928a06 100644 --- a/addons/website_sale/controllers/main.py +++ b/addons/website_sale/controllers/main.py @@ -1732,9 +1732,6 @@ class PaymentPortal(payment_portal.PaymentPortal): if order_sudo.state == "cancel": raise ValidationError(_("The order has been canceled.")) - if tools.float_compare(kwargs['amount'], order_sudo.amount_total, precision_rounding=order_sudo.currency_id.rounding): - raise ValidationError(_("The cart has been updated. Please refresh the page.")) - kwargs.update({ 'reference_prefix': None, # Allow the reference to be computed based on the order 'sale_order_id': order_id, # Include the SO to allow Subscriptions to tokenize the tx @@ -1742,6 +1739,10 @@ class PaymentPortal(payment_portal.PaymentPortal): kwargs.pop('custom_create_values', None) # Don't allow passing arbitrary create values if not kwargs.get('amount'): kwargs['amount'] = order_sudo.amount_total + + if tools.float_compare(kwargs['amount'], order_sudo.amount_total, precision_rounding=order_sudo.currency_id.rounding): + raise ValidationError(_("The cart has been updated. Please refresh the page.")) + tx_sudo = self._create_transaction( custom_create_values={'sale_order_ids': [Command.set([order_id])]}, **kwargs, )