AEOdoo

¡Bienvenido!

Esta comunidad es para profesionales y principiantes en nuestros productos y servicios.
Comparte y discute el mejor contenido y nuevas ideas de marketing, construye tu perfil profesional y conviértete en un mejor comercializador.

0

[DUDA CONCEPTAL] --> Creación de artículos con variantes a través de código

Avatar
Amadeo Morán

Buenas tardes,


estoy haciendo un modulo para importar datos desde otra base de datos de Odoo.

Ya he conseguido

- Crear productos que no tienen variantes: (self.env['product.template'].create(articulo))

- Crear los atributos y los valores de los atributos de la base de datos de la que quiero importar.


Me surge la duda a la hora de crear los artículos que tienen variantes...

-  Esos artículos están en 'product.product' y el 'product.template' es con lo que se manejan características comunes a todas las variantes....

- ¿Que se debe crear primero cada uno de los 'product.product'? o ¿crear el 'product.template' y se crean automaticamente las variantes como haciendolo de forma manual?


S2,

Amadeo.

Avatar
Descartar
1 Respuesta
1
Best Answer

En los atributos hay un campo llamado create_variant (cuyo valor por defecto es 'always'), por lo que automáticamente al escribir mediante el ORM un nuevo atributo en el product.template,  se creará el product.product (o los product.product según combinaciones de atributos) necesario.
Lo puedes ver en el código del módulo product, que es core, en el que está el método create_variant_ids() de product.template llamado tanto en el create como en el write:

https://github.com/OCA/OCB/blob/12.0/addons/product/models/product_template.py#L478

Por lo que en resumen, al crear el template y asociarle los atributos (y valores) que has creado, te creará automáticamente todos los product.product necesarios.

2 Comentarios
Avatar
Descartar
Avatar
Amadeo Morán
-

Gracias Dario,

Me queda más claro el flujo pero en el template no hay referencia alguna a los id del 'product.attribute.value' que son al final los valores de los atributos no?.

Hay referencia a unos ids de la tabla 'product.template.attribute.line'. ¿Tengo que crear los atributos primero en esa tabla? En esa tabla si se hace referencia a los valores de los atributos 'product.attribute.value'.

S2

efectivamente, el modelo 'product.template.attribute.line'. representa una combinación de un atributo con sus posibles valores, debes crear ese registro y después asociarselo al product.template a través de attribute_line_ids

Su respuesta

Por favor trate de dar una respuesta sustancial. Si desea comentar sobre la pregunta o respuesta, utilice la herramienta de comentarios. Recuerde que siempre puede revisar sus respuestas - no hay necesidad de contestar la misma pregunta dos veces. Además, no olvide valorar - realmente ayuda a seleccionar las mejores preguntas y respuestas