Actualizado el 18-oct-2026. Primera versión de la arquitectura de esta épica.
Qué responde. Cómo funciona por dentro FT-PRD-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-PRD-08.json, generada con generar.py; la ficha de la épica es trazabilidad/features/FT-PRD-08-plazos-enriquecimiento-recepcion-pedido.md.
En 30 segundos
En Mercaderías el proveedor tiene hasta que llega su pedido para terminar fotos y atributos, y si lo deja al final la carga cae de golpe en Foro. Esta épica le pone a cada SKU una fecha límite visible, calculada con la recepción esperada del pedido, le avisa antes de que venza y, si vence, pasa el trabajo a Foro con la lista de lo que llegará sin enriquecer para que el estudio lo planee.
- Módulo dueño: MS-02 Producto. También participan: MS-07 Ingesta de archivos, MS-11 Activos digitales, MS-12 Estudio fotográfico, MS-14 Avisos y ayuda.
- Etapa 6 · Imágenes. Recibe «PE-6 · SKU asignado» y entrega «PE-7 · Imágenes listas».
- APIs: construye 2 y usa 4 que construyen otras épicas.
- Eventos: publica 2 y consume 3.
1. Dónde encaja
Recibe
| De | Qué |
|---|---|
| PE-6 · SKU asignado | El SKU asignado y las tareas de enriquecimiento abiertas en paralelo (foto o carga de imagen y secciones con dueño). |
| FT-PRD-04 · Propuesta del proveedor de Mercaderías | La fecha del visto bueno de Compras, desde la que corre el plazo mientras no se conozca la recepción del pedido. |
| FT-FLU-01 · Motor de estados configurable con dos carreteras y reglas… | El reloj único de plazos y la tabla DEADLINES del motor. |
Entrega
| A | Qué |
|---|---|
| PE-7 · Imágenes listas | Las imágenes del proveedor cargadas antes de su fecha límite: Carga de imagen cerrada a tiempo. |
| FT-ACT-05 · Servicios para Foro Fotográfico | Los SKU cuyo plazo venció, con la tarea Foro abierta por rescate y su fecha de recepción esperada, para planear el estudio. |
Tareas que abre o cierra: Carga de imagen, Sección con dueño, Foro: muestra, foto y enriquecimiento.
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 | MS-02 Producto | Base pim | Fija la fecha límite al abrir el enriquecimiento | — |
| 2 | SAP | Archivos e imágenes (almacén y CDN) | Deja el archivo de pedidos con la recepción esperada | — |
| 3 | Archivos e imágenes (almacén y CDN) | MS-07 Ingesta de archivos | Avisa que llegó un archivo nuevo | catalog.egress.files/OBJECT_FINALIZE |
| 4 | MS-07 Ingesta de archivos | MS-02 Producto | Entrega la recepción esperada de cada SKU | API-02-307 |
| 5 | MS-02 Producto | Base pim | Recalcula la fecha límite antes de la recepción | — |
| 6 | Proveedor | Entrada Única · Vendor Center | Abre sus SKU por enriquecer | — |
| 7 | Entrada Única · Vendor Center | MS-02 Producto (por el BFF) | Pide sus plazos ordenados por vencimiento | API-02-308 |
| 8 | MS-02 Producto | MS-14 Avisos y ayuda | Avisa quince días antes que el plazo vence | API-14-005 |
| 9 | MS-14 Avisos y ayuda | Servicio de correo | Manda el recordatorio con lo que falta | — |
| 10 | Proveedor | Entrada Única · Vendor Center | Sube las imágenes que le faltaban | — |
| 11 | Entrada Única · Vendor Center | MS-11 Activos digitales (por el BFF) | Termina la carga y la validación de cada imagen | API-11-005 |
| 12 | Eventos | MS-02 Producto | Entrega las imágenes validadas | catalog.asset.changed/ASSET_VALIDATED |
| 13 | MS-02 Producto | Base pim | Cierra Carga de imagen antes de la fecha límite | — |
3.1 Si vence el plazo, Liverpool toma el enriquecimiento
4. Si algo sale mal
- SAP no manda la fecha de recepción del pedido. Vale el plazo de omisión: 30 días desde el visto bueno. La lista marca el SKU como «sin fecha de recepción» para que Compras lo vea; cuando llega la fecha, el plazo se recalcula solo.
- El pedido cambia de fecha o se cancela. MS-07 entrega el cambio y el plazo se recalcula con la fecha nueva; si se cancela el pedido, regresa al plazo de omisión. El vencimiento de las tareas abiertas se mueve con él y el proveedor recibe aviso si su fecha se adelanta.
- Vence el plazo con imágenes o secciones pendientes. Carga de imagen se cierra como vencida y se abre Foro por rescate: la responsabilidad pasa a Liverpool, como hoy. El proveedor y catalogación reciben aviso; el producto no se cancela ni se bloquea.
- El mismo archivo de pedidos llega dos veces. Se aplica una sola vez por su identificador; si llega con otro contenido, responde 409 IDEMPOTENCY_MISMATCH y MS-07 lo deja en revisión.
5. APIs
Las que construye esta épica (2)
POST /internal/product/sap/purchase-orders · Fechas de pedido por SKU
| Campo | Valor |
|---|---|
| API | API-02-307 · MS-02 Producto |
| Para qué | MS-07 entrega, ya leído, el archivo de SAP con el pedido y la recepción esperada de cada SKU; Producto recalcula la fecha límite de enriquecimiento de cada uno y el vencimiento de sus tareas. |
| En esta épica | Recibir de MS-07 el pedido y la recepción esperada de cada SKU |
| Quién la llama | MS-07 Ingesta de archivos |
| Permiso | Sólo MS-07 (cuenta de servicio) |
| Cabeceras | Authorization, X-Request-Id, Idempotency-Key |
| Escribe en | products, tasks, product_receipts, product_outbox |
| Publica | catalog.product.changed/TASK_CHANGED, catalog.product.changed/PRODUCT_UPDATED |
Request
{
"fileId": "sap-po-20261018-03",
"records": [
{
"sku": "1000004812",
"purchaseOrder": "4500012345",
"expectedReceiptAt": "2027-01-20T06:00:00Z",
"status": "OPEN"
},
{
"sku": "1000004813",
"purchaseOrder": "4500012346",
"status": "CANCELLED"
}
]
}
Response · 200
{
"success": true,
"data": {
"fileId": "sap-po-20261018-03",
"applied": 2,
"rejected": 0,
"items": [
{
"sku": "1000004812",
"result": "APPLIED",
"enrichmentDueAt": "2027-01-16T06:00:00Z",
"anchor": "RECEPTION"
},
{
"sku": "1000004813",
"result": "APPLIED",
"enrichmentDueAt": "2026-11-17T16:20:00Z",
"anchor": "APPROVAL"
}
]
}
}
Errores
| HTTP | Código | Cuándo |
|---|---|---|
| 409 | IDEMPOTENCY_MISMATCH | El mismo archivo llega otra vez con contenido distinto |
GET /api/v2/enrichment-deadlines · Plazos de enriquecimiento
| Campo | Valor |
|---|---|
| API | API-02-308 · MS-02 Producto |
| Para qué | Lista los SKU con su fecha límite de enriquecimiento, de dónde sale (recepción del pedido o visto bueno), qué les falta y si ya vencieron. El proveedor ve los suyos ordenados por vencimiento; catalogación y Foro planean con los vencidos. |
| En esta épica | Plazos por SKU: fecha límite, de dónde sale, qué falta y si venció |
| Quién la llama | BFF del portal |
| Permiso | El proveedor dueño ve los suyos; catalogación, Foro y Compras ven los de su negocio |
| Cabeceras | Authorization, X-Request-Id |
| Parámetros | business = MER, state = EXPIRED, dueBefore = 2026-11-30T00:00:00Z, sort = dueAt, page = 1, size = 50 |
Request
null
Response · 200
{
"success": true,
"data": {
"items": [
{
"sku": "1000004812",
"productId": "PRD-0004812",
"supplierId": "PROV-0001",
"business": "MER",
"dueAt": "2026-11-16T06:00:00Z",
"anchor": "RECEPTION",
"expectedReceiptAt": "2026-11-20T06:00:00Z",
"state": "EXPIRED",
"rescuedBy": "FORO",
"missing": [
{
"task": "CARGA_DE_IMAGEN",
"detail": "Falta la imagen principal"
},
{
"task": "SECCION_CON_DUENO",
"detail": "Falta la sección de Sostenibilidad"
}
]
}
],
"page": 1,
"size": 50,
"total": 1
}
}
Errores
| HTTP | Código | Cuándo |
|---|---|---|
| 400 | VALIDATION_ERROR | Un filtro trae un valor que no existe |
Las que usa y construye otra épica (4)
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-14-005 | POST /internal/notifications/messages | Avisos antes y al vencer el plazo | FT-RAC-05 · Estatus del producto y motivos visibles para seller y… |
| API-11-005 | POST /api/v2/assets/{assetId}/complete | Terminar la carga y validar cada imagen (lo construye el grupo de activos) | FT-ACT-02 · Registro, congelado y publicación de URLs de activos |
| API-02-030 | GET /api/v2/workflow/config/{type} | Leer el plazo de enriquecimiento por negocio (DEADLINES, tarea ENRICHMENT) | FT-FLU-01 · Motor de estados configurable con dos carreteras y reglas… |
| API-02-031 | POST /api/v2/workflow/config/{type}/plans | Cambiar ese plazo sin desplegar código | FT-FLU-01 · Motor de estados configurable con dos carreteras y reglas… |
6. Eventos
Publica
| Evento | Cuándo | Quién lo consume |
|---|---|---|
catalog.product.changed/TASK_CHANGED | Cambia el vencimiento de una tarea, se cierra Carga de imagen o se abre Foro por rescate | FT-ACT-05, FT-ACT-06, FT-ARQ-02, FT-CAT-06, FT-FLU-01, FT-IA-06, FT-PRD-02, FT-PRD-05, FT-PRD-06, FT-PRD-07, FT-RAC-02, FT-RAC-03, FT-RAC-04, FT-RAC-05, FT-RAC-06 |
catalog.product.changed/PRODUCT_UPDATED | Cambia la fecha límite de enriquecimiento de un SKU | FT-ACT-05, FT-ARQ-02, FT-IA-01, FT-PLT-07, FT-PRD-05, FT-RAC-06 |
Consume
| Evento | Para qué | Quién lo publica |
|---|---|---|
catalog.egress.files/OBJECT_FINALIZE | MS-07 lee el archivo de pedidos de SAP | D-ARCHIVOS |
catalog.asset.changed/ASSET_VALIDATED | MS-02 cierra Carga de imagen cuando están las imágenes que pide la plantilla | FT-ACT-01, FT-ACT-02, FT-ACT-03 |
catalog.product.changed/TASK_CHANGED | MS-12 recibe la tarea Foro abierta por rescate con su recepción esperada | 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 |
tasks | MS-02 | Todo el trabajo asignado: visto bueno, corrección, Gobierno de Datos, foto, secciones, QA, revisión del cambio y repoblamiento. | 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 |
products | MS-02 | La familia del producto con sus variantes, valores, imágenes (URL), clasificaciones, estado, tareas abiertas y rechazos. | lee |
tasks | MS-02 | Todo el trabajo asignado: visto bueno, corrección, Gobierno de Datos, foto, secciones, QA, revisión del cambio y repoblamiento. | lee |
product_reference_tables | MS-02 | Configuración del motor de estados y del matching: transiciones, estados externos y pesos. | lee |
8. Historias que cubre
| Historia | Prioridad | Cómo la cubre |
|---|---|---|
| FT-PRD-08·H1 · Plazo visible | P1 | pasos 1, 5, 6, 7; API-02-308, API-02-307 |
| FT-PRD-08·H2 · Alertas | P1 | pasos 8, 9; flujo «Si vence el plazo, Liverpool toma el enriquecimiento»; API-14-005 |
| FT-PRD-08·H3 · Planear la carga de Foro | P2 | flujo «Si vence el plazo, Liverpool toma el enriquecimiento»; API-02-308 |
| FT-PRD-08·H4 · Logística (etapa posterior) | P3 | API-02-308. Fuera: Se difiere a una etapa posterior (DEC-05): la recepción la hace un sistema de logística que no es parte del Nuevo PIM; cuando se decida, consultará la fecha límite y lo que falta por SKU con API-02-308. |
9. Decisiones de esta épica
Las tomó el TL como arquitecto; quedan como [Propuesta] hasta que el equipo de la épica las revise.
- D-PRD-08-1. La fecha límite de enriquecimiento es la recepción esperada del pedido menos 4 días, cuando SAP la manda; mientras no llegue, 30 días desde el visto bueno de Compras. Las dos cifras son por negocio en la tabla DEADLINES (tarea ENRICHMENT), con avisos a 15 y a 3 días. Por qué: Conserva el plazo de hoy, hasta la recepción, y le agrega aviso previo; los 30 días son los mismos del rescate de Carga de imagen en la máquina de estados. Los 4 días salen de la única cifra que dio el taller y se ajustan sin desplegar código. Se apoya en RF-ENR-13, RN-ENR-01, PEN-08, PEN-138.
- D-PRD-08-2. La fecha del pedido llega de SAP en un archivo que lee MS-07 y entrega a MS-02 por API-02-307; MS-02 no habla con SAP. La interfaz todavía no existe y se acuerda con los dueños de SAP. Por qué: Los externos sólo hablan con los adaptadores; hoy ninguna interfaz del catálogo da al PIM la fecha del pedido ni de la recepción. Se apoya en DUD-23, ADR-12.
- D-PRD-08-3. Al vencer, Liverpool toma el enriquecimiento: Carga de imagen se cierra como vencida y se abre Foro por rescate. El producto no se cancela ni se bloquea, porque el SKU ya existe y el enriquecimiento va por la segunda carretera. Por qué: Es la regla de hoy (si el proveedor no completa, los SKU pasan al portal de Foro) y respeta que el enriquecimiento no frena el SKU. Se apoya en RN-ENR-01, RN-GEN-03.
- D-PRD-08-4. El plazo aplica igual sin importar por dónde nació el SKU (Entrada Única, MM41, PLM o B2B) y vive en el producto y en el vencimiento de sus tareas; lo vigila el reloj único de MS-02, sin procesos aparte. Por qué: En Mercaderías y Suburbia el SKU nace por varios caminos; un solo reloj evita trabajos sueltos por sistema. Se apoya en RN-ALT-01, PD-29.
- D-PRD-08-5. Avisar o impedir la recepción en el CEDIS de un SKU sin enriquecer queda para una etapa posterior. Cuando se decida, el sistema de recepción consultará la fecha límite y lo que falta por SKU con API-02-308; no se construye nada más ahora. Por qué: El taller lo consideró valioso pero lo difirió, y el sistema de recepción no forma parte del Nuevo PIM. Se apoya en DEC-05, RF-ENR-14.
Qué falta decidir
| ID | Qué falta |
|---|---|
| DUD-23 | Acordar con los dueños de SAP la interfaz que manda el pedido y la recepción esperada por SKU. |
| PD-01 | Es mejora sobre P360, que no gestiona plazos; necesita la excepción firmada de paridad. |
También siguen abiertos: PEN-08, Mercaderías confirma los plazos de enriquecimiento (aquí arrancan en recepción menos 4 días o 30 días desde el visto bueno); PEN-138, Aclarar la regla de «4 días antes» que quedó ininteligible en el taller.
Fuentes
- [D]
trazabilidad/features/FT-PRD-08-plazos-enriquecimiento-recepcion-pedido.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.