← Arquitectura por épica

FT-FLU-01 · Motor de estados configurable con dos carreteras y reglas…

Arquitectura del Nuevo PIM por épica · corte del 18-oct-2026

Propuesta del TL: no sustituye la spec de cada épica

Actualizado el 18-oct-2026. Primera versión de la arquitectura de esta épica.

Qué responde. Cómo funciona por dentro FT-FLU-01: 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-FLU-01.json, generada con generar.py; la ficha de la épica es trazabilidad/features/FT-FLU-01-motor-de-estados-configurable.md.

En 30 segundos

Es el motor que decide en qué momento de su vida está cada producto y quién tiene que hacer algo. Un solo flujo para Mercaderías, Suburbia y Marketplace: siete estados, catorce tipos de tarea y un estado por canal. Cada negocio cambia las reglas, no el camino, y el SKU se pide con lo mínimo mientras el enriquecimiento avanza aparte. Sólo el motor cambia estados; los demás módulos le informan hechos.

  • Módulo dueño: MS-02 Producto. También participan: MS-01 Catálogo, MS-13 Identidad y acceso, MS-06 Evaluación, MS-15 IA y enriquecimiento, MS-12 Estudio fotográfico, MS-07 Ingesta de archivos, MS-14 Avisos y ayuda, MS-05 Auditoría, MS-03 Migración y convivencia.
  • Etapa T · Transversal. Recibe «PE-1 · Propuesta en Borrador», «PE-T · Usuario con permisos y bitácora», «PE-C · Catálogo vigente» y entrega «PE-4 · Propuesta enviada».
  • APIs: construye 9 y usa 6 que construyen otras épicas.
  • Eventos: publica 8 y consume 6.

1. Dónde encaja

Recibe

DeQué
PE-1 · Propuesta en BorradorLa propuesta en Borrador, con su negocio, su origen y su dueño, lista para enviarse.
PE-T · Usuario con permisos y bitácoraQuien llama ya se identificó, y la bitácora de MS-05 recibe cada cambio.
PE-C · Catálogo vigenteLa vista efectiva de MS-01 por plantilla y negocio: qué es obligatorio y qué sección tiene dueño.
FT-PRD-01 · Modelo canónico de productoEl documento del producto en products, donde viven el estado, las tareas abiertas y los rechazos.
FT-USR-02 · Matriz de roles y permisos por módulo, acción, negocio y…Los roles, áreas y negocios de cada usuario, que da el directorio de MS-13.

Entrega

AQué
PE-4 · Propuesta enviadaLa propuesta En revisión, con la Validación automática aprobada y el visto bueno de su negocio abierto.
FT-PRD-04 · Propuesta del proveedor de MercaderíasLas transiciones, las tareas y los plazos con que Compras da el visto bueno.
FT-PRD-05 · Edición y aprobación por campo según el dueño del datoLa matriz rol × acción × tarea y el dueño de cada grupo de campos.
FT-PRD-06 · Bandeja de pendientes y depuración de borradores…Las tareas abiertas con su cola, su responsable y su vencimiento.
FT-PRD-08 · Plazos de enriquecimiento de Mercaderías hasta la…El reloj de plazos y las tareas de enriquecimiento que se abren en paralelo después del SKU.
FT-FLU-07 · Excepciones de catalogación y preventas con publicación…El momento de salir de Creación de SKU, en el que se evalúan las excepciones.
FT-RAC-05 · Estatus del producto y motivos visibles para seller y…El estado, las tareas abiertas y su origen, de donde sale la etiqueta que ve el proveedor.
FT-PRD-09 · Contrato de propuestas con Entrada ÚnicaLas acciones del flujo (enviar, corregir, cancelar) que usan las pantallas de propuestas.
FT-ACT-06 · Recepción del trabajo de Foro y control de edición…La tarea Foro abierta y, mientras siga abierta, la regla de que el producto sólo se consulta.
FT-INT-01 · Publicación a e-commerceEl paso a Aprobado (T08), con el que empieza la publicación por canal.
FT-INT-06 · Avisos de cambios a Entrada Única y consumidoresCada cambio de estado y de tarea, para avisar a Entrada Única mientras siga encendida.
FT-INT-07 · Repoblamiento masivo de productos hacia la tiendaLa tarea de Repoblamiento y la vuelta a Aprobado que piden republicar.
FT-RAC-06 · Métricas de tiempos por paso y clasificación de erroresLa apertura y el cierre de cada tarea, para medir el tiempo de cada paso.
FT-MIG-04 · Convivencia P360 ↔ nuevo PIMLa tabla de equivalencias con P360 y cada cambio de estado para la convivencia.
FT-ARQ-02 · Bitácora inmutable y versionado de producto, plantilla y…Las transiciones y tareas del motor, que llegan como STATUS_CHANGED y TASK_CHANGED para guardarse.

Cambios de estado que hace

TransiciónDe → aCuándo
T01Inicio → BorradorEl proveedor o seller guarda por primera vez (pantalla, archivo, plantilla en línea o API).
T02Inicio → Creación de SKUAlta directa de PLM, MM41 o B2B.
T03Borrador → En revisiónEnvía con los obligatorios completos.
T04En revisión → BorradorRechazo de Compras o de las reglas; se abre Corrección.
T05En revisión → Creación de SKUVisto bueno: Compras en Mercaderías; en Marketplace, la Calificación de IA confirma que tiene lo que el SKU necesita (el score decide después la publicación).
T06Creación de SKU → En enriquecimientoSAP crea el artículo (archivo 122).
T07Creación de SKU → En revisiónGobierno de Datos lo regresa a Compras.
T08En enriquecimiento → AprobadoCalidad aprobada y sin tareas que bloqueen.
T09Aprobado → En modificaciónAlguien cambia un producto aprobado.
T10En modificación → AprobadoEl cambio se aplica o se descarta.
T11Borrador → CanceladoVence el plazo del rechazo (P-01) o se elimina.
T12En revisión → CanceladoCompras cancela.
T13Creación de SKU → CanceladoCancelación.
T14En enriquecimiento → CanceladoCancelación.

Tareas que abre o cierra: Validación automática, Visto bueno de Compras, Calificación de IA, Corrección, SKU en SAP, Gobierno de Datos, Foro: muestra, foto y enriquecimiento, Carga de imagen, Sección con dueño, QA con IA, QA manual, Category, Revisión del cambio, Repoblamiento.

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

Sistemas externos

Nuevo PIM · un solo sistema

Pantallas y sistemas

Personas

