fix(ecommerce): mensaje de urgencia por inventario real #39

Merged
devops merged 1 commits from fix/etapa2-subfase3-urgencia-inventario into main 2026-08-25 19:43:27 +00:00
Owner

Etapa 2 sub-fase 3 (ADR 0005 seccion 3, patron eBay) — cuarto item, tras mega-menu (#36), badges antes/ahora (#37) y swatches inline (#38).

Medusa ya expone variant.inventory_quantity (query param +variants.inventory_quantity), pero el frontend lo colapsaba siempre a un booleano available. Este cambio:

  • Agrega ProductVariant.inventoryQuantity: number | null al tipo (null = inventario no gestionado via backorder/manage_inventory=false, no hay numero real que mostrar)
  • Lo calcula en lib/headless/providers/medusa.ts
  • Muestra "Quedan N" (umbral LOW_STOCK_THRESHOLD=5 en lib/utils.ts) en product-card.tsx y en product-purchase.tsx, en vez del generico "Disponibilidad por confirmar", cuando el stock real es bajo
  • Actualiza data/products.json (mock) con inventoryQuantity: null en todas las variantes -- requerido porque el mock tipa contra Product[] via satisfies, que valida en compile-time

Nota: ningun producto demo actual tiene inventario gestionado con stock bajo, asi que el mensaje no sera visible en el catalogo real hasta que exista uno.

Etapa 2 sub-fase 3 (ADR 0005 seccion 3, patron eBay) — cuarto item, tras mega-menu (#36), badges antes/ahora (#37) y swatches inline (#38). Medusa ya expone `variant.inventory_quantity` (query param `+variants.inventory_quantity`), pero el frontend lo colapsaba siempre a un booleano `available`. Este cambio: - Agrega `ProductVariant.inventoryQuantity: number | null` al tipo (`null` = inventario no gestionado via backorder/manage_inventory=false, no hay numero real que mostrar) - Lo calcula en `lib/headless/providers/medusa.ts` - Muestra "Quedan N" (umbral `LOW_STOCK_THRESHOLD=5` en `lib/utils.ts`) en `product-card.tsx` y en `product-purchase.tsx`, en vez del generico "Disponibilidad por confirmar", cuando el stock real es bajo - Actualiza `data/products.json` (mock) con `inventoryQuantity: null` en todas las variantes -- requerido porque el mock tipa contra `Product[]` via `satisfies`, que valida en compile-time Nota: ningun producto demo actual tiene inventario gestionado con stock bajo, asi que el mensaje no sera visible en el catalogo real hasta que exista uno.
devops added 1 commit 2026-08-25 19:33:33 +00:00
feat(ecommerce): mensaje de urgencia por inventario real
Build and Push Frontend / Construir y Subir Imagen (pull_request) Skipped
Build and Push Frontend / Escaneo de Secretos (Gitleaks) (pull_request) Successful in 26s
8fc9df3b50
Expone ProductVariant.inventoryQuantity (ya calculado desde
variant.inventory_quantity en Medusa, hoy colapsado al booleano
available) y lo usa para mostrar "Quedan N" cuando el stock real es
bajo (<=5), tanto en la tarjeta de producto como en la ficha. null
indica inventario no gestionado (backorder / manage_inventory=false),
donde nunca se muestra un numero. ADR 0005 seccion 3 (patron eBay).

Catalogo mock actualizado (data/products.json) con
inventoryQuantity=null en todas las variantes para seguir tipando
contra Product[] via `satisfies`.
devops merged commit e95ac086f0 into main 2026-08-25 19:43:27 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: devops/apps-registry#39