← Arquitectura por épica

FT-FLU-02 · Alta individual de Marketplace

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-02: 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-02.json, generada con generar.py; la ficha de la épica es trazabilidad/features/FT-FLU-02-orquestacion-alta-individual-marketplace.md.

En 30 segundos

Es la columna vertebral del alta de un seller de Marketplace en el portal: fija el orden de los pasos y a dónde va el producto en cada uno. Primero se revisa si la marca está vetada o si el producto ya existe; si ya existe, el seller va directo a ofertar sin catalogar. Si es nuevo, se elige o se sugiere la plantilla, la IA prellena, el seller completa lo mínimo y envía, sin que un score bajo cuente como rechazo.

  • Módulo dueño: MS-02 Producto. También participan: MS-06 Evaluación, MS-15 IA y enriquecimiento, MS-01 Catálogo.
  • Etapa 1 · ¿Ya existe?. Recibe «PE-1 · Propuesta en Borrador», «PE-C · Catálogo vigente» y entrega «PE-2 · Sin duplicado», «PE-4 · Propuesta enviada».
  • APIs: construye 1 y usa 16 que construyen otras épicas.
  • Eventos: publica 3 y consume 1.

1. Dónde encaja

Recibe

DeQué
PE-1 · Propuesta en BorradorLas propuestas de Marketplace en Borrador: las del portal nacen en este mismo flujo (paso 3) y las de archivo o API siguen la misma ruta desde la plantilla.
PE-C · Catálogo vigentePlantillas, vista efectiva, marcas permitidas y lista negra vigentes.
FT-REF-02 · Blacklist de Marketplace por marca, negocio y grupo de…La lista negra por marca, negocio y grupo de artículos.
FT-REF-03 · Servicio de matchingLas coincidencias por EAN, marca y modelo, características, imagen o URL, con su confianza.
FT-FLU-03 · Decisión por negocio ante coincidenciaLa decisión por negocio ante una coincidencia: producto nuevo, multioferta, stock out o bloqueo.
FT-PRD-07 · Captura guiada por pasos con los mínimos primeroLa captura guiada por pasos con los mínimos primero y la validación en el momento.
FT-CAT-03 · Categorización de productosEl agente de categoría dentro del alta: la categoría web propuesta, que el seller sólo ve y que no es un estado.
FT-INT-05 · Multioferta y stock outEl «detalle oferta» al que sale el seller cuando el producto ya existe, con el SKU verificado en el portal de ofertas.
FT-ACT-04 · Variantes a partir de imágenes y herencia de imágenes por…Las variantes que se crean a partir de las fotos de cada color, en el paso de imágenes de la captura.

Entrega

AQué
PE-2 · Sin duplicadoLa propuesta en Borrador con la evaluación de MS-06 guardada: marca permitida, sin coincidencia y decisión «producto nuevo», con SKU de Marketplace si no existe en Liverpool.
PE-4 · Propuesta enviadaLa propuesta enviada con lo mínimo de Marketplace completo; se abre la Calificación de IA, que sólo revisa lo que el SKU necesita.
FT-INT-05 · Multioferta y stock outSi ya existe: el SKU existente y la acción, multioferta o stock out, para «detalle oferta»; el alta termina sin propuesta nueva ni SKU.
FT-RAC-05 · Estatus del producto y motivos visibles para seller y…En qué paso del alta va cada propuesta de Marketplace, para el estatus que ve el seller.

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).
T03Borrador → En revisiónEnvía con los obligatorios completos.

Tareas que abre o cierra: Validación automática, Calificación de IA.

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

Nuevo PIM · un solo sistema

Pantallas y sistemas

Personas

Pantalla de propuesta

Identificar un producto antes del alta
Alta de un producto
y 5 más

Evaluar una propuesta

Sugerir la plantilla por el producto…
Prellenar la plantilla o un bloque co…

STATUS_CHANGED

Lo lleva a «detalle oferta» sin crear…
Muestra lo que falta, sigue en Borrad…

Selector de plantillas

Seller

Entrada Única · Vendor Center

BFF del portal

★ MS-02 Producto

MS-06 Evaluación

MS-15 IA y enriquecimiento

MS-01 Catálogo

Eventos

Contexto de FT-FLU-02

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.

