diff --git a/website_sale_aplicoop/controllers/website_sale.py b/website_sale_aplicoop/controllers/website_sale.py index a8e64b1..fb78819 100644 --- a/website_sale_aplicoop/controllers/website_sale.py +++ b/website_sale_aplicoop/controllers/website_sale.py @@ -416,14 +416,21 @@ class AplicoopWebsiteSale(WebsiteSale): # Safety: Get UoM category name (use sudo for read-only display to avoid ACL issues) uom_category_name = "" + quantity_step = 1 # Default step for integer quantities if product.uom_id: uom = product.uom_id.sudo() if uom.category_id: uom_category_name = uom.category_id.sudo().name or "" + # Use 0.1 step for weight-based products (kg, g, etc.) + # This allows fractional quantities for bulk products + category_name_lower = uom_category_name.lower() + if "weight" in category_name_lower or "kg" in category_name_lower: + quantity_step = 0.1 return { "display_price": price_safe, "safe_uom_category": uom_category_name, + "quantity_step": quantity_step, } def _compute_price_info(self, products, pricelist): diff --git a/website_sale_aplicoop/views/website_templates.xml b/website_sale_aplicoop/views/website_templates.xml index 49aa797..0273cf3 100644 --- a/website_sale_aplicoop/views/website_templates.xml +++ b/website_sale_aplicoop/views/website_templates.xml @@ -1225,6 +1225,10 @@ t-set="safe_uom_category" t-value="product_display_info.get(product.id, {}).get('safe_uom_category', '')" /> +