← Arquitectura por épica

FT-REF-04 · Matching por imagen y por URL del seller

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-REF-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-REF-04.json, generada con generar.py; la ficha de la épica es trazabilidad/features/FT-REF-04-matching-por-imagen-y-url.md.

En 30 segundos

Los sellers evaden la revisión con EAN inventados o atributos alterados, y la foto es lo más difícil de falsear. Esta épica deja que el seller entre por una imagen o por la URL de su página de producto: la IA lee la página (EAN, marca, atributos, fotos) o mira la imagen, busca productos parecidos en el catálogo y le entrega todo a Evaluación para la lista negra y la decisión por negocio. Lo extraído se guarda para prellenar sin volver a pagar el modelo.

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

1. Dónde encaja

Recibe

DeQué
PE-1 · Propuesta en BorradorLa propuesta de un seller recién nacida en Borrador con la URL de su página de producto o una imagen de consulta, con su negocio y su dueño.
FT-REF-03 · Servicio de matchingLa lógica de coincidencia y su respuesta, en la que entran los candidatos visuales y lo extraído de la página.
FT-ACT-03 · Imágenes del seller por URL con validación y corrección…La carga de imágenes por URL con propósito MATCHING (sin ficha técnica) y, si el seller las quiere en su producto, la validación técnica.

Entrega

AQué
FT-FLU-03 · Decisión por negocio ante coincidenciaLos candidatos visuales con su parecido y la marca leída de la página, para la lista negra y la decisión por negocio.
PE-2 · Sin duplicadoLa propuesta con su evaluación guardada cuando ni el EAN leído ni la imagen coinciden con nada.
FT-IA-01 · Prellenado con IA y validación obligatoria del usuarioLo extraído de la página o de la imagen (EAN, atributos, fotos) guardado en un trabajo de IA, para prellenar la plantilla.
FT-IA-02 · Sugerencia de plantilla por IA a partir del producto…Los productos parecidos que no llegaron a coincidencia, como homólogos para sugerir la plantilla.

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

Alta de un producto
Confirmar un plan de Producto

Evaluar una propuesta

Extraer de la URL o la imagen y busca…

Lee la página pública del producto

Extrae EAN, marca, modelo, atributos…
Busca imágenes parecidas en el catálo…
y 2 más

Valores de una lista

Responde lo extraído y los candidatos…
Responde un perfume igual con 0.93 de…

Responde CONTINUE con lo extraído par…
Responde la coincidencia: el EAN era…
y 1 más

Pedir permiso para subir un archivo
Avisar que terminó la carga

Detalle de un activo

Buscar productos que ya existen
Detalle de una evaluación

Responde referencias con su parecido

Prellenar la plantilla o un bloque co…

Seller

Compras

Entrada Única · Vendor Center

BFF del portal

MS-01 Catálogo

MS-02 Producto

MS-06 Evaluación

MS-11 Activos digitales

★ MS-15 IA y enriquecimiento

Base pim

Modelos de IA

Sitios web públicos

Contexto de FT-REF-04

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.

Base·pimMS-01 CatálogoModelos de IASitios web públicosMS-15 IA y enriquecimientoMS-06 EvaluaciónMS-02 ProductoEntrada Única · Vendor CenterBase·pimMS-01 CatálogoModelos de IASitios web públicosMS-15 IA y enriquecimientoMS-06 EvaluaciónMS-02 ProductoEntrada Única · Vendor CenterSellerBFF1. Pega la URL de su página de producto2. Pide el plan de la propuesta con la URLPOST /api/v2/products/plans3. Confirma el planPOST /api/v2/product-plans/{planId}/apply4. Pide evaluar la propuesta con la URLPOST /api/v2/evaluations5. Pide extraer la página y buscar parecidosPOST /api/v2/ai/image-matches6. Lee la página pública del producto7. Extrae EAN, marca, modelo, atributos y fotos8. Traduce la marca leída a su códigoGET /api/v2/lovs/{id}/values9. Busca imágenes parecidas en el catálogo10. Guarda lo extraído para reusarlo11. Responde lo extraído y los candidatos visuales12. Evalúa lista negra y coincidencias con lo extraído13. Responde CONTINUE con lo extraído para prellenar14. Guarda la evaluación y el trabajo de IA en la propuestaSellerBFF
Flujo principal de FT-REF-04
Los pasos en texto
PasoDeAQué haceAPI o evento
1SellerEntrada Única · Vendor CenterPega la URL de su página de producto—
2Entrada Única · Vendor CenterMS-02 Producto (por el BFF)Pide el plan de la propuesta con la URLAPI-02-005
3Entrada Única · Vendor CenterMS-02 Producto (por el BFF)Confirma el planAPI-02-057
4MS-02 ProductoMS-06 EvaluaciónPide evaluar la propuesta con la URLAPI-06-001
5MS-06 EvaluaciónMS-15 IA y enriquecimientoPide extraer la página y buscar parecidosAPI-15-006
6MS-15 IA y enriquecimientoSitios web públicosLee la página pública del producto—
7MS-15 IA y enriquecimientoModelos de IAExtrae EAN, marca, modelo, atributos y fotos—
8MS-15 IA y enriquecimientoMS-01 CatálogoTraduce la marca leída a su códigoAPI-01-007
9MS-15 IA y enriquecimientoModelos de IABusca imágenes parecidas en el catálogo—
10MS-15 IA y enriquecimientoBase pimGuarda lo extraído para reusarlo—
11MS-15 IA y enriquecimientoMS-06 EvaluaciónResponde lo extraído y los candidatos visuales—
12MS-06 EvaluaciónBase pimEvalúa lista negra y coincidencias con lo extraído—
13MS-06 EvaluaciónMS-02 ProductoResponde CONTINUE con lo extraído para prellenar—
14MS-02 ProductoBase pimGuarda la evaluación y el trabajo de IA en la propuesta—