EventosMS-15 IA y enriquecimientoMS-06 EvaluaciónMS-02 ProductoEntrada Única · Vendor CenterEventosMS-15 IA y enriquecimientoMS-06 EvaluaciónMS-02 ProductoEntrada Única · Vendor CenterSellerBFF1. Empieza el alta con imagen, características o URL2. Pide identificar el producto antes del altaPOST /api/v2/products/identifications3. Pide lista negra, coincidencias y decisión por negocioPOST /api/v2/evaluations4. Pide plantillas sugeridas por la imagen o la URLPOST /api/v2/ai/template-suggestions5. Confirma «¿es tu plantilla?» o elige otra6. Pide el plan del alta con evaluación y plantillaPOST /api/v2/products/plans7. Confirma: nace la propuesta en BorradorPOST /api/v2/product-plans/{planId}/apply8. Abre la captura con vista efectiva y permisosGET /bff/v1/proposals/{productId}9. Pide el prellenado de atributos con IAPOST /api/v2/ai/prefill10. Valida y guarda cada paso en el momentoPOST /api/v2/products/{id}/values/plans11. Pregunta qué falta para poder enviarGET /api/v2/products/{id}/gates12. Pide el plan de envíoPOST /api/v2/workflow/actions/plans13. Confirma el envíoPOST /api/v2/product-plans/{planId}/apply14. Avisa En revisión y abre la Calificación de IASTATUS_CHANGEDSellerBFF
Flujo principal de FT-FLU-02
Los pasos en texto
PasoDeAQué haceAPI o evento
1SellerEntrada Única · Vendor CenterEmpieza el alta con imagen, características o URL—
2Entrada Única · Vendor CenterMS-02 Producto (por el BFF)Pide identificar el producto antes del altaAPI-02-202
3MS-02 ProductoMS-06 EvaluaciónPide lista negra, coincidencias y decisión por negocioAPI-06-001
4Entrada Única · Vendor CenterMS-15 IA y enriquecimiento (por el BFF)Pide plantillas sugeridas por la imagen o la URLAPI-15-001
5SellerEntrada Única · Vendor CenterConfirma «¿es tu plantilla?» o elige otra—
6Entrada Única · Vendor CenterMS-02 Producto (por el BFF)Pide el plan del alta con evaluación y plantillaAPI-02-005
7Entrada Única · Vendor CenterMS-02 Producto (por el BFF)Confirma: nace la propuesta en BorradorAPI-02-057
8Entrada Única · Vendor CenterBFF del portalAbre la captura con vista efectiva y permisosAPI-BFF-201
9Entrada Única · Vendor CenterMS-15 IA y enriquecimiento (por el BFF)Pide el prellenado de atributos con IAAPI-15-003
10Entrada Única · Vendor CenterMS-02 Producto (por el BFF)Valida y guarda cada paso en el momentoAPI-02-012
11Entrada Única · Vendor CenterMS-02 Producto (por el BFF)Pregunta qué falta para poder enviarAPI-02-101
12Entrada Única · Vendor CenterMS-02 Producto (por el BFF)Pide el plan de envíoAPI-02-028
13Entrada Única · Vendor CenterMS-02 Producto (por el BFF)Confirma el envíoAPI-02-057
14MS-02 ProductoEventosAvisa En revisión y abre la Calificación de IAcatalog.product.changed/STATUS_CHANGED

3.1 Ya existe: directo a la oferta

MS-06 EvaluaciónMS-02 ProductoEntrada Única · Vendor CenterMS-06 EvaluaciónMS-02 ProductoEntrada Única · Vendor CenterSellerBFF1. Captura el EAN de su producto2. Pide identificar el producto antes del altaPOST /api/v2/products/identifications3. Evalúa: ya existe en Marketplace, toca multiofertaPOST /api/v2/evaluations4. Pide sobre qué SKU puede ofertarGET /api/v2/offer-targets/{sku}5. Lo lleva a «detalle oferta» sin crear propuestaSellerBFF
Ya existe: directo a la oferta

3.2 Camino por características: elige la plantilla

MS-15 IA y enriquecimientoMS-01 CatálogoMS-02 ProductoEntrada Única · Vendor CenterMS-15 IA y enriquecimientoMS-01 CatálogoMS-02 ProductoEntrada Única · Vendor CenterSellerBFF1. Captura marca, modelo y características2. Pide identificar el producto antes del altaPOST /api/v2/products/identifications3. Busca la plantilla en el árbol de hojasGET /api/v2/structures/{id}/leaves4. Pide el plan del alta con la plantilla elegidaPOST /api/v2/products/plans5. Confirma: nace la propuesta en BorradorPOST /api/v2/product-plans/{planId}/apply6. Prellena con lo aprovechable de la coincidenciaPOST /api/v2/ai/prefillSellerBFF
Camino por características: elige la plantilla