Qué puede hacer quien llama
Pedir una acción del flujo
y 4 más

Roles efectivos de quien llama

Vista efectiva de una plantilla por n…

Calcular la calificación de un produc…

STATUS_CHANGED
TASK_CHANGED
y 3 más

STATUS_CHANGED

TASK_CHANGED

Recibir la respuesta 122 de SAP

TASK_CHANGED
STATUS_CHANGED

CAPTURE_COMPLETED

Revisar la calidad con IA

STATUS_CHANGED

Leer la configuración del motor

Escribe el estatus equivalente, por e…

permisos

bitácora

Proveedor

Compras

Áreas con sección

Gobierno de Datos

Administración del catálogo

Entrada Única · Vendor Center

BFF del portal

★ MS-02 Producto

MS-01 Catálogo

MS-13 Identidad y acceso

MS-06 Evaluación

MS-15 IA y enriquecimiento

MS-12 Estudio fotográfico

MS-07 Ingesta de archivos

MS-14 Avisos y ayuda

MS-05 Auditoría

MS-03 Migración y convivencia

Base pim

Eventos

P360

Contexto de FT-FLU-01

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.

MS-14 Avisos y ayudaMS-05 AuditoríaEventosMS-06 EvaluaciónBase·pimMS-01 CatálogoMS-13 Identidad y accesoMS-02 ProductoEntrada Única · Vendor CenterMS-14 Avisos y ayudaMS-05 AuditoríaEventosMS-06 EvaluaciónBase·pimMS-01 CatálogoMS-13 Identidad y accesoMS-02 ProductoEntrada Única · Vendor CenterProveedorBFF1. Envía su propuesta con los obligatorios completos2. Pregunta qué acciones puede usarGET /api/v2/workflow/capabilities?productIds=3. Lee los roles, áreas y negocios de quien llamaGET /internal/identity/permissions?userId=4. Pide el plan de la acción SUBMITPOST /api/v2/workflow/actions/plans5. Lee la vista efectiva de su plantilla y negocioGET /api/v2/taxonomies/PRODUCT/nodes/{id}/effective6. Confirma el planPOST /api/v2/product-plans/{planId}/apply7. Pasa a En revisión y corre la Validación automática8. Cierra la validación y abre el visto bueno del negocio9. Pide el score si el negocio es MarketplacePOST /api/v2/scores10. Avisa el cambio de estadoSTATUS_CHANGED11. Avisa las tareas que cerró y abrióTASK_CHANGED12. Entrega el cambio de estado para la bitácoraSTATUS_CHANGED13. Entrega la tarea nueva para avisar al responsableTASK_CHANGEDProveedorBFF
Flujo principal de FT-FLU-01
Los pasos en texto
PasoDeAQué haceAPI o evento
1ProveedorEntrada Única · Vendor CenterEnvía su propuesta con los obligatorios completos—
2Entrada Única · Vendor CenterMS-02 Producto (por el BFF)Pregunta qué acciones puede usarAPI-02-027
3MS-02 ProductoMS-13 Identidad y accesoLee los roles, áreas y negocios de quien llamaAPI-13-001
4Entrada Única · Vendor CenterMS-02 Producto (por el BFF)Pide el plan de la acción SUBMITAPI-02-028
5MS-02 ProductoMS-01 CatálogoLee la vista efectiva de su plantilla y negocioAPI-01-028
6Entrada Única · Vendor CenterMS-02 Producto (por el BFF)Confirma el planAPI-02-057
7MS-02 ProductoBase pimPasa a En revisión y corre la Validación automática—
8MS-02 ProductoBase pimCierra la validación y abre el visto bueno del negocio—
9MS-02 ProductoMS-06 EvaluaciónPide el score si el negocio es MarketplaceAPI-06-006
10MS-02 ProductoEventosAvisa el cambio de estadocatalog.product.changed/STATUS_CHANGED
11MS-02 ProductoEventosAvisa las tareas que cerró y abriócatalog.product.changed/TASK_CHANGED
12EventosMS-05 AuditoríaEntrega el cambio de estado para la bitácoracatalog.product.changed/STATUS_CHANGED
13EventosMS-14 Avisos y ayudaEntrega la tarea nueva para avisar al responsablecatalog.product.changed/TASK_CHANGED

3.1 Segunda carretera: del SKU a Aprobado con tareas en paralelo

MS-15 IA y enriquecimientoEntrada Única · Vendor CenterMS-12 Estudio fotográficoEventosBase·pimMS-02 ProductoMS-07 Ingesta de archivosMS-15 IA y enriquecimientoEntrada Única · Vendor CenterMS-12 Estudio fotográficoEventosBase·pimMS-02 ProductoMS-07 Ingesta de archivosÁreas con secciónBFFGobierno de Datos1. Entrega el artículo que SAP creó (122)POST /internal/product/sap/1222. Cierra SKU en SAP y pasa a En enriquecimiento3. Abre en paralelo foto, secciones y Gobierno de Datos si toca4. Avisa las tareas abiertasTASK_CHANGED5. Entrega la tarea Foro al estudioTASK_CHANGED6. Legal llena su sección obligatoria7. Cierra la tarea de su secciónPOST /api/v2/tasks/plans8. Completa los datos maestros que pide su negocio9. Cierra Gobierno de Datos como resueltoPOST /api/v2/tasks/plans10. Pide a SAP actualizar los datos maestrosSAP_CREATION_REQUESTED11. Entrega el fin del trabajo del estudioCAPTURE_COMPLETED12. Pide la revisión de calidad con IAPOST /api/v2/ai/quality-reviews13. Sin tareas que bloqueen, pasa a Aprobado14. Avisa que quedó AprobadoSTATUS_CHANGEDÁreas con secciónBFFGobierno de Datos
Segunda carretera: del SKU a Aprobado con tareas en paralelo

3.2 Entrar y salir del ciclo: primer guardado, alta directa y cancelación

MS-12 Estudio fotográficoEventosMS-07 Ingesta de archivosBase·pimMS-02 ProductoEntrada Única · Vendor CenterMS-12 Estudio fotográficoEventosMS-07 Ingesta de archivosBase·pimMS-02 ProductoEntrada Única · Vendor CenterBFFCompras1. El proveedor guarda su propuesta por primera vezPOST /api/v2/products/guided/plans2. Crea el producto en Borrador, sin tareas abiertas3. Entrega un artículo dado de alta directo en SAPPOST /internal/product/sap/1224. Lo crea en Creación de SKU con su origen5. Avisa el alta directaPRODUCT_CREATED6. Cancela un producto en Creación de SKU o en enriquecimiento7. Pide el plan CANCEL con su motivoPOST /api/v2/workflow/actions/plans8. Confirma la cancelaciónPOST /api/v2/product-plans/{planId}/apply9. Cierra sus tareas, pasa a Cancelado y libera los EAN10. Avisa la cancelaciónSTATUS_CHANGED11. Entrega la cancelación para cerrar el trabajo del estudioSTATUS_CHANGEDBFFCompras
Entrar y salir del ciclo: primer guardado, alta directa y cancelación