3.1 Camino imagen

Modelos de IAMS-15 IA y enriquecimientoMS-06 EvaluaciónMS-02 ProductoMS-11 Activos digitalesEntrada Única · Vendor CenterModelos de IAMS-15 IA y enriquecimientoMS-06 EvaluaciónMS-02 ProductoMS-11 Activos digitalesEntrada Única · Vendor CenterSellerBFF1. Sube una foto de su producto2. Pide subir la imagen con propósito MATCHINGPOST /api/v2/assets/uploads3. Avisa que terminó: sin ficha técnicaPOST /api/v2/assets/{assetId}/complete4. Al guardar la propuesta, pide evaluarla con la imagenPOST /api/v2/evaluations5. Pide buscar parecidos por imagenPOST /api/v2/ai/image-matches6. Lee la imagen de consultaGET /api/v2/assets/{assetId}7. Compara la imagen con el catálogo8. Responde un perfume igual con 0.93 de parecido9. Responde la coincidencia: el EAN era inventadoSellerBFF
Camino imagen

3.2 Ver referencias para precargar

MS-15 IA y enriquecimientoMS-06 EvaluaciónEntrada Única · Vendor CenterMS-15 IA y enriquecimientoMS-06 EvaluaciónEntrada Única · Vendor CenterSellerBFF1. Sube una imagen para ver productos parecidos2. Pide productos parecidos a la imagenPOST /api/v2/matches3. Pide los candidatos visualesPOST /api/v2/ai/image-matches4. Responde referencias con su parecido5. Elige una referencia como base6. Pide prellenar con esa referenciaPOST /api/v2/ai/prefillSellerBFF
Ver referencias para precargar

3.3 Posible duplicado por imagen en Mercaderías

Entrada Única · Vendor CenterModelos de IAMS-15 IA y enriquecimientoMS-06 EvaluaciónMS-02 ProductoEntrada Única · Vendor CenterModelos de IAMS-15 IA y enriquecimientoMS-06 EvaluaciónMS-02 ProductoComprasBFF1. Al enviar una propuesta con foto, pide evaluarPOST /api/v2/evaluations2. Pide buscar parecidos por imagenPOST /api/v2/ai/image-matches3. Compara con el catálogo de Mercaderías4. Responde «posible duplicado» como aviso, no bloqueo5. Ve el posible duplicado en su visto bueno6. Abre el detalle de la comparaciónGET /api/v2/evaluations/{evaluationId}ComprasBFF
Posible duplicado por imagen en Mercaderías

4. Si algo sale mal

  • La página no se puede leer o no trae datos de producto. MS-15 responde que no pudo leerla; el seller ve «no pudimos leer tu página» y puede seguir por imagen o por características. Nada se da por identificado sin evaluación.
  • La IA no termina en 15 segundos. La evaluación responde RUNNING y el seller ve «seguimos revisando tu producto»; no puede elegir plantilla hasta que llegue EVALUATION_DONE. Si el modelo está caído, puede seguir por características con la marca y el EAN.
  • La foto delata un producto que ya existe con otro EAN. El candidato visual pasa la banda alta y entra a la decisión por negocio: multioferta, stock out o bloqueo, con explicación. El intento queda en la evaluación.
  • La marca leída de la página no está en el catálogo de marcas. No se da por buena: la evaluación queda en revisión de Gobierno de Datos, porque sin código de marca no se puede revisar la lista negra.

