Actualizado el 18-oct-2026. Primera versión de la arquitectura de esta épica.
Qué responde. Cómo funciona por dentro FT-ACT-03: 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-ACT-03.json, generada con generar.py; la ficha de la épica es trazabilidad/features/FT-ACT-03-imagenes-seller-por-url.md.
En 30 segundos
Muchos sellers ya tienen sus fotos en su propio sitio web. Con esta épica pegan la URL de cada imagen en la plantilla, por color y posición, y Activos digitales la descarga una sola vez, la revisa, le corrige el tamaño, la resolución y el centrado y la guarda junto a la original. La tienda nunca usa la URL del seller, y una imagen que sólo sirve para buscar coincidencias no se liga al producto.
- Módulo dueño: MS-11 Activos digitales. También participan: MS-02 Producto, MS-06 Evaluación, MS-13 Identidad y acceso, MS-14 Avisos y ayuda.
- Etapa 6 · Imágenes. Recibe «PE-3 · Plantilla asignada» y entrega «PE-7 · Imágenes listas».
- APIs: construye 1 y usa 7 que construyen otras épicas.
- Eventos: publica 4 y consume 3.
1. Dónde encaja
Recibe
| De | Qué |
|---|---|
| PE-3 · Plantilla asignada | La propuesta de Marketplace con plantilla y negocio: la vista efectiva dice qué posiciones de imagen pide y cuántas son obligatorias. |
| FT-ACT-01 · Tipos de activo digital y reglas de imágenes por… | La ficha de cada tipo, las posiciones y los motivos de rechazo con los que se valida y se corrige la imagen. |
| FT-ACT-02 · Registro, congelado y publicación de URLs de activos | El registro de activos, el congelado al asignar el SKU y los recibos de cada comando. |
Entrega
| A | Qué |
|---|---|
| PE-7 · Imágenes listas | En Marketplace, las imágenes del seller corregidas y congeladas al asignarse el SKU, ligadas a su color y posición, sin tarea Carga de imagen pendiente. |
| FT-REF-04 · Matching por imagen y por URL del seller | La imagen de consulta (purpose MATCHING), separada de la de carga, para buscar coincidencias por imagen o por la URL del seller. |
| FT-PRD-07 · Captura guiada por pasos con los mínimos primero | La revisión que pinta en verde el bloque de imágenes cuando el seller completa el mínimo de su negocio, desde que elige 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
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 | Seller | Entrada Única · Vendor Center | Elige la plantilla y ve el bloque de imágenes | — |
| 2 | Seller | Entrada Única · Vendor Center | Pega la URL de cada imagen por color | — |
| 3 | Entrada Única · Vendor Center | MS-11 Activos digitales (por el BFF) | Registra cada imagen por su URL | API-11-006 |
| 4 | MS-11 Activos digitales | MS-13 Identidad y acceso | Revisa que el dominio sea del seller | API-13-010 |
| 5 | MS-11 Activos digitales | Sistemas de proveedores y sellers | Descarga la imagen una sola vez | — |
| 6 | MS-11 Activos digitales | Archivos e imágenes (almacén y CDN) | Corrige DPI, tamaño y centrado y guarda ambas | — |
| 7 | MS-11 Activos digitales | Eventos | Avisa la imagen validada | catalog.asset.changed/ASSET_VALIDATED |
| 8 | Entrada Única · Vendor Center | MS-11 Activos digitales (por el BFF) | Consulta el recibo con correcciones y motivos | API-11-013 |
| 9 | Entrada Única · Vendor Center | MS-11 Activos digitales (por el BFF) | Pregunta si ya cumple el mínimo de su negocio | API-11-014 |
| 10 | Seller | Entrada Única · Vendor Center | Ve el bloque en verde y sigue capturando | — |
| 11 | Eventos | MS-11 Activos digitales | Entrega el SKU asignado al producto | catalog.product.changed/SKU_ASSIGNED |
| 12 | MS-11 Activos digitales | Archivos e imágenes (almacén y CDN) | Renombra con el SKU y congela | — |
| 13 | MS-11 Activos digitales | Eventos | Avisa las imágenes congeladas | catalog.asset.changed/ASSET_FROZEN |
| 14 | Eventos | MS-02 Producto | Entrega las congeladas; sin tarea de foto, sigue a calidad | catalog.asset.changed/ASSET_FROZEN |
3.1 Imagen sólo para buscar coincidencias
3.2 URL por la API de terceros o en carga masiva
4. Si algo sale mal
- La URL no se puede leer sin credenciales. MS-11 la rechaza con el motivo «URL no pública»; el seller lo ve en el recibo y en su campana, corrige la URL y la vuelve a registrar.
- La imagen no se puede corregir. Si está corrupta o su proporción no se arregla con el centrado y los márgenes de la ficha, se rechaza con el motivo de hoy («Error en proporción», «DPI insuficiente», «Imagen corrupta o formato no correcto»). La imagen de consulta sí sirve para buscar coincidencias.
- La URL es de un dominio que el seller no registró, por ejemplo de la competencia. El registro responde 422 BUSINESS_ERROR; en la carga masiva o por API se rechaza ese renglón con su motivo y los demás siguen.
- El servidor del seller tarda o falla. MS-11 reintenta tres veces durante diez minutos; después rechaza con «No se pudo descargar». Nada se publica desde el servidor del seller.
- El seller cambia la foto en su servidor después de registrarla. No cambia nada en la tienda: Liverpool sirve su propia copia. Para cambiarla, el seller registra otra vez la URL y se crea un activo nuevo.
5. APIs
Las que construye esta épica (1)
POST /api/v2/assets/from-url · Registrar una imagen por URL
| Campo | Valor |
|---|---|
| API | API-11-006 · MS-11 Activos digitales |
| Para qué | El seller (o el proveedor) da la URL pública de su imagen. MS-11 la descarga una sola vez, la valida, corrige lo técnico (72 DPI, tamaño y centrado) y guarda la original junto a la corregida; nunca se publica la URL del seller. Con purpose MATCHING la imagen sólo sirve para buscar coincidencias: no se exige la ficha y no se liga al producto. Con kind LINK registra un video de YouTube o InStore sin descargarlo. Responde con un recibo. |
| En esta épica | Registrar una imagen por URL: descarga, valida, corrige y guarda la original con la corregida |
| Quién la llama | BFF del portal, Gateway de terceros /partner/v1, MS-02 Producto |
| Permiso | El seller o proveedor dueño del producto; MS-02 para las URL que llegan en una carga masiva |
| Cabeceras | Authorization, X-Request-Id, Idempotency-Key |
| Escribe en | assets, asset_outbox |
| Publica | catalog.asset.changed/ASSET_UPLOADED, catalog.asset.changed/ASSET_VALIDATED, catalog.asset.changed/ASSET_REJECTED, catalog.asset.changed/ASSET_FROZEN |
| También la usan | FT-ACT-01, FT-PRD-10 |
Request
{
"productId": "PRD-0009120",
"scope": "COLOR",
"colorCode": "ROJO",
"assetType": "PRINCIPAL",
"position": 1,
"sourceUrl": "imagenes.seller0001.ejemplo/playeras/rojo-frente.jpg",
"kind": "FILE",
"purpose": "PRODUCT",
"origin": "SELLER_URL"
}
Response · 202
{
"success": true,
"data": {
"requestId": "req-6b0d13",
"assetId": "ast-9e40a2",
"status": "ACCEPTED",
"receiptUrl": "/api/v2/asset-receipts/req-6b0d13"
}
}
Errores
| HTTP | Código | Cuándo |
|---|---|---|
| 422 | VALIDATION_ERROR | La URL no está bien formada o no es de imagen o video |
| 422 | BUSINESS_ERROR | El dominio de la URL no es uno de los que el seller registró como propios |
| 423 | LOCKED | El producto está en el estudio y quien llama no es del estudio |
| 403 | AUTHORIZATION_ERROR | Quien llama no es dueño del producto |
Las que usa y construye otra épica (7)
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-11-013 | GET /api/v2/asset-receipts/{requestId} | El recibo con las correcciones aplicadas o el motivo del rechazo | FT-ACT-02 · Registro, congelado y publicación de URLs de activos |
| API-11-014 | GET /api/v2/assets/compliance?productId=&stage= | Saber si ya se cumple el mínimo de Marketplace para pintar el bloque en verde | FT-ACT-01 · Tipos de activo digital y reglas de imágenes por… |
| API-11-011 | POST /api/v2/asset-jobs | Las URL de una carga masiva de productos, en lote | FT-ACT-02 · Registro, congelado y publicación de URLs de activos |
| API-11-012 | GET /api/v2/asset-jobs/{jobId} | El resultado de cada URL de la carga masiva | FT-ACT-02 · Registro, congelado y publicación de URLs de activos |
| API-13-010 | GET /api/v2/partners/{partnerId} | Los dominios de imágenes que el seller registró como propios | FT-USR-03 · Control de acceso por API para terceros |
| API-06-005 | POST /api/v2/matches | Buscar coincidencias con la imagen de consulta (lo construye FT-REF-03 y lo usa FT-REF-04) | FT-REF-03 · Servicio de matching |
| API-GW-001 | POST /partner/v1/proposals | Un tercero manda su producto con las URL de sus imágenes | FT-PRD-10 · Catalogación por API del proveedor o seller |
6. Eventos
Publica
| Evento | Cuándo | Quién lo consume |
|---|---|---|
catalog.asset.changed/ASSET_UPLOADED | Se descargó la imagen del seller | FT-ACT-05 |
catalog.asset.changed/ASSET_VALIDATED | La imagen cumple la ficha, con o sin corrección | FT-FLU-07, FT-PRD-07, FT-PRD-08, FT-PRD-10 |
catalog.asset.changed/ASSET_REJECTED | La URL no es pública, es de otro dominio o la imagen no se puede corregir | FT-ACT-02, FT-ACT-05, FT-RAC-04, FT-RAC-06 |
catalog.asset.changed/ASSET_FROZEN | El producto recibió su SKU y la imagen quedó con su nombre final | FT-ACT-02, FT-ACT-04, FT-ACT-06, FT-ARQ-02, FT-IA-04 |
Consume
| Evento | Para qué | Quién lo publica |
|---|---|---|
catalog.product.changed/SKU_ASSIGNED | MS-11 renombra y congela las imágenes del seller | FT-INT-03, FT-PRD-02 |
catalog.asset.changed/ASSET_FROZEN | MS-02 copia las URL congeladas a cada variante | esta misma épica |
catalog.asset.changed/ASSET_REJECTED | MS-14 avisa al seller qué imagen se rechazó y por qué | 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 |
|---|---|---|---|
assets | MS-11 | Cada archivo una vez: a qué producto, variante y posición pertenece, su validación técnica, URL de trabajo y URL congelada. | escribe |
asset_jobs | MS-11 | Cargas masivas de imágenes, por archivo comprimido, carpeta o lista de URL. | escribe |
asset_outbox | MS-11 | Los cambios de activos que esperan salir como evento. | escribe |
asset_types | MS-11 | Los tipos de activo (principal, detalle, isométrica, video, certificado…) con su ficha técnica: medidas, peso, formato, máximo y si se publica. | lee |
template_views | MS-01 | La vista efectiva ya resuelta por plantilla y negocio: qué atributos pide y cuáles son obligatorios. | lee |
partners | MS-13 | El registro de terceros: proveedores y sellers que llaman por API, con su tipo, negocios, tiendas, alcances, límites y clientes (catalogación por API §3.1). | lee |
8. Historias que cubre
| Historia | Prioridad | Cómo la cubre |
|---|---|---|
| FT-ACT-03·H1 · URL en la plantilla | P1 | pasos 2, 3, 4, 5, 6, 7, 8; API-11-006, API-11-013 |
| FT-ACT-03·H2 · Corrección técnica | P1 | pasos 6; API-11-006 |
| FT-ACT-03·H3 · Validación y uso | P1 | flujo «Imagen sólo para buscar coincidencias»; API-11-006, API-06-005 |
| FT-ACT-03·H4 · Imágenes al inicio | P2 | pasos 1, 9, 10; API-11-014 |
| FT-ACT-03·H5 · Masiva con URLs propias | P3 | flujo «URL por la API de terceros o en carga masiva»; API-11-011, API-13-010 |
9. Decisiones de esta épica
Las tomó el TL como arquitecto; quedan como [Propuesta] hasta que el equipo de la épica las revise.
- D-ACT-03-1. El seller da URL públicas y MS-11 descarga la imagen una sola vez y la sirve desde la red de entrega de Liverpool; nunca se publica ni se enlaza la URL del seller. Por qué: Decide la mitad de PD-21 que toca al seller: con URL externas la tienda dependería de servidores ajenos y las fotos cambiarían sin control. Se apoya en PD-21, RSG-33, RF-IMG-01.
- D-ACT-03-2. La corrección técnica (72 DPI, tamaño a la ficha y centrado con los márgenes de 25 px) es procesamiento fijo dentro de MS-11, no IA. Se guarda la original junto a la corregida y el recibo dice qué se corrigió. Por qué: Son reglas medibles que no necesitan un modelo; deja la IA para lo que sí la necesita y responde la parte de DUD-35 que toca a esta épica. Se apoya en DUD-35, RF-IMG-04.
- D-ACT-03-3. Imagen de consulta e imagen de carga son dos propósitos del mismo registro: con MATCHING la copia es temporal (24 horas), no exige la ficha y nunca se liga al producto; con PRODUCT se valida y, si no cumple ni se puede corregir, se rechaza. Por qué: Lo pide RF-IMG-05 y evita que una foto de búsqueda termine publicada. Se apoya en RF-IMG-05, PEN-53.
- D-ACT-03-4. «URL propias» quiere decir dominios que el seller registró en su ficha de tercero en MS-13. En la carga masiva y por API, un renglón con otro dominio se rechaza con su motivo; los demás siguen. Por qué: Es la forma verificable de RN-IMG-11; una lista de competidores nunca estaría completa. Las URL se capturan dentro del archivo de plantilla, como respondió S20 para PEN-57. Se apoya en PEN-57, RN-IMG-11.
- D-ACT-03-5. La captura por URL se construye para el alta de sellers del TO-BE (R4) y sirve igual a proveedores de Mercaderías, como se acordó en S16; mientras tanto el seller sigue cargando archivos por el portal contra el mismo MS-11. Por qué: PD-02 propone el alta TO-BE de sellers en R4; el registro por URL no cambia el resto del flujo. Se apoya en PD-02, S16-RF-01.
Qué falta decidir
| ID | Qué falta |
|---|---|
| PD-21 | Gobierno de Producto, Publicación, Arquitectura y Seguridad ratifican que la imagen del seller se copia y se sirve desde Liverpool. |
| PD-02 | Confirmar que el alta TO-BE de sellers va en R4. |
| DUD-35 | Confirmar que la corrección técnica no necesita IA en la primera salida. |
También siguen abiertos: PEN-57, Definir cuándo corre la revisión de calidad de la imagen en la carga masiva; PEN-53, Decidir si se usan imágenes del scraping cuando no hay coincidencia.
Fuentes
- [D]
trazabilidad/features/FT-ACT-03-imagenes-seller-por-url.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.