40 ✅ Finalizando la Venta: Guardando Detalles de Orden y Actualizando el Stock de Productos
Duración: 17 min
Módulo: 💳 Carrito, Checkout y Pasarela de Pagos 34-42
Lección 7 de
9
Descripción
Lección 40: ✅ Finalizando la Venta: Guardando Detalles de Orden y Actualizando el Stock de Productos
Este capítulo es crucial, ya que consolida todas las acciones de la venta, garantizando la integridad de los datos mediante el uso de transacciones de base de datos.
🛡️ Garantía de Integridad con Transacciones
Para asegurar que todas las operaciones se completen o ninguna lo haga, se implementa una transacción de base de datos (DB Transaction) [01:15]:
- Inicio de Transacción 🚀: Se utiliza DB::beginTransaction() al inicio de la lógica de la función gracias del PayPalController [01:51].
- Finalización con Commit 👍: Si las múltiples consultas se ejecutan sin errores, se usa DB::commit() para hacer permanentes todos los cambios en la base de datos [08:43].
- Rollback en Caso de Error ⏪: Si ocurre cualquier fallo durante el proceso (ej. un error de tecleo o una excepción), se ejecuta DB::rollBack() para revertir todos los cambios realizados, manteniendo la base de datos limpia y consistente [02:23].
✍️ Registro y Procesamiento de la Venta
Dentro de la transacción, se ejecutan en orden las cuatro acciones finales del checkout [02:49]:
- Creación de la Orden Principal 🧾: Se insertan los datos principales en la tabla órdenes (ID de usuario, total, divisa, estados y la dirección de envío capturada de la sesión) [03:08].
- Registro del Detalle de la Orden 🛒: Se itera sobre los productos del carrito (obtenidos con Carritos::where('usuario_ID', $usuario_ID)) y se registra cada uno en la tabla detalle_órdenes, guardando el precio de venta fijo y la cantidad comprada [03:45].
- Descuento del Stock ➖: Por cada producto registrado en el detalle, se busca el producto en la tabla productos y se actualiza su campo stock descontando la cantidad vendida [07:34].
- Limpieza del Carrito 🗑️: Finalmente, se eliminan todos los productos del carrito del usuario, dejando el carrito vacío para futuras compras [08:16].
🎉 Notificación al Cliente
Lecciones
🚀 Configuración Inicial y Sistema de Administración 1-6
🛡️ Roles, Permisos y Gestión de Usuarios (Spatie) 7-16
Lección 4. 10 ⚙️ CRUD Completo de Roles | Spatie Roles & Permisos | Ecommerce Laravel 12 FullStack
25 min
Lección 6. 12 🔐 Ajustes en el Login y Seeder de Usuarios | Sistema Ecommerce Laravel 12 FullStack
40 min
Lección 8. 14 🔍 Buscador y Detalle de Usuarios (Acción Show) | Ecommerce Laravel 12 FullStack
32 min
📦 Módulos Esenciales (Categorías y Productos) 17-24
🛒 Tienda Online (Frontend Shop) y Funcionalidades 25-33
Lección 4. 28 🛒 Vista Show Dinámica del Producto | Descripción y Datos Relacionados | Laravel 12
15 min
💳 Carrito, Checkout y Pasarela de Pagos 34-42
Lección 4. 37 💳 PASARELA DE PAGOS PayPal | Integración y Lógica de Checkout en Laravel 12 E-commerce
27 min
Lección 5. 38 ✅ PAGO COMPLETADO y REGISTRO de Pedido | Lógica Final de Venta con PayPal y Laravel 12
11 min
⚙️ Gestión de Órdenes, Perfiles y Características Avanzadas 43-61
Lección 5. 47 🔗 BUSCADOR AVANZADO: Filtrando Tablas Relacionadas con WHERE HAS y Joins en Laravel 12
10 min
📊 Análisis de Datos, Despliegue y Conclusión 62-68
Apoya este proyecto
Si te gusta nuestro contenido, ¡apóyanos con una donación!
Donar por Airtm Donar por Binance¡Gracias por tu apoyo! ❤️