3.3 No alcanza el mínimo: sigue en captura sin rechazo

MS-02 ProductoEntrada Única · Vendor CenterMS-02 ProductoEntrada Única · Vendor CenterBFFSeller1. Pide el plan de envíoPOST /api/v2/workflow/actions/plans2. Lee qué le falta, por secciónGET /api/v2/products/{id}/gates3. Muestra lo que falta, sigue en Borrador sin rechazo4. Guarda lo que completóPOST /api/v2/products/{id}/values/plans5. Vuelve a pedir el envíoPOST /api/v2/workflow/actions/plansBFFSeller
No alcanza el mínimo: sigue en captura sin rechazo

4. Si algo sale mal

  • La marca está en la lista negra de Marketplace. La identificación lo dice antes de crear nada: el seller ve la explicación y el alta termina sin propuesta; no llega a la plantilla.
  • Al enviar, la Validación automática encuentra que el producto ya existe. Si otro seller lo catalogó entretanto, la propuesta se cierra como convertida en oferta (FT-INT-05) y el seller pasa a ofertar sobre el SKU existente; no se crea SKU ni se enriquece.
  • La IA no sugiere ninguna plantilla con confianza suficiente. El seller elige en el árbol, como en el camino por características; si ninguna sirve, lo atiende Gobierno de Producto y el alta espera.
  • No cumple lo mínimo de Marketplace. El plan de envío lo bloquea y dice qué falta por sección; la propuesta sigue en Borrador sin rechazo ni plazo de corrección.
  • MS-06 no responde, o la evaluación por imagen o URL tarda. La identificación responde 503 y el alta no avanza; si la evaluación por imagen o URL tarda, MS-02 sigue cuando llega EVALUATION_DONE y la pantalla muestra «identificando».

5. APIs

Las que construye esta épica (1)

POST /api/v2/products/identifications · Identificar un producto antes del alta
CampoValor
APIAPI-02-202 · MS-02 Producto
Para quéRevisa, sin crear ninguna propuesta, si el producto se puede catalogar: MS-02 pide a MS-06 la lista negra, las coincidencias por EAN, por marca y modelo, por imagen o por URL, y la decisión por negocio. Devuelve la acción que le toca (crear, multioferta, oferta con stock out o nada), el siguiente paso y un evaluationId que vale 24 horas y que el alta guarda en la propuesta.
En esta épicaIdentificación previa al alta: lista negra, coincidencias y decisión por negocio, sin crear nada
Quién la llamaEntrada Única · Vendor Center (por el BFF), Gateway de terceros /partner/v1
PermisoENT-E del negocio; el proveedor o seller sólo en sus negocios
CabecerasAuthorization, X-Request-Id
También la usanFT-ARQ-01, FT-PRD-09, FT-PRD-10

Request

{
  "business": "MKP",
  "path": "CHARACTERISTICS",
  "brandCode": "MARCA01",
  "model": "PB-20",
  "eans": [
    "7501234567930"
  ],
  "imageAssetId": null,
  "sourceUrl": null,
  "supplierShopId": "SELLER-0001"
}

Response · 200

{
  "success": true,
  "data": {
    "evaluationId": "evl-5d21c8",
    "expiresAt": "2026-10-19T16:20:00Z",
    "outcome": "NEW",
    "allowedAction": "CREATE_PROPOSAL",
    "brand": {
      "code": "MARCA01",
      "blocked": false
    },
    "matches": [],
    "skuCatalog": "MARKETPLACE",
    "nextStep": "CHOOSE_TEMPLATE",
    "message": "Producto nuevo: elige o confirma su plantilla"
  }
}

Errores

HTTPCódigoCuándo
400VALIDATION_ERRORUn EAN no tiene de 8 a 14 dígitos o su dígito verificador no corresponde, o no trae datos para identificar
403AUTHORIZATION_ERROREl negocio no es del proveedor o seller
503DEPENDENCY_UNAVAILABLEMS-06 no responde: no se deja avanzar sin identificar

