Compare commits

..
Author SHA1 Message Date
devops b12dd848af chore: release v1.0.208 [skip ci] 2026-08-29 02:52:32 +00:00
2 changed files with 9 additions and 18 deletions

No files matched your search

@@ -25,7 +25,7 @@ spec:
runAsUser: 1001 runAsUser: 1001
containers: containers:
- name: app - name: app
image: gitea.cruzcloud.net/devops/ecommerce-frontend:v1.0.204 image: gitea.cruzcloud.net/devops/ecommerce-frontend:v1.0.208
env: env:
- name: HEADLESS_PROVIDER - name: HEADLESS_PROVIDER
value: medusa value: medusa
@@ -61,7 +61,6 @@ type MedusaLineItem = {
thumbnail?: string | null; thumbnail?: string | null;
quantity: number; quantity: number;
unit_price?: number | null; unit_price?: number | null;
product?: { images?: Array<{ url?: string | null }> | null } | null;
}; };
type MedusaCart = { type MedusaCart = {
@@ -83,13 +82,10 @@ function mapCart(cart: MedusaCart): CartSummary {
product: { product: {
id: item.product_id, id: item.product_id,
name: item.product_title || item.title || "Producto", name: item.product_title || item.title || "Producto",
// item.thumbnail viene null en la practica para todo el catalogo // La linea del carrito no trae el arreglo de imagenes del producto,
// real (confirmado contra /store/products: product.thumbnail // solo este campo (a veces null) -- mismo fallback final que ya usa
// tambien es null ahi, incluso con fotos reales cargadas) -- el // mapProduct() en medusa.ts.
// catalogo ya resuelve esto cayendo a images[0] (mapProduct() en thumbnail: item.thumbnail || "/images/brand/logo-ari.png",
// medusa.ts), asi que la linea del carrito pide esa misma relacion
// explicita (no viene por defecto) y aplica el mismo fallback.
thumbnail: item.thumbnail || item.product?.images?.[0]?.url || "/images/brand/logo-ari.png",
price: typeof item.unit_price === "number" ? item.unit_price : null, price: typeof item.unit_price === "number" ? item.unit_price : null,
currency: cart.currency_code, currency: cart.currency_code,
}, },
@@ -121,11 +117,6 @@ async function medusaCartFetch(
return response.json(); return response.json();
} }
// *items.product.images no viene por defecto (verificado en vivo) y es
// lo unico que necesitamos ademas del set por defecto -- *items ya trae
// unit_price/product_title/variant_id/quantity sin pedirlos aparte.
const ITEMS_FIELDS = "fields=*items,*items.product.images";
export async function createCart(): Promise<CartSummary> { export async function createCart(): Promise<CartSummary> {
const data = await medusaCartFetch("/store/carts", { const data = await medusaCartFetch("/store/carts", {
method: "POST", method: "POST",
@@ -135,7 +126,7 @@ export async function createCart(): Promise<CartSummary> {
} }
export async function getCart(cartId: string): Promise<CartSummary> { export async function getCart(cartId: string): Promise<CartSummary> {
const data = await medusaCartFetch(`/store/carts/${cartId}?${ITEMS_FIELDS}`); const data = await medusaCartFetch(`/store/carts/${cartId}`);
return mapCart(data.cart as MedusaCart); return mapCart(data.cart as MedusaCart);
} }
@@ -144,7 +135,7 @@ export async function addLineItem(
variantId: string, variantId: string,
quantity: number, quantity: number,
): Promise<CartSummary> { ): Promise<CartSummary> {
const data = await medusaCartFetch(`/store/carts/${cartId}/line-items?${ITEMS_FIELDS}`, { const data = await medusaCartFetch(`/store/carts/${cartId}/line-items`, {
method: "POST", method: "POST",
body: { variant_id: variantId, quantity }, body: { variant_id: variantId, quantity },
}); });
@@ -156,7 +147,7 @@ export async function updateLineItemQuantity(
lineItemId: string, lineItemId: string,
quantity: number, quantity: number,
): Promise<CartSummary> { ): Promise<CartSummary> {
const data = await medusaCartFetch(`/store/carts/${cartId}/line-items/${lineItemId}?${ITEMS_FIELDS}`, { const data = await medusaCartFetch(`/store/carts/${cartId}/line-items/${lineItemId}`, {
method: "POST", method: "POST",
body: { quantity }, body: { quantity },
}); });
@@ -164,7 +155,7 @@ export async function updateLineItemQuantity(
} }
export async function removeLineItem(cartId: string, lineItemId: string): Promise<CartSummary> { export async function removeLineItem(cartId: string, lineItemId: string): Promise<CartSummary> {
const data = await medusaCartFetch(`/store/carts/${cartId}/line-items/${lineItemId}?${ITEMS_FIELDS}`, { const data = await medusaCartFetch(`/store/carts/${cartId}/line-items/${lineItemId}`, {
method: "DELETE", method: "DELETE",
}); });
// Forma distinta a las demas: el carrito actualizado viene en // Forma distinta a las demas: el carrito actualizado viene en