OdooWiki OCA HUB
Product Licencia: AGPL-3

Clase de producto

Este módulo introduce las Clases de producto para estandarizar la configuración de productos y la gestión de atributos. Permite:

  • Definir Clases de producto — Agrupar productos relacionados en clases (p. ej., "Muebles", "Electrónica")
  • Restringir atributos por clase — Especificar qué atributos están permitidos para cada clase
  • Marcar atributos obligatorios — Designar ciertos atributos como obligatorios para los productos de esa clase
  • Aplicar validación — Impedir que los productos usen atributos fuera de su clase o que les falten atributos obligatorios

Características principales

  • Modelo puente (product.class.attribute.line) — Gestiona la relación entre clases y atributos, almacenando tanto los atributos permitidos como un indicador de obligatorio
  • Validación estricta — Los productos asignados a una clase deben:
  • Usar únicamente atributos definidos en esa clase
  • Proporcionar valores para todos los atributos obligatorios
  • Aplicación en la interfaz — La selección de atributos en los formularios de producto está restringida por el filtro de dominio de la clase
  • Vistas de gestión — Interfaz CRUD completa para clases de producto (Inventario > Configuración > Clases de producto, Ventas > Configuración > Clases de producto)

Arquitectura técnica

  • product.class — Modelo principal de clasificación de productos
  • product.class.attribute.line — Modelo puente que vincula clases con atributos mediante un indicador de obligatorio
  • product.attribute (heredado) — Extendido con un uno-a-muchos inverso para rastrear qué clases lo utilizan
  • product.template (heredado) — Se añadió validación de clase y seguimiento calculado de atributos obligatorios

Traducción automática al español (DeepSeek) de la descripción original de OCA, que está en inglés.

auto_awesome Qué hace este módulo

Generado por IA a partir del código · Odoo 19.0

Crea clases de producto que agrupen productos y controlen qué atributos pueden usar. Los productos asignados a una clase solo pueden usar los atributos permitidos y deben incluir los obligatorios.

Este módulo añade un nuevo concepto llamado Clase de Producto, utilizado para estandarizar cómo se configuran los productos. Una clase es simplemente un grupo con nombre (por ejemplo Mobiliario o Electrónica) que enumera los atributos de producto permitidos para los productos de ese grupo, y marca algunos de ellos como obligatorios.

Dónde aparece en Odoo: - Un nuevo menú Clases de Producto está disponible en Inventario > Productos > Configuración y Ventas > Productos > Configuración. - En un formulario de producto, en la pestaña Variantes, aparece un nuevo campo Clase de Producto encima de las líneas de atributos. - En un formulario de atributo, un botón de estadística muestra cuántas clases de producto usan ese atributo y abre la lista.

Reglas de negocio y comportamiento automático: - Cuando eliges una clase en un producto, Odoo sugiere los atributos obligatorios de la clase como líneas de atributos (valores vacíos), para que puedas rellenarlos. - El selector de atributos del producto se limita a los atributos permitidos por la clase elegida. - Se bloquea el guardado si el producto usa un atributo que no forma parte de su clase, o si falta un atributo obligatorio de la clase. - Una clase no se puede cambiar para eliminar un atributo que todavía usan los productos asignados a ella. - Los nombres de las clases deben ser únicos, y cada atributo solo puede figurar una vez por clase. - Las clases se pueden archivar en lugar de eliminar.

Afecta a plantillas de producto, atributos de producto y sus líneas de atributos, y añade los nuevos registros Clase de Producto y Línea de Atributo de Clase de Producto.

Depende de

productstocksale

Menús que añade

Product ClassesProduct Classes
Modelos y campos (4)
  • product.class · modelo nuevoname, active, attribute_line_ids (Attributes)
  • product.template · amplía un modelo existenteclass_id (Product Class), class_attribute_ids (Class Attributes), class_required_attribute_ids (Class Required Attributes)
  • product.attribute · amplía un modelo existenteclasses_count (Product Classes Count), class_attribute_line_ids (Class Attribute Lines)
  • product.class.attribute.line · modelo nuevoclass_id (Product Class), required, attribute_id

Texto generado por IA (DeepSeek) al leer el código de la versión 19.0 en GitHub; puede contener errores, así que verifícalo en el código antes de decidir. Ver el código en GitHub

Disponibilidad por versión

Revisado: 2026-11-03
Confirmado (verificado en repositorio y rama) Estimado (sin verificar) Sin información

Estado de confirmación: 1 confirmada, 8 sin información de 9 versiones.

Fuentes · Odoo 19.0

Confirmado el 2026-11-03 en la rama 19.0 de OCA/product-attribute.

terminal Instalación y uso

Documentación de OCA · Odoo 19.0

Uso

  • Crear una clase de producto

