connexion nouvelle api
This commit is contained in:
123
MIGRATION_API.md
Normal file
123
MIGRATION_API.md
Normal file
@@ -0,0 +1,123 @@
|
||||
# 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é
|
||||
|
||||
Reference in New Issue
Block a user