From e704383cb20e7016794ccc793eda057a609be835 Mon Sep 17 00:00:00 2001 From: ertopogo Date: Sun, 1 Feb 2026 02:49:28 +0100 Subject: ajout de cart pour les commandes --- storefront/pages/index.js | 53 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) (limited to 'storefront/pages/index.js') diff --git a/storefront/pages/index.js b/storefront/pages/index.js index fa4a592..dda2a6d 100644 --- a/storefront/pages/index.js +++ b/storefront/pages/index.js @@ -1,18 +1,69 @@ +import { useState } from "react" import { useProducts } from "medusa-react" +import { medusaClient } from "../lib/medusa-client" +import { ensureCart } from "../lib/storefront" +import { formatAmount } from "../lib/format" export default function Home() { const { products, isLoading } = useProducts() + const [status, setStatus] = useState("") + const [addingId, setAddingId] = useState(null) + + const handleAddToCart = async (product) => { + const variantId = product?.variants?.[0]?.id + if (!variantId) { + setStatus("Aucune variante disponible pour ce produit.") + return + } + + setAddingId(product.id) + setStatus("") + + try { + const cart = await ensureCart(medusaClient) + await medusaClient.carts.lineItems.create(cart.id, { + variant_id: variantId, + quantity: 1, + }) + setStatus(`${product.title} a été ajouté au panier.`) + } catch (error) { + setStatus("Impossible d'ajouter au panier pour le moment.") + } finally { + setAddingId(null) + } + } return ( -
+

Bienvenue sur la boutique Lucien-sens-bon

{isLoading && Chargement des produits...} + {status &&

{status}

}
{products && products.map((product) => (

{product.title}

{product.description}

+

+ {formatAmount( + product?.variants?.[0]?.prices?.[0]?.amount, + product?.variants?.[0]?.prices?.[0]?.currency_code || "eur" + )} +

+
))}
-- cgit v1.2.3