diff --git a/addons/website_sale/static/src/js/website_sale.js b/addons/website_sale/static/src/js/website_sale.js
index 2f1f7e64510..af03a546496 100644
--- a/addons/website_sale/static/src/js/website_sale.js
+++ b/addons/website_sale/static/src/js/website_sale.js
@@ -80,6 +80,9 @@ publicWidget.registry.websiteSaleCartLink = publicWidget.Widget.extend({
$('.popover').on('mouseleave', function () {
self.$el.trigger('mouseleave');
});
+ self.cartQty = +$(data).find('.o_wsale_cart_quantity').text();
+ sessionStorage.setItem('website_sale_cart_quantity', self.cartQty);
+ self._updateCartQuantityText();
});
}, 300);
},
@@ -129,10 +132,16 @@ publicWidget.registry.websiteSaleCartLink = publicWidget.Widget.extend({
/**
* @private
*/
- _updateCartQuantityValue() {
- return this._rpc({route: "/shop/cart/quantity"}).then((cartQty) => {
- this.cartQty = cartQty;
- });
+ async _updateCartQuantityValue() {
+ if ('website_sale_cart_quantity' in sessionStorage) {
+ this.cartQty = sessionStorage.getItem('website_sale_cart_quantity');
+ }
+ if (this.el.querySelector('.my_cart_quantity').innerText != this.cartQty) {
+ return this._rpc({route: "/shop/cart/quantity"}).then((cartQty) => {
+ this.cartQty = cartQty;
+ sessionStorage.setItem('website_sale_cart_quantity', this.cartQty);
+ });
+ }
},
/**
* @private
@@ -359,6 +368,7 @@ publicWidget.registry.WebsiteSale = publicWidget.Widget.extend(VariantMixin, car
$input.trigger('change');
return;
}
+ sessionStorage.setItem('website_sale_cart_quantity', data.cart_quantity);
if (!data.cart_quantity) {
return window.location = '/shop/cart';
}
diff --git a/addons/website_sale/static/src/js/website_sale_utils.js b/addons/website_sale/static/src/js/website_sale_utils.js
index e5139a21910..af2e96aff98 100644
--- a/addons/website_sale/static/src/js/website_sale_utils.js
+++ b/addons/website_sale/static/src/js/website_sale_utils.js
@@ -34,6 +34,7 @@ const cartHandlerMixin = {
route: "/shop/cart/update_json",
params: params,
}).then(async data => {
+ sessionStorage.setItem('website_sale_cart_quantity', data.cart_quantity);
if (data.cart_quantity && (data.cart_quantity !== parseInt($(".my_cart_quantity").text()))) {
await animateClone($('header .o_wsale_my_cart').first(), this.$itemImgContainer, 25, 40);
updateCartNavBar(data);
diff --git a/addons/website_sale/views/templates.xml b/addons/website_sale/views/templates.xml
index 31a8af23e08..57c1d43a7ca 100644
--- a/addons/website_sale/views/templates.xml
+++ b/addons/website_sale/views/templates.xml
@@ -1268,8 +1268,8 @@
- View Cart ( item(s))
-
+ View Cart ( item(s))
+
diff --git a/addons/website_sale_product_configurator/static/src/js/website_sale_options.js b/addons/website_sale_product_configurator/static/src/js/website_sale_options.js
index 932ae557cd0..0c43812b4b5 100644
--- a/addons/website_sale_product_configurator/static/src/js/website_sale_options.js
+++ b/addons/website_sale_product_configurator/static/src/js/website_sale_options.js
@@ -116,6 +116,7 @@ publicWidget.registry.WebsiteSale.include({
const $quantity = $(".my_cart_quantity");
$quantity.parent().parent().removeClass('d-none');
$quantity.text(quantity).hide().fadeIn(600);
+ sessionStorage.setItem('website_sale_cart_quantity', quantity);
});
});
},