Atributos de producto: cómo diseñar un modelo que no envejezca en seis meses
El modelo de atributos es donde vive la descripción real de cada producto — y donde la mayoría de los catálogos acumulan la deuda técnica que los vuelve inmanejables. El error no es no tener atributos: es diseñarlos mal, crear uno nuevo para cada excepción y terminar con un modelo de cientos de campos que nadie entiende ni mantiene. Este artículo explica cómo diseñar un modelo de atributos que soporte el crecimiento del catálogo sin envejecer ni convertirse en un pantano.
El problema no es la herramienta. Es crear un atributo cada vez que aparece una excepción.
Hay una forma segura de destruir un modelo de datos de producto, y casi todas las empresas la practican sin darse cuenta: crear un atributo nuevo cada vez que un producto no encaja del todo en la estructura existente.
Aparece un producto con una característica particular, y en lugar de preguntarse si esa característica pertenece al modelo, alguien crea un campo nuevo para ella. Se repite ese reflejo cientos de veces a lo largo de meses, y el resultado es un modelo con doscientos, trescientos, cuatrocientos atributos, la mayoría de los cuales aplica a un puñado de productos, muchos de los cuales se solapan entre sí, y ninguno de los cuales nadie recuerda por qué existe.
Ese modelo no fue diseñado: fue acumulado. Y un modelo acumulado envejece rápido, se vuelve imposible de mantener y termina siendo un obstáculo en lugar de una herramienta. El problema, otra vez, no es la herramienta: es la ausencia de un método de diseño que distinga qué merece ser un atributo y qué no.
¿Qué es un atributo de producto y cuáles son sus tipos?
Un atributo de producto es cada característica estructurada que describe una propiedad específica de un producto: su color, su peso, su material, su potencia, su compatibilidad. Los atributos son las unidades mínimas de información con las que se construye la ficha de producto, y su diseño determina qué se puede buscar, filtrar, comparar y mostrar.
El primer principio de un buen diseño es elegir el tipo de dato correcto para cada atributo. Los tipos fundamentales son:
Texto: para valores descriptivos libres o cortos. Nombre, descripción, observaciones. Es el tipo más flexible y, por eso mismo, el que más hay que acotar: el texto libre no se filtra ni se compara con precisión.
Numérico: para valores que son cantidades, con su unidad de medida. Peso, potencia, capacidad, dimensiones. El tipo numérico permite ordenar, filtrar por rango y comparar — cosas que el texto no permite. Un peso guardado como texto (“2,3 kg”) es inutilizable para filtrar por rango; guardado como numérico con unidad, es filtrable y comparable.
Lista (o selección): para atributos cuyos valores provienen de un vocabulario controlado. Color, talla, material. Es el tipo que garantiza consistencia y filtrabilidad, y donde se aplica el vocabulario controlado que vimos en la entrega anterior.
Booleano: para características de sí/no. ¿Es inalámbrico? ¿Incluye batería? ¿Es apto para exterior? El booleano es simple pero poderoso para filtros binarios que los compradores usan mucho.
Referencia: para atributos cuyo valor es otra entidad del sistema. La marca, el fabricante, un producto relacionado. En lugar de repetir el texto “Marca X” en cada producto, se referencia a la entidad “Marca X” que existe una sola vez, con sus propios atributos. Esto evita duplicación y permite gestionar la entidad referenciada de forma centralizada.
Elegir el tipo correcto para cada atributo es la primera decisión de diseño, y una de las que más impacto tiene en lo que el catálogo podrá hacer después. Un atributo con el tipo equivocado limita para siempre lo que se puede hacer con él.
¿Qué es la extensibilidad por familia de productos y por qué es la clave del diseño?
Acá está el concepto que separa un modelo que escala de uno que colapsa: no todos los productos necesitan los mismos atributos, y forzar un modelo único para todo el catálogo es el origen del pantano.
Un taladro necesita atributos de potencia, tipo de mandril y velocidad. Una remera necesita atributos de talla, composición textil y tipo de cuello. No tiene ningún sentido que la remera tenga un campo “potencia del motor” vacío ni que el taladro tenga un campo “tipo de cuello” vacío. Sin embargo, eso es exactamente lo que pasa cuando se diseña un modelo plano donde todos los productos comparten la misma lista gigante de atributos.
La solución es el modelo de familias de productos. Una familia agrupa productos que comparten la misma estructura de atributos: la familia “Herramientas eléctricas” tiene sus atributos, la familia “Indumentaria superior” tiene los suyos. Cada producto pertenece a una familia y hereda los atributos de esa familia — solo esos, no todos los del catálogo.
Este diseño produce tres beneficios decisivos. Mantiene las fichas limpias: cada producto tiene solo los atributos que le corresponden, sin campos vacíos irrelevantes. Hace el modelo extensible: cuando aparece un tipo de producto nuevo, se crea una familia nueva con sus atributos, sin tocar las familias existentes. Facilita la gobernanza: los atributos están organizados por dominio lógico, no en una lista plana imposible de navegar.
La extensibilidad por familia es lo que permite que el modelo crezca con el catálogo sin envejecer: cada nueva categoría de producto se acomoda en su propia familia, y el modelo se expande de forma ordenada en lugar de inflarse de forma caótica.
¿Qué es la herencia de atributos y cómo evita la duplicación?
La herencia es el mecanismo por el cual los atributos definidos en un nivel superior se propagan automáticamente a los niveles inferiores, sin necesidad de redefinirlos en cada uno.
Si todos los productos del catálogo comparten ciertos atributos básicos —nombre, código, marca, precio de referencia— esos atributos se definen una vez en el nivel raíz y todas las familias los heredan. Si todas las herramientas comparten ciertos atributos, se definen en la familia “Herramientas” y las subfamilias —eléctricas, manuales, de medición— los heredan, agregando además los suyos propios.
La herencia evita la duplicación de definiciones y garantiza consistencia: un atributo heredado es el mismo en todos los productos que lo heredan, con la misma definición, el mismo tipo y el mismo vocabulario controlado. Cuando hay que modificar ese atributo, se modifica una vez en el nivel donde está definido, y el cambio se propaga a todo lo que lo hereda.
Un modelo bien diseñado usa la herencia para poner cada atributo en el nivel correcto: los universales en la raíz, los de familia en la familia, los específicos en la subfamilia. Esa disciplina de ubicación es lo que mantiene el modelo comprensible y mantenible a medida que crece.
¿Cuáles son los errores más frecuentes en el diseño de atributos?
Error 1: Crear un atributo para cada excepción. El error madre, ya descrito. Cada vez que un producto no encaja, la respuesta correcta rara vez es un atributo nuevo. Casi siempre es reconsiderar si ese producto pertenece a la familia correcta o si la característica se puede modelar con los atributos existentes.
Error 2: Modelo plano sin familias. Poner todos los atributos del catálogo en una sola lista que todos los productos comparten. Produce fichas llenas de campos vacíos irrelevantes y un modelo imposible de navegar.
Error 3: Tipo de dato incorrecto. Guardar como texto libre lo que debería ser numérico o lista. Es el error que más silenciosamente limita las capacidades del catálogo: un atributo con el tipo equivocado nunca se podrá filtrar ni comparar como debería.
Error 4: Atributos redundantes. Crear “color”, “color principal” y “tonalidad” como tres atributos distintos cuando deberían ser uno. La redundancia fragmenta la información y confunde tanto a quien carga como a quien filtra.
Error 5: No usar referencias donde corresponde. Repetir como texto libre información que debería ser una entidad referenciada —la marca, el fabricante— y perder la capacidad de gestionarla de forma centralizada.
Error 6: Diseñar sin pensar en el filtrado. Crear atributos sin preguntarse cómo va a filtrar y comparar el comprador. Un atributo que no sirve para buscar, filtrar, comparar ni mostrar es un atributo que probablemente no debería existir.
¿Cómo se diseña un modelo de atributos que perdure?
Definí las familias antes que los atributos. El primer paso no es listar atributos, sino identificar las familias de productos del catálogo. Las familias son la estructura; los atributos se cuelgan de ellas.
Para cada familia, preguntá qué necesita saber el comprador. Los atributos de una familia deben salir de las preguntas que el comprador se hace sobre ese tipo de producto para decidir. Eso garantiza que los atributos sean relevantes y no un ejercicio de completitud abstracta.
Elegí el tipo de dato pensando en el uso futuro. Para cada atributo, preguntá cómo se va a usar: ¿se filtra por rango? Numérico. ¿Se filtra por opción? Lista. ¿Es sí/no? Booleano. El tipo se elige por el uso, no por comodidad de carga.
Ubicá cada atributo en el nivel correcto de herencia. Universal a la raíz, de familia a la familia, específico a la subfamilia. Esta disciplina mantiene el modelo limpio a medida que crece.
Antes de crear un atributo nuevo, agotá las alternativas. Ante una característica nueva, la primera pregunta no es “qué atributo creo” sino “¿se puede modelar con lo que ya tengo? ¿pertenece este producto a la familia correcta?”. El atributo nuevo es el último recurso, no el primero.
Revisá el modelo periódicamente. Un modelo sano se poda: los atributos que quedaron en desuso, los redundantes, los que se crearon para una excepción que nunca se repitió, se eliminan. El mantenimiento evita que el modelo envejezca.
Resumiendo
El modelo de atributos es donde el catálogo describe lo que realmente es cada producto, y donde se define casi todo lo que el catálogo podrá hacer: qué se busca, qué se filtra, qué se compara, qué se muestra. Un modelo bien diseñado es un activo que soporta el crecimiento; un modelo acumulado sin criterio es una deuda que se paga con cada producto nuevo.
La clave del diseño que perdura es el modelo de familias con herencia: cada tipo de producto tiene los atributos que le corresponden, el modelo se extiende creando familias nuevas sin tocar las viejas, y la herencia mantiene la consistencia y evita la duplicación. Sobre esa estructura, la disciplina de no crear un atributo para cada excepción es lo que mantiene el modelo sano en el tiempo.
En la última entrega de este cluster abordamos la parte del catálogo donde todo se complica: las variantes, las matrices y los configurables, y cómo modelarlos sin romper la estructura padre-hijo que sostiene el catálogo.