Las que usa y construye otra épica (16)

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-02-005POST /api/v2/products/plansAlta en Borrador con el evaluationId y la plantilla confirmadaFT-PRD-01 · Modelo canónico de producto
API-02-057POST /api/v2/product-plans/{planId}/applyConfirmar el alta, la plantilla, los valores y el envíoFT-FLU-01 · Motor de estados configurable con dos carreteras y reglas…
API-06-001POST /api/v2/evaluationsEvaluación: lista negra, coincidencias y decisión por negocioFT-REF-02 · Blacklist de Marketplace por marca, negocio y grupo de…
API-15-001POST /api/v2/ai/template-suggestionsPlantillas sugeridas por imagen o URL, con su confianzaFT-IA-02 · Sugerencia de plantilla por IA a partir del producto…
API-02-016POST /api/v2/products/classifications/plansCambiar la plantilla si el seller se equivocóFT-CAT-03 · Categorización de productos
API-BFF-201GET /bff/v1/proposals/{productId}Pantalla de captura: propuesta, vista efectiva, listas y permisosFT-PRD-09 · Contrato de propuestas con Entrada Única
API-15-003POST /api/v2/ai/prefillPrellenado de atributos con IA, que el seller validaFT-IA-01 · Prellenado con IA y validación obligatoria del usuario
API-02-012POST /api/v2/products/{id}/values/plansValidación en el momento y guardado de cada pasoFT-RAC-01 · Motor de validación en línea y candados de datos…
API-02-101GET /api/v2/products/{id}/gatesQué falta para pasar el candado de envíoFT-RAC-01 · Motor de validación en línea y candados de datos…
API-02-028POST /api/v2/workflow/actions/plansPlan de la acción SUBMITFT-FLU-01 · Motor de estados configurable con dos carreteras y reglas…
API-02-102POST /api/v2/products/ean-checksRevisar cada EAN al teclearloFT-PRD-03 · EAN
API-06-005POST /api/v2/matchesVer productos parecidos como referenciaFT-REF-03 · Servicio de matching
API-01-022GET /api/v2/structures/{id}/leavesElegir la plantilla en el árbol de hojasFT-PLT-05 · Taxonomía de plantillas por familia, metadatos de…
API-02-027GET /api/v2/workflow/capabilities?productIds=Estado, tareas abiertas y acciones, para mostrar en qué paso vaFT-FLU-01 · Motor de estados configurable con dos carreteras y reglas…
API-02-030GET /api/v2/workflow/config/{type}La ruta de Marketplace como configuración del motor (ROUTES)FT-FLU-01 · Motor de estados configurable con dos carreteras y reglas…
API-02-404GET /api/v2/offer-targets/{sku}Sobre qué SKU puede ofertar cuando ya existeFT-INT-05 · Multioferta y stock out

6. Eventos

Publica

EventoCuándoQuién lo consume
catalog.product.changed/PRODUCT_CREATEDNace la propuesta en el portalFT-ARQ-01
catalog.product.changed/STATUS_CHANGEDSe envía a revisiónFT-ACT-05, FT-ARQ-02, FT-CAT-05, FT-FLU-01, 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 la Calificación de IAFT-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-PRD-08, FT-RAC-02, FT-RAC-03, FT-RAC-04, FT-RAC-05, FT-RAC-06

Consume

EventoPara quéQuién lo publica
catalog.validation.result/EVALUATION_DONEMS-02 sigue el alta cuando la evaluación por imagen o URL terminóFT-FLU-03, FT-FLU-05, FT-REF-03

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
identifier_registryMS-02Unicidad de SKU y de EAN por negocio.escribe
tasksMS-02Todo el trabajo asignado: visto bueno, corrección, Gobierno de Datos, foto, secciones, QA, revisión del cambio y repoblamiento.escribe
product_versionsMS-02Foto numerada del producto en cada versión.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
validation_resultsMS-06El resultado de cada evaluación: lista negra, coincidencias con su confianza y score.lee
template_viewsMS-01La vista efectiva ya resuelta por plantilla y negocio: qué atributos pide y cuáles son obligatorios.lee
governance_rulesMS-01Reglas de captura y clasificación: marcas por plantilla, grupo de artículo a plantilla, alcance del proveedor y lista negra de Marketplace.lee
ai_jobsMS-15Cada trabajo de IA con su entrada, su resultado y su confianza.lee

8. Historias que cubre

