124 lines
3.4 KiB
Markdown
124 lines
3.4 KiB
Markdown
# 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é
|
|
|