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.
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`.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
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 booleanoavailable. Este cambio:ProductVariant.inventoryQuantity: number | nullal tipo (null= inventario no gestionado via backorder/manage_inventory=false, no hay numero real que mostrar)lib/headless/providers/medusa.tsLOW_STOCK_THRESHOLD=5enlib/utils.ts) enproduct-card.tsxy enproduct-purchase.tsx, en vez del generico "Disponibilidad por confirmar", cuando el stock real es bajodata/products.json(mock) coninventoryQuantity: nullen todas las variantes -- requerido porque el mock tipa contraProduct[]viasatisfies, que valida en compile-timeNota: 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.