Actualizado el 18-oct-2026. Primera versión de la arquitectura de esta épica.
Qué responde. Cómo funciona por dentro FT-PRD-05: 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-PRD-05.json, generada con generar.py; la ficha de la épica es trazabilidad/features/FT-PRD-05-edicion-aprobacion-por-campo.md.
En 30 segundos
Cuando alguien cambia un producto que ya está publicado, esta épica decide qué pasa con cada campo según quién es su dueño. Si quien cambia es el dueño, como el comprador con el envase, se aplica y se republica al momento. Si no, el dueño revisa el cambio mientras la tienda sigue mostrando lo publicado; al aprobarse, sólo se republican los canales afectados. También cubre los cambios de sellers, las variantes nuevas, el repoblamiento y la inactivación mientras se corrige.
- Módulo dueño: MS-02 Producto. También participan: MS-15 IA y enriquecimiento, MS-14 Avisos y ayuda, MS-08 Adaptadores de salida, MS-05 Auditoría.
- Etapa 9 · Modificación. Recibe «PE-9 · Publicado por canal» y entrega «PE-10 · Cambio aprobado».
- APIs: construye 2 y usa 16 que construyen otras épicas.
- Eventos: publica 6 y consume 4.
1. Dónde encaja
Recibe
| De | Qué |
|---|---|
| PE-9 · Publicado por canal | El producto publicado en sus canales: todo cambio parte de la versión que ya está en la tienda. |
| FT-FLU-01 · Motor de estados configurable con dos carreteras y reglas… | La matriz rol × acción × tarea, el dueño de cada grupo de campos y la ruta de revisión de cada tipo de cambio. |
| FT-USR-02 · Matriz de roles y permisos por módulo, acción, negocio y… | Los roles, áreas y negocios de quien cambia, que da el directorio de MS-13. |
| FT-IA-06 · Asistente conversacional para que el seller reporte errores | El reporte confirmado por el seller, ligado al producto y al paso, para que el dueño del dato lo corrija. |
Entrega
| A | Qué |
|---|---|
| PE-10 · Cambio aprobado | El cambio aprobado: el producto vuelve a Aprobado con una versión nueva y sus canales afectados pasan de Publicado a Enviado. |
| FT-PRD-02 · Creación de SKU con SAP | La variante nueva o el dato de SAP que cambió, para pedirlo a SAP con SAP_CREATION_REQUESTED de tipo MODIFY. |
| FT-ACT-06 · Recepción del trabajo de Foro y control de edición… | La solicitud de cambio que revisa el dueño del dato (API-02-310), con la que el estudio pide cambiar la plantilla. |
Cambios de estado que hace
| Transición | De → a | Cuándo |
|---|---|---|
| T09 | Aprobado → En modificación | Alguien cambia un producto aprobado. |
| T10 | En modificación → Aprobado | El cambio se aplica o se descarta. |
| C06 | Publicado → Enviado (por canal) | Se aprueba un cambio. |
Tareas que abre o cierra: Revisión del cambio, Repoblamiento, Corrección.
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 | Compras | Entrada Única · Vendor Center | Cambia envase y peso de un producto publicado | — |
| 2 | Entrada Única · Vendor Center | MS-02 Producto (por el BFF) | Pregunta cómo puede cambiar cada grupo de campos | API-02-027 |
| 3 | Entrada Única · Vendor Center | MS-02 Producto (por el BFF) | Pide el plan del envase, del que es dueño | API-02-012 |
| 4 | Entrada Única · Vendor Center | MS-02 Producto (por el BFF) | Pide el plan de la solicitud para el peso | API-02-310 |
| 5 | Entrada Única · Vendor Center | MS-02 Producto (por el BFF) | Confirma los dos planes | API-02-057 |
| 6 | MS-02 Producto | Eventos | Aplica el envase y lo republica al momento | catalog.product.publication/PUBLICATION_REQUESTED |
| 7 | MS-02 Producto | Eventos | Pasa a En modificación y avisa la revisión a Logística | catalog.product.changed/TASK_CHANGED |
| 8 | Eventos | MS-14 Avisos y ayuda | Entrega la tarea para avisar a Logística | catalog.product.changed/TASK_CHANGED |
| 9 | Áreas con sección | Entrada Única · Vendor Center | Logística compara lo publicado con lo propuesto | — |
| 10 | Entrada Única · Vendor Center | MS-02 Producto (por el BFF) | Pide la solicitud lado a lado con lo publicado | API-02-309 |
| 11 | Entrada Única · Vendor Center | MS-02 Producto (por el BFF) | Pide el plan para aprobar el cambio | API-02-035 |
| 12 | Entrada Única · Vendor Center | MS-02 Producto (por el BFF) | Confirma la aprobación | API-02-057 |
| 13 | MS-02 Producto | Base pim | Aplica el peso, guarda la versión y vuelve a Aprobado | — |
| 14 | MS-02 Producto | Eventos | Pide republicar sólo los canales afectados | catalog.product.publication/PUBLICATION_REQUESTED |
3.1 Un seller cambia su producto publicado: revisión con IA sin detener la venta
3.2 Si el revisor rechaza el cambio
3.3 Inactivar y repoblar un producto publicado
4. Si algo sale mal
- Dos personas proponen cambios al mismo campo. La segunda solicitud se junta con la primera en la misma Revisión del cambio y el revisor ve las dos; quien confirma sobre una versión vieja del mismo grupo de campos recibe 409 VERSION_CONFLICT y vuelve a ver lo vigente.
- La IA no responde o duda al revisar un cambio. El cambio no se aplica sin dato: la revisión pasa a QA manual con el motivo «Sin dato» y la tienda conserva lo publicado.
- Alguien intenta cambiar el EAN o el SKU. La solicitud responde 422 BUSINESS_ERROR: el EAN va por la liberación de EAN (FT-PRD-03) o por Gobierno de Datos, y el SKU no cambia nunca.
- El cambio aprobado toca un dato que usa SAP. Además de republicar, se pide a SAP con SAP_CREATION_REQUESTED de tipo MODIFY. Si SAP lo rechaza, se abre Gobierno de Datos con el mensaje de SAP y el proveedor ve «En proceso Liverpool».
- Un seller intenta cambiar el contenido de un producto ajeno. Responde 403: sólo puede agregar variantes. La pantalla ya lo muestra, porque la matriz deja ese grupo de campos en sólo lectura para él.
5. APIs
Las que construye esta épica (2)
POST /api/v2/products/{id}/change-requests/plans · Pedir un cambio que revisa el dueño del dato
| Campo | Valor |
|---|---|
| API | API-02-310 · MS-02 Producto |
| Para qué | Prepara una solicitud de cambio sobre un producto que ya salió de Borrador cuando quien cambia no es el dueño del dato, o cuando el cambio a un producto aprobado debe revisarse (contenido del seller, dato maestro o variante nueva). Dice quién revisa cada campo y que la tienda conserva lo publicado; al confirmar, el producto aprobado pasa a En modificación con una Revisión del cambio. |
| En esta épica | Pedir un cambio que revisa el dueño del dato, sin tocar lo publicado |
| Quién la llama | BFF del portal, Gateway de terceros /partner/v1 |
| Permiso | Cualquier rol con acceso al producto que la matriz deje proponer cambios sobre ese grupo de campos; el seller que no es dueño del contenido sólo puede proponer variantes nuevas |
| Cabeceras | Authorization, X-Request-Id, Idempotency-Key, If-Match |
| Parámetros | id = PRD-0004812 |
| También la usan | FT-ACT-06, FT-RAC-04 |
Request
{
"version": 12,
"comment": "El proveedor actualizó la ficha técnica del empaque",
"changes": [
{
"attribute": "PESO_EMPAQUE",
"value": "1.4",
"unit": "kg"
}
]
}
Response · 200
{
"success": true,
"data": {
"planId": "pln-5d21f0",
"expiresAt": "2026-10-18T15:14:05Z",
"productId": "PRD-0004812",
"from": "APROBADO",
"to": "EN_MODIFICACION",
"fields": [
{
"attribute": "PESO_EMPAQUE",
"published": "1.2 kg",
"proposed": "1.4 kg",
"reviewer": {
"kind": "AREA",
"area": "LOGISTICA"
},
"route": "OWNER_REVIEW"
}
],
"opensTasks": [
"REVISION_DEL_CAMBIO"
],
"storeKeepsVersion": 12,
"needsSap": false,
"applyUrl": "/api/v2/product-plans/pln-5d21f0/apply"
}
}
Errores
| HTTP | Código | Cuándo |
|---|---|---|
| 422 | BUSINESS_ERROR | Se pide cambiar el EAN o el SKU: el EAN va por la liberación de EAN y el SKU no cambia nunca |
| 409 | NOT_EDITABLE_IN_STATUS | El producto está en Borrador (se edita directo), en Foro (sólo se consulta) o Cancelado |
| 403 | AUTHORIZATION_ERROR | Un seller que no es dueño del contenido intenta cambiar algo distinto de agregar variantes |
| 422 | VALIDATION_ERROR | Un valor no pasa la vista efectiva de su plantilla y negocio |
| 409 | VERSION_CONFLICT | Cambió el mismo grupo de campos desde que se leyó |
GET /api/v2/products/{id}/change-requests · Solicitudes de cambio de un producto
| Campo | Valor |
|---|---|
| API | API-02-309 · MS-02 Producto |
| Para qué | Muestra las solicitudes de cambio abiertas o recientes de un producto, campo por campo: lo publicado contra lo propuesto, quién lo pidió, quién lo revisa, cómo terminó y qué canales se republicarán al aprobarlo. Mientras se revisa, la tienda sigue con lo publicado. |
| En esta épica | Ver las solicitudes de cambio lado a lado con lo publicado |
| Quién la llama | BFF del portal, Gateway de terceros /partner/v1 |
| Permiso | Quien pidió el cambio, el revisor y las áreas con lectura; el seller sólo ve las de sus productos |
| Cabeceras | Authorization, X-Request-Id |
| Parámetros | id = PRD-0004812, state = OPEN |
| También la usan | FT-RAC-04 |
Request
null
Response · 200
{
"success": true,
"data": {
"productId": "PRD-0004812",
"status": "EN_MODIFICACION",
"publishedVersion": 12,
"items": [
{
"changeId": "chg-7a10",
"taskId": "tsk-52108",
"kind": "VALUES",
"requestedBy": {
"area": "COMPRAS-HOGAR",
"role": "COMPRAS"
},
"requestedAt": "2026-10-18T15:04:07Z",
"reviewer": {
"kind": "AREA",
"area": "LOGISTICA"
},
"state": "IN_REVIEW",
"fields": [
{
"attribute": "PESO_EMPAQUE",
"label": "Peso del empaque",
"published": "1.2 kg",
"proposed": "1.4 kg"
}
],
"republishChannels": [
"TIENDA",
"OMS"
]
}
]
}
}
Errores
| HTTP | Código | Cuándo |
|---|---|---|
| 404 | NOT_FOUND | El producto no existe o no es visible para quien llama |
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.
| API | Método y ruta | Para qué, aquí | La construye |
|---|---|---|---|
| API-02-027 | GET /api/v2/workflow/capabilities?productIds= | Saber si cada grupo de campos se cambia directo, con revisión o es de sólo lectura | FT-FLU-01 · Motor de estados configurable con dos carreteras y reglas… |
| API-02-012 | POST /api/v2/products/{id}/values/plans | Aplicar lo que el dueño cambia directo (lo construye FT-RAC-01) | FT-RAC-01 · Motor de validación en línea y candados de datos… |
| API-02-035 | POST /api/v2/tasks/plans | Aprobar o rechazar la Revisión del cambio con motivo por campo | FT-FLU-01 · Motor de estados configurable con dos carreteras y reglas… |
| API-02-057 | POST /api/v2/product-plans/{planId}/apply | Confirmar los planes | FT-FLU-01 · Motor de estados configurable con dos carreteras y reglas… |
| API-02-028 | POST /api/v2/workflow/actions/plans | Vista previa de INACTIVATE, REACTIVATE y REQUEST_REPOPULATION | FT-FLU-01 · Motor de estados configurable con dos carreteras y reglas… |
| API-15-005 | POST /api/v2/ai/quality-reviews | Revisar con IA el cambio puntual de un seller o proveedor | FT-IA-05 · Enriquecimiento continuo después de crear el SKU y después… |
| API-02-029 | GET /api/v2/workflow/comments?productIds= | Motivos del rechazo de un cambio, por campo | FT-PRD-04 · Propuesta del proveedor de Mercaderías |
| API-02-030 | GET /api/v2/workflow/config/{type} | Leer FIELD_OWNERS y CHANGE_ROUTES | FT-FLU-01 · Motor de estados configurable con dos carreteras y reglas… |
| API-02-031 | POST /api/v2/workflow/config/{type}/plans | Cambiar el dueño de un grupo de campos sin desplegar código | FT-FLU-01 · Motor de estados configurable con dos carreteras y reglas… |
| API-02-006 | POST /api/v2/products/guided/plans | Alta de la variante de un seller sobre un genérico ajeno, partiendo de su ficha (lo construye FT-PRD-07) | FT-PRD-07 · Captura guiada por pasos con los mínimos primero |
| API-02-045 | GET /api/v2/product-imports/profiles/{p}/template | Descargar la plantilla de modificación o de variantes con la columna índice (lo construye FT-FLU-04) | FT-FLU-04 · Carga masiva de productos por archivo |
| API-02-046 | POST /api/v2/product-imports | Validar la plantilla de modificación renglón por renglón | FT-FLU-04 · Carga masiva de productos por archivo |
| API-02-047 | POST /api/v2/product-imports/{id}/apply | Confirmar la carga: cada renglón se vuelve una solicitud de cambio | FT-FLU-04 · Carga masiva de productos por archivo |
| API-BFF-201 | GET /bff/v1/proposals/{productId} | La ficha de la propuesta que compone el BFF (lo construye FT-PRD-09) | FT-PRD-09 · Contrato de propuestas con Entrada Única |
| API-02-001 | POST /api/v2/products/search | La lista de resultados para ir al producto anterior y al siguiente | FT-PRD-01 · Modelo canónico de producto |
| API-05-001 | GET /api/v2/audit/entities/{entityType}/{entityId}/events | Historial de quién cambió cada campo y si se aprobó | FT-ARQ-02 · Bitácora inmutable y versionado de producto, plantilla y… |
6. Eventos
Publica
| Evento | Cuándo | Quién lo consume |
|---|---|---|
catalog.product.changed/STATUS_CHANGED | El producto pasa a En modificación (T09) o vuelve a Aprobado (T10) | FT-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_CHANGED | Se abre, se aprueba o se rechaza una Revisión del cambio o un Repoblamiento | FT-ACT-05, FT-ACT-06, FT-ARQ-02, FT-CAT-06, FT-FLU-01, FT-IA-06, FT-PRD-02, 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_ADDED | El revisor rechaza un cambio con motivo por campo | FT-INT-07, FT-PRD-04, FT-PRD-10, FT-RAC-01, FT-RAC-03, FT-RAC-05, FT-RAC-06 |
catalog.product.changed/PRODUCT_UPDATED | Se aplica un cambio, con el antes y el después de cada campo | FT-ACT-05, FT-ARQ-02, FT-IA-01, FT-PLT-07, FT-RAC-06 |
catalog.product.publication/PUBLICATION_REQUESTED | Se aprueba un cambio (C06), se inactiva (retiro) o se reactiva (republicación) | FT-CAT-05, FT-CAT-06, FT-INT-01, FT-INT-02, FT-INT-05, FT-INT-07, FT-PLT-08, FT-RAC-03 |
catalog.product.publication/SAP_CREATION_REQUESTED | El cambio aprobado es una variante nueva o toca un dato de SAP (tipo MODIFY) | FT-PRD-02 |
Consume
| Evento | Para qué | Quién lo publica |
|---|---|---|
catalog.product.publication/PUBLICATION_REQUESTED | MS-08 arma y manda la versión nueva, el retiro o la republicación a cada canal afectado | esta misma épica |
catalog.product.changed/TASK_CHANGED | MS-14 avisa al revisor que tiene un cambio por revisar | esta misma épica |
catalog.product.changed/REJECTION_ADDED | MS-14 manda el motivo a quien pidió el cambio | esta misma épica |
catalog.product.changed/PRODUCT_UPDATED | MS-05 guarda quién cambió cada campo, con el antes y el después | 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 |
|---|---|---|---|
products | MS-02 | La familia del producto con sus variantes, valores, imágenes (URL), clasificaciones, estado, tareas abiertas y rechazos. | escribe |
tasks | MS-02 | Todo el trabajo asignado: visto bueno, corrección, Gobierno de Datos, foto, secciones, QA, revisión del cambio y repoblamiento. | escribe |
product_versions | MS-02 | Foto numerada del producto en cada versión. | escribe |
product_delivery_status | MS-02 | El estado de publicación por producto y canal: Pendiente, Enviado, Publicado, Error o Retirado. | escribe |
product_receipts | MS-02 | El recibo de cada escritura confirmada en el producto (antes operation_receipts). | escribe |
product_outbox | MS-02 | Los cambios del producto que esperan salir como evento (antes outbox). | escribe |
product_reference_tables | MS-02 | Configuración del motor de estados y del matching: transiciones, estados externos y pesos. | lee |
product_versions | MS-02 | Foto numerada del producto en cada versión. | 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-PRD-05·H1 · El comprador corrige lo suyo | P1 | pasos 1, 3, 4, 5, 6, 7, 13; flujo «Si el revisor rechaza el cambio»; API-02-310 |
| FT-PRD-05·H2 · EAN protegido | P1 | pasos 2; API-02-027, API-02-310 |
| FT-PRD-05·H3 · Rechazo por atributo | P2 | flujo «Si el revisor rechaza el cambio»; API-02-035, API-02-029 |
| FT-PRD-05·H4 · Matriz configurable | P3 | API-02-030, API-02-031 |
| FT-PRD-05·H5 · Dos áreas a la vez | P2 | API-02-012, API-02-057 |
| FT-PRD-05·H6 · Ficha del producto en pestañas | P2 | API-BFF-201, API-02-001. Fuera: La ficha en pestañas con anterior y siguiente es diseño de pantalla: la compone el BFF de la propuesta (FT-PRD-09) con la ficha y la búsqueda de FT-PRD-01. Esta épica sólo garantiza que cada grupo de campos diga si se edita directo, con revisión o es de sólo lectura. |
| FT-PRD-05·H7 · Dato puntual: sólo vuelve a QA | P1 | flujo «Un seller cambia su producto publicado: revisión con IA sin detener la venta»; API-15-005 |
| FT-PRD-05·H8 · Dato maestro o variante: regresa a Compras | P1 | API-02-310, API-02-030 |
| FT-PRD-05·H9 · El seller sólo cambia lo suyo | P1 | flujo «Un seller cambia su producto publicado: revisión con IA sin detener la venta»; API-02-027 |
| FT-PRD-05·H10 · Modificación masiva por plantilla | P2 | API-02-046, API-02-047 |
| FT-PRD-05·H11 · Agregar una variante a un genérico ajeno | P2 | API-02-006, API-02-310 |
| FT-PRD-05·H12 · Agregar variantes en masa a un papá existente | P2 | API-02-045, API-02-046, API-02-047 |
| FT-PRD-05·H13 · Revisar el cambio sin detener la venta | P2 | pasos 6, 7, 8, 13, 14; flujo «Un seller cambia su producto publicado: revisión con IA sin detener la venta», «Si el revisor rechaza el cambio»; API-02-309 |
| FT-PRD-05·H14 · Inactivar un producto publicado mientras se corrige | P2 | flujo «Inactivar y repoblar un producto publicado»; API-02-028 |
9. Decisiones de esta épica
Las tomó el TL como arquitecto; quedan como [Propuesta] hasta que el equipo de la épica las revise.
- D-PRD-05-1. Cada grupo de campos tiene un dueño por negocio en la tabla FIELD_OWNERS del motor, con dos modos: directo o con revisión. Si quien cambia es el dueño en modo directo (el envase para Compras), el cambio se aplica con el plan de valores, queda quién y cuándo, y se republica al momento (T09 y T10 en la misma transacción). Si no, se pide con una solicitud de cambio (API-02-310) que revisa el dueño. Por qué: El comprador corrige lo suyo sin ticket y nada de quien no es dueño se aplica sin aprobación. El «archivo de roles» del taller se vuelve una tabla que Gobierno de Producto cambia sin desplegar código. Se apoya en RF-ALT-05, RN-CAL-05, DMS-71, DUD-22.
- D-PRD-05-2. Lo publicado no se toca mientras se revisa: la propuesta vive en la tarea Revisión del cambio, el producto pasa a En modificación (T09) y la tienda conserva su versión. Al aprobar, se aplica en una transacción con versión nueva, vuelve a Aprobado (T10) y sólo los canales afectados pasan de Publicado a Enviado (C06). Por qué: Así se revisa el cambio sin detener la venta, como pidió Marketplace: se detiene la tarea, no el SKU. Se apoya en S30-RF-09, PD-29.
- D-PRD-05-3. Quién revisa sale de la tabla CHANGE_ROUTES: un dato puntual del contenido lo revisa la QA con IA; un dato maestro o una variante nueva, Compras en Mercaderías y Suburbia o la calificación en Marketplace. El EAN no se cambia por aquí: va por la liberación de EAN (FT-PRD-03) o por Gobierno de Datos. Por qué: Es la regla del taller: el dato puntual sólo vuelve a la revisión con IA y el dato maestro o la variante regresan a Compras, que cuida lo que va a SAP. Se apoya en S34-RF-07, P-41, DEC-PRD-04.
- D-PRD-05-4. Si el revisor rechaza, se abre una Corrección para quien pidió el cambio, con el motivo por campo y su destino, y el proveedor ve «Por actualizar». Si la corrección vence, se descarta el cambio, nunca el producto, y vuelve a Aprobado (T10). Por qué: Un producto aprobado no se cancela; rechazar un cambio sólo debe deshacer el cambio. Se apoya en PD-29, P-01.
- D-PRD-05-5. Una variante nueva sobre un producto aprobado, propia o de un seller sobre un genérico ajeno, entra por la misma solicitud. Al aprobarse, la familia vuelve a Aprobado y la variante lleva su propio estado: pide su SKU con SAP_CREATION_REQUESTED de tipo MODIFY y entra a sus canales cuando esté lista. Las variantes publicadas y los datos del genérico no se tocan, y la variante queda con su seller como dueño. Por qué: Vender un color o una talla nueva sin duplicar el producto ni tocar la ficha ajena; el producto es un documento por familia con estado de familia y de variante. Se apoya en S30-RF-01, DEC-PRD-02.
- D-PRD-05-6. El seller dueño del contenido puede proponer cambios a todo su producto, que vuelven a la revisión con IA; si el producto es de otro seller o de Liverpool, sólo puede agregar variantes. La modificación masiva usa la carga masiva de FT-FLU-04 con la columna índice del papá o del SKU, y cada renglón se vuelve una solicitud de cambio, sin pedir SKU nuevo. Por qué: «Sólo puedes solicitar en tu catálogo»: nadie cambia fichas ajenas, y la plantilla de modificación no repite el alta. Se apoya en S30-RF-07, PD-02.
- D-PRD-05-7. Dos áreas pueden trabajar a la vez en un producto: ninguna tarea bloquea la edición (salvo Foro, que lo deja sólo para consulta) y el conflicto de versión se revisa por grupo de campos, así que Publicación edita lo suyo mientras Categoría trabaja en lo suyo. Por qué: Hoy un área le quita la propuesta a la otra; con un dueño por grupo, los cambios de áreas distintas no chocan. Se apoya en RF-INT-08, PD-29.
- D-PRD-05-8. Inactivar un producto publicado es una acción del motor (INACTIVATE): pasa a En modificación con una tarea de Repoblamiento y pide retirarlo de todos sus canales con la misma operación de retiro de la publicación (FT-CAT-05). Al reactivar (REACTIVATE) vuelve a Aprobado y se republica en los mismos canales, sin SKU nuevo. Por qué: Un producto aprobado no se cancela: se retira de cada canal, como pide el servicio para inactivar mientras se corrige. Se apoya en S34-RF-02, PD-29.
Qué falta decidir
| ID | Qué falta |
|---|---|
| DUD-22 | Negocio con Seguridad firma la matriz y el dueño de cada grupo de campos; el motor arranca con el envase en Compras, los datos logísticos en Logística y el EAN en Gobierno de Datos. |
| PD-14 | Si el dueño se fija por campo o por grupo de campos; aquí es por grupo, como en STEP y en el diseño de plantillas. |
| P-29 | Qué datos maestros edita Compras directo y cuáles revisa Gobierno de Datos. |
| PD-02 | Si los sellers entran en la primera salida: las historias de Marketplace de esta épica dependen de eso. |
También siguen abiertos: PEN-167, La precedencia de lo que manda el proveedor frente a lo que propone la IA o Foro en un producto publicado.
Fuentes
- [D]
trazabilidad/features/FT-PRD-05-edicion-aprobacion-por-campo.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.