diff --git a/addons/website_sale/controllers/main.py b/addons/website_sale/controllers/main.py index 2d4d64a6b31..fd660dc61a5 100644 --- a/addons/website_sale/controllers/main.py +++ b/addons/website_sale/controllers/main.py @@ -315,7 +315,8 @@ class WebsiteSale(http.Controller): @http.route(['/shop/change_pricelist/'], type='http', auth="public", website=True) def pricelist_change(self, pl_id, **post): - if request.website.is_pricelist_available(pl_id.id): + if (pl_id.selectable or pl_id == request.env.user.partner_id.property_product_pricelist) \ + and request.website.is_pricelist_available(pl_id.id): request.session['website_sale_current_pl'] = pl_id.id request.website.sale_get_order(force_pricelist=pl_id.id) return request.redirect(request.httprequest.referrer or '/shop') diff --git a/addons/website_sale/models/sale_order.py b/addons/website_sale/models/sale_order.py index 28c157dfbfa..94edada65ac 100644 --- a/addons/website_sale/models/sale_order.py +++ b/addons/website_sale/models/sale_order.py @@ -268,7 +268,7 @@ class Website(models.Model): :param int pl_id: The pricelist id to check :returns: Boolean, True if valid / available """ - return pl_id in self.get_pricelist_available(show_visible=True).ids + return pl_id in self.get_pricelist_available(show_visible=False).ids def get_current_pricelist(self): """