diff --git a/website_sale_product_assortment/models/product_template.py b/website_sale_product_assortment/models/product_template.py index 3f96895afd..61e4bd0d46 100644 --- a/website_sale_product_assortment/models/product_template.py +++ b/website_sale_product_assortment/models/product_template.py @@ -23,12 +23,19 @@ def get_product_assortment_restriction_info(self, product_ids): ] ) ) - assortment_dict = {} + partner_assortments = self.env["ir.filters"].sudo() + + allowed_product_ids = set() for assortment in assortments: if partner & assortment.with_context(active_test=False).all_partner_ids: - allowed_product_ids = assortment.all_product_ids.ids - for product in product_ids: - if product not in allowed_product_ids: + partner_assortments |= assortment + allowed_product_ids.update(assortment.all_product_ids.ids) + + assortment_dict = {} + for product in product_ids: + if product not in allowed_product_ids: + for assortment in partner_assortments: + if product not in assortment.all_product_ids.ids: assortment_dict.setdefault(product, self.env["ir.filters"]) assortment_dict[product] |= assortment return assortment_dict