Actualizado el 18-oct-2026. Primera versión de la arquitectura de esta épica.
Qué responde. Cómo funciona por dentro FT-INT-07: 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-INT-07.json, generada con generar.py; la ficha de la épica es trazabilidad/features/FT-INT-07-repoblamiento-masivo-productos.md.
En 30 segundos
A veces hay que volver a mandar a la tienda productos que ya están publicados, para corregir el título, la clasificación web o el sitio, sin regresarlos al flujo. Esta épica hace el repoblamiento en masa con vista previa, resultado por producto con la evidencia de lo enviado y la posibilidad de revertir una corrida que salió mal. También atiende la tarea de Repoblamiento: mandar el producto a Compras, al proveedor o aprobarlo.
- Módulo dueño: MS-02 Producto. También participan: MS-05 Auditoría, MS-08 Adaptadores de salida.
- Etapa 9 · Modificación. Recibe «PE-9 · Publicado por canal» y entrega «PE-9 · Publicado por canal», «PE-10 · Cambio aprobado».
- APIs: construye 3 y usa 9 que construyen otras épicas.
- Eventos: publica 6 y consume 3.
1. Dónde encaja
Recibe
| De | Qué |
|---|---|
| PE-9 · Publicado por canal | Productos ya publicados en la tienda, con su estado por canal y la versión que se mandó. |
| FT-RAC-03 · Publicación por rangos de score y revisión de calidad… | Lo que QA encuentra mal en algo ya publicado y manda a Repoblamiento. |
| FT-FLU-01 · Motor de estados configurable con dos carreteras y reglas… | La tarea de Repoblamiento que abre la acción REQUEST_REPOPULATION y la vuelta a Aprobado que pide republicar. |
| FT-INT-01 · Publicación a e-commerce | El adaptador de la tienda que arma el XML sin categorías, sin OMS y sin Marketplace. |
| FT-CAT-02 · Publicación de categorías a la tienda | Las categorías ya publicadas en la tienda, para que un CatID nunca apunte a algo que no existe. |
| FT-ARQ-02 · Bitácora inmutable y versionado de producto, plantilla y… | La bitácora con el antes y el después de cada campo, que sostiene el rastro y la reversa. |
| FT-PLT-03 · Listas de valores y modelo canónico con equivalencias por… | El código con su etiqueta o salida nueva (LOV_VALUE_CHANGED), para republicar con su vista previa (API-02-039, REPUBLISH) los productos publicados que lo usan. |
Entrega
| A | Qué |
|---|---|
| PE-9 · Publicado por canal | Cada producto de la corrida con su canal tienda Publicado o en Error, con su evidencia y sin cambiar su estado. |
| PE-10 · Cambio aprobado | El producto que pasó la tarea de Repoblamiento vuelve a Aprobado y sus canales afectados pasan de Publicado a Enviado. |
| FT-CAT-06 · Agrupadores y corrección masiva de categorías con… | El mecanismo de corrida con vista previa, resultado por producto y reversa, que usa la corrección masiva de categorías. |
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. |
| C05 | Error → Enviado (por canal) | Se republica. |
| C06 | Publicado → Enviado (por canal) | Se aprueba un cambio. |
| C08 | Retirado → Enviado (por canal) | Se republica. |
Tareas que abre o cierra: Repoblamiento, Revisión del cambio, 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 | Repoblamiento | Entrada Única · Vendor Center | Elige los productos publicados que va a repoblar | — |
| 2 | Entrada Única · Vendor Center | MS-02 Producto (por el BFF) | Pide la vista previa de REPOPULATE para la tienda | API-02-039 |
| 3 | Repoblamiento | Entrada Única · Vendor Center | Revisa qué se enviará y qué no, con su motivo | — |
| 4 | Entrada Única · Vendor Center | MS-02 Producto (por el BFF) | Confirma la corrida | API-02-057 |
| 5 | MS-02 Producto | Base pim | Crea el trabajo y fija la versión de cada producto | — |
| 6 | MS-02 Producto | Eventos | Pide publicar a la tienda sin categorías | catalog.product.publication/PUBLICATION_REQUESTED |
| 7 | Eventos | MS-08 Adaptadores de salida | Entrega cada producto al adaptador de la tienda | catalog.product.publication/PUBLICATION_REQUESTED |
| 8 | MS-08 Adaptadores de salida | MS-02 Producto | Pide la foto del producto en esa versión | API-02-054 |
| 9 | MS-08 Adaptadores de salida | Tienda en línea | Manda el XML en lotes de hasta 1,000 productos | — |
| 10 | MS-08 Adaptadores de salida | Archivos e imágenes (almacén y CDN) | Guarda cada XML enviado con su SHA-256 | — |
| 11 | MS-08 Adaptadores de salida | Eventos | Devuelve el acuse de cada producto | catalog.delivery.result/DELIVERY_RESULT |
| 12 | Eventos | MS-02 Producto | Entrega los acuses del trabajo | catalog.delivery.result/DELIVERY_RESULT |
| 13 | MS-02 Producto | Base pim | Marca el canal tienda y el avance del trabajo | — |
| 14 | Entrada Única · Vendor Center | MS-02 Producto (por el BFF) | Muestra el resultado, el CSV y la evidencia | API-02-040 |
3.1 La tarea de Repoblamiento
3.2 Archivo de repoblamiento: SKU, título y clasificación web
3.3 Revertir una corrida
4. Si algo sale mal
- Un producto cambió entre la vista previa y la confirmación. Queda BLOCKED en el trabajo con el motivo y no se manda; los demás siguen. Repoblamiento pide otra vista previa para ese producto.
- A un producto le falta nombre, plantilla, imagen principal congelada o SKU. No se envía y su motivo queda en la vista previa y en el CSV de resultado; la categoría web no se exige para repoblar.
- La tienda no contesta o contesta algo que no se reconoce. El producto queda REVIEW en el trabajo y su canal en Error; no se reenvía solo y se republica con un trabajo nuevo. «Aceptado» sólo quiere decir que el destino leyó el mensaje.
- La corrida baja los productos visibles. Se revierte con API-02-403: vuelven los valores anteriores de los campos planchados y se republica; lo que cambió después de la corrida no se toca y queda como conflicto para revisar a mano.
- El universo es muy grande (cientos de miles de productos). La lista va en un archivo, el trabajo se parte en lotes de 1,000 productos por XML con un ritmo por destino configurable, y la vista previa dice cuántos lotes son y cuánto tardaría.
5. APIs
Las que construye esta épica (3)
POST /api/v2/publications/plans · Vista previa de una publicación
| Campo | Valor |
|---|---|
| API | API-02-039 · MS-02 Producto |
| Para qué | Prepara, sin enviar nada, una operación de publicación sobre productos ya aprobados y dice qué producto y qué canal saldría y cuál no, con su motivo: REPUBLISH (republicar), REPOPULATE (repoblar la tienda sin categorías ni cambio de estado), REPUBLISH_MARKETPLACE, SEND_CATIDS (sólo categorías de Sitios Web) y WITHDRAW (retirar de un canal). El universo se elige por lista de IDs (hasta 10,000), por una lista en archivo (hasta 2 millones), por un nodo de Sitios Web (sólo asignaciones directas) o por una carga masiva ya aplicada (importId). Se confirma con API-02-057, que crea el trabajo. |
| En esta épica | Vista previa de REPOPULATE, REPUBLISH, REPUBLISH_MARKETPLACE, SEND_CATIDS y WITHDRAW |
| Quién la llama | BFF del portal |
| Permiso | Category, Admin, Repoblamiento, SoporteMKP y GlobalConfigurator (CF-FRU §8); WITHDRAW sólo Admin y Category; con el rol Repoblamiento, REPUBLISH no manda CatIDs |
| Cabeceras | Authorization, X-Request-Id, Idempotency-Key |
| También la usan | FT-CAT-05, FT-CAT-06, FT-INT-01, FT-PLT-03, FT-RAC-08 |
Request
{
"operation": "REPOPULATE",
"selection": {
"productIds": [
"PRD-0004812",
"PRD-0004890"
]
},
"channels": [
"TIENDA"
],
"reason": "Corregir el título sin marca en la tienda"
}
Response · 200
{
"success": true,
"data": {
"planId": "pln-r3p001",
"expiresAt": "2026-10-18T16:40:00Z",
"operation": "REPOPULATE",
"channels": [
"TIENDA"
],
"includeCatIds": false,
"includesOms": false,
"includesMarketplace": false,
"changesProductStatus": false,
"summary": {
"requested": 2,
"eligible": 1,
"notEligible": 1,
"notFound": 0,
"batches": 1
},
"items": [
{
"productId": "PRD-0004812",
"sku": "1000004812",
"business": "MER",
"version": 9,
"contentHash": "sha256:4f1d9a0c",
"channels": [
{
"channel": "TIENDA",
"sites": [
"LIVERPOOL"
],
"eligible": true
}
]
},
{
"productId": "PRD-0004890",
"sku": "1000004890",
"business": "MER",
"version": 4,
"channels": [
{
"channel": "TIENDA",
"eligible": false,
"reasons": [
{
"code": "MAIN_IMAGE_NOT_FROZEN",
"message": "La variante VAR-0004890-01 no tiene imagen principal congelada"
}
]
}
]
}
],
"businessFingerprint": "MER:2",
"applyUrl": "/api/v2/product-plans/pln-r3p001/apply"
}
}
Errores
| HTTP | Código | Cuándo |
|---|---|---|
| 400 | VALIDATION_ERROR | La selección viene vacía, trae más de 10,000 IDs sin lista en archivo, o SEND_CATIDS apunta a un nodo que no es de Sitios Web |
| 403 | AUTHORIZATION_ERROR | El rol de quien llama no tiene esa operación |
| 422 | BUSINESS_ERROR | REPOPULATE pide un canal que no es la tienda, o WITHDRAW pide un canal en el que el producto no está publicado |
GET /api/v2/publications/{jobId} · Avance y resultado de un trabajo de publicación
| Campo | Valor |
|---|---|
| API | API-02-040 · MS-02 Producto |
| Para qué | Dice cómo va una corrida de publicación o repoblamiento: quién la lanzó y por qué, cuántos productos van aceptados, en cola, fallidos, por revisar o bloqueados, el resultado de cada uno con la respuesta del destino, y dónde están el CSV de resultado y los XML enviados con su SHA-256. «Aceptado» quiere decir que el destino leyó el mensaje, no que ya se ve en la tienda. |
| En esta épica | Avance, resultado por producto, CSV y evidencia de la corrida |
| Quién la llama | BFF del portal |
| Permiso | ENT-L; el detalle de la evidencia, quien lanzó la corrida, Repoblamiento, Category y Admin |
| Cabeceras | Authorization, X-Request-Id |
| Parámetros | jobId = job-9c1e, page = 1, size = 50 |
Request
null
Response · 200
{
"success": true,
"data": {
"jobId": "job-9c1e",
"operation": "REPOPULATE",
"status": "DONE_WITH_ERRORS",
"createdAt": "2026-10-18T16:12:00Z",
"finishedAt": "2026-10-18T16:19:40Z",
"requestedBy": {
"userId": "usr-20931",
"role": "Repoblamiento"
},
"reason": "Corregir el título sin marca en la tienda",
"universe": {
"source": "productIds",
"count": 2
},
"channels": [
"TIENDA"
],
"progress": {
"total": 2,
"accepted": 1,
"queued": 0,
"failed": 0,
"review": 0,
"blocked": 1
},
"items": [
{
"productId": "PRD-0004812",
"sku": "1000004812",
"channel": "TIENDA",
"version": 9,
"result": "ACCEPTED",
"attempt": 1,
"destinationResponse": "Se procesó correctamente",
"evidence": {
"xmlRef": "evidencias/publicaciones/2026/10/18/job-9c1e-lote-001.xml",
"sha256": "9f2c7e11a04b"
}
},
{
"productId": "PRD-0004890",
"sku": "1000004890",
"channel": "TIENDA",
"version": 5,
"result": "BLOCKED",
"reason": "Cambió desde la vista previa (versión 4 a 5); no se envió"
}
],
"resultCsvRef": "evidencias/publicaciones/2026/10/18/job-9c1e-resultado.csv",
"page": 1,
"size": 50,
"total": 2
}
}
Errores
| HTTP | Código | Cuándo |
|---|---|---|
| 404 | NOT_FOUND | El trabajo no existe o quien llama no puede verlo |
POST /api/v2/publications/{jobId}/revert/plans · Vista previa de la reversa de una corrida
| Campo | Valor |
|---|---|
| API | API-02-403 · MS-02 Producto |
| Para qué | Prepara la reversa de una corrida que salió mal: dice qué campos planchados regresan a su valor anterior en cada producto, cuáles no se pueden regresar porque cambiaron después, y qué se republicará. Se confirma con API-02-057. |
| En esta épica | Vista previa de la reversa de una corrida |
| Quién la llama | BFF del portal |
| Permiso | Repoblamiento, Category y Admin |
| Cabeceras | Authorization, X-Request-Id, Idempotency-Key |
| Parámetros | jobId = job-77aa |
| También la usan | FT-ARQ-02, FT-CAT-06 |
Request
{
"reason": "La corrida bajó los productos visibles del seller",
"scope": "FIELDS_CHANGED_BY_JOB"
}
Response · 200
{
"success": true,
"data": {
"planId": "pln-rv0207",
"expiresAt": "2026-10-18T17:00:00Z",
"sourceJobId": "job-77aa",
"summary": {
"products": 1354,
"revertible": 1340,
"conflicts": 14
},
"sample": [
{
"productId": "PRD-0004812",
"fields": [
{
"attribute": "CATEGORIA_WEB",
"before": "catst000120",
"after": "catst000123"
}
],
"conflict": false
}
],
"conflicts": [
{
"productId": "PRD-0004890",
"reason": "Cambió después de la corrida (versión 6); se revisa a mano"
}
],
"thenRepublish": {
"operation": "REPUBLISH",
"channels": [
"TIENDA"
],
"includeCatIds": true
},
"applyUrl": "/api/v2/product-plans/pln-rv0207/apply"
}
}
Errores
| HTTP | Código | Cuándo |
|---|---|---|
| 404 | NOT_FOUND | La corrida no existe |
| 423 | LOCKED | La corrida sigue en curso |
| 422 | BUSINESS_ERROR | La corrida sólo reenvió y no planchó campos: no hay nada que revertir |
Las que usa y construye otra épica (9)
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-057 | POST /api/v2/product-plans/{planId}/apply | Confirmar la corrida, la decisión o la reversa | FT-FLU-01 · Motor de estados configurable con dos carreteras y reglas… |
| API-02-025 | GET /api/v2/product-receipts/{requestId} | El recibo de la confirmación, con el ID del trabajo | FT-FLU-01 · Motor de estados configurable con dos carreteras y reglas… |
| API-02-054 | GET /internal/product/products/{id}/publication-snapshot?version= | La foto del producto en la versión fijada por el trabajo | FT-CAT-05 · Sitios, enrutamiento y visibilidad por negocio |
| API-02-038 | GET /api/v2/task-queues/{cola}/my | La bandeja de Repoblamiento | FT-PRD-06 · Bandeja de pendientes y depuración de borradores… |
| API-02-028 | POST /api/v2/workflow/actions/plans | Mandar a Compras, al proveedor con los rechazos por atributo juntos, o aprobar | FT-FLU-01 · Motor de estados configurable con dos carreteras y reglas… |
| API-02-046 | POST /api/v2/product-imports | Validar el archivo de SKU, título y clasificación web sin escribir | FT-FLU-04 · Carga masiva de productos por archivo |
| API-02-047 | POST /api/v2/product-imports/{id}/apply | Confirmar el archivo: plancha sólo esos campos | FT-FLU-04 · Carga masiva de productos por archivo |
| API-05-001 | GET /api/v2/audit/entities/{entityType}/{entityId}/events | El antes y el después de cada campo de cada producto | FT-ARQ-02 · Bitácora inmutable y versionado de producto, plantilla y… |
| API-02-043 | GET /api/v2/delivery-attempts?productId=&sku=&from=&to= | La bitácora de envíos de cada producto | FT-CAT-05 · Sitios, enrutamiento y visibilidad por negocio |
6. Eventos
Publica
| Evento | Cuándo | Quién lo consume |
|---|---|---|
catalog.product.publication/PUBLICATION_REQUESTED | Cada producto de una corrida, una republicación por cambio aprobado o una reversa | FT-CAT-05, FT-CAT-06, FT-INT-01, FT-INT-02, FT-INT-05, FT-PLT-08, FT-PRD-05, FT-RAC-03 |
catalog.product.changed/STATUS_CHANGED | Repoblamiento aprueba y el producto vuelve a Aprobado | 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 o se cierra Repoblamiento, Revisión del cambio o Corrección | FT-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 |
catalog.product.changed/REJECTION_ADDED | Repoblamiento manda al proveedor con los rechazos por atributo juntos | FT-PRD-04, FT-PRD-05, FT-PRD-10, FT-RAC-01, FT-RAC-03, FT-RAC-05, FT-RAC-06 |
catalog.product.changed/PRODUCT_UPDATED | La reversa regresa los campos planchados | FT-ACT-05, FT-ARQ-02, FT-IA-01, FT-PLT-07, FT-PRD-05, FT-RAC-06 |
catalog.delivery.result/DELIVERY_RESULT | MS-08 devuelve el acuse de la tienda por producto | FT-ARQ-02, FT-CAT-02, FT-CAT-05, FT-CAT-06, FT-IA-05, FT-INT-01, FT-INT-02, FT-INT-05, FT-PRD-02, FT-PRD-10, FT-RAC-06 |
Consume
| Evento | Para qué | Quién lo publica |
|---|---|---|
catalog.product.publication/PUBLICATION_REQUESTED | MS-08 arma el XML de la tienda en lotes | esta misma épica |
catalog.delivery.result/DELIVERY_RESULT | MS-02 marca el canal y el avance del trabajo | esta misma épica |
catalog.product.changed/REJECTION_ADDED | MS-14 avisa al proveedor qué corregir | 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_jobs | MS-02 | Trabajos asíncronos: cargas masivas de productos, edición masiva y publicació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_versions | MS-02 | Foto numerada del producto en cada versión. | lee |
publication_rules | MS-02 | El mínimo que pide cada canal para publicar. | lee |
8. Historias que cubre
| Historia | Prioridad | Cómo la cubre |
|---|---|---|
| FT-INT-07·H1 · Repoblar sin mover el estado | P1 | pasos 2, 5, 6, 9; API-02-039 |
| FT-INT-07·H2 · Vista previa y resultado | P1 | pasos 2, 3, 13, 14; API-02-040 |
| FT-INT-07·H3 · Rastro y reversa | P1 | flujo «Revertir una corrida»; API-02-403, API-05-001, API-02-043 |
| FT-INT-07·H4 · Flujo de Repoblamiento (1031) | P1 | flujo «La tarea de Repoblamiento»; API-02-038, API-02-028 |
| FT-INT-07·H5 · Archivo de repoblamiento | P2 | flujo «Archivo de repoblamiento: SKU, título y clasificación web»; API-02-046, API-02-047 |
| FT-INT-07·H6 · Título al día | P2 | pasos 5, 8; API-02-054 |
| FT-INT-07·H7 · Volumen | P3 | pasos 9; API-02-039 |
| FT-INT-07·H8 · Repoblar no es reenviar | P2 | flujo «Archivo de repoblamiento: SKU, título y clasificación web»; API-02-039 |
9. Decisiones de esta épica
Las tomó el TL como arquitecto; quedan como [Propuesta] hasta que el equipo de la épica las revise.
- D-INT-07-1. Repoblar no mueve el estado ni cambia datos: reenvía a la tienda la versión aprobada vigente, sin categorías, sin OMS y sin Marketplace. Por qué: Es lo que hace Omega y lo que pide la operación de hoy; la duda de OMS (P360 repuebla con OMS, Omega no) se cierra sin OMS, porque OMS ya recibe los cambios aprobados por la publicación normal. Se apoya en PD-09, DUD-24.
- D-INT-07-2. Repoblar y mandar categorías son dos operaciones: REPOPULATE (el producto sin categorías) y SEND_CATIDS (sólo categorías de Sitios Web, hasta 1,000 por XML y nunca vacío). El archivo de SKU, título y clasificación web plancha esos campos con la carga masiva y después lanza las dos. Por qué: Las fuentes chocan sobre qué viaja con el archivo; separarlas cumple las dos lecturas y evita mandar lo que no toca. Se apoya en DUD-24, RF-CAT-15.
- D-INT-07-3. Una corrida es un trabajo de MS-02 (product_jobs) con universo, autor, fecha, motivo y la versión fijada de cada producto; cada envío queda en la bitácora con su XML y su SHA-256 en el almacén. Si un producto cambia después de la vista previa, queda bloqueado. Por qué: Saber qué cambió cada corrida y con qué datos es lo que faltó en la reversa de 3 días. Se apoya en RF-CAL-13, DMS-66.
- D-INT-07-4. Revertir es regresar a su valor anterior los campos que la corrida planchó (tomados de las versiones del producto) y republicar; no se republica completa una versión vieja. Lo que cambió después de la corrida queda como conflicto para revisar a mano. Por qué: Republicar la versión previa entera borraría cambios buenos hechos después; regresar sólo lo planchado es preciso y se puede revisar. Se apoya en DUD-24, RF-CAL-13.
- D-INT-07-5. Volumen: hasta 10,000 IDs en la petición o una lista en archivo de hasta 2 millones; lotes de 1,000 productos por XML y ritmo por destino configurable. Por qué: Omega limita a 100 productos por trabajo y el negocio necesita repoblar universos de 23 mil a 700 mil. Se apoya en DUD-24.
- D-INT-07-6. La tarea de Repoblamiento la abre la acción REQUEST_REPOPULATION del motor (QA, Gobierno de Datos o Category) y pone En modificación un producto aprobado (T09). Mandar a Compras abre Revisión del cambio; mandar al proveedor abre Corrección con los rechazos por atributo juntos; aprobar regresa a Aprobado sólo con datos base y obligatorios (T10) y republica los canales afectados (C06). La tienda conserva lo publicado mientras tanto. Por qué: Es el 1031 de hoy, con sus tres salidas, en el modelo de tres capas. Se apoya en PD-29.
- D-INT-07-7. La foto que lee el adaptador es siempre la de la versión fijada por el trabajo, que es la aprobada vigente al confirmar: un título recalculado y aprobado antes de confirmar viaja en esa corrida. Por qué: Repoblamiento necesita que el título corregido salga en la carga y aprobación de una hora después. Se apoya en DEC-86, RF-PLA-16.
Qué falta decidir
| ID | Qué falta |
|---|---|
| DUD-24 | Qué viaja con el archivo, el SLA, la ventana y el volumen por corrida: Repoblamiento con Publicación y Category. |
| PD-09 | El canal de salida a la tienda sin broker; el trabajo no cambia si cambia el adaptador. |
| PD-10 | Si el broker se queda en el primer corte (ADR-07, 13-nov). |
Fuentes
- [D]
trazabilidad/features/FT-INT-07-repoblamiento-masivo-productos.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.