Plantillas de Flutter

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

49min

Introducción

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.

Requisitos Previos

Para seguir este tutorial, necesitarás:

  • Flutter SDK instalado en tu máquina. Sigue la guía de instalación de Flutter.
  • Conocimientos básicos de Flutter y Dart.
  • Un IDE o editor de texto como Visual Studio Code o Android Studio.
  • Una cuenta de Back4App. Regístrate en Back4App.
  • Cuenta de Stripe. Regístrate en Stripe para obtener claves API.
  • Node.js y npm instalados para el desarrollo de Cloud Code.



Paso 1 – Configuración del Proyecto Flutter

1.1. Crear un Nuevo Proyecto Flutter

Abre tu terminal y ejecuta:

Bash


Navega al directorio del proyecto:

Bash


1.2. Agregar Dependencias

Abre pubspec.yaml y agrega las siguientes dependencias:

YAML


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.

Paso 2 – Configuración de Back4App

2.1. Crear una Nueva Aplicación en Back4App

  1. Inicia sesión en tu panel de Back4App.
  2. Haz clic en "Crear nueva App".
  3. Ingresa "EcommerceApp" como el nombre de la aplicación y haz clic en "Crear".

2.2. Configurar los Modelos de Datos

Necesitamos crear varias clases en Back4App:

  • Producto
  • Usuario (Clase incorporada)
  • Orden
  • OrdenItem
  • Reseña

2.2.1. Clase Producto

  1. Navegar a la "Base de datos" sección.
  2. Haga clic en "Crear una clase".
  3. Seleccione "Personalizado" e ingrese "Producto" como el nombre de la clase.
  4. Agregue las siguientes columnas:
    • nombre: Cadena
    • descripción: Cadena
    • precio: Número
    • imagen: Archivo
    • categoría: Cadena
    • inventario: Número

2.2.2. Clase de Pedido

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

2.2.3. Clase de Item de Pedido

Crea un "OrderItem" clase con las siguientes columnas:

  • orden: Puntero
  • producto: Puntero
  • cantidad: Número
  • precio: Número

2.2.4. Clase de Reseña

Crea una "Review" clase con las siguientes columnas:

  • producto: Puntero
  • usuario: Puntero<_Usuario>
  • calificación: Número
  • comentario: Cadena

2.3. Obtener Credenciales de la Aplicación

  1. Navegar a Configuración de la Aplicación > Seguridad y Claves.
  2. Anote su ID de Aplicación y Clave de Cliente.

Paso 3 – Implementación de la Gestión de Productos

3.1. Inicializando Parse en Flutter

Abrir lib/main.dart y modificarlo:

Dart


Reemplace 'YOUR_APPLICATION_ID' y 'YOUR_CLIENT_KEY' con sus credenciales de Back4App.

3.2. Creando el Modelo de Producto

Crea un directorio models bajo lib y añade product.dart:

Dart


3.3. Implementando el Servicio de Producto

Crea un directorio services bajo lib y añade product_service.dart:

Dart


3.4. Creando la Pantalla de Inicio

Crea screens directorio bajo lib y añade home_screen.dart:

Dart


3.5. Pantalla de Detalle del Producto

Crear product_detail_screen.dart bajo lib/screens/:

Dart


Paso 4 – Implementación de Cuentas de Usuario

4.1. Servicio de Autenticación

Agregar auth_service.dart bajo lib/services/:

Dart


4.2. Pantallas de Autenticación

Crear login_screen.dart y signup_screen.dart bajo lib/screens/.

Pantalla de inicio de sesión:

Dart


Pantalla de registro:

Dart


4.3. Actualizar Main para Incluir AuthService

En main.dart, envuelve el MaterialApp con MultiProvider:

Dart


4.4. Redirección Basada en el Estado de Autenticación

Modifica main.dart para verificar el estado de autenticación:

Dart


Paso 5 – Funcionalidad del Carrito de Compras

5.1. Crear Servicio de Carrito

Agregar cart_service.dart bajo lib/services/:

Dart


5.2. Crear Pantalla de Carrito

Agregar cart_screen.dart bajo lib/screens/:

Dart


Paso 6 – Pago Seguro con Integración de Stripe a través de Cloud Code

6.1. Configurar Cuenta de Stripe

  1. Regístrate para una cuenta de Stripe.
  2. Obtén tu Clave Publicable y Clave Secreta desde el Panel de Control de Stripe en Desarrolladores > Claves API.

6.2. Instalar SDK de Stripe en Cloud Code

Back4App admite funciones de Cloud Code escritas en JavaScript. Escribiremos funciones de Cloud Code para manejar el procesamiento de pagos.

6.2.1. Crear Proyecto de Cloud Code

  1. En el panel de control de tu aplicación Back4App, ve a Configuración de la Aplicación > Funciones de Cloud Code.
  2. Haz clic en "Editar código" para abrir el editor de Cloud Code.

6.2.2. Inicializar npm e Instalar Paquete de Stripe

En la terminal de Cloud Code (proporcionada en el editor), ejecuta:

Bash


Nota: El Cloud Code de Back4App utiliza la versión 14.x de Node.js, así que asegúrate de la compatibilidad.

6.3. Crear Función en la Nube para el Intento de Pago

Crea o modifica main.js en el editor de Cloud Code:

JS


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.

6.4. Desplegar Cloud Code

Haz clic en "Desplegar" en el editor de Cloud Code para desplegar tus funciones.

6.5. Implementar Pago en Flutter

6.5.1. Inicializar Stripe en Flutter

En main.dart, después de Parse().initialize, añade:

Dart


Reemplaza 'TU_CLAVE_PUBLICABLE_DE_STRIPE' con tu clave publicable de Stripe.

6.5.2. Crear Pantalla de Checkout

Añade checkout_screen.dart bajo lib/screens/:

Dart


6.5.3. Manejar la Confirmación de Pago

Crear order_confirmation_screen.dart bajo lib/screens/:

Dart


6.6. Guardando la Orden en Back4App

Modifica el _processPayment método para guardar los detalles de la orden:

Dart


Paso 7 – Seguimiento de Orden

7.1. Crear Servicio de Orden

Agregar order_service.dart bajo lib/services/:

Dart


Paso 7 – Seguimiento de Orden

7.2. Crear Modelo de Pedido

Agregar order.dart bajo lib/models/:

Dart


7.3. Crear Pantalla de Pedidos

Agregar orders_screen.dart bajo lib/screens/:

Dart


Paso 8 – Reseñas y Calificaciones

8.1. Crear Servicio de Reseñas

Agregar review_service.dart bajo lib/services/:

Dart


8.2. Crear Modelo de Reseña

Agregar review.dart bajo lib/models/:

Dart


8.3. Actualizar la pantalla de detalles del producto

En product_detail_screen.dart, agrega una sección para mostrar y enviar reseñas.

Dart


Conclusión

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.

Puntos Clave

  • 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.

Próximos Pasos

  • 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.

Recursos adicionales

¡Feliz codificación!