3.3 Configuración versionada y convivencia con P360

P360MS-03 Migración y convivenciaEventosMS-02 ProductoEntrada Única · Vendor CenterP360MS-03 Migración y convivenciaEventosMS-02 ProductoEntrada Única · Vendor CenterAdministración del catálogoBFF1. Gobierno de Producto ajusta un plazo o una transición2. Pide el plan del cambio de configuraciónPOST /api/v2/workflow/config/{type}/plans3. Confirma la versión nuevaPOST /api/v2/product-plans/{planId}/apply4. Avisa la versión nueva para la bitácoraCONFIG_CHANGED5. Entrega cada cambio de estado a la convivenciaSTATUS_CHANGED6. Lee la tabla de equivalencias con P360GET /api/v2/workflow/config/{type}7. Escribe el estatus equivalente, por ejemplo 1020Administración del catálogoBFF
Configuración versionada y convivencia con P360

4. Si algo sale mal

  • Alguien pide una acción que no vale en ese estado, tarea o rol. El plan responde 409 NOT_EDITABLE_IN_STATUS o 403 con el motivo y no cambia nada. Es la misma regla que hoy rechaza una combinación de estatus, acción y rol que no está configurada; ningún proceso puede pedir un SKU desde un estado que no lo permite.
  • La Validación automática falla después de enviar. La propuesta regresa a Borrador (T04) con una Corrección de origen «reglas» y el error de cada campo. El proveedor ve «Rechazada» y recibe un aviso; al reenviar, el motor la vuelve a validar.
  • El score de Marketplace no alcanza el umbral. La propuesta regresa a Borrador con una Corrección de origen «score». El seller ve «Por completar», no «Rechazada», con lo que baja su calificación; al reenviar se vuelve a calificar.
  • SAP rechaza el alta (archivo 141). El producto se queda en Creación de SKU y el motor abre Gobierno de Datos, que relanza, regresa la propuesta a Compras (T07), la rechaza al proveedor con una Corrección o la cancela (T13). El proveedor ve «En revisión» mientras Gobierno de Datos trabaja.
  • Un producto queda atorado o con un estado que no corresponde. Gobierno de Producto lo corrige con la corrección administrativa (API-02-021), con motivo obligatorio. Sale STATUS_CORRECTED y la bitácora lo marca como corrección, no como un paso del flujo.

5. APIs

Las que construye esta épica (9)

GET /api/v2/workflow/capabilities?productIds= · Qué puede hacer quien llama
CampoValor
APIAPI-02-027 · MS-02 Producto
Para quéDice, por producto, qué acciones puede usar quien llama según su rol, el estado y la tarea abierta, y cómo puede cambiar cada grupo de campos: directo con el plan de valores (es su dueño), con una solicitud de cambio que revisa el dueño (API-02-310) o sólo lectura. Lo decide el motor; el portal sólo pinta los botones.
En esta épicaBotones por producto: acciones y forma de editar cada grupo de campos según rol, estado y tarea
Quién la llamaBFF del portal, Gateway de terceros /partner/v1
PermisoCualquier usuario o tercero con acceso de lectura al producto
CabecerasAuthorization, X-Request-Id
ParámetrosproductIds = PRD-0004812,PRD-0004813
También la usanFT-ACT-02, FT-ACT-06, FT-ARQ-01, FT-FLU-02, FT-PRD-04, FT-PRD-05, FT-PRD-09, FT-USR-02

Request

null

Response · 200

{
  "success": true,
  "data": {
    "items": [
      {
        "productId": "PRD-0004812",
        "status": "APROBADO",
        "openTasks": [],
        "version": 12,
        "actions": [
          "INACTIVATE",
          "REQUEST_REPOPULATION"
        ],
        "fieldGroups": [
          {
            "group": "DATOS_BASE",
            "access": "READ_ONLY"
          },
          {
            "group": "ENVASE",
            "access": "EDIT_DIRECT",
            "owner": "COMPRAS"
          },
          {
            "group": "LOGISTICA",
            "access": "EDIT_WITH_REVIEW",
            "owner": "LOGISTICA"
          },
          {
            "group": "EAN",
            "access": "READ_ONLY",
            "note": "El EAN sólo cambia por la liberación de EAN o por Gobierno de Datos"
          }
        ],
        "isContentOwner": false
      }
    ]
  }
}

Errores

HTTPCódigoCuándo
404NOT_FOUNDAlgún producto no existe o no es visible para quien llama
POST /api/v2/workflow/actions/plans · Pedir una acción del flujo
CampoValor
APIAPI-02-028 · MS-02 Producto
Para quéPrepara una acción del motor de estados sobre 1 a 100 productos y dice qué va a pasar con cada uno, sin cambiar nada todavía. Acciones del motor: SUBMIT, ACCEPT, REJECT, CANCEL, DISCARD, RETURN_TO_BUYER, REPORT_TO_GOVERNANCE, MARK_PRESALE, INACTIVATE, REACTIVATE y REQUEST_REPOPULATION; las etapas suman las suyas en la tabla TRANSITIONS, como CONVERT_TO_OFFER (FT-INT-05), RESEND_TO_SAP (FT-PRD-02) o RETURN_TO_SELLER (FT-RAC-03).
En esta épicaVista previa de cualquier acción del flujo sobre 1 a 100 productos
Quién la llamaBFF del portal, Gateway de terceros /partner/v1
PermisoLo decide el motor con la matriz rol × acción × tarea: el proveedor dueño para SUBMIT, DISCARD y CANCEL de su propuesta; Compras para ACCEPT, REJECT y CANCEL en visto bueno; Gobierno de Datos para RETURN_TO_BUYER e INACTIVATE
CabecerasAuthorization, X-Request-Id, Idempotency-Key
También la usanFT-ACT-02, FT-ACT-05, FT-ACT-06, FT-FLU-02, FT-FLU-07, FT-INT-05, FT-INT-07, FT-PRD-02, FT-PRD-04, FT-PRD-05, FT-PRD-06, FT-PRD-07, FT-PRD-09, FT-RAC-01, FT-RAC-03, FT-USR-02

