From 7e13ffef0798008f67747bd24c7fdeaf6ebf90c3 Mon Sep 17 00:00:00 2001 From: snt Date: Mon, 30 Mar 2026 19:07:57 +0200 Subject: [PATCH] [FIX] website_sale_aplicoop: evitar x2 en carrito y mostrar /Kg en granel --- website_sale_aplicoop/controllers/website_sale.py | 6 +++++- website_sale_aplicoop/static/src/js/website_sale.js | 5 +++++ website_sale_aplicoop/views/website_templates.xml | 5 +++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/website_sale_aplicoop/controllers/website_sale.py b/website_sale_aplicoop/controllers/website_sale.py index 2c4a02f..59709a9 100644 --- a/website_sale_aplicoop/controllers/website_sale.py +++ b/website_sale_aplicoop/controllers/website_sale.py @@ -367,7 +367,7 @@ class AplicoopWebsiteSale(WebsiteSale): product_price_info: dict with price data keyed by product.id. Returns: - dict with display_price, safe_uom_category, quantity_step + dict with display_price, safe_uom_category, quantity_step, price_unit_suffix """ price_data = product_price_info.get(product.id, {}) price = ( @@ -379,6 +379,7 @@ class AplicoopWebsiteSale(WebsiteSale): uom_category_name = "" quantity_step = 1 + price_unit_suffix = "" if product.uom_id: uom = product.uom_id.sudo() @@ -404,6 +405,8 @@ class AplicoopWebsiteSale(WebsiteSale): full_xmlid = f"{external_id.module}.{external_id.name}" if full_xmlid in fractional_categories: quantity_step = 0.1 + if full_xmlid == "uom.product_uom_categ_kgm": + price_unit_suffix = "/Kg" except Exception as e: _logger.warning( "_prepare_product_display_info: Error detecting UoM category XML ID for product %s: %s", @@ -415,6 +418,7 @@ class AplicoopWebsiteSale(WebsiteSale): "display_price": price_safe, "safe_uom_category": uom_category_name, "quantity_step": quantity_step, + "price_unit_suffix": price_unit_suffix, } def _get_pricing_info(self, product, pricelist, quantity=1.0, partner=None): diff --git a/website_sale_aplicoop/static/src/js/website_sale.js b/website_sale_aplicoop/static/src/js/website_sale.js index ad1e696..0682e33 100644 --- a/website_sale_aplicoop/static/src/js/website_sale.js +++ b/website_sale_aplicoop/static/src/js/website_sale.js @@ -766,9 +766,14 @@ // Shared handler for add-to-cart to reuse across grid/document listeners var handleAddToCart = function (e) { + if (e._groupOrderAddToCartHandled) { + return; + } var cartBtn = e.target.closest(".add-to-cart-btn"); if (!cartBtn) return; + e._groupOrderAddToCartHandled = true; + e.preventDefault(); var form = cartBtn.closest(".add-to-cart-form"); if (!form) return; diff --git a/website_sale_aplicoop/views/website_templates.xml b/website_sale_aplicoop/views/website_templates.xml index 1f3c571..80d57c7 100644 --- a/website_sale_aplicoop/views/website_templates.xml +++ b/website_sale_aplicoop/views/website_templates.xml @@ -615,6 +615,11 @@
€ + + + + +