Créer une application de commerce électronique avec Flutter, Back4App et intégration de Stripe via Cloud Code
Développer une application de commerce électronique implique plusieurs composants, y compris les listes de produits, la fonctionnalité de panier d'achat, le traitement sécurisé des paiements, le suivi des commandes et les avis des utilisateurs. Combiner l'outil UI puissant de Flutter avec les services backend évolutifs de Back4App simplifie le processus de développement. De plus, l'intégration de Stripe pour le traitement des paiements via Back4App Cloud Code permet de gérer les transactions de manière sécurisée et professionnelle.
Dans ce tutoriel, vous allez créer une application de commerce électronique avec les fonctionnalités suivantes :
- Listes de Produits: Afficher les produits avec des images, des descriptions et des prix.
- Panier d'Achat: Ajouter et supprimer des produits du panier.
- Comptes Utilisateurs: Gérer les profils et adresses des utilisateurs.
- Paiement Sécurisé: Traiter les paiements de manière sécurisée en utilisant Stripe via Back4App Cloud Code.
- Suivi des Commandes: Suivre l'état et l'historique des commandes.
- Avis et Évaluations: Permettre aux utilisateurs de soumettre des avis et des évaluations.
Pour suivre ce tutoriel, vous aurez besoin de :
- Connaissances de base en Flutter et Dart.
- Un IDE ou éditeur de texte comme Visual Studio Code ou Android Studio.
- Node.js et npm installés pour le développement de Cloud Code.
Ouvrez votre terminal et exécutez :
Naviguez vers le répertoire du projet :
Ouvrez pubspec.yaml et ajoutez les dépendances suivantes :
Exécutez flutter pub get pour installer les paquets.
Remarque:
- parse_server_sdk_flutter pour l'intégration Back4App.
- provider pour la gestion d'état.
- cached_network_image pour un chargement d'images efficace.
- flutter_stripe pour l'intégration Stripe côté client.
- uuid pour générer des identifiants uniques.
- Cliquez sur "Créer une nouvelle application".
- Entrez "EcommerceApp" comme nom de l'application et cliquez sur "Créer".
Nous devons créer plusieurs classes dans Back4App :
- Produit
- Utilisateur (Classe intégrée)
- Commande
- Article de commande
- Avis
- Naviguez vers la "Base de données" section.
- Cliquez sur "Créer une classe".
- Sélectionnez "Personnalisé" et entrez "Produit" comme nom de classe.
- Ajoutez les colonnes suivantes:
- nom: Chaîne
- description: Chaîne
- prix: Nombre
- image: Fichier
- catégorie: Chaîne
- inventaire: Nombre
Créez une "Commande" classe avec les colonnes suivantes:
- utilisateur: Pointeur<_Utilisateur>
- montantTotal: Nombre
- statut: Chaîne (Valeurs: "en attente", "payé", "expédié", "livré")
- paymentIntentId: Chaîne (Pour suivre le paiement Stripe)
- adresseDeLivraison: Chaîne
Créer un "OrderItem" classe avec les colonnes suivantes :
- commande: Pointeur
- produit: Pointeur
- quantité: Nombre
- prix: Nombre
Créer une "Review" classe avec les colonnes suivantes :
- produit: Pointeur
- utilisateur: Pointeur<_Utilisateur>
- évaluation: Nombre
- commentaire: Chaîne
- Naviguez vers Paramètres de l'application > Sécurité et clés.
- Notez votre ID d'application et Clé client.
Ouvrez lib/main.dart et modifiez-le :
Remplacez 'VOTRE_ID_APPLICATION' et 'VOTRE_CLÉ_CLIENT' par vos identifiants Back4App.
Créez un répertoire models sous lib et ajoutez product.dart:
Créez un répertoire services sous lib et ajoutez product_service.dart:
Créer un répertoire d'écrans sous lib et ajouter home_screen.dart:
Créer product_detail_screen.dart sous lib/screens/:
Ajouter auth_service.dart sous lib/services/:
Créer login_screen.dart et signup_screen.dart sous lib/screens/.
Écran de connexion:
Écran d'inscription:
Dans main.dart, enveloppez le MaterialApp avec MultiProvider:
Modifiez main.dart pour vérifier l'état d'authentification :
Ajouter cart_service.dart sous lib/services/:
Ajouter cart_screen.dart sous lib/screens/:
- Obtenez votre Clé publique et Clé secrète depuis le tableau de bord Stripe sous Développeurs > Clés API.
Back4App prend en charge les fonctions Cloud Code écrites en JavaScript. Nous allons écrire des fonctions Cloud Code pour gérer le traitement des paiements.
- Dans le tableau de bord de votre application Back4App, allez à Paramètres de l'application > Fonctions Cloud Code.
- Cliquez sur "Modifier le code" pour ouvrir l'éditeur de Cloud Code.
Dans le terminal Cloud Code (fourni dans l'éditeur), exécutez :
Remarque: Le Cloud Code de Back4App utilise la version 14.x de Node.js, donc assurez-vous de la compatibilité.
Créez ou modifiez main.js dans l'éditeur de Cloud Code :
Remplacez 'VOTRE_CLE_SECRETE_STRIPE' par votre véritable clé secrète Stripe.
Remarque de sécurité: Ne jamais exposer votre clé secrète côté client. Gardez-la sécurisée dans le Cloud Code.
Cliquez sur "Déployer" dans l'éditeur de Cloud Code pour déployer vos fonctions.
Dans main.dart, après Parse().initialize, ajoutez :
Remplacez 'VOTRE_CLE_PUBLIABLE_STRIPE' par votre clé publiable Stripe.
Ajoutez checkout_screen.dart sous lib/screens/:
Créer order_confirmation_screen.dart sous lib/screens/:
Modifier la _processPayment méthode pour enregistrer les détails de la commande :
Ajouter order_service.dart sous lib/services/:
Ajouter order.dart sous lib/models/:
Ajouter orders_screen.dart sous lib/screens/:
Ajouter review_service.dart sous lib/services/:
Ajouter review.dart sous lib/models/:
Dans product_detail_screen.dart, ajoutez une section pour afficher et soumettre des avis.
Dans ce tutoriel complet, vous avez construit une application de commerce électronique en utilisant Flutter et Back4App, intégrée avec Stripe pour un traitement sécurisé des paiements via Cloud Code. Vous avez mis en œuvre des fonctionnalités clés telles que les listes de produits, la fonctionnalité de panier d'achat, l'authentification des utilisateurs, le suivi des commandes et les avis.
- Intégration Back4App: Simplifie la gestion du backend pour votre application Flutter.
- Intégration Stripe via Cloud Code: Traite les paiements de manière sécurisée sans exposer de clés sensibles.
- Architecture Modulaire: La séparation des services et des modèles améliore la maintenabilité.
- Améliorer la sécurité: Mettre en œuvre une gestion appropriée des erreurs et une validation des entrées.
- Améliorations UI/UX: Affiner l'interface utilisateur pour une meilleure expérience utilisateur.
- Gestion des stocks: Mettre à jour l'inventaire des produits lors de l'achat.
- Notifications par e-mail: Envoyer des e-mails de confirmation de commande aux utilisateurs.
- Panneau d'administration: Créer une interface d'administration pour gérer les produits et les commandes.
Bonne programmation !