Request

{
  "action": "REJECT",
  "items": [
    {
      "productId": "PRD-0004812",
      "version": 6
    }
  ],
  "reason": {
    "code": "DATOS_INCOMPLETOS",
    "comment": "Faltan medidas del empaque",
    "target": "PROVEEDOR",
    "fields": [
      {
        "attribute": "ALTO_EMPAQUE",
        "code": "REQUIRED",
        "comment": "Captura el alto en centímetros"
      }
    ]
  }
}

Response · 200

{
  "success": true,
  "data": {
    "planId": "pln-7f3a91",
    "expiresAt": "2026-10-18T15:14:05Z",
    "summary": {
      "ok": 1,
      "blocked": 0
    },
    "items": [
      {
        "productId": "PRD-0004812",
        "from": "EN_REVISION",
        "to": "BORRADOR",
        "closesTasks": [
          "VISTO_BUENO_COMPRAS"
        ],
        "opensTasks": [
          "CORRECCION"
        ],
        "correctionDueAt": "2026-12-17T15:04:05Z",
        "visibleToSupplier": "Rechazada"
      }
    ],
    "applyUrl": "/api/v2/product-plans/pln-7f3a91/apply"
  }
}

Errores

HTTPCódigoCuándo
409NOT_EDITABLE_IN_STATUSEl producto no está en un estado o tarea que permita esa acción (por ejemplo, cancelar un producto Aprobado)
403AUTHORIZATION_ERRORLa matriz del motor no le da esa acción al rol de quien llama
422VALIDATION_ERRORUn rechazo llega sin motivo, sin destino o con un campo que no existe en la plantilla
POST /api/v2/product-plans/{planId}/apply · Confirmar un plan de Producto
CampoValor
APIAPI-02-057 · MS-02 Producto
Para quéConfirma cualquier plan de MS-02 (una acción del flujo, un comando de tarea, un cambio de valores, de configuración o de excepciones, una carga masiva…). Escribe en una transacción, publica los eventos desde el outbox y deja un recibo.
En esta épicaConfirmar cualquier plan de MS-02 en una transacción con su outbox
Quién la llamaBFF del portal, Gateway de terceros /partner/v1
PermisoEl mismo que pidió el plan
CabecerasAuthorization, X-Request-Id, Idempotency-Key
ParámetrosplanId = pln-7f3a91
Escribe enproducts, tasks, identifier_registry, product_versions, product_delivery_status, product_reference_tables, catalog_exceptions, product_receipts, product_outbox
Publicacatalog.product.changed/STATUS_CHANGED, catalog.product.changed/STATUS_CORRECTED, catalog.product.changed/TASK_CHANGED, catalog.product.changed/REJECTION_ADDED, catalog.product.changed/PRODUCT_UPDATED, catalog.product.changed/EAN_CHANGED, catalog.product.publication/SAP_CREATION_REQUESTED, catalog.product.publication/PUBLICATION_REQUESTED
También la usanFT-ACT-02, FT-ACT-04, FT-ACT-05, FT-ACT-06, FT-ARQ-01, FT-ARQ-02, FT-CAT-01, FT-CAT-03, FT-CAT-04, FT-CAT-05, FT-CAT-06, FT-FLU-02, FT-FLU-03, FT-FLU-07, FT-IA-01, FT-IA-02, FT-IA-03, FT-IA-04, FT-IA-05, FT-INT-05, FT-INT-07, FT-MIG-04, FT-PLT-03, FT-PLT-05, FT-PLT-07, FT-PLT-08, FT-PRD-01, FT-PRD-02, FT-PRD-03, FT-PRD-04, FT-PRD-05, FT-PRD-06, FT-PRD-07, FT-PRD-09, FT-PRD-10, FT-RAC-01, FT-RAC-02, FT-RAC-03, FT-RAC-04, FT-RAC-05, FT-REF-02, FT-REF-03, FT-REF-04, FT-USR-02

Request

{}

Response · 202

{
  "success": true,
  "data": {
    "requestId": "req-55e0c2",
    "status": "ACCEPTED",
    "receiptUrl": "/api/v2/product-receipts/req-55e0c2"
  }
}

Errores

HTTPCódigoCuándo
409PLAN_EXPIREDPasaron más de 10 minutos desde la vista previa
409VERSION_CONFLICTAlguien cambió el mismo grupo de campos o la misma tarea después de la vista previa
409IDEMPOTENCY_MISMATCHSe repite la llave de idempotencia con otro plan
423LOCKEDOtro proceso está confirmando una acción sobre el mismo producto
GET /api/v2/product-receipts/{requestId} · Recibo de una operación de Producto
CampoValor
APIAPI-02-025 · MS-02 Producto
Para quéDice si una operación confirmada ya terminó y qué cambió en cada producto, con la etiqueta que verá el proveedor. El portal lo consulta después de confirmar.
En esta épicaRecibo de cada operación confirmada, con la etiqueta que verá el proveedor
Quién la llamaBFF del portal, Gateway de terceros /partner/v1
PermisoQuien hizo la operación
CabecerasAuthorization, X-Request-Id
ParámetrosrequestId = req-55e0c2
También la usanFT-ARQ-01, FT-INT-06, FT-INT-07, FT-PLT-03, FT-PRD-10

Request

null

Response · 200

{
  "success": true,
  "data": {
    "requestId": "req-55e0c2",
    "status": "DONE",
    "finishedAt": "2026-10-18T15:04:07Z",
    "items": [
      {
        "productId": "PRD-0004812",
        "result": "APPLIED",
        "version": 7,
        "status": "BORRADOR",
        "openTasks": [
          "CORRECCION"
        ],
        "visibleToSupplier": "Rechazada"
      }
    ]
  }
}

Errores

HTTPCódigoCuándo
404NOT_FOUNDNo existe el recibo o no es de quien llama
GET /api/v2/workflow/statuses · Catálogo de estados, tareas y etiquetas
CampoValor
APIAPI-02-026 · MS-02 Producto
Para quéDevuelve los 7 estados del ciclo de vida, las 14 tareas, los 5 estados por canal y las etiquetas que ve el proveedor con su código de P360 equivalente, para que pantallas, reportes y la API de terceros usen los mismos nombres.
En esta épicaCatálogo de estados, tareas, estados por canal y etiquetas
Quién la llamaBFF del portal, Gateway de terceros /partner/v1, MS-04 Reportes
PermisoCualquier usuario o sistema autenticado
CabecerasAuthorization, X-Request-Id
Parámetroslang = es
También la usanFT-RAC-05

