Odooers论坛

欢迎!

该社区面向专业人士和我们产品和服务的爱好者。
分享和讨论最好的内容和新的营销理念,建立您的专业形象,一起成为更好的营销人员。


0

Product view: show price of a specific pricelist

形象
odoo
形象
丢弃
1 答案
0
形象
odoo
最佳答案

Hi,


Try the following steps,


1-Add a New Field

- Drag and drop a Float field into the form where you want to display the Gold Partner Price.

- Name the field something like: Gold Partner Price.


2-Make it a Computed Field

- In the field’s properties (right-hand panel), enable “Computed field”.

- In the Python Code box, paste the following snippet:


Code:-


# Search for the GoldPartnerPrice pricelist

pricelist = env['product.pricelist'].search([('name', '=', 'GoldPartnerPrice')], limit=1)


# Get the product variant (since pricelists work at product.product level)

product_variant = record.product_variant_id


# If pricelist exists and product variant is set, compute price

result = pricelist._get_product_price(product_variant, 1.0, False) if pricelist and product_variant else 0.0


* env['product.pricelist'] looks for your pricelist named GoldPartnerPrice.

* record.product_variant_id ensures you’re computing on the correct variant (Studio’s record is the current product template).

* _get_product_price(product, qty, partner) computes the price according to the pricelist rules.


4-Save the Field



- This will dynamically calculate the price each time you open or refresh the product.

- If you later rename your pricelist, update the ('name', '=', 'GoldPartnerPrice') filter.

- If you want it to use a specific pricelist ID (instead of name), replace with:

            pricelist = env['product.pricelist'].browse(YOUR_PRICELIST_ID)


Hope it helps

1 备注
形象
丢弃
形象
odoo
-

With _get_product_price I had to remove the False param, then it worked perfectly, thanks!