Skip to Content
Menú
This question has been flagged
2 Respostes
179 Vistes

I'm using Odoo 18.3 online.

I want to create a calculated field on the product page with Studio. This should use the listprice (list_price) but also the value of one of the attributes the product has.

I guess I have to somehow use attribute_line_ids, but I’m not sure how I can find the value of one specific attribute to use in the calculation.

Any pointers?

Avatar
Descartar
Autor Best Answer

I get the following error when trying this:

ValueError: NameError("name 'attribute_value_ids' is not defined") while evaluating
'for record in self:\n    record["x_studio_fles_inhoud"] = float(attribute_value_ids[0].name)'

I also tried:  product_template_variant_value_ids

Avatar
Descartar
Best Answer

Hi,

Go to Products → Variants

Odoo stores attribute values per variant , not in the product template.

Open Odoo Studio

Click the Studio (wrench) icon while on a product variant form.

Click Add Field

  • Choose field type: Monetary or Float
  • Name it something like Calculated Price
  • Enable "Computed Field"

In the Compute field editor , use this expression:

If you're using an attribute like "Weight" with values like 10, 20, etc.:

list_price + float(attribute_value_ids[0].name)


This assumes:

  • Only 1 attribute is used
  • The value is numeric (like 10, 20…)


If You Have Text Attribute (eg Light, Medium, Heavy):

Use this instead:

list_price + (

  1 if attribute_value_ids[0].name == 'Light' else

  5 if attribute_value_ids[0].name == 'Medium' else

  10 if attribute_value_ids[0].name == 'Heavy' else 0

)


i hope it is usefull

Avatar
Descartar
Related Posts Respostes Vistes Activitat
2
de jul. 25
278
1
de jul. 25
1182
2
de març 25
1465
0
de febr. 25
1110
0
de febr. 25
1277