HistoriaPrioridadCómo la cubre
FT-FLU-02·H1 · Producto nuevo de punta a puntaP1pasos 1, 2, 3, 6, 7, 10, 13, 14; API-02-027, API-BFF-201
FT-FLU-02·H2 · Ya existe: directo a la ofertaP1flujo «Ya existe: directo a la oferta»; API-02-202, API-02-404
FT-FLU-02·H3 · El camino decide la entrada a la plantillaP1pasos 4, 5, 9; flujo «Camino por características: elige la plantilla»; API-15-001, API-15-003
FT-FLU-02·H4 · No avanza, pero no se rechazaP2flujo «No alcanza el mínimo: sigue en captura sin rechazo»; API-02-101
FT-FLU-02·H5 · Oferta y publicación al finalP3Fuera: La oferta con SKU la resuelve FT-INT-05 y la publicación por rangos de score, FT-RAC-03; esta épica entrega la propuesta enviada (PE-4) y, si ya existe, el SKU para ofertar.

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-02-1. La ruta de Marketplace (identificar, plantilla, prellenado, captura, imágenes y envío) es configuración del motor de MS-02, no código de pantalla: el portal pregunta en qué paso va la propuesta y qué puede hacer, y el BFF sólo compone. Por qué: Un flujo común con reglas por negocio (RN-GEN-02): el mismo producto puede llegar por archivo o API y seguir la misma ruta sin repetir lógica. Se apoya en RN-GEN-02, PD-29, ADR-12.
  • D-FLU-02-2. La identificación va antes de crear (API-02-202): MS-02 pide la evaluación a MS-06 y devuelve la acción, el siguiente paso y un evaluationId que vale 24 horas. Si es producto nuevo, la propuesta nace en Borrador con esa evaluación y la plantilla confirmada (API-02-005); si ya existe o la marca está vetada, no nace nada. Por qué: Es la identificación previa que usa Evaluación (FT-REF-02, FT-FLU-03): el seller sabe al principio si debe catalogar u ofertar y no quedan propuestas muertas; la propuesta llega a PE-1 con lo de PE-2 ya guardado. Se apoya en RF-MAT-14, RF-MAT-15, DEC-62, ADR-12.
  • D-FLU-02-3. Ruteo por camino: con imagen o URL, MS-15 sugiere de una a tres plantillas («¿es tu plantilla?») y prellena; con características, el seller elige en el árbol; si la coincidencia trajo datos aprovechables, se ofrecen como prellenado para validar. Por qué: Es la regla acordada (RF-ENR-03, DEC-51); lo prellenado queda con origen IA hasta que el seller lo confirma. Se apoya en RF-ENR-03, DEC-51, RN-ENR-13.
  • D-FLU-02-4. «No avanza, pero no se rechaza»: lo mínimo para el SKU (obligatorios, plantilla, marca y coincidencia) se revisa en el plan de envío; si falta algo, la propuesta sigue en Borrador sin rechazo ni plazo. La Calificación de IA en En revisión sólo revisa lo que el SKU necesita; el score de calidad decide la publicación por rangos (FT-RAC-03). Por qué: Resuelve PD-24 como las propuestas del 16 y del 17-oct: cumple «dos carreteras» y la regla de que un score bajo no es rechazo (RN-CAL-06). Se apoya en PD-24, RN-CAL-06, RN-CAL-07.
  • D-FLU-02-5. Si ya existe, el alta termina sin SKU ni enriquecimiento y entrega el SKU existente a «detalle oferta» (FT-INT-05). El PIM no crea la oferta: el seller la crea en Mirakl. Por qué: Con coincidencia no se crea SKU ni se enriquece (RF-MAT-15); producto y oferta van separados (PEN-23). Se apoya en RF-MAT-15, PEN-23, RN-MAT-18.
  • D-FLU-02-6. Un producto nuevo que no existe en Liverpool nace como genérico de Marketplace y su SKU será de Marketplace; la oferta se habilita sólo con SKU y la publicación sigue los rangos de score de FT-RAC-03. Por qué: Es la «cuarta línea» acordada (RF-MAT-14, RN-MAT-19); lo de H5 queda en las épicas dueñas. Se apoya en RF-MAT-14, RN-MAT-19.

Qué falta decidir

IDQué falta
PD-24Gobierno de Producto con Marketplace ratifica que el score no frena el SKU, sólo la publicación.
PD-02Dirección, PM y Marketplace: si el alta TO-BE de sellers entra antes de R4; en R2 el seller se da de alta como hoy, ya sobre el PIM.
DUD-09Falta la ERF de Flujos y los nombres de los estados que ve el seller de Marketplace.

También siguen abiertos: PEN-60, Definir el alcance de la tarea de Gobierno de Datos después del SKU.

Fuentes

  1. [D] trazabilidad/features/FT-FLU-02-orquestacion-alta-individual-marketplace.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.