5. APIs

Las que construye esta épica (1)

POST /api/v2/ai/image-matches · Extraer de la URL o la imagen y buscar parecidos
CampoValor
APIAPI-15-006 · MS-15 IA y enriquecimiento
Para quéPara la evaluación de MS-06: lee la página pública del producto del seller (o mira la imagen de consulta), extrae EAN, marca, modelo, atributos e imágenes, y busca en el catálogo productos visualmente parecidos. Guarda lo extraído para que el prellenado y la sugerencia de plantilla lo reusen sin volver a pagar el modelo. La imagen de consulta no se carga al producto ni se le exige ficha técnica.
En esta épicaExtraer de la URL o de la imagen y buscar parecidos para la evaluación
Quién la llamaMS-06 Evaluación
PermisoSólo MS-06 (cuenta de servicio)
CabecerasAuthorization, X-Request-Id, Idempotency-Key
Escribe enai_jobs

Request

{
  "evaluationId": "evl-0000733",
  "business": "MKP",
  "source": {
    "type": "URL",
    "pdpUrl": "<URL pública del PDP del seller>",
    "imageAssetId": null
  },
  "want": [
    "EXTRACTION",
    "VISUAL_CANDIDATES"
  ]
}

Response · 200

{
  "success": true,
  "data": {
    "jobId": "job-0003311",
    "status": "DONE",
    "partial": false,
    "extraction": {
      "from": "PDP",
      "ean": "7501234567893",
      "brandText": "Marca Uno",
      "brandCode": "MARCA01",
      "model": "PF-100",
      "title": "Perfume floral para mujer 100 ml",
      "attributes": [
        {
          "code": "CONTENIDO_ML",
          "value": 100,
          "unit": "ML",
          "confidence": 0.95
        },
        {
          "code": "GENERO",
          "value": "MUJER",
          "confidence": 0.9
        }
      ],
      "imagesFound": 4
    },
    "visualCandidates": [
      {
        "productId": "PRD-0001190",
        "business": "MER",
        "sku": "1000001190",
        "similarity": 0.93
      }
    ]
  }
}

Errores

HTTPCódigoCuándo
422VALIDATION_ERRORNo trae imagen ni URL, o la URL no es pública
422BUSINESS_ERRORLa página no se pudo leer o no trae datos de producto
503DEPENDENCY_UNAVAILABLEEl modelo no respondió: MS-06 evalúa con lo que dio el seller y deja pendiente la revisión visual

Las que usa y construye otra épica (10)

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-06-001POST /api/v2/evaluationsEvaluar la propuesta con lo extraído y los candidatos visualesFT-REF-02 · Blacklist de Marketplace por marca, negocio y grupo de…
API-06-005POST /api/v2/matchesVer productos parecidos a una imagen sin guardar nadaFT-REF-03 · Servicio de matching
API-06-004GET /api/v2/evaluations/{evaluationId}Mostrar a Compras la comparación del posible duplicadoFT-FLU-03 · Decisión por negocio ante coincidencia
API-15-003POST /api/v2/ai/prefillPrellenar con la referencia elegida o con lo extraídoFT-IA-01 · Prellenado con IA y validación obligatoria del usuario
API-02-005POST /api/v2/products/plansPreparar la propuesta en Borrador con la URL o la imagenFT-PRD-01 · Modelo canónico de producto
API-02-057POST /api/v2/product-plans/{planId}/applyConfirmar el alta; MS-02 pide la evaluaciónFT-FLU-01 · Motor de estados configurable con dos carreteras y reglas…
API-01-007GET /api/v2/lovs/{id}/valuesTraducir la marca leída al código del catálogo de marcasFT-PLT-03 · Listas de valores y modelo canónico con equivalencias por…
API-11-004POST /api/v2/assets/uploadsSubir la imagen de consulta con propósito MATCHINGFT-ACT-02 · Registro, congelado y publicación de URLs de activos
API-11-005POST /api/v2/assets/{assetId}/completeCerrar la carga de la imagen de consulta sin ficha técnicaFT-ACT-02 · Registro, congelado y publicación de URLs de activos
API-11-008GET /api/v2/assets/{assetId}Leer la imagen de consulta para compararlaFT-ACT-02 · Registro, congelado y publicación de URLs de activos

6. Eventos

Esta épica no publica ni consume eventos.

7. Datos

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

