Actualizado el 18-oct-2026. Primera versión de la arquitectura de esta épica.
Qué responde. Cómo funciona por dentro FT-ACT-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-ACT-01.json, generada con generar.py; la ficha de la épica es trazabilidad/features/FT-ACT-01-tipos-activo-reglas-imagenes.md.
En 30 segundos
Hoy cada sistema revisa las fotos a su manera: Entrada Única con su configuración, Foro con la suya y P360 con atributos de la plantilla. Esta épica deja un solo catálogo de tipos de activo (principal, detalle, video, certificado, boceto…) con su ficha técnica, su nombre y su posición, y una sola revisión de si un producto ya tiene las imágenes que pide su plantilla en su negocio. La usan el portal, el estudio y el motor de estados.
- Módulo dueño: MS-11 Activos digitales. También participan: MS-01 Catálogo, MS-02 Producto.
- Etapa 6 · Imágenes. Recibe «PE-C · Catálogo vigente», «PE-T · Usuario con permisos y bitácora» y entrega a otras épicas.
- APIs: construye 4 y usa 10 que construyen otras épicas.
- Eventos: publica 2 y consume 2.
1. Dónde encaja
Recibe
| De | Qué |
|---|---|
| PE-C · Catálogo vigente | Las plantillas publicadas por Catálogo (MS-01) con su vista efectiva por negocio, de donde salen los mínimos y máximos de imágenes y el atributo que condiciona cada documento. |
| FT-PLT-05 · Taxonomía de plantillas por familia, metadatos de… | Los metadatos de cada plantilla con el mínimo y el máximo por tipo de imagen (assetRequirements), que sustituyen a NumberOf*Images, a Min/Max y al texto «Mínimo N - Máximo M». |
| PE-T · Usuario con permisos y bitácora | Gobierno de Producto identificado, con permiso para cambiar tipos de activo, y cada cambio en la bitácora. |
Entrega
| A | Qué |
|---|---|
| FT-ACT-02 · Registro, congelado y publicación de URLs de activos | El catálogo de tipos con su ficha técnica, nombre, sufijo, carpeta y si se publica, con el que se valida, se nombra y se congela cada archivo. |
| FT-ACT-03 · Imágenes del seller por URL con validación y corrección… | La ficha de cada tipo, las posiciones y los motivos de rechazo con los que se valida y se corrige la imagen del seller. |
| FT-ACT-04 · Variantes a partir de imágenes y herencia de imágenes por… | Los tipos que se pueden heredar por color y el video como activo de la familia. |
| FT-RAC-01 · Motor de validación en línea y candados de datos… | La revisión de imágenes por etapa (API-11-014) que usa el candado de imagen principal antes de enviar y antes de pedir el SKU. |
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 | Administración del catálogo | Entrada Única · Vendor Center | Abre el catálogo de tipos de activo | — |
| 2 | Entrada Única · Vendor Center | MS-11 Activos digitales (por el BFF) | Pide los tipos con su ficha técnica | API-11-001 |
| 3 | Administración del catálogo | Entrada Única · Vendor Center | Agrega un motivo de rechazo al tipo detalle | — |
| 4 | Entrada Única · Vendor Center | MS-11 Activos digitales (por el BFF) | Pide el plan del cambio y su impacto | API-11-002 |
| 5 | Entrada Única · Vendor Center | MS-11 Activos digitales (por el BFF) | Confirma el plan del tipo | API-11-003 |
| 6 | MS-11 Activos digitales | Base pim | Guarda la versión nueva del catálogo de tipos | — |
| 7 | Administración del catálogo | Entrada Única · Vendor Center | Fija mínimo y máximo por tipo en una plantilla | — |
| 8 | Entrada Única · Vendor Center | MS-01 Catálogo (por el BFF) | Pide el plan de metadatos de la plantilla | API-01-027 |
| 9 | Entrada Única · Vendor Center | MS-01 Catálogo (por el BFF) | Confirma los mínimos de la plantilla | API-01-004 |
| 10 | MS-01 Catálogo | Eventos | Avisa que cambió la vista efectiva | catalog.governance.changed/TEMPLATE_VIEW_CHANGED |
| 11 | Eventos | MS-11 Activos digitales | Entrega el cambio para refrescar sus reglas | catalog.governance.changed/TEMPLATE_VIEW_CHANGED |
| 12 | Entrada Única · Vendor Center | MS-11 Activos digitales (por el BFF) | Pregunta si un producto cumple sus imágenes | API-11-014 |
| 13 | MS-11 Activos digitales | MS-01 Catálogo | Lee lo que pide la plantilla en ese negocio | API-01-028 |
| 14 | MS-11 Activos digitales | Entrada Única · Vendor Center | Responde por variante qué falta: un detalle | — |
3.1 Un archivo que no cumple la ficha o rebasa el máximo
3.2 Boceto para un placeholder
3.3 La foto llega con su nombre y sufijo
4. Si algo sale mal
- Una plantilla no trae mínimos de imágenes. La revisión usa el mínimo de la ficha del tipo, con la principal siempre obligatoria, y lo dice en requirement.source. Gobierno de Producto ve la plantilla marcada para completar sus mínimos; ningún producto queda sin regla.
- Se quiere bajar el máximo de un tipo que ya usan productos publicados. El plan responde 422 BUSINESS_ERROR y dice cuántos activos quedarían fuera. Nada se borra solo: Gobierno de Producto decide antes de confirmar.
- La vista efectiva de MS-01 no responde. MS-11 usa su copia en caché mientras no venza (diez minutos, y se invalida con TEMPLATE_VIEW_CHANGED). Sin copia vigente responde 503 DEPENDENCY_UNAVAILABLE; el portal deja guardar el borrador, pero no enviar.
- Un producto de una marca exceptuada no trae principal. La revisión aplica la excepción registrada en MS-01 y la nombra en exceptionsApplied; el candado de envío no lo frena y la bitácora conserva qué excepción se usó.
5. APIs
Las que construye esta épica (4)
GET /api/v2/asset-types · Catálogo de tipos de activo
| Campo | Valor |
|---|---|
| API | API-11-001 · MS-11 Activos digitales |
| Para qué | Devuelve los tipos de activo (principal, detalle, isométrico, smos, ambientada, video, manual, certificado sostenible, carta responsiva, refund policy, contenido sindicado, boceto y guía de tallas) con su ficha técnica, quién los carga, en qué posiciones van, cómo se nombran, en qué carpeta viven, si se publican y sus motivos de rechazo. El portal, el estudio y los módulos validan contra esta misma ficha. |
| En esta épica | El catálogo de tipos con su ficha técnica, nombre, posiciones, carpeta, si se publica y motivos de rechazo |
| Quién la llama | BFF del portal, MS-02 Producto, MS-06 Evaluación |
| Permiso | Cualquier usuario autenticado (CAT-L); los módulos con su cuenta de servicio |
| Cabeceras | Authorization, X-Request-Id |
| Parámetros | status = ACTIVE, publishable = true, page = 1, size = 50 |
| También la usan | FT-PLT-07 |
Request
null
Response · 200
{
"success": true,
"data": {
"catalogVersion": 12,
"items": [
{
"code": "PRINCIPAL",
"name": "Imagen principal",
"status": "ACTIVE",
"uploadedBy": [
"PROVEEDOR",
"SELLER",
"ESTUDIO"
],
"publishable": true,
"scopes": [
"VARIANT",
"COLOR"
],
"maxCount": 1,
"positions": {
"from": 1,
"to": 1
},
"sheet": {
"widthPx": 940,
"heightPx": 1215,
"dpi": 72,
"formats": [
"jpg"
],
"maxBytes": 1048576
},
"naming": {
"pattern": "{sku}",
"suffixFrom": null,
"suffixTo": null
},
"folder": "i/",
"rejectionReasons": [
{
"code": "LOGO_VISIBLE",
"type": "ESTETICA",
"label": "Se ve un logotipo"
},
{
"code": "FONDO_NO_BLANCO",
"type": "TECNICA",
"label": "El fondo no es blanco"
}
]
},
{
"code": "DETALLE",
"name": "Imagen de detalle",
"status": "ACTIVE",
"uploadedBy": [
"PROVEEDOR",
"SELLER",
"ESTUDIO"
],
"publishable": true,
"scopes": [
"VARIANT",
"COLOR"
],
"maxCount": 19,
"positions": {
"from": 2,
"to": 20
},
"sheet": {
"widthPx": 940,
"heightPx": 1215,
"dpi": 72,
"formats": [
"jpg"
],
"maxBytes": 1048576
},
"naming": {
"pattern": "{sku}_{n}p",
"suffixFrom": 1,
"suffixTo": 19
},
"folder": "i/"
},
{
"code": "VIDEO",
"name": "Video del producto",
"status": "ACTIVE",
"uploadedBy": [
"PROVEEDOR",
"ESTUDIO"
],
"publishable": true,
"scopes": [
"FAMILY"
],
"maxCount": 1,
"kinds": [
"FILE",
"LINK"
],
"sheet": {
"formats": [
"mp4"
],
"maxBytes": 8388608
},
"naming": {
"pattern": "{genericSku}"
},
"folder": "v/"
},
{
"code": "CERTIFICADO_SOSTENIBLE",
"name": "Certificado sostenible",
"status": "ACTIVE",
"uploadedBy": [
"PROVEEDOR"
],
"publishable": false,
"scopes": [
"FAMILY"
],
"maxCount": 1,
"sheet": {
"formats": [
"pdf"
],
"maxBytes": 10485760
},
"condition": {
"attribute": "AE485",
"requiredUnlessValueIn": [
"0006"
]
},
"naming": null,
"folder": "privado/d/"
},
{
"code": "BOCETO",
"name": "Boceto de placeholder",
"status": "ACTIVE",
"uploadedBy": [
"PROVEEDOR"
],
"publishable": false,
"onlyFor": "PLACEHOLDER",
"scopes": [
"FAMILY",
"COLOR"
],
"maxCount": 5,
"sheet": {
"formats": [
"jpg",
"png"
],
"maxBytes": 5242880
},
"naming": null,
"folder": "privado/boceto/"
}
],
"page": 1,
"size": 50,
"total": 14
}
}
Errores
| HTTP | Código | Cuándo |
|---|---|---|
| 400 | VALIDATION_ERROR | Un filtro trae un valor que no existe |
POST /api/v2/asset-types/plans · Cambiar un tipo de activo (vista previa)
| Campo | Valor |
|---|---|
| API | API-11-002 · MS-11 Activos digitales |
| Para qué | Prepara el alta o el cambio de un tipo de activo (ficha técnica, máximo, posiciones, nombre, si se publica, motivos de rechazo) y dice a cuántas plantillas y activos afecta, sin cambiar nada todavía. |
| En esta épica | Vista previa del alta o cambio de un tipo, con su impacto |
| Quién la llama | BFF del portal |
| Permiso | Gobierno de Producto (CAT-E) |
| Cabeceras | Authorization, X-Request-Id, Idempotency-Key, If-Match |
Request
{
"code": "DETALLE",
"version": 12,
"changes": {
"addRejectionReasons": [
{
"code": "SOMBRA_FUERTE",
"type": "TECNICA",
"label": "La sombra tapa el producto"
}
]
},
"comment": "Motivo que pidió QA para rechazar fotos de detalle"
}
Response · 200
{
"success": true,
"data": {
"planId": "pln-a51c07",
"expiresAt": "2026-10-18T16:40:00Z",
"impact": {
"templatesUsingType": 4082,
"assetsNoLongerCompliant": 0,
"openRejectionsAffected": 0
},
"warnings": [],
"applyUrl": "/api/v2/asset-plans/pln-a51c07/apply"
}
}
Errores
| HTTP | Código | Cuándo |
|---|---|---|
| 409 | VERSION_CONFLICT | El catálogo de tipos cambió desde que se leyó |
| 422 | VALIDATION_ERROR | Las posiciones de un tipo se enciman con las de otro o el sufijo se repite |
| 422 | BUSINESS_ERROR | Se intenta bajar un máximo por debajo de lo que ya tienen productos publicados sin decir qué hacer con ellos |
POST /api/v2/asset-plans/{planId}/apply · Confirmar un plan de Activos
| Campo | Valor |
|---|---|
| API | API-11-003 · MS-11 Activos digitales |
| Para qué | Confirma cualquier plan de MS-11: un cambio de tipo de activo o un cambio de lugar de los activos de un producto (orden, herencia por color, quitar, no publicar). Escribe, publica los eventos y deja un recibo. |
| En esta épica | Confirmar el cambio de un tipo |
| Quién la llama | BFF del portal |
| Permiso | El mismo que pidió el plan |
| Cabeceras | Authorization, X-Request-Id, Idempotency-Key |
| Parámetros | planId = pln-c90e12 |
| Escribe en | asset_types, assets, asset_outbox |
| Publica | catalog.asset.changed/ASSET_FROZEN, catalog.asset.changed/ASSET_DELETED |
| También la usan | FT-ACT-02, FT-ACT-04, FT-ACT-06 |
Request
{}
Response · 202
{
"success": true,
"data": {
"requestId": "req-3d8f21",
"status": "ACCEPTED",
"receiptUrl": "/api/v2/asset-receipts/req-3d8f21"
}
}
Errores
| HTTP | Código | Cuándo |
|---|---|---|
| 409 | PLAN_EXPIRED | Pasaron más de 10 minutos desde la vista previa |
| 409 | VERSION_CONFLICT | Alguien cambió los activos del producto o el tipo después de la vista previa |
| 409 | IDEMPOTENCY_MISMATCH | Se repite la llave de idempotencia con otro plan |
| 423 | LOCKED | El producto entró al estudio después de la vista previa y quien confirma no es del estudio |
GET /api/v2/assets/compliance?productId=&stage= · ¿El producto cumple sus imágenes?
| Campo | Valor |
|---|---|
| API | API-11-014 · MS-11 Activos digitales |
| Para qué | Evalúa las imágenes y documentos de un producto contra lo que pide su plantilla en su negocio, en la etapa que se pregunte: creación (Mercaderías y Suburbia, el mínimo en una variante por color; Marketplace, una imagen) o aprobación (cada variante, con imágenes propias o heredadas). Dice por variante si procede (tiene principal), qué falta, qué documentos condicionados aplican y qué excepciones se usaron. Lo usan el motor para cerrar tareas, la captura para pintar el bloque en verde y la calificación. |
| En esta épica | La revisión de cumplimiento de imágenes por variante, etapa y negocio |
| Quién la llama | BFF del portal, MS-02 Producto, MS-06 Evaluación, MS-12 Estudio fotográfico |
| Permiso | Quien puede leer el producto (ENT-L); los módulos con su cuenta de servicio |
| Cabeceras | Authorization, X-Request-Id |
| Parámetros | productId = PRD-0004812, stage = APPROVAL |
| También la usan | FT-ACT-02, FT-ACT-03, FT-ACT-04, FT-ACT-05 |
Request
null
Response · 200
{
"success": true,
"data": {
"productId": "PRD-0004812",
"business": "MER",
"template": "EU4-0412",
"stage": "APPROVAL",
"meets": false,
"requirement": {
"source": "vista efectiva de EU4-0412 para MER, versión 7",
"byType": {
"PRINCIPAL": {
"min": 1,
"max": 1
},
"DETALLE": {
"min": 2,
"max": 5
},
"ISOMETRICO": {
"min": 1,
"max": 5
}
}
},
"exceptionsApplied": [],
"conditional": [
{
"assetType": "CERTIFICADO_SOSTENIBLE",
"required": false,
"because": "AE485 = 0006 (No aplica)"
}
],
"variants": [
{
"variantId": "VAR-0004812-01",
"sku": "1000004812",
"colorCode": "AZUL",
"procede": true,
"meets": true,
"byType": [
{
"assetType": "PRINCIPAL",
"have": 1,
"own": 1,
"inherited": 0,
"missing": 0
},
{
"assetType": "DETALLE",
"have": 2,
"own": 2,
"inherited": 0,
"missing": 0
},
{
"assetType": "ISOMETRICO",
"have": 1,
"own": 1,
"inherited": 0,
"missing": 0
}
]
},
{
"variantId": "VAR-0004812-04",
"sku": "1000004815",
"colorCode": "ROJO",
"procede": false,
"meets": false,
"byType": [
{
"assetType": "PRINCIPAL",
"have": 0,
"own": 0,
"inherited": 0,
"missing": 1
},
{
"assetType": "DETALLE",
"have": 1,
"own": 1,
"inherited": 0,
"missing": 1
},
{
"assetType": "ISOMETRICO",
"have": 1,
"own": 1,
"inherited": 0,
"missing": 0
}
]
}
],
"missing": [
{
"variantId": "VAR-0004812-04",
"assetType": "PRINCIPAL",
"count": 1
},
{
"variantId": "VAR-0004812-04",
"assetType": "DETALLE",
"count": 1
}
]
}
}
Errores
| HTTP | Código | Cuándo |
|---|---|---|
| 404 | NOT_FOUND | El producto no existe o no es visible para quien llama |
| 422 | BUSINESS_ERROR | El producto todavía no tiene plantilla asignada |
| 503 | DEPENDENCY_UNAVAILABLE | No se pudo leer la vista efectiva de la plantilla y no hay una copia vigente en caché |
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.
| API | Método y ruta | Para qué, aquí | La construye |
|---|---|---|---|
| API-11-004 | POST /api/v2/assets/uploads | La carga rechaza de entrada lo que no cumple la ficha, el máximo o la posición | FT-ACT-02 · Registro, congelado y publicación de URLs de activos |
| API-11-005 | POST /api/v2/assets/{assetId}/complete | Al terminar la carga se lee el sufijo del nombre y se valida contra la ficha | FT-ACT-02 · Registro, congelado y publicación de URLs de activos |
| API-11-006 | POST /api/v2/assets/from-url | Registrar el video como enlace (YouTube o InStore), varios por producto | FT-ACT-03 · Imágenes del seller por URL con validación y corrección… |
| API-01-027 | POST /api/v2/taxonomies/{t}/nodes/{id}/metadata/plans | Fijar en los metadatos de la plantilla el mínimo y el máximo por tipo (lo construye FT-PLT-05) | FT-PLT-05 · Taxonomía de plantillas por familia, metadatos de… |
| API-01-004 | POST /api/v2/catalog-plans/{planId}/apply | Confirmar el cambio de la plantilla | FT-PLT-01 · Fundamentos de gobierno de plantillas |
| API-01-028 | GET /api/v2/taxonomies/PRODUCT/nodes/{id}/effective | Leer lo que pide la plantilla en cada negocio y etapa | FT-PLT-06 · Configuración de atributos por plantilla y por negocio… |
| API-01-016 | GET /api/v2/rules?type= | Leer las excepciones de obligatoriedad de imágenes por marca, proveedor o negocio | FT-PLT-07 · Reglas de atributos |
| API-01-017 | POST /api/v2/rules/plans | Registrar o quitar una excepción de obligatoriedad de imágenes | FT-PLT-07 · Reglas de atributos |
| API-02-002 | GET /api/v2/products/{id} | Saber si el producto es un placeholder y leer el atributo que condiciona un documento (AE485) | FT-PRD-01 · Modelo canónico de producto |
| API-14-008 | PUT /api/v2/help/articles/{articleId} | Gobierno de Producto publica en el centro de ayuda la ficha de cada tipo para proveedores y sellers | FT-RAC-05 · Estatus del producto y motivos visibles para seller y… |
6. Eventos
Publica
| Evento | Cuándo | Quién lo consume |
|---|---|---|
catalog.asset.changed/ASSET_VALIDATED | Un archivo cumple la ficha de su tipo y queda en su posición | FT-FLU-07, FT-PRD-07, FT-PRD-08, FT-PRD-10 |
catalog.asset.changed/ASSET_REJECTED | Un archivo subido no cumple la ficha de su tipo | FT-ACT-02, FT-ACT-03, FT-ACT-05, FT-RAC-04, FT-RAC-06 |
Consume
| Evento | Para qué | Quién lo publica |
|---|---|---|
catalog.governance.changed/TEMPLATE_VIEW_CHANGED | MS-11 refresca los mínimos y máximos por plantilla y negocio | FT-IA-03, FT-MIG-02, FT-PLT-04, FT-PLT-05, FT-PLT-06, FT-PLT-09 |
catalog.governance.changed/RULE_CHANGED | MS-11 refresca las excepciones de obligatoriedad de imágenes | FT-CAT-04, FT-PLT-07, FT-REF-02 |
7. Datos
Cada colección tiene un solo dueño, el único que escribe en ella.
| Colección | Dueño | Qué guarda | Esta épica |
|---|---|---|---|
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. | escribe |
template_views | MS-01 | La vista efectiva ya resuelta por plantilla y negocio: qué atributos pide y cuáles son obligatorios. | lee |
taxonomy_nodes | MS-01 | Plantillas y nodos de grupo de artículo, con la configuración de atributos de cada plantilla. | lee |
governance_rules | MS-01 | Reglas de captura y clasificación: marcas por plantilla, grupo de artículo a plantilla, alcance del proveedor y lista negra de Marketplace. | lee |
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. | lee |
products | MS-02 | La familia del producto con sus variantes, valores, imágenes (URL), clasificaciones, estado, tareas abiertas y rechazos. | lee |
8. Historias que cubre
| Historia | Prioridad | Cómo la cubre |
|---|---|---|
| FT-ACT-01·H1 · Catálogo de tipos | P1 | pasos 1, 2, 3, 4, 5, 6; flujo «Un archivo que no cumple la ficha o rebasa el máximo»; API-11-001, API-11-002, API-11-003 |
| FT-ACT-01·H2 · Mínimos por plantilla | P1 | pasos 7, 8, 9, 10, 11, 12, 13, 14; flujo «Un archivo que no cumple la ficha o rebasa el máximo»; API-01-027, API-11-014 |
| FT-ACT-01·H3 · Obligatoriedad por negocio | P1 | pasos 12, 13, 14; API-11-014, API-01-028 |
| FT-ACT-01·H4 · Posición y renombre | P2 | flujo «Un archivo que no cumple la ficha o rebasa el máximo», «La foto llega con su nombre y sufijo»; API-11-001, API-11-004 |
| FT-ACT-01·H5 · Excepciones | P2 | API-01-016, API-01-017, API-11-014 |
| FT-ACT-01·H6 · Video y documentos | P3 | API-11-014, API-11-006, API-02-002 |
| FT-ACT-01·H7 · Los once tipos de activo | P1 | pasos 1, 2; API-11-001, API-11-002 |
| FT-ACT-01·H8 · Nombre y sufijo por tipo | P1 | flujo «La foto llega con su nombre y sufijo»; API-11-005 |
| FT-ACT-01·H9 · Imagen de boceto para placeholders | P2 | flujo «Boceto para un placeholder»; API-11-004, API-02-002 |
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-01-1. Un solo catálogo de tipos de activo en MS-11 (asset_types) con ficha técnica, quién carga, posiciones, nombre y sufijo, carpeta, si se publica y motivos de rechazo por tipo. Entrada Única deja su configuración de medios y Foro la suya: el portal, el estudio y los módulos leen API-11-001. Por qué: Hoy la misma regla vive en tres lugares (configuración de EU, texto de la plantilla y atributos de P360) y se contradice. Un dueño por dato. Se apoya en ADR-12, RF-IMG-10, DUD-29.
- D-ACT-01-2. El mínimo y el máximo por tipo son de la plantilla y su negocio: viven en los metadatos de la plantilla en MS-01 (FT-PLT-05) y se leen en la vista efectiva. MS-11 no guarda reglas por plantilla; sólo evalúa con API-11-014 contra lo que tiene cada variante. Por qué: La plantilla ya es de MS-01; copiar sus mínimos en MS-11 crearía una segunda fuente, que es justo el problema de NumberOf*Images contra Min/Max. Se apoya en FT-PLT-05, PD-05, ADR-12.
- D-ACT-01-3. Nombres y posiciones: principal = SKU sin sufijo; detalle de 1P a 19P (19 detalles y la principal suman 20 posiciones); isométrico 20 a 24; smos 25; ambientada 30 a 35; video con el SKU genérico; los documentos no se renombran. La posición 21 se rechaza. Por qué: Es lo que dictó el negocio en S16 y confirma el código; «hasta 20» son los detalles con la principal, no el rango de sufijos. Se apoya en PEN-52, PEN-159, RF-IMG-10.
- D-ACT-01-4. Dos etapas de cumplimiento: en creación, Mercaderías y Suburbia piden el mínimo en una variante por color y Marketplace una imagen; en aprobación, cada variante debe tener el mínimo con imágenes propias o heredadas de su color. La principal es obligatoria siempre. Por qué: Son los escenarios del Inventario L4 y del AS-IS de Marketplace; contar la heredada como propia evita exigir fotos repetidas (FT-ACT-04). Se apoya en RN-ALT-02, RN-ALT-04, FT-ACT-04.
- D-ACT-01-5. Las excepciones a la obligatoriedad de imágenes por marca, proveedor o negocio son una regla de captura de MS-01 (un tipo nuevo en governance_rules, administrado con API-01-017). MS-11 sólo la aplica y dice cuál usó. Por qué: Las reglas de captura ya son de Catálogo; una excepción en el código de MS-11 no se vería ni se auditaría. Se apoya en DEC-PLT-14, PD-01.
- D-ACT-01-6. Documentos y video: el certificado sostenible sólo es obligatorio si el atributo AE485 es distinto de «No aplica» (0006), con la liga atributo–activo de la plantilla; certificado y carta responsiva nunca se publican; el video vive en la familia y puede ser archivo o enlace (YouTube, InStore), con varios enlaces que la publicación manda separados por coma. Por qué: Es el comportamiento que el negocio describió en S16 y el que hoy lee la tienda en el campo Video. Se apoya en S16-RF-01, RF-IMG-10.
- D-ACT-01-7. El boceto es un tipo sólo para placeholders: no exige ficha técnica, vive en la zona privada y nunca se congela ni se publica. En una propuesta o un producto se rechaza. Por qué: Lo pide el comprador para ver un diseño que todavía no se fabrica, sin rebajar la regla de las fotos de producto. Se apoya en S36-RF-07.
- D-ACT-01-8. El catálogo arranca con los once tipos que maneja el negocio, el boceto y la guía de tallas que pide FT-PRD-07; contenido sindicado queda inactivo y NOM y manual Liverpool quedan en revisión hasta que se corrija la ERF 1.4. Por qué: Los tipos son datos, no código: se pueden prender o corregir sin desplegar, y la migración tiene destino para todos los grupos de P360. Se apoya en DUD-29, PD-01, FT-PRD-07.
Qué falta decidir
| ID | Qué falta |
|---|---|
| DUD-29 | Gobierno de Producto corrige la ERF 1.4 y confirma la lista final de tipos: carta responsiva, manual Liverpool, NOM y contenido sindicado. |
| PD-01 | Decidir si el contenido sindicado y las excepciones entran en la primera salida o son mejora. |
También siguen abiertos: PEN-159, Confirmar la ambientada como tipo aparte con sufijos 30 a 35; PEN-149, El equipo de Entrada Única confirma que hoy la principal es obligatoria al crear la propuesta.
Fuentes
- [D]
trazabilidad/features/FT-ACT-01-tipos-activo-reglas-imagenes.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.