Skip to Content
Menu
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
To pytanie dostało ostrzeżenie
2 Odpowiedzi
141 Widoki

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?

Awatar
Odrzuć
Autor Najlepsza odpowiedź

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

Awatar
Odrzuć
Najlepsza odpowiedź

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

Awatar
Odrzuć
Powiązane posty Odpowiedzi Widoki Czynność
2
lip 25
240
1
lip 25
1160
2
mar 25
1424
0
lut 25
1098
0
lut 25
1244