Construyendo una aplicación de comercio electrónico con Flutter, Back4App y la integración de Stripe a través del código en la nube
Desarrollar una aplicación de comercio electrónico implica múltiples componentes, incluyendo listados de productos, funcionalidad de carrito de compras, procesamiento de pagos seguro, seguimiento de pedidos y reseñas de usuarios. Combinar el potente kit de herramientas de UI de Flutter con los servicios backend escalables de Back4App simplifica el proceso de desarrollo. Además, integrar Stripe para el procesamiento de pagos a través de Back4App Cloud Code permite un manejo de transacciones seguro y profesional.
En este tutorial, construirás una aplicación de comercio electrónico con las siguientes características:
- Listados de Productos: Mostrar productos con imágenes, descripciones y precios.
- Carrito de Compras: Agregar y eliminar productos del carrito.
- Cuentas de Usuario: Gestionar perfiles y direcciones de usuario.
- Pago Seguro: Procesar pagos de manera segura utilizando Stripe a través de Back4App Cloud Code.
- Seguimiento de Pedidos: Rastrear el estado y la historia de los pedidos.
- Reseñas y Calificaciones: Permitir a los usuarios enviar reseñas y calificaciones.
Para seguir este tutorial, necesitarás:
- Conocimientos básicos de Flutter y Dart.
- Un IDE o editor de texto como Visual Studio Code o Android Studio.
- Node.js y npm instalados para el desarrollo de Cloud Code.
Abre tu terminal y ejecuta:
Navega al directorio del proyecto:
Abre pubspec.yaml y agrega las siguientes dependencias:
Ejecuta flutter pub get para instalar los paquetes.
Nota:
- parse_server_sdk_flutter para la integración de Back4App.
- provider para la gestión del estado.
- cached_network_image para la carga eficiente de imágenes.
- flutter_stripe para la integración de Stripe en el lado del cliente.
- uuid para generar identificadores únicos.
- Haz clic en "Crear nueva App".
- Ingresa "EcommerceApp" como el nombre de la aplicación y haz clic en "Crear".
Necesitamos crear varias clases en Back4App:
- Producto
- Usuario (Clase incorporada)
- Orden
- OrdenItem
- Reseña
- Navegar a la "Base de datos" sección.
- Haga clic en "Crear una clase".
- Seleccione "Personalizado" e ingrese "Producto" como el nombre de la clase.
- Agregue las siguientes columnas:
- nombre: Cadena
- descripción: Cadena
- precio: Número
- imagen: Archivo
- categoría: Cadena
- inventario: Número
Cree una "Clase de Pedido" con las siguientes columnas:
- usuario: Puntero<_Usuario>
- totalCantidad: Número
- estado: Cadena (Valores: "pendiente", "pagado", "enviado", "entregado")
- paymentIntentId: Cadena (Para rastrear el pago de Stripe)
- direcciónDeEnvio: Cadena
Crea un "OrderItem" clase con las siguientes columnas:
- orden: Puntero
- producto: Puntero
- cantidad: Número
- precio: Número
Crea una "Review" clase con las siguientes columnas:
- producto: Puntero
- usuario: Puntero<_Usuario>
- calificación: Número
- comentario: Cadena
- Navegar a Configuración de la Aplicación > Seguridad y Claves.
- Anote su ID de Aplicación y Clave de Cliente.
Abrir lib/main.dart y modificarlo:
Reemplace 'YOUR_APPLICATION_ID' y 'YOUR_CLIENT_KEY' con sus credenciales de Back4App.
Crea un directorio models bajo lib y añade product.dart:
Crea un directorio services bajo lib y añade product_service.dart:
Crea screens directorio bajo lib y añade home_screen.dart:
Crear product_detail_screen.dart bajo lib/screens/:
Agregar auth_service.dart bajo lib/services/:
Crear login_screen.dart y signup_screen.dart bajo lib/screens/.
Pantalla de inicio de sesión:
Pantalla de registro:
En main.dart, envuelve el MaterialApp con MultiProvider:
Modifica main.dart para verificar el estado de autenticación:
Agregar cart_service.dart bajo lib/services/:
Agregar cart_screen.dart bajo lib/screens/:
- Obtén tu Clave Publicable y Clave Secreta desde el Panel de Control de Stripe en Desarrolladores > Claves API.
Back4App admite funciones de Cloud Code escritas en JavaScript. Escribiremos funciones de Cloud Code para manejar el procesamiento de pagos.
- En el panel de control de tu aplicación Back4App, ve a Configuración de la Aplicación > Funciones de Cloud Code.
- Haz clic en "Editar código" para abrir el editor de Cloud Code.
En la terminal de Cloud Code (proporcionada en el editor), ejecuta:
Nota: El Cloud Code de Back4App utiliza la versión 14.x de Node.js, así que asegúrate de la compatibilidad.
Crea o modifica main.js en el editor de Cloud Code:
Reemplaza 'YOUR_STRIPE_SECRET_KEY' con tu clave secreta de Stripe real.
Nota de Seguridad: Nunca expongas tu clave secreta en el lado del cliente. Mantenla segura en el Cloud Code.
Haz clic en "Desplegar" en el editor de Cloud Code para desplegar tus funciones.
En main.dart, después de Parse().initialize, añade:
Reemplaza 'TU_CLAVE_PUBLICABLE_DE_STRIPE' con tu clave publicable de Stripe.
Añade checkout_screen.dart bajo lib/screens/:
Crear order_confirmation_screen.dart bajo lib/screens/:
Modifica el _processPayment método para guardar los detalles de la orden:
Agregar order_service.dart bajo lib/services/:
Agregar order.dart bajo lib/models/:
Agregar orders_screen.dart bajo lib/screens/:
Agregar review_service.dart bajo lib/services/:
Agregar review.dart bajo lib/models/:
En product_detail_screen.dart, agrega una sección para mostrar y enviar reseñas.
En este tutorial completo, has construido una aplicación de comercio electrónico utilizando Flutter y Back4App, integrada con Stripe para el procesamiento seguro de pagos a través de Cloud Code. Implementaste características clave como listados de productos, funcionalidad de carrito de compras, autenticación de usuarios, seguimiento de pedidos y reseñas.
- Integración de Back4App: Simplifica la gestión del backend para tu aplicación Flutter.
- Integración de Stripe a través de Cloud Code: Procesa pagos de forma segura sin exponer claves sensibles.
- Arquitectura Modular: Separar servicios y modelos mejora la mantenibilidad.
- Mejorar la seguridad: Implementar un manejo adecuado de errores y validación de entradas.
- Mejoras de UI/UX: Refinar la interfaz de usuario para una mejor experiencia del usuario.
- Gestión de inventario: Actualizar el inventario de productos al realizar una compra.
- Notificaciones por correo electrónico: Enviar correos electrónicos de confirmación de pedidos a los usuarios.
- Panel de administración: Crear una interfaz de administración para gestionar productos y pedidos.
¡Feliz codificación!