# Migration du site vers l'API Laravel Ce document décrit la migration du projet `site` de Supabase vers l'API Laravel. ## Changements effectués ### 1. Remplacement du client Supabase **Fichier supprimé :** - `src/lib/supabaseClient.js` **Fichier créé :** - `src/lib/apiClient.js` - Client API pour communiquer avec l'API Laravel ### 2. Adaptation des pages #### OrderPage.jsx - **Avant :** Utilisait `supabase.functions.invoke('create-checkout-session')` - **Après :** Utilise `api.stripe.createCheckoutSession()` - Suppression de l'utilisation de `loadStripe` et `redirectToCheckout` car l'API retourne directement l'URL de checkout - Simplification du code de redirection vers Stripe #### ConfirmationPage.jsx - **Avant :** Utilisait `supabase.functions.invoke('send-order-confirmation-email')` - **Après :** Utilise `api.orders.confirmOrder()` ### 3. Dépendances **Supprimé :** - `@supabase/supabase-js` (plus nécessaire) **Conservé :** - `@stripe/stripe-js` (toujours utilisé pour la validation côté client si nécessaire) ## Configuration ### Variables d'environnement Ajoutez dans votre fichier `.env` : ```env VITE_API_URL=http://localhost:8000 ``` Pour la production, utilisez : ```env VITE_API_URL=https://api.ditesleenchanson.fr ``` ## Structure de l'API Client Le client API (`apiClient.js`) expose : ### `api.stripe.createCheckoutSession(options)` Crée une session de checkout Stripe. **Paramètres :** - `priceId` (string, requis) - ID du prix Stripe - `orderData` (object, requis) - Données de la commande - `successUrl` (string, requis) - URL de succès - `cancelUrl` (string, requis) - URL d'annulation - `quantity` (number, optionnel) - Quantité (défaut: 1) - `customerEmail` (string, optionnel) - Email du client **Retour :** ```javascript { data: { sessionId: string, url: string // URL de redirection Stripe }, error: null | { message: string, status: number } } ``` ### `api.orders.confirmOrder(orderData, sessionId)` Confirme une commande et envoie les emails. **Paramètres :** - `orderData` (object, requis) - Données de la commande - `sessionId` (string, requis) - ID de session Stripe **Retour :** ```javascript { data: { success: boolean, orderId: string, customerEmail: string, emailSent: boolean, customerEmailError: string | null, adminEmailSent: boolean, adminEmailError: string | null }, error: null | { message: string, status: number } } ``` ## Différences avec Supabase 1. **Pas de gestion d'authentification** : Le site n'a pas besoin d'authentification, contrairement au backoffice 2. **URLs directes** : L'API retourne directement l'URL de checkout Stripe, pas besoin de `redirectToCheckout` 3. **Format de réponse** : Les réponses sont structurées différemment mais compatibles avec le code existant ## Tests Pour tester la migration : 1. Vérifiez que `VITE_API_URL` est correctement configuré 2. Testez le processus de commande complet : - Sélection d'un produit - Remplissage du formulaire - Création de la session Stripe - Redirection vers Stripe - Confirmation après paiement - Réception des emails ## Notes - Le code de redirection vers Stripe a été simplifié car l'API retourne directement l'URL - Les données de commande sont toujours stockées dans `localStorage` pour la page de confirmation - La structure des données reste identique pour assurer la compatibilité