Tienda Online con Stripe, Filament 3 y Carrito de Compras

Información del proyecto descargable

Este proyecto incluye una tienda en línea desarrollada con Laravel Framework. Además, incluye una administración completa con Filament 3 para gestionar usuarios, productos, pedidos y líneas de pedido.

Cursos recomendados para entender este proyecto

  • Curso de Laravel 11: En este curso desarrollamos una pequeña tienda sin pagos, aquí la utilizamos, pero le añadimos el sistema de pagos con Stripe.

  • WSL 2 en Windows con Laravel Sail: Si te encuentras trabajando en Windows y no sabes nada acerca de Laravel Sail, no te lo puedes perder.

  • Ruta de Filament 3: Todo lo desarrollado en este proyecto sale de esa ruta, no tiene desperdicio.

  • Laravel Cashier: En este curso aprenderás a configurar de forma completa tu cuenta de Stripe, el portal, los Webhooks, y todo lo que necesites relacionado con el proceso de pagos.

Formas de utilizar este proyecto

  • Como estudio, si te interesa aprender a desarrollar una tienda online, aquí tienes un ejemplo completo para que puedas ver como llevar a cabo este desarrollo.

  • Como punto de partida, si te gusta la idea, y quieres llevarla al siguiente nivel, tienes un punto de partida perfecto. Si en este punto necesitas mis servicios, puedes contactar conmigo a través del formulario de contacto y decirme qué necesitas.

Funcionalidades del Panel de Administración:

  • Gestión de Usuarios: Crea y administra usuarios desde el panel de administración. Se enviará automáticamente un correo electrónico de bienvenida a los usuarios recién creados.

  • Integración con Stripe: Los usuarios creados se registrarán automáticamente en Stripe para futuras transacciones, lo que facilita el procesamiento de pagos de forma segura.

  • Gestión de Productos: Sube imágenes, define precios y otros detalles para tus productos. Mantén tu catálogo siempre actualizado y atractivo para tus clientes.

  • Gestión de Pedidos: Realiza un seguimiento de los pedidos y las líneas de pedidos de manera eficiente desde el panel de administración.

Funcionalidades de la tienda

  • Portal de Stripe: Conecta a tus clientes con Stripe a través de su portal, si tienes dudas, revisa este curso, cubrimos ese proceso de forma completa. El proyecto aplica la configuración para añadir métodos de pago en formato tarjeta, si deseas añadir métodos adicionales como PayPal a través de Stripe, deberás ajustar los Webhooks y la base de datos.

  • Carrito de compras: Hacemos uso del carrito de compras desarrollado en el curso de Laravel 11, pero con algunas modificaciones y mejoras.

  • Notificaciones por correo electrónico: Al añadir o eliminar un método de pago o al realizar un pedido, informamos al cliente del proceso realizado.

  • Webhooks: Integramos los Webhooks de Stripe de forma segura haciendo uso de la firma para realizar el proceso de pago de la mejor forma.

Dependencias utilizadas

Archivo .env

Crea el archivo .env a partir del archivo .env.example y ajusta tus variables de entorno.

Recuerda que el host de la conexión con MySQL es el servicio de docker-compose, así que las credenciales de base de datos deberían ser algo similar a lo siguiente:

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=sail
DB_PASSWORD=password

Importante, para que el envío de correos funcione sin procesos en background, define lo siguiente:

QUEUE_CONNECTION=sync

En entornos de producción, ajusta la siguiente variable del .env para decir qué dominios utilizados en los correos electrónicos podrán acceder al panel admin, más información.

[email protected]

Cambia yourdomain.com por el dominio que deba tener acceso al panel.

Añade tus credenciales de Stripe para contectar tu tienda con Stripe:

STRIPE_KEY=
STRIPE_SECRET=
CASHIER_CURRENCY=eur
CASHIER_CURRENCY_LOCALE=es_ES
STRIPE_WEBHOOK_SECRET=

Lanzar proyecto con Sail

docker run --rm \
    -u "$(id -u):$(id -g)" \
    -v $(pwd):/var/www/html \
    -w /var/www/html \
    laravelsail/php83-composer:latest \
    composer install --ignore-platform-reqs

sail build
sail up -d
sail artisan key:generate
sail artisan storage:link
sail artisan migrate:fresh --seed
sail npm install && sail npm run dev

Comparte tu entorno Laravel Sail con Stripe para que se pueda comunicar en tiempo de desarrollo:

sail share

Define tu Webhook con la URL que el comando sail share te haya proporcionado, te recomiendo la URL sin HTTPS y con el puerto 8080:

sail artisan cashier:webhook --url="{url}/stripe/webhook"

Añade los siguientes eventos a tu Webhook para que Stripe se pueda comunicar correctamente con tu proyecto:

charge.succeeded
payment_method.attached
payment_method.detached

Ya puedes visitar el panel /admin y empezar a gestionar tu tienda.

¡Gracias por tu interés en nuestro proyecto! 😊

Cursosdesarrolloweb Cursosdesarrolloweb

Cursosdesarrolloweb es una plataforma educativa con cursos y tutoriales en texto y vídeo.

Términos y condiciones Política de privacidad Formulario de contacto

Copyright 2024 © Todos los derechos reservados.

Contacto