Request

null

Response · 200

{
  "success": true,
  "data": {
    "version": 4,
    "statuses": [
      {
        "code": "BORRADOR",
        "label": "Borrador"
      },
      {
        "code": "EN_REVISION",
        "label": "En revisión"
      },
      {
        "code": "CREACION_SKU",
        "label": "Creación de SKU"
      },
      {
        "code": "EN_ENRIQUECIMIENTO",
        "label": "En enriquecimiento"
      },
      {
        "code": "APROBADO",
        "label": "Aprobado"
      },
      {
        "code": "EN_MODIFICACION",
        "label": "En modificación"
      },
      {
        "code": "CANCELADO",
        "label": "Cancelado"
      }
    ],
    "tasks": [
      {
        "code": "VALIDACION_AUTOMATICA",
        "attendedBy": "SISTEMA"
      },
      {
        "code": "VISTO_BUENO_COMPRAS",
        "attendedBy": "COMPRAS"
      },
      {
        "code": "CALIFICACION_IA",
        "attendedBy": "SISTEMA"
      },
      {
        "code": "CORRECCION",
        "attendedBy": "PROVEEDOR"
      },
      {
        "code": "SKU_EN_SAP",
        "attendedBy": "SISTEMA"
      },
      {
        "code": "GOBIERNO_DE_DATOS",
        "attendedBy": "GOBIERNO_DE_DATOS"
      },
      {
        "code": "FORO",
        "attendedBy": "ESTUDIO"
      },
      {
        "code": "CARGA_DE_IMAGEN",
        "attendedBy": "PROVEEDOR"
      },
      {
        "code": "SECCION_CON_DUENO",
        "attendedBy": "AREA_DUENA"
      },
      {
        "code": "QA_CON_IA",
        "attendedBy": "SISTEMA"
      },
      {
        "code": "QA_MANUAL",
        "attendedBy": "QA"
      },
      {
        "code": "CATEGORY",
        "attendedBy": "CATEGORY"
      },
      {
        "code": "REVISION_DEL_CAMBIO",
        "attendedBy": "DUENO_DEL_DATO"
      },
      {
        "code": "REPOBLAMIENTO",
        "attendedBy": "REPOBLAMIENTO"
      }
    ],
    "channelStatuses": [
      "PENDIENTE",
      "ENVIADO",
      "PUBLICADO",
      "ERROR",
      "RETIRADO"
    ],
    "supplierLabels": [
      {
        "label": "Borrador",
        "p360Code": "10031"
      },
      {
        "label": "Rechazada",
        "p360Code": "1027"
      },
      {
        "label": "Revisión de compras",
        "p360Code": "1003"
      },
      {
        "label": "En revisión",
        "p360Code": "1001"
      },
      {
        "label": "En proceso Liverpool",
        "p360Code": "1026"
      },
      {
        "label": "Carga de imagen",
        "p360Code": "1004"
      },
      {
        "label": "Aprobada",
        "p360Code": "1007"
      },
      {
        "label": "Modificación",
        "p360Code": "1008"
      },
      {
        "label": "Por actualizar",
        "p360Code": "1006"
      },
      {
        "label": "Cancelada",
        "p360Code": "1009"
      },
      {
        "label": "Por completar",
        "p360Code": null
      }
    ]
  }
}

Errores

HTTPCódigoCuándo
400VALIDATION_ERROREl idioma pedido no existe
GET /api/v2/workflow/config/{type} · Leer la configuración del motor
CampoValor
APIAPI-02-030 · MS-02 Producto
Para quéLee una tabla versionada del motor de estados: TRANSITIONS (transiciones, acciones y reglas por negocio), ROLE_MATRIX (rol × acción × tarea), FIELD_OWNERS (dueño de cada grupo de campos y si cambia directo o con revisión), CHANGE_ROUTES (quién revisa cada tipo de cambio), DEADLINES (plazos), SUPPLIER_LABELS (lo que ve el proveedor), P360_CODES (equivalencia con P360), SWITCHES (por ejemplo, Category por negocio o la IA como segunda regla de calidad) y las que piden las etapas: SKU_TASKS (tareas que abre el 122 por negocio de SAP), SAP_ERROR_PATTERNS (tipos de error de SAP), EAN_RELEASE_RULES (liberación directa de EAN) y QUALITY_RULES (regla de calidad). Migración y Reportes leen P360_CODES con su cuenta de servicio.
En esta épicaLeer las tablas versionadas del motor (transiciones, permisos, dueños de campo, plazos, etiquetas, equivalencias)
Quién la llamaBFF del portal, MS-03 Migración y convivencia, MS-04 Reportes
PermisoGobierno de Producto; MS-03 y MS-04 sólo P360_CODES y SUPPLIER_LABELS
CabecerasAuthorization, X-Request-Id
Parámetrostype = DEADLINES
También la usanFT-CAT-03, FT-FLU-02, FT-INT-06, FT-MIG-04, FT-PRD-02, FT-PRD-03, FT-PRD-04, FT-PRD-05, FT-PRD-07, FT-PRD-08, FT-RAC-03, FT-RAC-05, FT-USR-02

Request

null

Response · 200

{
  "success": true,
  "data": {
    "type": "DEADLINES",
    "version": 3,
    "rows": [
      {
        "business": "MER",
        "task": "CORRECCION",
        "days": 60,
        "remindEveryDays": 7,
        "onExpire": "CANCEL"
      },
      {
        "business": "MER",
        "task": "VISTO_BUENO_COMPRAS",
        "days": 30,
        "remindEveryDays": 15,
        "onExpire": "ESCALATE"
      },
      {
        "business": "MER",
        "task": "DRAFT",
        "days": 90,
        "remindBeforeDays": 7,
        "onExpire": "PURGE"
      },
      {
        "business": "MER",
        "task": "ENRICHMENT",
        "anchor": "RECEPTION",
        "offsetDays": -4,
        "fallbackDays": 30,
        "remindBeforeDays": [
          15,
          3
        ],
        "onExpire": "RESCUE_TO_FORO"
      }
    ]
  }
}

Errores