Navegación: Inventario → Configuración → Clases de producto (o Ventas → Configuración → Clases de producto)

  • Haga clic en el botón Crear
  • Introduzca un nombre de clase de producto (p. ej., "Sillas")
  • En la sección Atributos:
  • Haga clic en Añadir una línea
  • Seleccione un atributo en el desplegable
  • Marque Obligatorio si los productos de esta clase deben definir este atributo
  • Repita para añadir más atributos
  • Haga clic en Guardar

Ejemplo: clase "Mobiliario"

| Atributo | Obligatorio | Notas | |------------|----------|-------------------------------------| | Color | ✓ | Todo el mobiliario debe tener un color | | Tamaño | ✓ | Los tamaños varían según el producto | | Material | | Opcional (no todos los artículos lo especifican) | | Acabado | | Pulido/recubrimiento opcional |

  • Asignar un producto a una clase

Navegación: Inventario → Productos → Productos

  • Cree o edite un producto
  • Busque el campo Clase de producto en la pestaña Atributos y variantes (añadido por este módulo)
  • Seleccione la clase (p. ej., "Mobiliario")
  • El formulario ahora restringirá los atributos solo a los permitidos por la clase
  • Añadir líneas de atributo a un producto con clase

Una vez seleccionada una clase, puede añadir líneas de atributo:

  • Vaya a la pestaña Atributos y variantes
  • En Líneas de atributo, haga clic en Añadir una línea
  • El desplegable del campo Atributo ahora está filtrado para mostrar solo los atributos permitidos por la clase
  • Seleccione un atributo y proporcione valores
  • La validación fallará si:
  • Selecciona un atributo que no está en la clase → Error: "has attribute lines that do not belong"
  • Omite un atributo obligatorio → Error: "is missing required attributes"
  • Eliminar un atributo de una clase

Escenario: Su clase "Mobiliario" permitía "Color" pero quiere retirarlo.

  • Navegue a la clase
  • En Atributos, busque la línea "Color" y elimínela
  • Odoo generará un error si los productos de esta clase todavía usan Color
  • Solución: elimine Color de todos los productos de la clase primero y, después, vuelva a intentar la actualización de la clase

Ejemplo de flujo de trabajo

Paso 1: configurar la clase "Sillas"

  • Color (obligatorio)
  • Tamaño (obligatorio)
  • Material de las patas (opcional)

Paso 2: crear un producto "Silla de madera"

  • Asignar clase: "Sillas"
  • Añadir atributo "Color" = Rojo (cumple el obligatorio)
  • Añadir atributo "Tamaño" = Grande (cumple el obligatorio)
  • Añadir atributo "Material de las patas" = Roble (opcional, sigue siendo válido)
  • Guardar ✓ Correcto

Paso 3: probar una asignación no válida

  • Asignar clase: "Sillas"
  • Añadir atributo "Color" = Azul (cumple el obligatorio)
  • Intentar guardar sin Tamaño → Error: "is missing required attributes for the selected class 'Chairs': Size"
  • Añadir Tamaño = Mediano
  • Guardar ✓ Correcto

Modelo de línea de atributo de clase

El modelo puente product.class.attribute.line almacena:

| Campo | Tipo | Propósito | |-------------|-----------|----------------------------------------| | class_id | Many2one | Clase de producto (obligatorio, borrado en cascada)| | attribute_id| Many2one | Atributo de producto (obligatorio) | | required | Boolean | Si es true, los productos deben definirlo |

Restricción: una clase no puede configurar el mismo atributo dos veces (único en class_id + attribute_id).

Restricciones y validaciones

  • Restricción de clase (_check_attribute_ids_used_by_products)
  • Impide eliminar un atributo de una clase si los productos todavía lo usan
  • Error: "Cannot remove attributes used in products assigned to class..."
  • Restricción de producto (_check_class_attributes)
  • Garantiza que todas las líneas de atributo pertenezcan a la clase
  • Garantiza que todos los atributos obligatorios estén definidos
  • Error: "Product '...' has attribute lines that do not belong to the selected class '...'"
  • Error: "Product '...' is missing required attributes for the selected class '...'"

Avanzado: control de acceso

  • Usuario (base.group_user): puede crear/leer/escribir clases de producto y sus atributos
  • Sistema/Administrador (base.group_system): CRUD completo, incluido el borrado

Las líneas de atributo de clase de producto siguen las mismas reglas de acceso.

Traducción automática al español (DeepSeek) de la documentación original de OCA; los comandos y el código no se traducen. Sin información verificada en OCA: Instalación, Configuración.

info

Datos importados de GitHub: esta ficha refleja la última revisión del catálogo, no una consulta en directo. Verifica siempre en la documentación del módulo y en staging antes de instalar en producción.