ColecciónDueñoQué guardaEsta épica
ai_jobsMS-15Cada trabajo de IA con su entrada, su resultado y su confianza.escribe
ai_configMS-15Qué modelo atiende cada tarea y con qué umbral.lee
assetsMS-11Cada archivo una vez: a qué producto, variante y posición pertenece, su validación técnica, URL de trabajo y URL congelada.lee
lov_valuesMS-01Cada valor de lista: código, etiqueta, orden y equivalencias por sistema.lee
validation_resultsMS-06El resultado de cada evaluación: lista negra, coincidencias con su confianza y score.lee

8. Historias que cubre

HistoriaPrioridadCómo la cubre
FT-REF-04·H1 · La foto delata la evasiónP1pasos 5, 9, 11, 12; flujo «Camino imagen»; API-15-006
FT-REF-04·H2 · Mi URL bastaP1pasos 1, 4, 5, 6, 7, 8, 10, 12; API-15-006, API-01-007
FT-REF-04·H3 · Imagen para consultar no es imagen para cargarP2flujo «Camino imagen»; API-11-004, API-11-005
FT-REF-04·H4 · Duplicados en MercaderíasP3flujo «Posible duplicado por imagen en Mercaderías»
FT-REF-04·H5 · Catalogar a partir de una imagenP2flujo «Ver referencias para precargar»; API-06-005, API-15-003

9. Decisiones de esta épica

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

  • D-REF-04-1. MS-15 es el único que lee páginas de sellers y habla con los modelos. MS-06 le pide la extracción y los parecidos (API-15-006) y decide con su tabla; ni MS-02 ni la pantalla llaman a la IA para identificar. Por qué: Un solo motor de IA y una sola decisión: si cada quien llamara a los modelos habría reglas y costos repartidos. Se apoya en ADR-12, DUD-35, RN-MAT-10.
  • D-REF-04-2. La imagen de consulta se sube a Activos con propósito MATCHING: no se le exige ficha técnica ni se liga al producto, y si nadie la usa se borra a los 30 días. Las fotos encontradas en la página del seller no se guardan: se ofrecen como sugerencia y, si el seller las quiere, se registran por URL en Activos con su validación técnica (FT-ACT-03). Por qué: Imagen para consultar no es imagen para cargar; cada archivo vive una sola vez en MS-11. Se apoya en RF-IMG-05, PEN-53.
  • D-REF-04-3. Lo extraído se guarda una vez en ai_jobs y lo reusan el prellenado (FT-IA-01) y la sugerencia de plantilla (FT-IA-02) con su jobId: un solo pago del modelo por propuesta. Por qué: Leer la página tres veces triplicaría el costo y podría dar respuestas distintas. Se apoya en RF-ENR-05, RF-MAT-05.
  • D-REF-04-4. Con URL, la lista negra se evalúa con la marca leída de la página, traducida al código del catálogo de marcas; si no se puede traducir, la evaluación queda en revisión. Una publicación sin EAN se busca con marca, modelo e imagen, y nunca da coincidencia directa: sólo por confianza. Por qué: El camino URL no puede saltarse la lista negra y las publicaciones viejas suelen no traer EAN. Se apoya en DEC-29, PEN-21, RN-MAT-08.
  • D-REF-04-5. La identificación por imagen o URL tiene 15 segundos; si la IA no termina, la evaluación queda RUNNING y avisa con EVALUATION_DONE. Si el modelo no está disponible, el seller sigue por características. Por qué: Lo que tarda es asíncrono con recibo, y una caída de la IA no puede detener el alta. Se apoya en DUD-35, ADR-12.
  • D-REF-04-6. En Mercaderías la imagen sólo avisa: si la propuesta trae foto, al enviarla se compara y Compras ve el posible duplicado en su visto bueno; no bloquea. Por qué: Mercaderías pidió la detección a futuro y no definió si bloquea; avisar no frena al proveedor y deja decidir a Compras. Se apoya en PEN-25, RF-MAT-04.

Qué falta decidir

IDQué falta
DUD-35Con el equipo de IA: si se retoma el modelo de comparación congelado, su umbral y el contrato de extracción de páginas.
PD-01Si la búsqueda por imagen y URL entra en el primer corte o es mejora posterior (la IA es prioridad 2 del BRD).

También siguen abiertos: PEN-46, Confirmar si la IA puede validar existencia y buscar fuera con certeza; PEN-53, Confirmar si, sin coincidencia, se usan las imágenes de la página como imágenes del producto.

Fuentes

  1. [D] trazabilidad/features/FT-REF-04-matching-por-imagen-y-url.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.