Compare commits

...
Author SHA1 Message Date
devops 6f24109d91 docs(adr): marcar Etapa 2 del ADR 0005 como completa
Build and Push Docs Portal / Escaneo de Secretos (Gitleaks) (pull_request) Successful in 21s
Build and Push Docs Portal / Construir y publicar Docs Portal (pull_request) Skipped
Estado seguia diciendo "propuesta -- pendiente de aprobacion antes de
Etapa 2" aunque las 3 sub-fases (datos/categorias, navegacion,
componentes visuales -- PRs #29-#42) ya estan implementadas y en
produccion desde el 2026-08-25. Actualiza el header de estado y
reemplaza la seccion 6 (antes "Proximos pasos" pendiente de
aprobacion) por el resumen real de lo ejecutado, dejando explicito que
sigue pendiente borrar el usuario admin temporal de la auditoria y que
no hay Etapa 3 definida todavia.
2026-08-25 16:00:40 -05:00
devops edd14ca790 chore: release v1.0.157 [skip ci] 2026-08-25 20:29:09 +00:00
devops b6e3bddbc6 Merge pull request 'fix(ecommerce): corregir error de tipos en indice de tile promocional' (#42) from fix/etapa2-subfase3-fix-promo-index-type into main
Build and Push Frontend / Escaneo de Secretos (Gitleaks) (push) Successful in 20s
Build and Push Frontend / Construir y Subir Imagen (push) Successful in 9m29s
2026-08-25 20:19:26 +00:00
devops 3c0ce03e09 fix(ecommerce): corregir error de tipos en indice de tile promocional
Build and Push Frontend / Escaneo de Secretos (Gitleaks) (pull_request) Successful in 25s
Build and Push Frontend / Construir y Subir Imagen (pull_request) Skipped
tsconfig tiene noUncheckedIndexedAccess -- promoRoots[promoIndex %
promoRoots.length] tipa como Category | undefined aunque en runtime
siempre es valido (promoRoots.length > 0 ya se verifico antes de este
punto). Extraido a una constante con guard explicito para que TS
angoste el tipo. Sin cambio de comportamiento.

Detectado por el build real en main tras el merge de #41 -- no se
puede correr tsc localmente en esta maquina (ver notas de sesiones
anteriores), asi que esto solo lo valida el CI post-merge.
2026-08-25 15:18:12 -05:00
3 changed files with 40 additions and 17 deletions

No files matched your search

@@ -1,13 +1,14 @@
# ADR 0005 — Rediseño del storefront para catálogo multi-categoría # ADR 0005 — Rediseño del storefront para catálogo multi-categoría
**Estado:** propuesta — pendiente de aprobación antes de Etapa 2 **Estado:** aceptada — Etapa 2 implementada y en producción
**Fecha:** 2026-08-23 **Fecha:** 2026-08-23 (Etapa 1) — actualizado 2026-08-25 (Etapa 2 completa)
> Este documento es la propuesta de Etapa 1 del rediseño de ARI > Este documento arrancó como la propuesta de Etapa 1 del rediseño de
> Shopping. No incluye código de producción — solo auditoría, > ARI Shopping (auditoría, decisión — ver también [ADR 0004](0004-evaluacion-stack-multi-categoria.md) —
> decisión (ver también [ADR 0004](0004-evaluacion-stack-multi-categoria.md)), > patrones de UX y datos demo). Etapa 2 fue aprobada y se implementó
> patrones de UX y datos demo ya creados y visibles en producción > completa en tres sub-fases (datos/categorías, navegación,
> como línea base. > componentes visuales) — ver la sección 6 para el detalle de cada
> sub-fase y sus PRs.
## 1. Resumen de la auditoría ## 1. Resumen de la auditoría
@@ -255,12 +256,33 @@ objetivo es validar la tubería Admin → MinIO → NPM → frontend, no el
contenido visual final. contenido visual final.
Usuario admin temporal `[email protected]` usado para esta Usuario admin temporal `[email protected]` usado para esta
auditoría — pendiente de borrar una vez aprobada esta propuesta. auditoría — pendiente de borrar (ver sección 6).
## 6. Próximos pasos ## 6. Etapa 2 — implementada (2026-08-23 a 2026-08-25)
Pendiente de tu aprobación explícita antes de iniciar Etapa 2. Cuando Aprobada y ejecutada en tres sub-fases, cada una validada en vivo
apruebes, Etapa 2 se dividirá en sub-fases (datos/categorías primero, contra estos 9 productos demo:
luego navegación, luego componentes visuales), validando en cada paso
contra estos 9 productos demo que precio/descripción/imágenes siguen 1. **Datos/categorías** (2026-08-23/24): fix del bug de Store API que
actualizándose correctamente desde Admin. impedía ver la categoría real de un producto (causa raíz del ADR
0004); 21 categorías/9 productos demo creados; `legacyProductMeta`
eliminado (PR #29) — 17 productos legacy con categoría/colección/
marca/rango de edad reales.
2. **Navegación** (2026-08-25): navbar y tiles del home pasaron de
arrays hardcodeados a data-driven contra el árbol real de
categorías (`getCategories()`, PR #32); guard de CI actualizado
(PR #33); fix de tipos (PR #34); home/layout forzados a render
dinámico para evitar que quedaran cacheados con datos mock (PR #35).
3. **Componentes visuales** (2026-08-25), los 4 patrones de la
sección 3 más el breadcrumb/facetas de Amazon: mega-menú
"Departamentos" multi-columna (PR #36), badges antes/ahora
(PR #37), swatches de variante inline (PR #38), mensaje de
urgencia por inventario real (PR #39), breadcrumb real + conteos
por filtro en el catálogo (PR #40), tiles promocionales
intercalados en la grilla (PR #41, con fix-forward de tipos en
PR #42).
**Pendiente:** borrar el usuario admin temporal `[email protected]`
de Medusa Admin (creado para la auditoría de la sección 5, ya no
necesario). Sin próxima etapa definida todavía — este ADR no
especifica una Etapa 3.
@@ -144,8 +144,9 @@ export function CatalogClient({
filtered.forEach((product, index) => { filtered.forEach((product, index) => {
items.push({ type: "product", product }); items.push({ type: "product", product });
const isLast = index === filtered.length - 1; const isLast = index === filtered.length - 1;
if (!isLast && (index + 1) % PROMO_TILE_INTERVAL === 0) { const promoCategory = promoRoots[promoIndex % promoRoots.length];
items.push({ type: "promo", category: promoRoots[promoIndex % promoRoots.length] }); if (!isLast && (index + 1) % PROMO_TILE_INTERVAL === 0 && promoCategory) {
items.push({ type: "promo", category: promoCategory });
promoIndex += 1; promoIndex += 1;
} }
}); });
@@ -25,7 +25,7 @@ spec:
runAsUser: 1001 runAsUser: 1001
containers: containers:
- name: app - name: app
image: gitea.cruzcloud.net/devops/ecommerce-frontend:v1.0.154 image: gitea.cruzcloud.net/devops/ecommerce-frontend:v1.0.157
env: env:
- name: HEADLESS_PROVIDER - name: HEADLESS_PROVIDER
value: medusa value: medusa