On the item page, we would like the SKU to be updated with the selection of a different variant. Anytime the variant SKU is updated all variants are updated to the same SKU. Is there a solution?
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- Müşteri İlişkileri Yönetimi
- e-Commerce
- Muhasebe
- Envanter
- PoS
- Project
- MRP
Bu soru işaretlendi
Hi,
Create a Computed Field for SKU:
First, create a computed field in your product template or product variant model that will calculate the SKU based on the selected variant.
from odoo import fields, models, api
class ProductTemplate(models.Model):
_inherit = 'product.template'
variant_sku = fields.Char(string='Variant SKU', compute='_compute_variant_sku', store=True)
@api.depends('product_variant_ids')
def _compute_variant_sku(self):
for template in self:
if template.product_variant_ids:
template.variant_sku = template.product_variant_ids[0].sku
else:
template.variant_sku = ''
class ProductProduct(models.Model):
_inherit = 'product.product'
sku = fields.Char(string='SKU')
@api.onchange('sku')
def _onchange_sku(self):
for variant in self.product_tmpl_id.product_variant_ids:
variant.sku = self.sku
sku in ProductProduct is the field where you enter the SKU for each variant.
Hope it helps
Enjoying the discussion? Don't just read, join in!
Create an account today to enjoy exclusive features and engage with our awesome community!
Üye Olİlgili Gönderiler | Cevaplar | Görünümler | Aktivite | |
---|---|---|---|---|
|
1
Haz 25
|
611 | ||
|
1
Tem 25
|
996 | ||
|
0
Eyl 24
|
922 | ||
|
0
Tem 24
|
954 | ||
|
0
Nis 24
|
1430 |
It would be awesome if you could do a video of how to implement this. Thanks
This is exactly what I am looking fro as well, so thank you for this.
Can you please provide a step by step as I am new to Odoo and have trouble finding things..such as "Computed Field for SKU" and " create a computed field in your product template or product variant model that will calculate the SKU based on the selected variant". Where do I go to do that?
Thank you for you for your time.