Actualizado el 18-oct-2026. Primera versión de la arquitectura de esta épica.
Qué responde. Cómo funciona por dentro FT-PLT-08: qué piezas participan, en qué orden hablan, qué APIs hay que construir con su request y su response, y qué le entrega a la épica siguiente.
Para quién. Los equipos que van a construir la épica, QA y arquitectura.
Estado. [Propuesta] del TL del Nuevo PIM, 18-oct-2026, construida sobre ADR-12. La spec de cada épica dice el qué; estas páginas, el cómo.
Fuente. docs/arquitectura/por-epica/epicas/FT-PLT-08.json, generada con generar.py; la ficha de la épica es trazabilidad/features/FT-PLT-08-titulos-nombres-descripciones.md.
En 30 segundos
El título del producto se arma solo con la regla de su plantilla, igual que en P360, para que el cambio de sistema no mueva los nombres publicados. Esta épica calcula el título, el título sin marca y la descripción en el mismo momento en que cambia un dato que los forma, los recalcula sin esperar en la cola general cuando cambia la regla, arma el nombre completo de los configurables y ofrece al seller sugerencias de título con IA.
- Módulo dueño: MS-02 Producto. También participan: MS-01 Catálogo, MS-08 Adaptadores de salida, MS-15 IA y enriquecimiento.
- Etapa 3 · Captura. Recibe «PE-3 · Plantilla asignada» y entrega a otras épicas.
- APIs: construye 2 y usa 7 que construyen otras épicas.
- Eventos: publica 2 y consume 2.
1. Dónde encaja
Recibe
| De | Qué |
|---|---|
| FT-PLT-05 · Taxonomía de plantillas por familia, metadatos de… | Los metadatos de nombre de cada plantilla (orden de atributos del título, guía, excepciones y orden del configurable), con herencia de EU4 a EU3. |
| FT-PLT-06 · Configuración de atributos por plantilla y por negocio… | Qué atributos del título son obligatorios en cada negocio. |
| PE-3 · Plantilla asignada | El producto con plantilla, del que se toman los valores que forman el título. |
| FT-IA-04 · Integración de los modelos de IA existentes | El título y la descripción que propone el modelo de títulos, como sugerencia. |
| FT-RAC-06 · Métricas de tiempos por paso y clasificación de errores | La latencia de los atributos calculados, como el título sin marca, para comprobar su meta. |
Entrega
| A | Qué |
|---|---|
| FT-RAC-01 · Motor de validación en línea y candados de datos… | Título y descripción calculados, que los candados del envío y del SKU exigen. |
| FT-INT-01 · Publicación a e-commerce | El nombre y la descripción que se publican; sin título no se publica. |
| FT-IA-04 · Integración de los modelos de IA existentes | La regla de nombre de la plantilla como respaldo y contexto del modelo de títulos. |
Cambios de estado que hace
| Transición | De → a | Cuándo |
|---|---|---|
| C06 | Publicado → Enviado (por canal) | Se aprueba un cambio. |
2. Diagrama de contexto
Quién participa y cómo se conecta. Las pantallas llegan por el BFF del portal, que valida el token y compone; cada módulo vuelve a validar el token y decide sus permisos con los roles de MS-13.
🟩 Verde: nuevo, se construye · 🟦 Azul: ya existe y se queda, se reutiliza su código · 🟧 Naranja: temporal o se retira (se apaga en R3) · ⬜ Gris: sistema externo · ★ módulo dueño
3. Diagrama de flujo
El camino principal, paso por paso. Cuando una pantalla llama a un módulo se ven dos flechas: la pantalla al BFF y el BFF al módulo. Los eventos salen del outbox del módulo después de guardar; quien los consume ignora los repetidos.
Los pasos en texto
| Paso | De | A | Qué hace | API o evento |
|---|---|---|---|---|
| 1 | Proveedor | Entrada Única · Vendor Center | Captura tipo de producto, marca y modelo | — |
| 2 | Entrada Única · Vendor Center | MS-02 Producto (por el BFF) | Revisa los valores y ve el título calculado | API-02-012 |
| 3 | MS-02 Producto | MS-01 Catálogo | Lee la regla de nombre de la plantilla, con herencia | API-01-026 |
| 4 | Entrada Única · Vendor Center | MS-02 Producto (por el BFF) | Guarda los valores | API-02-057 |
| 5 | MS-02 Producto | Base pim | Guarda título, título sin marca y descripción calculados | — |
| 6 | MS-02 Producto | Eventos | Avisa el cambio del producto | catalog.product.changed/PRODUCT_UPDATED |
| 7 | Administración del catálogo | Entrada Única · Vendor Center | Marca los atributos que forman el título | — |
| 8 | Entrada Única · Vendor Center | MS-01 Catálogo (por el BFF) | Cambia el orden de atributos del título | API-01-027 |
| 9 | MS-01 Catálogo | Eventos | Avisa que cambió la plantilla | catalog.governance.changed/TEMPLATE_CHANGED |
| 10 | Eventos | MS-02 Producto | Entrega el cambio de la regla de nombre | catalog.governance.changed/TEMPLATE_CHANGED |
| 11 | MS-02 Producto | Base pim | Recalcula en su propia cola los títulos de esa plantilla | — |
| 12 | MS-02 Producto | Eventos | Pide republicar los aprobados con el título nuevo | catalog.product.publication/PUBLICATION_REQUESTED |
3.1 Sugerencias de título para el seller
3.2 Recalcular y comparar antes de republicar
3.3 Nombre de un configurable
4. Si algo sale mal
- La plantilla no tiene orden de atributos para el título ni lo hereda. Se usa el valor por omisión del negocio, como hoy: en Suburbia empieza por SB_0002 y usa BRAND_ID_S4H; en Liverpool y Marketplace, tipo de producto SAP, marca y modelo comercial o número de parte. El título sin marca es el mismo texto sin la marca.
- A un seller de Marketplace le falta un atributo del título. El título se arma con lo disponible y el plan avisa «tu título queda genérico: captura este dato»; no bloquea. El seller puede pedir sugerencias a la IA.
- La IA no responde al pedir sugerencias. La pantalla muestra sólo el título de la regla y deja escribir uno propio; nada se bloquea.
- Un interno fijó el título a mano. El recálculo no lo pisa: el plan lo cuenta como título fijado y Gobierno de Producto puede regresarlo a la regla con el plan de valores.
- El recálculo de una plantilla grande no termina antes de la siguiente carga. Cada producto se recalcula en su propia transacción, así que la carga lleva el título nuevo o el anterior completo, nunca uno a medias; el avance se ve en el recibo del trabajo.
5. APIs
Las que construye esta épica (2)
POST /api/v2/products/{id}/title-suggestions · Sugerencias de título y descripción
| Campo | Valor |
|---|---|
| API | API-02-108 · MS-02 Producto |
| Para qué | Pide a la IA (MS-15) sugerencias de título y descripción con la regla de nombre de la plantilla y lo ya capturado. No escribe nada: el seller elige una, la ajusta y la guarda con el plan de valores. |
| En esta épica | Pedir sugerencias de título y descripción a la IA |
| Quién la llama | BFF del portal |
| Permiso | El proveedor o seller dueño; internos con VAL-E |
| Cabeceras | Authorization, X-Request-Id |
| Parámetros | id = PRD-0004812 |
Request
{
"fields": [
"productName",
"descriptionLong"
],
"language": "es",
"max": 2
}
Response · 200
{
"success": true,
"data": {
"productId": "PRD-0004812",
"ruleTitle": "Playera MARCA01 deportiva de algodón",
"suggestions": [
{
"productName": "Playera deportiva MARCA01 de algodón para hombre, cuello redondo",
"descriptionLong": "Playera de algodón transpirable con cuello redondo, ideal para entrenar.",
"confidence": 0.82,
"aiJobId": "aij-5521"
}
],
"aiAvailable": true
}
}
Errores
| HTTP | Código | Cuándo |
|---|---|---|
| 404 | NOT_FOUND | El producto no existe o no es visible para quien llama |
| 503 | DEPENDENCY_UNAVAILABLE | La IA no responde; la pantalla muestra sólo el título de la regla |
POST /api/v2/products/titles/recalculations/plans · Recalcular títulos
| Campo | Valor |
|---|---|
| API | API-02-109 · MS-02 Producto |
| Para qué | Prepara el recálculo de título, título sin marca y descripción de una plantilla o de una selección, con el antes y el después de una muestra y cuántos aprobados se republicarían. Al confirmar corre en la cola propia de calculados, sin esperar la cola general de cambios. |
| En esta épica | Recalcular títulos de una plantilla o selección, con el antes y el después |
| Quién la llama | BFF del portal |
| Permiso | Gobierno de Producto o Repoblamiento |
| Cabeceras | Authorization, X-Request-Id, Idempotency-Key |
| Publica | catalog.product.changed/PRODUCT_UPDATED, catalog.product.publication/PUBLICATION_REQUESTED |
Request
{
"scope": {
"templateId": "EU4-0412",
"productIds": []
},
"fields": [
"productName",
"titleWithoutBrand",
"descriptionLong"
],
"republishApproved": true
}
Response · 200
{
"success": true,
"data": {
"planId": "pln-2c66aa",
"expiresAt": "2026-10-18T17:30:00Z",
"summary": {
"products": 1840,
"willChange": 312,
"approvedToRepublish": 287,
"manualTitlesKept": 14
},
"sample": [
{
"productId": "PRD-0004812",
"field": "titleWithoutBrand",
"before": "Licuadora MARCA01 LX-200",
"after": "Licuadora LX-200"
}
],
"estimatedMinutes": 6,
"applyUrl": "/api/v2/product-plans/pln-2c66aa/apply"
}
}
Errores
| HTTP | Código | Cuándo |
|---|---|---|
| 400 | VALIDATION_ERROR | No trae plantilla ni selección, o la selección pasa de 100,000 productos |
| 403 | AUTHORIZATION_ERROR | Quien llama no es Gobierno de Producto ni Repoblamiento |
Las que usa y construye otra épica (7)
Su request y su response están en la página de la épica que la construye.
| API | Método y ruta | Para qué, aquí | La construye |
|---|---|---|---|
| API-02-012 | POST /api/v2/products/{id}/values/plans | Ver el título y la descripción calculados mientras se captura, y guardar uno propio | FT-RAC-01 · Motor de validación en línea y candados de datos… |
| API-01-026 | GET /api/v2/taxonomies/{t}/nodes/{id}/metadata | Leer la regla de nombre y el orden del configurable de la plantilla, con herencia | FT-PLT-05 · Taxonomía de plantillas por familia, metadatos de… |
| API-01-027 | POST /api/v2/taxonomies/{t}/nodes/{id}/metadata/plans | Que Gobierno de Producto marque los atributos del título | FT-PLT-05 · Taxonomía de plantillas por familia, metadatos de… |
| API-02-057 | POST /api/v2/product-plans/{planId}/apply | Confirmar valores, recálculos y grupos | FT-FLU-01 · Motor de estados configurable con dos carreteras y reglas… |
| API-15-007 | POST /api/v2/ai/titles | El modelo de títulos propone título y descripción | FT-IA-04 · Integración de los modelos de IA existentes |
| API-02-106 | POST /api/v2/product-groups/plans | Armar el grupo configurable cuyos miembros llevan nombre completo | FT-PRD-01 · Modelo canónico de producto |
| API-02-054 | GET /internal/product/products/{id}/publication-snapshot?version= | La foto de publicación lleva la misma descripción a la tienda, a OMS y al surtido | FT-CAT-05 · Sitios, enrutamiento y visibilidad por negocio |
6. Eventos
Publica
| Evento | Cuándo | Quién lo consume |
|---|---|---|
catalog.product.changed/PRODUCT_UPDATED | Cambia un dato que forma el título o se recalcula por un cambio de regla | FT-ACT-05, FT-ARQ-02, FT-IA-01, FT-PLT-07, FT-PRD-05, FT-RAC-06 |
catalog.product.publication/PUBLICATION_REQUESTED | Un aprobado cambia de título o descripción por un recálculo | FT-CAT-05, FT-CAT-06, FT-INT-01, FT-INT-02, FT-INT-05, FT-INT-07, FT-PRD-05, FT-RAC-03 |
Consume
| Evento | Para qué | Quién lo publica |
|---|---|---|
catalog.governance.changed/TEMPLATE_CHANGED | MS-02 recalcula los títulos de los productos de esa plantilla en su cola de calculados | FT-IA-04, FT-PLT-01, FT-PLT-05, FT-PLT-06, FT-PLT-09 |
catalog.product.publication/PUBLICATION_REQUESTED | MS-08 arma el envío a la tienda con el título nuevo | esta misma épica |
7. Datos
Cada colección tiene un solo dueño, el único que escribe en ella.
| Colección | Dueño | Qué guarda | Esta épica |
|---|---|---|---|
products | MS-02 | La familia del producto con sus variantes, valores, imágenes (URL), clasificaciones, estado, tareas abiertas y rechazos. | escribe |
product_jobs | MS-02 | Trabajos asíncronos: cargas masivas de productos, edición masiva y publicación. | escribe |
product_receipts | MS-02 | El recibo de cada escritura confirmada en el producto (antes operation_receipts). | escribe |
product_outbox | MS-02 | Los cambios del producto que esperan salir como evento (antes outbox). | escribe |
taxonomy_nodes | MS-01 | Plantillas y nodos de grupo de artículo, con la configuración de atributos de cada plantilla. | lee |
template_views | MS-01 | La vista efectiva ya resuelta por plantilla y negocio: qué atributos pide y cuáles son obligatorios. | lee |
ai_jobs | MS-15 | Cada trabajo de IA con su entrada, su resultado y su confianza. | lee |
8. Historias que cubre
| Historia | Prioridad | Cómo la cubre |
|---|---|---|
| FT-PLT-08·H1 · Paridad del título | P1 | pasos 2, 3, 5; flujo «Recalcular y comparar antes de republicar»; API-01-026 |
| FT-PLT-08·H2 · Recálculo a tiempo | P1 | pasos 10, 11, 12; flujo «Recalcular y comparar antes de republicar»; API-02-109 |
| FT-PLT-08·H3 · Atributos del título en Marketplace | P2 | pasos 7, 8; API-01-027 |
| FT-PLT-08·H4 · Nombres completos | P2 | flujo «Nombre de un configurable»; API-02-106 |
| FT-PLT-08·H5 · SEO | P3 | flujo «Sugerencias de título para el seller»; API-02-108, API-15-007 |
| FT-PLT-08·H6 · La misma descripción en surtido y en la página | P3 | API-02-054 |
9. Decisiones de esta épica
Las tomó el TL como arquitecto; quedan como [Propuesta] hasta que el equipo de la épica las revise.
- D-PLT-08-1. MS-02 calcula título, título sin marca y descripción con la regla de nombre de la plantilla, que guarda Catálogo (metadatos de nombre con herencia de EU4 a EU3). El cálculo vive junto al dato del producto. Por qué: El título se arma con valores del producto; calcularlo en otro lado obligaría a copiar esos valores. La regla sigue siendo de Catálogo. Se apoya en PD-05, DEC-ARQ-08, ADR-12.
- D-PLT-08-2. Precedencia del título: un valor fijado a mano gana sobre la regla y la regla gana cuando nadie lo fijó; la IA sólo sugiere y lo sugerido se guarda como propio si el usuario lo acepta. El producto guarda el origen del título (REGLA, MANUAL o IA aceptada). Por qué: Hoy el título tiene cinco escritores y gana el último, sin regla; guardar el origen evita que un recálculo pise lo que alguien corrigió. Se apoya en PEN-167, RN-ENR-05.
- D-PLT-08-3. El título se recalcula en la misma transacción en que cambia un dato que lo forma. Si cambia la regla de la plantilla, el recálculo corre en una cola propia de calculados, con prioridad sobre la cola general, y termina antes de 1 hora para una plantilla típica. Por qué: Hoy el título sin marca tarda hasta 45 días por la cola de cambios de P360 y repoblamiento aprueba una hora después. Se apoya en RF-PLA-16, DEC-86.
- D-PLT-08-4. Un producto aprobado cuyo título cambió por recálculo de la regla se republica directo, sin Revisión del cambio: su canal pasa de Publicado a Enviado. Por qué: Ningún dato del proveedor cambió; la regla ya pasó por la aprobación de cambios del catálogo. Se apoya en RF-PLA-16, FT-PRD-05.
- D-PLT-08-5. Si a un seller de Marketplace le falta un atributo del título, el título se arma con lo disponible y se le avisa, sin bloquear; la IA puede sugerir lo que falta. Por qué: Pedirlo como obligatorio contradice que los atributos del título no sean obligatorios en Marketplace; generarlo vacío deja títulos genéricos. Se apoya en PEN-137, RN-PLA-15.
- D-PLT-08-6. Hay una sola descripción, en el producto. La tienda, OMS, Señalización y el surtido la reciben de la misma foto de publicación. La ruta de hoy que usa XD no se construye y su reemplazo se decide con ADR-06. Por qué: Si cada sistema guarda su descripción, el surtido falla al buscar el producto; una fuente evita la diferencia. Se apoya en ADR-06, ADR-12.
- D-PLT-08-7. Antes del corte, la regla se prueba contra los 981 pares de la tienda y se reporta el porcentaje de acierto; la referencia se congela después del cambio de estrategia de título sin marca en P360. Por qué: La referencia de paridad se mueve con los scripts de títulos de P360. Se apoya en RSG-47, PEN-120, DEC-86.
- D-PLT-08-8. El nombre de cada miembro de un configurable se completa con los valores de su configuración, en el orden que dice la plantilla. Por qué: Hoy los configurables no reflejan su configuración en el nombre; la plantilla ya trae ese orden en 70 casos. Se apoya en DEC-85, PEN-119.
Qué falta decidir
| ID | Qué falta |
|---|---|
| DUD-35 | Confirmar si la IA de títulos entra en la primera salida. |
| ADR-06 | Decidir cómo recibe XD la descripción cuando la ruta de hoy deje de existir. |
También siguen abiertos: PEN-137, Confirmar con Gobierno de Producto qué hacer si al seller le falta un atributo del título (aquí: se arma con lo disponible y se avisa); PEN-26, Sesión pendiente de obligatoriedad y títulos; PEN-118, Definir qué es «product type» y qué información se mantiene de él.
Fuentes
- [D]
trazabilidad/features/FT-PLT-08-titulos-nombres-descripciones.md: la ficha de la épica, con sus historias, reglas y bloqueos. - [D] ADR-12 · Un solo sistema: backend compartido y una sola base (sección 3.4).
- [D]
docs/arquitectura/por-epica/base/: piezas, colecciones, eventos y el hilo de punta a punta. - [D]
docs/arquitectura/omega-a-pim-headless/contratos-api.md: convenciones y endpoints de partida. - [D]
docs/arquitectura/maquina-de-estados-to-be/propuesta-maquina-de-estados.md§7: estados, tareas y canales. - [I] Las decisiones de la sección 9 son del TL sobre esas fuentes.