3.4 KiB
3.4 KiB
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
loadStripeetredirectToCheckoutcar 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 :
VITE_API_URL=http://localhost:8000
Pour la production, utilisez :
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 StripeorderData(object, requis) - Données de la commandesuccessUrl(string, requis) - URL de succèscancelUrl(string, requis) - URL d'annulationquantity(number, optionnel) - Quantité (défaut: 1)customerEmail(string, optionnel) - Email du client
Retour :
{
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 commandesessionId(string, requis) - ID de session Stripe
Retour :
{
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
- Pas de gestion d'authentification : Le site n'a pas besoin d'authentification, contrairement au backoffice
- URLs directes : L'API retourne directement l'URL de checkout Stripe, pas besoin de
redirectToCheckout - Format de réponse : Les réponses sont structurées différemment mais compatibles avec le code existant
Tests
Pour tester la migration :
- Vérifiez que
VITE_API_URLest correctement configuré - 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
localStoragepour la page de confirmation - La structure des données reste identique pour assurer la compatibilité