diff --git a/addons/website_sale/static/src/js/website_sale_delivery.js b/addons/website_sale/static/src/js/website_sale_delivery.js index 53cd0b383ff..17858c6cb20 100644 --- a/addons/website_sale/static/src/js/website_sale_delivery.js +++ b/addons/website_sale/static/src/js/website_sale_delivery.js @@ -155,6 +155,14 @@ publicWidget.registry.websiteSaleDelivery = publicWidget.Widget.extend({ // we need to check if it's the carrier that is selected if (result.new_amount_total_raw !== undefined) { this._updateShippingCost(result.new_amount_total_raw); + // reload page only when amount_total switches between zero and not zero + const hasPaymentMethod = document.querySelector( + "div[name='o_website_sale_free_cart']" + ) === null; + const shouldDisplayPaymentMethod = result.new_amount_total_raw !== 0; + if (hasPaymentMethod !== shouldDisplayPaymentMethod) { + location.reload(false); + } } this._updateShippingCost(result.new_amount_delivery); }