Actualizado el 18-oct-2026. Primera versión de la arquitectura de esta épica.
Qué responde. Cómo funciona por dentro FT-INT-04: 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-INT-04.json, generada con generar.py; la ficha de la épica es trazabilidad/features/FT-INT-04-catalogos-precios-costos-sap.md.
En 30 segundos
SAP es el dueño de los proveedores, la jerarquía comercial, las listas de valores de sus características y los precios y costos. Esta épica hace que esos archivos entren solos al PIM: la ingesta (MS-07) los lee al llegar, guarda una copia, salta lo que no cambió y entrega cada registro a su dueño, Catálogo o Producto, dejando visible cada valor que se rechazó.
- Módulo dueño: MS-07 Ingesta de archivos. También participan: MS-01 Catálogo, MS-02 Producto, MS-14 Avisos y ayuda.
- Etapa 5 · SKU en SAP. Recibe «PE-C · Catálogo vigente» y entrega «PE-C · Catálogo vigente».
- APIs: construye 0 y usa 8 que construyen otras épicas.
- Eventos: publica 5 y consume 2.
1. Dónde encaja
Recibe
| De | Qué |
|---|---|
| PE-C · Catálogo vigente | El catálogo vigente: las listas por código con su equivalencia por sistema y los diccionarios de proveedores, grupos e impuestos donde aterriza lo que manda SAP. |
| FT-REF-01 · Datos de referencia administrables | Las tablas de referencia de proveedores, grupos de artículo e impuestos, con SAP como dueño y la copia de consulta en MS-01. |
| FT-PLT-03 · Listas de valores y modelo canónico con equivalencias por… | Las listas de valores por código, separadas por ECC y S4H, que reciben los valores de SAP por API-01-050. |
Entrega
| A | Qué |
|---|---|
| PE-C · Catálogo vigente | Listas, proveedores con sus grupos autorizados y jerarquía comercial de ECC y S4H al día en el catálogo vigente. |
| FT-PLT-03 · Listas de valores y modelo canónico con equivalencias por… | Los valores de las listas de SAP ya leídos del archivo, por grupo de artículos y separados por ECC y S4H. |
| FT-REF-01 · Datos de referencia administrables | Los proveedores de SAP con sus grupos de artículos autorizados y los catálogos de marcas, grupos e impuestos, ya leídos del archivo. |
| FT-CAT-04 · Clasificación SAP derivada | La jerarquía comercial de ECC y S4H: dirección corporativa, dirección, sección, grupo de artículos y grupo con producto. |
| FT-PLT-05 · Taxonomía de plantillas por familia, metadatos de… | La jerarquía de SAP leída del archivo, que entra como árbol de grupos de artículo por API-01-051. |
| FT-PRD-02 · Creación de SKU con SAP | Proveedor, grupo de artículos, impuesto, precio y costo vigentes para armar los 4 TXT de alta en SAP. |
| FT-INT-06 · Avisos de cambios a Entrada Única y consumidores | Los precios, costos y EAN de SAP ya aplicados en el artículo o el producto, de donde sale el aviso datosVenta mientras Entrada Única viva. |
| FT-INT-03 · Entrada de SKUs creados en SAP | La jerarquía y los proveedores de SAP ya cargados, con los que se clasifica cada SKU que llega en el 122. |
| FT-MIG-04 · Convivencia P360 ↔ nuevo PIM | La lectura de cada interfaz de datos maestros lista para encenderse en el corte, cuando P360 deje de leer esas carpetas. |
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 | SAP | Archivos e imágenes (almacén y CDN) | Deja por transferencia de archivos el archivo de listas de cada noche | — |
| 2 | Archivos e imágenes (almacén y CDN) | MS-07 Ingesta de archivos | Avisa que llegó un archivo de SAP | catalog.egress.files/OBJECT_FINALIZE |
| 3 | MS-07 Ingesta de archivos | Base pim | Registra el archivo con su copia y su huella | — |
| 4 | MS-07 Ingesta de archivos | Base pim | Salta el archivo si es igual al anterior | — |
| 5 | MS-07 Ingesta de archivos | MS-01 Catálogo | Entrega los valores por lista, separados por ECC y S4H | API-01-050 |
| 6 | MS-01 Catálogo | Eventos | Avisa sólo los valores que cambiaron | catalog.governance.changed/LOV_VALUE_CHANGED |
| 7 | MS-07 Ingesta de archivos | MS-01 Catálogo | Entrega proveedores con sus grupos autorizados | API-01-052 |
| 8 | MS-07 Ingesta de archivos | MS-01 Catálogo | Entrega la jerarquía comercial de ECC y S4H | API-01-051 |
| 9 | MS-07 Ingesta de archivos | MS-02 Producto | Entrega el costo y el precio de cada SKU | API-02-052 |
| 10 | MS-02 Producto | Eventos | Avisa el cambio de costo y precio | catalog.product.changed/PRODUCT_UPDATED |
| 11 | MS-07 Ingesta de archivos | Base pim | Guarda el resultado de cada registro | — |
| 12 | MS-07 Ingesta de archivos | Eventos | Cierra el archivo y avisa su resumen | catalog.sap.inbound/SAP_MASTER_DATA_CHANGED |
3.1 Si SAP manda un valor que no cabe
3.2 EAN por grupo de artículo
4. Si algo sale mal
- SAP manda un valor que no cabe en la lista (IllegalLOVValue). Ese valor no entra y los demás del archivo sí. El rechazo queda con su registro en el monitor de MS-07 y Gobierno de Producto recibe el aviso con el resumen; cuando SAP corrige, se reprocesa sólo lo fallido.
- SAP vuelve a mandar el mismo catálogo completo. MS-07 compara la huella con la del último archivo de esa interfaz y no lo reprocesa. Si cambió, el dueño sólo escribe y avisa lo que de verdad cambió.
- El 142 trae un SKU que el PIM no conoce. Ese registro queda rechazado con SKU_NOT_FOUND y aparece en el monitor; si el SKU llega después por el 122, Gobierno de Datos reprocesa el registro sin pedir otro archivo.
- No llega a su hora el archivo esperado. MS-07 compara contra el calendario de cada interfaz (listas a las 23:00, costos a la 1:30 y precios a las 2:00) y lo marca faltante en su monitor para que Gobierno de Datos lo pida a SAP. Nada se rellena con el día anterior.
- MS-01 o MS-02 no responden. El lote se reintenta hasta 10 veces con espera creciente sin perder el orden del archivo; después el registro queda fallido y se reprocesa desde el monitor.
5. APIs
Las que construye esta épica (0)
Ninguna: todo lo que usa ya lo construye otra épica.
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-050 | POST /internal/governance/sap/lov | Entregar los valores de las listas de SAP, por lista y por sistema | FT-PLT-03 · Listas de valores y modelo canónico con equivalencias por… |
| API-01-052 | POST /internal/governance/sap/suppliers | Entregar los proveedores con sus grupos de artículos autorizados | FT-REF-01 · Datos de referencia administrables |
| API-01-051 | POST /internal/governance/sap/hierarchy | Entregar la jerarquía comercial de ECC y S4H | FT-PLT-05 · Taxonomía de plantillas por familia, metadatos de… |
| API-02-052 | POST /internal/product/sap/prices | Entregar el costo (STCTS) y el precio (STPRS) por SKU | FT-INT-06 · Avisos de cambios a Entrada Única y consumidores |
| API-02-053 | POST /internal/product/sap/ean | Entregar los EAN por grupo de artículo y su delta | FT-INT-06 · Avisos de cambios a Entrada Única y consumidores |
| API-07-001 | GET /api/v2/sap-ingest/files?interface=&state= | Ver los archivos de datos maestros y sus conteos en el monitor | FT-INT-03 · Entrada de SKUs creados en SAP |
| API-07-002 | POST /api/v2/sap-ingest/files/{id}/reprocess | Reprocesar los registros fallidos de un archivo | FT-INT-03 · Entrada de SKUs creados en SAP |
| API-07-003 | GET /api/v2/sap-ingest/records?interface=&result=&key=¬Alive= | Ver cada valor rechazado con su motivo | FT-INT-03 · Entrada de SKUs creados en SAP |
6. Eventos
Publica
| Evento | Cuándo | Quién lo consume |
|---|---|---|
catalog.sap.inbound/SAP_MASTER_DATA_CHANGED | MS-07 termina un archivo de datos maestros: cuántos registros se aplicaron, no cambiaron o se rechazaron | FT-ARQ-02 |
catalog.governance.changed/LOV_VALUE_CHANGED | MS-01 aplica un valor de SAP que de verdad cambió | FT-ARQ-02, FT-PLT-03, FT-PLT-06, FT-RAC-07 |
catalog.governance.changed/TAXONOMY_NODE_CHANGED | MS-01 aplica un nodo nuevo o cambiado de la jerarquía comercial | FT-CAT-04, FT-IA-02, FT-PLT-05, FT-PLT-06 |
catalog.product.changed/PRODUCT_UPDATED | MS-02 aplica un costo o un precio de SAP | FT-ACT-05, FT-ARQ-02, FT-IA-01, FT-PLT-07, FT-PRD-05, FT-RAC-06 |
catalog.product.changed/EAN_CHANGED | MS-02 aplica un EAN que manda SAP | FT-ARQ-02, FT-PRD-03 |
Consume
| Evento | Para qué | Quién lo publica |
|---|---|---|
catalog.egress.files/OBJECT_FINALIZE | MS-07 lee cada archivo que SAP deja en el almacén | D-ARCHIVOS |
catalog.sap.inbound/SAP_MASTER_DATA_CHANGED | MS-14 avisa a Gobierno de Producto cuando un archivo trae rechazos | 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 |
|---|---|---|---|
sap_inbound_files | MS-07 | Cada archivo que llega de SAP y el avance de sus registros. | escribe |
lovs | MS-01 | Cabecera de cada lista de valores. | escribe |
lov_values | MS-01 | Cada valor de lista: código, etiqueta, orden y equivalencias por sistema. | escribe |
taxonomy_nodes | MS-01 | Plantillas y nodos de grupo de artículo, con la configuración de atributos de cada plantilla. | escribe |
products | MS-02 | La familia del producto con sus variantes, valores, imágenes (URL), clasificaciones, estado, tareas abiertas y rechazos. | escribe |
identifier_registry | MS-02 | Unicidad de SKU y de EAN por negocio. | escribe |
reference_tables | MS-01 | Las entradas de los diccionarios: tallas, colores, impuestos, excepciones y demás datos de referencia. | lee |
8. Historias que cubre
| Historia | Prioridad | Cómo la cubre |
|---|---|---|
| FT-INT-04·H1 · Que las características y listas de valores de SAP entren solas, por grupo de… | P1 | pasos 1, 2, 3, 5, 6; flujo «Si SAP manda un valor que no cabe»; API-01-050, API-07-003 |
| FT-INT-04·H2 · Los proveedores de SAP con sus grupos de artículos autorizados | P1 | pasos 7; API-01-052 |
| FT-INT-04·H3 · La jerarquía comercial de ECC y S4H | P1 | pasos 8; API-01-051 |
| FT-INT-04·H4 · El precio y el costo de SAP en el artículo o producto correcto | P1 | pasos 9, 10; API-02-052 |
| FT-INT-04·H5 · Intercambiar sólo cambios | P2 | pasos 4, 6 |
9. Decisiones de esta épica
Las tomó el TL como arquitecto; quedan como [Propuesta] hasta que el equipo de la épica las revise.
- D-INT-04-1. SAP deja sus archivos con el mismo nombre y formato de hoy, por transferencia de archivos, en el almacén del PIM, y el almacén avisa a MS-07. MS-07 es el único lector: entrega listas, proveedores y jerarquía a MS-01, y costo, precio y EAN a MS-02. No guarda datos de negocio, sólo el archivo, su copia y el resultado de cada registro. Por qué: Un solo lector por carpeta y un dueño por dato. La revisión del SFTP cada 10 s que hoy hace P360 se vuelve un aviso del almacén, sin cambiar lo que manda SAP. Se apoya en ADR-12, DUD-23, DEC-ARQ-03.
- D-INT-04-2. Sólo cambios: si un archivo llega con la misma huella SHA-256 que el último de su interfaz, no se reprocesa. Si cambió, se entrega completo y MS-01 y MS-02 sólo escriben y avisan lo que de verdad cambió. Si SAP llega a mandar deltas, MS-07 los entrega igual. Por qué: Hoy SAP repite el mismo XML hasta tener uno nuevo; comparar la huella evita reprocesar catálogos completos sin esperar a que SAP cambie su envío. Se apoya en DUD-23.
- D-INT-04-3. Los catálogos van separados por sistema: lo de ECC sirve a Liverpool y Marketplace y lo de S4H a Suburbia, en listas distintas como hoy. MS-07 no mezcla ni traduce valores. Por qué: Así lo usan hoy las plantillas y las marcas permitidas; mezclar rompería la integración con SAP. Se apoya en FT-REF-01, DUD-21.
- D-INT-04-4. Precio y costo con la regla de hoy: el valor de STCTS va a CostobrutoSinIVA y el de STPRS a PrecioSugeridocIVA, en el artículo si el SKU es variante y en el producto si no. Suburbia (E29 y E30) usa el mismo camino en cuanto SAP entregue una muestra y su llave. Por qué: Sin lector de S4H, Suburbia se quedaría sin precio; reutilizar la regla evita un segundo camino. Se apoya en DUD-23, FT-INT-06.
- D-INT-04-5. Los errores de SAP se ven en el PIM: cada valor rechazado queda con su registro y su motivo en el monitor de MS-07 (API-07-003), y MS-14 avisa a Gobierno de Producto con el resumen del archivo. Por qué: Responde dónde se ve un error de catálogo sin pantalla nueva en Entrada Única, y deja vigilar los errores que se repiten. Se apoya en DUD-23, P-32.
- D-INT-04-6. La épica va en la ola 1 aunque el BRD la ponga en la fase 2. Por qué: El alta de SKU (FT-PRD-02) necesita proveedor, grupo, impuesto, precio y costo vigentes desde el primer día. Se apoya en DUD-01, DEC-ARQ-05.
- D-INT-04-7. Las reglas proveedor → grupo → marca del Libro de Producto no se piden a SAP: siguen siendo tablas de referencia de MS-01. Por qué: No vienen de SAP; se cargaron a mano y son reglas escondidas en datos que necesitan dueño propio. Se apoya en RSG-12, FT-REF-01.
- D-INT-04-8. Mientras P360 sea la fuente (hasta el corte de R3) su middleware sigue leyendo estas carpetas. MS-07 se enciende por interfaz en el corte: P360 termina el archivo en curso y MS-07 empieza con el siguiente, sin heredar puntos de control. Por qué: Dos lectores de la misma carpeta duplicarían o perderían registros. Se apoya en PD-11, FT-MIG-04.
Qué falta decidir
| ID | Qué falta |
|---|---|
| DUD-23 | Que el equipo de SAP confirme el formato sin broker de E18, E27 y E28, si puede mandar sólo cambios, y la muestra y la llave de los precios y costos de Suburbia (E29 y E30). |
| DUD-09 | Falta la ERF de Interfaces que formalice estos contratos con SAP. |
| DUD-01 | Que Dirección confirme que la épica va en la ola 1. |
También siguen abiertos: PEN-87, Qué características vienen de SAP (el mapeo prometido en S08).
Fuentes
- [D]
trazabilidad/features/FT-INT-04-catalogos-precios-costos-sap.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.