HTTPCódigoCuándo
404NOT_FOUNDEl tipo de configuración no existe
403AUTHORIZATION_ERRORQuien llama no es Gobierno de Producto ni un servicio autorizado para esa tabla
POST /api/v2/workflow/config/{type}/plans · Cambiar la configuración del motor
CampoValor
APIAPI-02-031 · MS-02 Producto
Para quéPrepara un cambio a una tabla del motor (un plazo, una transición, el dueño de un grupo de campos, una etiqueta) y dice qué tareas abiertas cambiarían su vencimiento o su revisor; se confirma con el plan, queda como versión nueva y la anterior se conserva. No hace falta desplegar código.
En esta épicaCambiar una tabla del motor con vista previa, sin desplegar código
Quién la llamaBFF del portal
PermisoGobierno de Producto
CabecerasAuthorization, X-Request-Id, Idempotency-Key, If-Match
Parámetrostype = DEADLINES
También la usanFT-CAT-03, FT-INT-06, FT-PRD-02, FT-PRD-03, FT-PRD-04, FT-PRD-05, FT-PRD-08, FT-RAC-03, FT-RAC-05, FT-USR-02

Request

{
  "version": 3,
  "changes": [
    {
      "business": "MER",
      "task": "CORRECCION",
      "days": 45
    }
  ]
}

Response · 200

{
  "success": true,
  "data": {
    "planId": "pln-c2d410",
    "expiresAt": "2026-10-18T15:14:05Z",
    "impact": {
      "openTasks": 214,
      "dueAtMovedEarlier": 214
    },
    "applyUrl": "/api/v2/product-plans/pln-c2d410/apply"
  }
}

Errores

HTTPCódigoCuándo
409VERSION_CONFLICTLa configuración cambió desde que se leyó
422BUSINESS_ERROREl cambio deja una tarea sin quién la atienda o una transición fuera del modelo de 7 estados
POST /api/v2/tasks/plans · Pedir un comando sobre una tarea
CampoValor
APIAPI-02-035 · MS-02 Producto
Para quéPrepara un comando sobre una o varias tareas (tomar, soltar, completar, aprobar, rechazar con motivo por campo, comentar o escalar) y dice qué pasará con cada producto; se confirma con el plan. Sustituye los 22 comandos de las Tareas V1 de Omega.
En esta épicaCerrar, aprobar, rechazar, tomar o reasignar una tarea
Quién la llamaBFF del portal
PermisoLo decide el motor con la matriz rol × acción × tarea: la persona asignada o su área para completar, aprobar y rechazar; el líder de la cola para escalar
CabecerasAuthorization, X-Request-Id, Idempotency-Key
También la usanFT-ACT-06, FT-PRD-03, FT-PRD-05, FT-PRD-06, FT-PRD-07, FT-RAC-02, FT-RAC-04

Request

{
  "command": "APPROVE",
  "items": [
    {
      "taskId": "tsk-52108",
      "version": 3
    }
  ],
  "comment": "Peso confirmado con la ficha técnica"
}

Response · 200

{
  "success": true,
  "data": {
    "planId": "pln-91be20",
    "expiresAt": "2026-10-18T15:14:05Z",
    "items": [
      {
        "taskId": "tsk-52108",
        "productId": "PRD-0004812",
        "closes": "REVISION_DEL_CAMBIO",
        "from": "EN_MODIFICACION",
        "to": "APROBADO",
        "appliesFields": [
          "PESO_EMPAQUE"
        ],
        "republishChannels": [
          "TIENDA",
          "OMS"
        ],
        "visibleToSupplier": "Aprobada"
      }
    ],
    "applyUrl": "/api/v2/product-plans/pln-91be20/apply"
  }
}

Errores

HTTPCódigoCuándo
409VERSION_CONFLICTLa tarea cambió (otra persona la tomó, la cerró o la reasignaron) desde que se leyó
423LOCKEDLa tarea está asignada a otra persona
403AUTHORIZATION_ERRORLa matriz del motor no le da ese comando a quien llama
422VALIDATION_ERRORUn rechazo llega sin motivo por campo, o se completa una sección con obligatorios vacíos
POST /api/v2/products/{id}/status-correction/plans · Corrección administrativa del estado
CampoValor
APIAPI-02-021 · MS-02 Producto
Para quéGobierno de Producto corrige a mano el estado o las tareas de un producto atorado o con un estado que no corresponde, con motivo obligatorio. Se confirma con el plan y queda en la bitácora como corrección, no como un paso del flujo.
En esta épicaCorrección administrativa del estado con motivo
Quién la llamaBFF del portal
PermisoADMIN-W (Gobierno de Producto)
CabecerasAuthorization, X-Request-Id, Idempotency-Key, If-Match
Parámetrosid = PRD-0004812

Request

{
  "version": 9,
  "status": "EN_ENRIQUECIMIENTO",
  "closeTasks": [
    "tsk-40211"
  ],
  "openTasks": [
    {
      "type": "QA_CON_IA"
    }
  ],
  "reason": {
    "code": "ESTADO_INCONSISTENTE",
    "comment": "Quedó con Gobierno de Datos abierta después de que SAP sí creó el artículo"
  }
}

Response · 200

{
  "success": true,
  "data": {
    "planId": "pln-0a91c3",
    "expiresAt": "2026-10-18T15:14:05Z",
    "item": {
      "productId": "PRD-0004812",
      "from": {
        "status": "EN_ENRIQUECIMIENTO",
        "openTasks": [
          "GOBIERNO_DE_DATOS"
        ],
        "visibleToSupplier": "En proceso Liverpool"
      },
      "to": {
        "status": "EN_ENRIQUECIMIENTO",
        "openTasks": [
          "QA_CON_IA"
        ],
        "visibleToSupplier": "En revisión"
      },
      "warnings": [
        "La tarea tsk-40211 sale de la bandeja de Gobierno de Datos"
      ]
    },
    "applyUrl": "/api/v2/product-plans/pln-0a91c3/apply"
  }
}

Errores

HTTPCódigoCuándo
403AUTHORIZATION_ERRORQuien llama no tiene ADMIN-W
422VALIDATION_ERRORFalta el motivo o el estado o la tarea no existen
422BUSINESS_ERRORSe intenta reabrir un producto Cancelado: es final y sus EAN ya se liberaron
409VERSION_CONFLICTEl producto cambió desde que se leyó

Las que usa y construye otra épica (6)

Su request y su response están en la página de la épica que la construye.

