Actualizado el 18-oct-2026. Primera versión de la arquitectura de esta épica.
Qué responde. Cómo funciona por dentro FT-PLT-10: 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-10.json, generada con generar.py; la ficha de la épica es trazabilidad/features/FT-PLT-10-fachada-v1-compatible-p360.md.
En 30 segundos
Hoy el navegador de Vendor Center arma la pantalla de captura llamando directo a P360: la plantilla, una lista y un habilitador por atributo, las marcas, el margen y la revisión de sección. Esta épica define las rutas del BFF del portal que reemplazan esas llamadas en R1, con qué endpoints de Catálogo se arman y cómo se apaga cada llamada vieja cuando su tráfico llega a cero.
- Módulo dueño: MS-01 Catálogo. También participan: MS-03 Migración y convivencia.
- Etapa 2 · Plantilla. Recibe «PE-C · Catálogo vigente» y entrega «PE-3 · Plantilla asignada».
- APIs: construye 7 y usa 8 que construyen otras épicas.
- Eventos: publica 2 y consume 2.
1. Dónde encaja
Recibe
| De | Qué |
|---|---|
| PE-C · Catálogo vigente | El catálogo vigente en MS-01: plantillas, vistas efectivas, listas, diccionarios y reglas. |
| FT-PLT-06 · Configuración de atributos por plantilla y por negocio… | La vista efectiva por plantilla y negocio (API-01-028), con secciones, obligatorios y dependencias de un nivel, y los valores válidos de las listas grandes (API-01-108). |
| FT-PLT-03 · Listas de valores y modelo canónico con equivalencias por… | Las listas de valores y su filtro por plantilla. |
| FT-PLT-07 · Reglas de atributos | Las marcas y grupos de artículos permitidos por plantilla, negocio y proveedor, con la sección ligada (API-01-202). |
| FT-MIG-02 · Migración de plantillas, atributos y listas de valores | La copia viva del catálogo de P360 en MS-01 mientras P360 sea la fuente. |
Entrega
| A | Qué |
|---|---|
| PE-3 · Plantilla asignada | La pantalla de captura pide por el BFF los campos y obligatorios de la plantilla y negocio que dice la vista efectiva de MS-01, sin llamar a P360. |
| FT-PRD-07 · Captura guiada por pasos con los mínimos primero | El formulario de captura de una plantilla (API-BFF-101), que la captura guiada junta con la propuesta. |
| FT-PRD-09 · Contrato de propuestas con Entrada Única | Las rutas de catálogo que la pantalla de propuesta compone cuando pasa al BFF en R2. |
| FT-ACT-05 · Servicios para Foro Fotográfico | Las mismas rutas para el módulo de Foro en Vendor Center, con la agrupación de GetTemplateForo. |
| FT-FLU-04 · Carga masiva de productos por archivo | La revisión de plantilla y sección por renglón para la carga masiva (API-BFF-104). |
| FT-MIG-04 · Convivencia P360 ↔ nuevo PIM | Cada operación de plantilla de P360 sin tráfico del navegador, lista para quitarse, y el interruptor de los dos avisos de catálogo para el corte. |
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 | Busca la plantilla de su producto | — |
| 2 | Entrada Única · Vendor Center | BFF del portal | Busca la plantilla por texto | API-BFF-107 |
| 3 | BFF del portal | MS-01 Catálogo | Busca entre las plantillas vigentes | API-01-022 |
| 4 | Entrada Única · Vendor Center | BFF del portal | Pregunta si puede catalogar con esa plantilla | API-BFF-103 |
| 5 | BFF del portal | MS-01 Catálogo | Pide marcas, grupos y sección permitidos | API-01-202 |
| 6 | Entrada Única · Vendor Center | BFF del portal | Pide el formulario de captura en una llamada | API-BFF-101 |
| 7 | BFF del portal | MS-01 Catálogo | Pide la vista efectiva de plantilla y negocio | API-01-028 |
| 8 | BFF del portal | MS-01 Catálogo | Pide las etiquetas de las listas chicas | API-01-007 |
| 9 | MS-01 Catálogo | Base pim | Lee la vista ya resuelta de template_views | — |
| 10 | Proveedor | Entrada Única · Vendor Center | Abre una lista grande y busca un valor | — |
| 11 | Entrada Única · Vendor Center | BFF del portal | Pide los valores con búsqueda y páginas | API-BFF-102 |
| 12 | BFF del portal | MS-01 Catálogo | Pide los valores válidos ya filtrados | API-01-108 |
| 13 | Entrada Única · Vendor Center | BFF del portal | Pide los factores de margen por impuesto | API-BFF-105 |
| 14 | BFF del portal | MS-01 Catálogo | Lee la tabla de margen por indicador | API-01-012 |
3.1 Paridad y apagado con tráfico cero
3.2 Revisión de plantilla y sección en la carga masiva
3.3 Aviso a la copia de plantillas de Entrada Única
4. Si algo sale mal
- MS-01 no responde al armar el formulario. El BFF responde 503 y la pantalla muestra el error; nunca un formulario o una lista vacíos sin aviso, como pasa hoy cuando P360 falla.
- La paridad del día encuentra diferencias sin justificar. Esa operación no se cambia en las apps hasta que Gobierno de Producto las cierre; si ya se cambió, la app regresa a la llamada de P360 con su interruptor mientras P360 viva.
- Una operación vieja no llega a cero. No se quita de la entrada de P360: se busca quién la sigue llamando y se mueve; si no es una pantalla (un script o la IA), se decide con ADR-06.
- Un proveedor intenta ver el alcance de otro proveedor. El BFF toma al proveedor de la sesión y MS-01 responde 403 si no coincide; la pantalla no lo muestra.
- Llegan dos avisos de plantilla por el mismo cambio. No puede pasar con un solo emisor: el de MS-01 se enciende por tópico en la misma ventana en que se apaga el de P360 (FT-MIG-04).
5. APIs
Las que construye esta épica (7)
GET /bff/v1/catalog/capture-form · Formulario de captura de una plantilla
| Campo | Valor |
|---|---|
| API | API-BFF-101 · BFF del portal |
| Para qué | Arma en una sola respuesta lo que la pantalla de captura necesita de una plantilla y negocio: secciones en orden, atributos con tipo, obligatoriedad y orden, de qué valor depende cada uno y los valores de las listas chicas con su etiqueta. Reemplaza GetTemplate y las llamadas por atributo a listas y habilitadores (incluido el del nombre de producto) que hoy hace el navegador a P360. Con groupBy=ATTRIBUTE_GROUP agrupa como GetTemplateForo, para el módulo de Foro en Vendor Center. Toma de la vista efectiva los códigos permitidos y las dependencias, y de la lista sólo las etiquetas. |
| En esta épica | Formulario de captura en una llamada: reemplaza GetTemplate, las listas chicas y los habilitadores |
| Quién la llama | Entrada Única · Vendor Center (por el BFF) |
| Permiso | Pantalla de captura: proveedor, seller o usuario interno con acceso a la plantilla |
| Cabeceras | Authorization, X-Request-Id |
| Parámetros | templateId = EU4-0412, business = MER, creationType = CreateProposal, groupBy = SECTION, lang = es |
| También la usan | FT-PRD-07, FT-PRD-09 |
Request
null
Response · 200
{
"success": true,
"data": {
"templateId": "EU4-0412",
"templateName": "Camisas",
"business": "MER",
"creationType": "CreateProposal",
"sourceVersions": {
"templateView": 41,
"lovs": 12
},
"lastModified": "2026-10-17T22:10:00Z",
"sections": [
{
"code": "DATOS_BASE",
"label": "Datos base",
"order": 1,
"attributes": [
{
"id": "TamanoUnico",
"label": "Talla",
"dataType": "LOV",
"mandatory": true,
"editable": true,
"multiValued": false,
"order": 4,
"values": {
"inline": true,
"items": [
{
"code": "S",
"label": "Chica"
},
{
"code": "M",
"label": "Mediana"
},
{
"code": "L",
"label": "Grande"
}
]
}
},
{
"id": "CertificadoSostenible",
"label": "Certificado sostenible",
"dataType": "LOV",
"mandatory": false,
"editable": true,
"multiValued": true,
"order": 12,
"enabledBy": {
"attribute": "AE485",
"values": [
"SI"
]
},
"values": {
"inline": false,
"url": "/bff/v1/catalog/capture-form/values?templateId=EU4-0412&attributeId=CertificadoSostenible&business=MER"
}
},
{
"id": "NombreProducto",
"label": "Nombre del producto",
"dataType": "TEXT",
"mandatory": true,
"editable": true,
"order": 2,
"enabledBy": {
"attribute": "TipoProducto",
"values": [
"CAMISA",
"BLUSA"
]
}
}
]
},
{
"code": "FOTOS",
"label": "Fotos",
"order": 9,
"attributes": []
}
]
}
}
Errores
| HTTP | Código | Cuándo |
|---|---|---|
| 404 | NOT_FOUND | La plantilla no existe o no aplica a ese negocio |
| 503 | DEPENDENCY_UNAVAILABLE | MS-01 no responde: la pantalla muestra el error, nunca un formulario o una lista vacíos |
GET /bff/v1/catalog/capture-form/values · Valores de una lista en la captura
| Campo | Valor |
|---|---|
| API | API-BFF-102 · BFF del portal |
| Para qué | Da los valores válidos de un atributo de lista en una plantilla y negocio, con búsqueda y páginas, y, si el atributo depende de otro, sólo los que habilita el valor del padre (por ejemplo, las certificaciones que habilita AE485). Reemplaza proc_ws_list_valid_values_for_template_characteristic_lov, ws_list_valid_values_for_parent_template_characteristic_enabler y GetListOfValuesEnabler. |
| En esta épica | Valores de una lista con búsqueda y páginas, y los que habilita un padre |
| Quién la llama | Entrada Única · Vendor Center (por el BFF) |
| Permiso | Pantalla de captura |
| Cabeceras | Authorization, X-Request-Id |
| Parámetros | templateId = EU4-0412, attributeId = TamanoUnico, business = MER, parentValue = `, q = , page = 1, size = 50` |
| También la usan | FT-FLU-06 |
Request
null
Response · 200
{
"success": true,
"data": {
"items": [
{
"code": "XS",
"label": "Extra chica",
"order": 1
},
{
"code": "S",
"label": "Chica",
"order": 2
},
{
"code": "M",
"label": "Mediana",
"order": 3
}
],
"page": 1,
"size": 50,
"total": 19
}
}
Errores
| HTTP | Código | Cuándo |
|---|---|---|
| 404 | NOT_FOUND | La plantilla o el atributo no existen, o el atributo no es de lista |
| 400 | VALIDATION_ERROR | El atributo depende de otro y no llega el valor del padre |
GET /bff/v1/catalog/capture-scope · Qué puede capturar el proveedor con esta plantilla
| Campo | Valor |
|---|---|
| API | API-BFF-103 · BFF del portal |
| Para qué | Al pulsar «Siguiente» en la elección de plantilla, dice en una sola llamada si el proveedor o seller puede catalogar ese producto: marcas y grupos de artículos permitidos y, en Mercaderías y Suburbia, si la plantilla está ligada a la sección. Reemplaza BrandsGroupOfArticleByTemplateBusinessProvider y ValidateTemplateSection. El proveedor sale de la sesión; un usuario interno lo manda. A un seller no le muestra códigos SAP. |
| En esta épica | Marcas, grupos y sección ligada: reemplaza BrandsGroupOfArticleByTemplateBusinessProvider y ValidateTemplateSection |
| Quién la llama | Entrada Única · Vendor Center (por el BFF) |
| Permiso | Pantalla de captura |
| Cabeceras | Authorization, X-Request-Id |
| Parámetros | templateId = EU4-0412, business = MER, section = 424, supplierId = PROV-0001 |
| También la usan | FT-PRD-09, FT-REF-01 |
Request
null
Response · 200
{
"success": true,
"data": {
"canCatalog": true,
"sectionLinked": true,
"brands": [
{
"code": "MARCA01",
"label": "Marca Uno"
}
],
"itemGroups": [
{
"code": "424104421",
"label": "Camisas de caballero"
}
],
"message": null
}
}
Errores
| HTTP | Código | Cuándo |
|---|---|---|
| 403 | AUTHORIZATION_ERROR | Un proveedor o seller pide el alcance de otro |
| 404 | NOT_FOUND | La plantilla no existe |
POST /bff/v1/catalog/template-section-checks · Revisar plantilla y sección por renglón
| Campo | Valor |
|---|---|
| API | API-BFF-104 · BFF del portal |
| Para qué | Para la carga masiva, revisa de 1 a 500 renglones a la vez si cada plantilla está ligada a su sección y negocio, con el mismo resultado que ValidateTemplateSection renglón por renglón. Pide a MS-01 una vez por plantilla distinta; no decide nada. |
| En esta épica | Plantilla y sección por renglón en la carga masiva |
| Quién la llama | Entrada Única · Vendor Center (por el BFF) |
| Permiso | Pantalla de carga masiva |
| Cabeceras | Authorization, X-Request-Id |
| También la usan | FT-FLU-04 |
Request
{
"business": "MER",
"items": [
{
"row": 2,
"templateId": "EU4-0412",
"section": "424"
},
{
"row": 3,
"templateId": "EU4-0413",
"section": "531"
}
]
}
Response · 200
{
"success": true,
"data": {
"items": [
{
"row": 2,
"exists": true
},
{
"row": 3,
"exists": false,
"message": "La plantilla no está asociada a la sección"
}
]
}
}
Errores
| HTTP | Código | Cuándo |
|---|---|---|
| 400 | VALIDATION_ERROR | Más de 500 renglones, o un renglón sin plantilla o sin sección |
GET /bff/v1/catalog/margin-factors · Factores de margen por indicador de impuesto
| Campo | Valor |
|---|---|
| API | API-BFF-105 · BFF del portal |
| Para qué | Junta en una lista cada indicador de impuesto con su etiqueta y su factor de margen (la tabla MargenVsIndicadorImp de Catálogo). Reemplaza en R1 las dos llamadas a P360 que hoy cruza el navegador (MargenVsIndicadorImp y GetListOfValuesComplete de impuestos). Desde R2 el margen ya no se calcula en el navegador: lo devuelve calculado el plan de valores de MS-02. |
| En esta épica | Factores de margen por indicador: reemplaza MargenVsIndicadorImp y los impuestos de GetListOfValuesComplete |
| Quién la llama | Entrada Única · Vendor Center (por el BFF) |
| Permiso | Pantalla de captura |
| Cabeceras | Authorization, X-Request-Id |
| Parámetros | business = MER |
| También la usan | FT-REF-01 |
Request
null
Response · 200
{
"success": true,
"data": {
"items": [
{
"taxIndicator": "G5",
"label": "Indicador G5",
"factor": "1.2528"
},
{
"taxIndicator": "E2",
"label": "IVA 16 %",
"factor": "1.16"
}
],
"sourceVersions": {
"MargenVsIndicadorImp": 7,
"MWSKZLOV": 12
}
}
}
Errores
| HTTP | Código | Cuándo |
|---|---|---|
| 503 | DEPENDENCY_UNAVAILABLE | MS-01 no responde: la pantalla dice que el margen no está disponible, no muestra cero |
GET /bff/v1/catalog/lists/{listCode}/values · Valores de un catálogo de referencia
| Campo | Valor |
|---|---|
| API | API-BFF-106 · BFF del portal |
| Para qué | Da los valores de un catálogo por su código, con búsqueda y páginas: indicadores de impuesto (MWSKZLOV, TAXESS4HLOV) y las demás listas de referencia que la captura muestra. Reemplaza GetListOfValuesComplete en el navegador. |
| En esta épica | Valores de un catálogo de referencia: reemplaza GetListOfValuesComplete |
| Quién la llama | Entrada Única · Vendor Center (por el BFF) |
| Permiso | Pantalla de captura |
| Cabeceras | Authorization, X-Request-Id |
| Parámetros | listCode = MWSKZLOV, q = `, page = 1, size = 50` |
Request
null
Response · 200
{
"success": true,
"data": {
"items": [
{
"code": "E2",
"label": "IVA 16 %"
},
{
"code": "G5",
"label": "Indicador G5"
}
],
"page": 1,
"size": 50,
"total": 36
}
}
Errores
| HTTP | Código | Cuándo |
|---|---|---|
| 404 | NOT_FOUND | El catálogo no existe |
GET /bff/v1/catalog/templates · Buscar plantillas
| Campo | Valor |
|---|---|
| API | API-BFF-107 · BFF del portal |
| Para qué | Busca plantillas por texto, de 3 a 250 caracteres, con su ruta legible y sin truncar, para elegir el tipo de producto. Reemplaza la búsqueda en la copia de plantillas de Entrada Única cuando su pantalla pasa al BFF. |
| En esta épica | Buscar plantillas por texto |
| Quién la llama | Entrada Única · Vendor Center (por el BFF) |
| Permiso | Pantalla de captura |
| Cabeceras | Authorization, X-Request-Id |
| Parámetros | q = camisa, business = MER, page = 1, size = 20 |
| También la usan | FT-PLT-05, FT-PRD-09 |
Request
null
Response · 200
{
"success": true,
"data": {
"items": [
{
"templateId": "EU4-0412",
"name": "Camisas",
"path": "Ropa > Caballero > Camisas"
}
],
"page": 1,
"size": 20,
"total": 1
}
}
Errores
| HTTP | Código | Cuándo |
|---|---|---|
| 400 | VALIDATION_ERROR | El texto tiene menos de 3 o más de 250 caracteres |
Las que usa y construye otra épica (8)
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-01-022 | GET /api/v2/structures/{id}/leaves | Plantillas vigentes con su ruta legible | FT-PLT-05 · Taxonomía de plantillas por familia, metadatos de… |
| API-01-028 | GET /api/v2/taxonomies/PRODUCT/nodes/{id}/effective | Vista efectiva por plantilla y negocio: códigos permitidos de las listas chicas y dependencias | FT-PLT-06 · Configuración de atributos por plantilla y por negocio… |
| API-01-108 | GET /api/v2/taxonomies/PRODUCT/nodes/{id}/attributes/{attributeId}/values | Valores válidos de un atributo en una plantilla y negocio, filtrados por el valor del padre | FT-PLT-06 · Configuración de atributos por plantilla y por negocio… |
| API-01-007 | GET /api/v2/lovs/{id}/values | Etiquetas de los valores y catálogos de referencia | FT-PLT-03 · Listas de valores y modelo canónico con equivalencias por… |
| API-01-012 | GET /api/v2/reference-tables/{t}/entries | Entradas de la tabla MargenVsIndicadorImp | FT-REF-01 · Datos de referencia administrables |
| API-01-202 | GET /api/v2/rules/allowed-values | Marcas, grupos y sección ligada por plantilla, negocio y proveedor | FT-PLT-07 · Reglas de atributos |
| API-01-004 | POST /api/v2/catalog-plans/{planId}/apply | Confirmar el cambio de plantilla que dispara el aviso | FT-PLT-01 · Fundamentos de gobierno de plantillas |
| API-03-003 | GET /api/v2/migration/reconciliation?runId= | Diferencias del día entre P360 y MS-01 | FT-MIG-02 · Migración de plantillas, atributos y listas de valores |
6. Eventos
Publica
| Evento | Cuándo | Quién lo consume |
|---|---|---|
idmc_put_template/(contrato de hoy) | Desde el corte del catálogo, cada alta o cambio confirmado de un nodo de plantilla o de su cabecera, mientras viva el backend de Entrada Única | MS-05 (bitácora) |
idmc_put_value-list-relation/(contrato de hoy) | Desde el corte del catálogo, cada cambio confirmado del filtro de valores de un atributo en una plantilla | MS-05 (bitácora) |
Consume
| Evento | Para qué | Quién lo publica |
|---|---|---|
idmc_put_template/(contrato de hoy) | El backend de Entrada Única actualiza su copia de plantillas hasta que se apague en R3 | esta misma épica |
idmc_put_value-list-relation/(contrato de hoy) | El backend de Entrada Única actualiza la relación plantilla–atributo de su copia | 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 |
|---|---|---|---|
governance_outbox | MS-01 | Los cambios del catálogo que esperan salir como evento (antes outbox). | escribe |
template_views | MS-01 | La vista efectiva ya resuelta por plantilla y negocio: qué atributos pide y cuáles son obligatorios. | lee |
lovs | MS-01 | Cabecera de cada lista de valores. | lee |
lov_values | MS-01 | Cada valor de lista: código, etiqueta, orden y equivalencias por sistema. | lee |
reference_tables | MS-01 | Las entradas de los diccionarios: tallas, colores, impuestos, excepciones y demás datos de referencia. | lee |
governance_rules | MS-01 | Reglas de captura y clasificación: marcas por plantilla, grupo de artículo a plantilla, alcance del proveedor y lista negra de Marketplace. | lee |
taxonomy_nodes | MS-01 | Plantillas y nodos de grupo de artículo, con la configuración de atributos de cada plantilla. | lee |
8. Historias que cubre
| Historia | Prioridad | Cómo la cubre |
|---|---|---|
FT-PLT-10·H1 · GetTemplate idéntico | P1 | pasos 6, 7, 8, 9; flujo «Paridad y apagado con tráfico cero»; API-BFF-101 |
| FT-PLT-10·H2 · Listas idénticas | P1 | pasos 10, 11, 12; flujo «Paridad y apagado con tráfico cero»; API-BFF-102, API-01-108 |
| FT-PLT-10·H3 · Foro sin cambios | P1 | API-BFF-101, API-BFF-102. Fuera: Cambia con la decisión 20: el backend de Foro no apunta a una fachada; sigue contra P360 hasta apagarse en R2, y el módulo de Foro en Vendor Center usa API-BFF-101 agrupado como GetTemplateForo (FT-ACT-05). |
| FT-PLT-10·H4 · Publicación a EU | P2 | flujo «Aviso a la copia de plantillas de Entrada Única» |
| FT-PLT-10·H5 · Paridad automatizada | P2 | flujo «Paridad y apagado con tráfico cero»; API-03-003 |
FT-PLT-10·H6 · ValidateTemplateSection idéntico | P1 | pasos 4, 5; flujo «Revisión de plantilla y sección en la carga masiva»; API-BFF-103, API-BFF-104 |
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-10-1. FT-PLT-10 deja de ser fachada: no se construye ninguna ruta /public/rt de catálogo (API-01-054 a API-01-066). Cada operación de plantilla que hoy llama el navegador a P360 se reemplaza por una ruta del BFF que se arma con endpoints de MS-01, y cada app la cambia una sola vez, en R1. Por qué: Lo fija la decisión 20, que adopta ADR-12: cambiar los fronts una vez y no mantener capas temporales. Reemplaza el sentido de DEC-PLT-11 para los fronts. Se apoya en ADR-12, DEC-PLT-11, PD-06.
- D-PLT-10-2. Una llamada por pantalla: el formulario de captura (API-BFF-101) junta la plantilla, las listas chicas y los habilitadores, incluido el del nombre de producto, que hoy son una llamada más una por atributo, copiadas en 4 apps. Las listas grandes van con búsqueda y páginas (API-BFF-102). Marcas, grupos y sección ligada se responden juntos (API-BFF-103), porque la pantalla los pide en el mismo «Siguiente». Por qué: Quita la composición del navegador y baja de unos 5 s de P360 a la meta de 300 ms de promedio y 800 ms de máximo por pantalla. Se apoya en ADR-12, DEC-PLT-04.
- D-PLT-10-3. El BFF no decide nada: el filtro de valores y la dependencia del padre (API-01-108), el alcance del proveedor y la liga plantilla–sección (API-01-202) y el factor de margen (API-01-012) salen de MS-01; el BFF junta, pagina, pone etiquetas, agrupa para la pantalla y toma al proveedor de la sesión. Por qué: Es la regla del BFF de la decisión 19: sin base y sin reglas; si aparece una, se muda al servicio dueño. Se apoya en ADR-12.
- D-PLT-10-4. Cómo se apaga cada llamada vieja: antes de cambiarla, MS-03 compara cada día P360 contra MS-01 con el juego de referencia del mismo día; con cero diferencias sin justificar se cambia en las apps; cuando la entrada de P360 cuenta cero llamadas del navegador a esa operación durante 14 días seguidos, se quita de esa entrada. P360 sigue atendiendo a otros consumidores hasta R3. Por qué: Una captura de otro día no sirve porque la configuración cambia a diario; y sólo el conteo en la entrada prueba que nadie la sigue llamando. Se apoya en RSG-50, PD-12.
- D-PLT-10-5. Lo que no es pantalla no entra aquí: GetTemplates y la carga por archivo del backend de Entrada Única siguen contra P360 hasta su apagado en R3; GetTemplateForo y las listas que pide el backend de Foro se apagan con él en R2, cuando el módulo de Foro en Vendor Center use estas mismas rutas; los scripts de Gobierno de Producto y la IA de plantillas se deciden con ADR-06. Por qué: La decisión 20 sólo cambia los fronts; los consumidores que no son pantalla tienen su propia fecha de apagado. Se apoya en PD-30, PD-31, ADR-06.
- D-PLT-10-6. La copia de plantillas de Entrada Única se mantiene con los avisos de hoy hasta que se apague con Entrada Única. Mientras P360 sea la fuente del catálogo, los manda P360; desde el corte del catálogo, MS-01 manda idmc_put_template e idmc_put_value-list-relation con el mismo cuerpo desde su outbox, con un interruptor por tópico que se enciende en la misma ventana en que se apaga el de P360. Por qué: Entrada Única usa su copia hasta que sus pantallas de producto se mudan, y dos emisores duplicarían avisos; es la misma regla que FT-INT-06 fija para los avisos de producto. Se apoya en DEC-PLT-12, PD-12, FT-INT-06.
- D-PLT-10-7. El margen sigue calculándose en el navegador sólo en R1, con los factores que da API-BFF-105 en vez de P360; desde R2 lo devuelve calculado el plan de valores de MS-02 y el cálculo sale del navegador. Por qué: En R1 todavía no existe MS-02, el motor único de reglas, y no se construye un evaluador temporal en MS-01. Se apoya en ADR-12, FT-PLT-07.
Qué falta decidir
| ID | Qué falta |
|---|---|
| PD-12 | Fijar el orden de corte del catálogo: cuándo deja P360 de ser la fuente y MS-01 empieza a mandar los avisos a Entrada Única. |
| DUD-28 | Medir el portal de Foro, que no está en el workspace, para confirmar qué rutas usa el módulo de Foro en Vendor Center. |
| DUD-06 | Confirmar que las suscripciones de plantillas de Entrada Única sin emisor en el código tienen tráfico cero antes de dejarlas sin emisor. |
| ADR-06 | Decidir qué pasa con los consumidores que no son pantalla: scripts de Gobierno de Producto e IA de plantillas. |
También siguen abiertos: PEN-94, Confirmar en qué momento consulta Foro la plantilla y las listas.
Fuentes
- [D]
trazabilidad/features/FT-PLT-10-fachada-v1-compatible-p360.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.