intendedTemplate() !== 'product') { http_response_code(404); echo json_encode(['error' => 'Product not found']); exit; } // Récupérer le stock actuel $stock = (int) $product->stock()->value(); // Préparer la réponse JSON pour Snipcart $response = [ 'id' => $product->slug(), 'price' => (float) $product->price()->value(), 'url' => $product->url() . '/validate.json', 'name' => $product->title()->value(), 'description' => $product->description()->value(), 'image' => $product->images()->first() ? $product->images()->first()->url() : '', 'inventory' => $stock, 'stock' => $stock ]; // Ajouter les options si disponibles if ($product->hasOptions()->toBool() && $product->optionValues()->isNotEmpty()) { $values = $product->optionValues()->split(','); $trimmedValues = array_map('trim', $values); $snipcartOptions = implode('|', $trimmedValues); $response['customFields'] = [ [ 'name' => $product->optionLabel()->value(), 'options' => $snipcartOptions, 'required' => true ] ]; } echo json_encode($response);