APIMétodo y rutaPara qué, aquíLa construye
API-13-001GET /internal/identity/permissions?userId=Roles, áreas y negocios de quien llama, con cachéFT-USR-01 · Identidad y autenticación de usuarios internos…
API-01-028GET /api/v2/taxonomies/PRODUCT/nodes/{id}/effectiveObligatorios y secciones con dueño por plantilla y negocioFT-PLT-06 · Configuración de atributos por plantilla y por negocio…
API-06-006POST /api/v2/scoresScore de Marketplace al abrir la Calificación de IAFT-RAC-02 · Score de calidad del producto
API-15-005POST /api/v2/ai/quality-reviewsRevisión de calidad con IA al cerrarse las tareas de enriquecimientoFT-IA-05 · Enriquecimiento continuo después de crear el SKU y después…
API-02-049POST /internal/product/sap/122El 122 que cierra SKU en SAP (lo construye FT-PRD-02)FT-PRD-02 · Creación de SKU con SAP
API-02-006POST /api/v2/products/guided/plansEl primer guardado que crea el producto en Borrador (lo construye FT-PRD-07)FT-PRD-07 · Captura guiada por pasos con los mínimos primero

6. Eventos

Publica

EventoCuándoQuién lo consume
catalog.product.changed/STATUS_CHANGEDCada transición del ciclo de vida, de T01 a T14; el cuerpo lleva la etiqueta que verá el proveedorFT-ACT-05, FT-ARQ-02, FT-CAT-05, FT-IA-04, FT-PRD-02, FT-PRD-04, FT-PRD-06, FT-PRD-10, FT-RAC-03, FT-RAC-05, FT-RAC-06
catalog.product.changed/TASK_CHANGEDSe abre, se asigna, se cierra o vence una tareaFT-ACT-05, FT-ACT-06, FT-ARQ-02, FT-CAT-06, FT-IA-06, FT-PRD-02, FT-PRD-05, FT-PRD-06, FT-PRD-07, FT-PRD-08, FT-RAC-02, FT-RAC-03, FT-RAC-04, FT-RAC-05, FT-RAC-06
catalog.product.changed/REJECTION_ADDEDLa Validación automática o un revisor rechazan con motivo por campoFT-INT-07, FT-PRD-04, FT-PRD-05, FT-PRD-10, FT-RAC-01, FT-RAC-03, FT-RAC-05, FT-RAC-06
catalog.product.changed/STATUS_CORRECTEDGobierno de Producto corrige un estado a manoMS-05 (bitácora)
catalog.product.changed/EAN_CHANGEDUna cancelación libera los EAN del productoFT-ARQ-02, FT-PRD-03
catalog.product.changed/PRODUCT_CREATEDEntra un alta directa de PLM, MM41 o B2B en Creación de SKUFT-ARQ-01
catalog.product.publication/SAP_CREATION_REQUESTEDMarketplace alcanza el score (T05), entra un alta directa sin SKU, Gobierno de Datos relanza o corrige un dato maestro que usa SAPFT-PRD-02
catalog.product.changed/CONFIG_CHANGEDSe confirma una versión nueva de una tabla del motorFT-ARQ-02, FT-FLU-07

Consume

EventoPara quéQuién lo publica
catalog.product.changed/STATUS_CHANGEDMS-05 guarda cada transición; MS-03 la lleva a P360 mientras P360 sea la fuente; MS-12 cierra el trabajo de un producto canceladoesta misma épica
catalog.product.changed/TASK_CHANGEDMS-14 avisa al responsable de la tarea; MS-12 recibe la tarea Foroesta misma épica
catalog.studio.changed/CAPTURE_COMPLETEDMS-02 cierra la tarea Foro cuando el estudio terminaFT-ACT-06
catalog.identity.changed/ROLE_CHANGEDMS-02 renueva su caché de roles para evaluar la matrizFT-USR-02
catalog.product.changed/CONFIG_CHANGEDMS-05 guarda la versión anterior y la nueva de la tablaesta misma épica
catalog.product.changed/STATUS_CORRECTEDMS-05 guarda la corrección marcada como administrativa, con su motivoesta misma épica

7. Datos

Cada colección tiene un solo dueño, el único que escribe en ella.

ColecciónDueñoQué guardaEsta épica
productsMS-02La familia del producto con sus variantes, valores, imágenes (URL), clasificaciones, estado, tareas abiertas y rechazos.escribe
tasksMS-02Todo el trabajo asignado: visto bueno, corrección, Gobierno de Datos, foto, secciones, QA, revisión del cambio y repoblamiento.escribe
identifier_registryMS-02Unicidad de SKU y de EAN por negocio.escribe
product_versionsMS-02Foto numerada del producto en cada versión.escribe
product_reference_tablesMS-02Configuración del motor de estados y del matching: transiciones, estados externos y pesos.escribe
product_receiptsMS-02El recibo de cada escritura confirmada en el producto (antes operation_receipts).escribe
product_outboxMS-02Los cambios del producto que esperan salir como evento (antes outbox).escribe
product_reference_tablesMS-02Configuración del motor de estados y del matching: transiciones, estados externos y pesos.lee
productsMS-02La familia del producto con sus variantes, valores, imágenes (URL), clasificaciones, estado, tareas abiertas y rechazos.lee
tasksMS-02Todo el trabajo asignado: visto bueno, corrección, Gobierno de Datos, foto, secciones, QA, revisión del cambio y repoblamiento.lee

8. Historias que cubre

HistoriaPrioridadCómo la cubre
FT-FLU-01·H1 · Las transiciones como configuración con la llave de NextStatusP1flujo «Configuración versionada y convivencia con P360»; API-02-030, API-02-031, API-02-028
FT-FLU-01·H2 · Que el mismo flujo aplique candados, obligatoriedad y cantidad de atributos…P1pasos 3, 5, 8; API-01-028
FT-FLU-01·H3 · Que el SKU se cree con los datos maestros mínimos y el enriquecimiento siga aparteP1flujo «Segunda carretera: del SKU a Aprobado con tareas en paralelo»
FT-FLU-01·H4 · Saber si mi producto avanza a la creación del SKUP1pasos 9; API-06-006
FT-FLU-01·H5 · Que cada transición abra la bandeja que toca, junte los rechazos y nunca pida…P2pasos 8, 11, 13; flujo «Segunda carretera: del SKU a Aprobado con tareas en paralelo»; API-02-027, API-02-035

9. Decisiones de esta épica

