Skip to Content
Menu
This question has been flagged
3 Replies
2311 Views

We have Odoo 15 Community with a B2B (Wholesalers/Installers) website where the 'Public' pricelist is set to $0.00 for all products so general public cannot see pricing.

We have confirgured that logged in Portal users (B2B) then get their allocated pricelist (Contact->Sales & Purchase->Pricelist->...).

  • We would like to be able to configure the Portal users (only) to be able to select specific (per portal user) Pricelist/s when they login.

We have tried Sales->Products->Pricelists->.... and enabled 'Selectable' but this then makes those Pricelists viewable to Public users as well. This does not work for us as we cannot have Public users seeing our Wholesalers (B2B) prices. 

Struggling to find collateral or Apps that enable this capability which has got us wondering if we are missing something simple. Any guidance would be appreciated.

Avatar
Discard
Best Answer

Hi Mohammed, 

where would you inject this code? I'm looking for exactly this behaviour

Avatar
Discard
Author Best Answer

Thank Muhammad for prompt response. 

From a quick look at the code it would seem this will give our Portal users access to one predefined pricelist (which we currently have). Our goal is for the Portal users to have access to multiple pricelists once they have logged in. But Public users must only see Public Price List ($0.00)/or no prices. Let us know if we are reading your code incorrectly.

Avatar
Discard
Best Answer

In Odoo, it is possible to configure different pricelists for different users or user groups. To do this, you will need to create separate pricelists for each user or user group and assign the appropriate pricelist to each user or user group.

Here is an example of how you can set this up:

  1. Create the pricelists that you want to use for your B2B users. To do this, go to "Sales > Configuration > Pricelists" and click "Create" to create a new pricelist. Enter the name and other details of the pricelist, and set the prices for the products that you want to include in the pricelist.

  2. Assign the pricelists to the appropriate users or user groups. To do this, go to "Contacts > Users & Companies > Users" and edit the user or user group that you want to assign the pricelist to. In the "Sales & Purchase" tab, select the appropriate pricelist in the "Pricelist" field.

  3. Configure the website to use the appropriate pricelist for each user. To do this, you will need to override the default behavior of the website by adding a custom piece of code. Here is an example of how you might do this:

Copy codefrom odoo import http

class Website(http.Controller):
    @http.route(['/'], type='http', auth='public', website=True)
    def index(self, **kw):
        if http.request.env.user.partner_id.property_product_pricelist:
            # Set the pricelist to the user's allocated pricelist
            http.request.website.sale_get_order(force_pricelist=http.request.env.user.partner_id.property_product_pricelist.id)
        return http.request.render('website.homepage')

This code will set the pricelist to the user's allocated pricelist when they log in to the website.


Avatar
Discard