Las tomó el TL como arquitecto; quedan como [Propuesta] hasta que el equipo de la épica las revise.

  • D-FLU-01-1. El motor es el modelo B guardado como datos: 7 estados, 14 tareas y 5 estados por canal. Sólo tiene las 14 transiciones del ciclo de vida (T01 a T14) y reglas por negocio que deciden qué tareas abre cada una. La llave de NextStatus ya no decide nada: queda como tabla de equivalencias con P360 (P360_CODES). Por qué: Cumple lo que piden los talleres con 7 estados en lugar de 28 y cada combinación conserva su código de P360. Las 239 llaves con estado previo sobran porque el origen de cada rechazo viaja en la tarea. Se apoya en PD-29, DMS-69, ADR-12.
  • D-FLU-01-2. Los permisos de dominio viven en el motor de MS-02 como configuración versionada: ROLE_MATRIX (rol × acción × tarea × negocio) y FIELD_OWNERS (dueño de cada grupo de campos). MS-13 sólo dice qué roles, áreas y negocios tiene cada usuario y el BFF sólo decide los permisos de pantalla. La matriz falla cerrada: lo que no está, no se permite. Por qué: Quién puede hacer qué en el flujo es una regla del flujo. Repartirla entre directorio, BFF y motor repetiría el desorden de roles de P360 y dejaría dos lugares que se contradicen. Se apoya en DMS-71, DUD-22, ADR-12.
  • D-FLU-01-3. Sólo MS-02 cambia el estado y las tareas, siempre por plan y confirmación (API-02-028, API-02-035 y API-02-057) o por su reloj de plazos. Los demás módulos informan hechos con sus eventos (el estudio terminó, la imagen se validó) o responden cuando el motor los llama (score, revisión con IA); nunca escriben el estado. Por qué: Una sola máquina de estados en lugar de las dos de hoy (P360 y Entrada Única) evita los SKU que cambian de estado sin registro y las propuestas en aprobación que piden SKU. Se apoya en ADR-12, PD-29, RF-ALT-11.
  • D-FLU-01-4. Las reglas por negocio son guardas de la misma transición. Al enviar, Mercaderías y Suburbia abren Visto bueno de Compras y Marketplace abre Calificación de IA. Los obligatorios salen de la vista efectiva de MS-01 por negocio (unos 5 en Marketplace frente a 30 o 40 en Liverpool), sin copias en MS-02. Marketplace suma controles (lista negra, coincidencias, coherencia), no más atributos. Por qué: Un solo flujo con candados por negocio: «no son dos plataformas». Se apoya en RN-GEN-02, RN-GEN-05, RF-GEN-02.
  • D-FLU-01-5. Dos carreteras: el SKU se pide con los datos maestros mínimos y, al llegar el 122, foto, secciones con dueño y Gobierno de Datos se abren en paralelo. Aprobado sólo espera a las tareas que bloquean: foto, secciones obligatorias, QA y Category si su negocio la tiene encendida (SWITCHES). El enriquecimiento opcional nunca frena el SKU ni la publicación. Por qué: Volumetría, logística comercial y precios no deben detener el SKU. Category se apaga por negocio, sin tocar el motor, cuando se mida el acierto de la IA. Se apoya en RN-GEN-03, RF-GEN-03, DEC-01, P-37.
  • D-FLU-01-6. Si el score de Marketplace no alcanza el umbral, la propuesta regresa a Borrador con una Corrección de origen «score», que el seller ve como «Por completar», con lo que baja su calificación. No cuenta como rechazo; es la misma etiqueta que lleva la franja RETENER de FT-RAC-03 después del SKU. Antes del SKU el score sólo mira lo que el SKU necesita; la calidad del contenido frena después la publicación de cada canal. Por qué: En el taller se acordó que no avanzar no es un rechazo. Separar las dos compuertas cumple a la vez «dos carreteras» y el score antes del SKU que dibujan los diagramas. Se apoya en RN-CAL-06, DEC-46, PD-24.
  • D-FLU-01-7. Un producto Aprobado o En modificación no se cancela: se retira de cada canal. Cancelar sólo vale de Borrador a En enriquecimiento (T11 a T14), cierra todas sus tareas y libera los EAN en la misma transacción. Si llega un 122 de un producto ya cancelado, no se reabre: queda una tarea de Gobierno de Datos, sin cambiar el estado, para dar de baja el artículo en SAP. Por qué: Hoy se puede cancelar desde cualquier estado y se pierde qué estaba publicado. La baja por canal deja ver qué se retiró y dónde. Se apoya en PD-29, ADR-12.
  • D-FLU-01-8. Toda tabla del motor es versionada: el cambio se revisa con vista previa (API-02-031), se confirma con plan y sale como evento para la bitácora. El código de P360 se calcula sólo con P360_CODES, que leen MS-03 mientras P360 sea la fuente y los reportes que todavía lo usen. Ninguna pantalla lee códigos y no hay rutas /public/rt. Por qué: Sin capa de compatibilidad para los fronts (decisión 20 que adopta ADR-12) y con una sola tabla, nadie recalcula estados por su cuenta. Se apoya en DUD-36, ADR-06, ADR-12.

Qué falta decidir

IDQué falta
PD-29Validar el modelo B con Negocio (Gobierno de Producto con Arquitectura, en ADR-09 del 6-nov); estas épicas ya lo usan.
PD-24Confirmar con Gobierno de Producto y Marketplace que el score antes del SKU sólo mira lo que el SKU necesita; los umbrales siguen sin dato (DUD-32).
DUD-09No existe la ERF de Flujos y Estados: la tabla de transiciones de aquí es la propuesta hasta que exista.
DUD-22La matriz rol × acción × tarea y los dueños de cada campo los firma Negocio con Seguridad; el motor arranca con los perfiles de los talleres.
P-37Category arranca encendida en los tres negocios hasta medir el acierto de la IA; lo decide Category con Gobierno de Producto.
DUD-36Saber quién, fuera de Entrada Única y Foro, lee códigos de P360 y si alguno toma 1007 como «ya publicado».

También siguen abiertos: PEN-55, Cómo se identifica el negocio de un proveedor híbrido al dar de alta: el motor necesita un solo negocio por producto.

Fuentes

  1. [D] trazabilidad/features/FT-FLU-01-motor-de-estados-configurable.md: la ficha de la épica, con sus historias, reglas y bloqueos.
  2. [D] ADR-12 · Un solo sistema: backend compartido y una sola base (sección 3.4).
  3. [D] docs/arquitectura/por-epica/base/: piezas, colecciones, eventos y el hilo de punta a punta.
  4. [D] docs/arquitectura/omega-a-pim-headless/contratos-api.md: convenciones y endpoints de partida.
  5. [D] docs/arquitectura/maquina-de-estados-to-be/propuesta-maquina-de-estados.md §7: estados, tareas y canales.
  6. [I] Las decisiones de la sección 9 son del TL sobre esas fuentes.