36 🧹 GESTIÓN TOTAL del Carrito | Actualizar Cantidad, Eliminar Producto y Vaciar Carrito | Laravel

Duración: 22 min
Módulo: 💳 Carrito, Checkout y Pasarela de Pagos 34-42 Lección 3 de 9

Descripción

Lección 36: 🧹 Gestión Total del Carrito | Actualización, Eliminación y Limpieza Masiva

Este capítulo se centra en completar las funcionalidades esenciales del módulo de carrito de compras, implementando las tres acciones clave para la gestión de ítems: eliminar un producto, actualizar su cantidad y vaciar el carrito por completo.

Eliminación de un Producto del Carrito

Se habilita la opción para que el usuario pueda remover productos individualmente de su lista de compra:

  • Ruta y Método: Se utiliza la ruta DELETE previamente definida, que mapea a la función destroy del controlador [01:45].
  • Implementación del Formulario 🗑️: Se envuelve el botón "Borrar" dentro de un formulario con el método DELETE, el cual envía el ID del registro de carrito para su eliminación [03:07].
  • Lógica destroy: El método busca el registro del carrito por su ID y lo elimina de la base de datos [05:30].
  • Resultado Dinámico: Al eliminar, el carrito se refresca automáticamente, y los cálculos de subtotal y total se ajustan inmediatamente [05:56].

🔄 Actualización Dinámica de Cantidad

Se optimiza el proceso de actualización para que ocurra al momento, sin depender de un botón general "Actualizar carrito":

  • Formulario por Producto: Los botones de incrementar (+) y disminuir (-) en el carrito se integran en un formulario con el método PUT (utilizando el spoofing de Laravel) [09:38].
  • Envío de Datos: Cada formulario envía el ID del registro del carrito y el nuevo valor de la cantidad [11:17].
  • Lógica update:
    • Se valida que el carrito_ID y la cantidad sean requeridos [12:22].
    • Se busca el registro del carrito por su ID, se le asigna la nueva cantidad y se guarda el cambio [12:44].
  • Cálculos Instantáneos: La actualización modifica el subtotal del producto y el total general de forma dinámica, reflejando el cambio de cantidad en tiempo real [13:07].

🧹 Limpieza Masiva del Carrito

Se implementa una función para que el usuario pueda vaciar su carrito con una sola acción:

  • Ruta y Función: Se utiliza la ruta POST definida para la acción "Limpiar carrito", que llama a la función limpiar [14:25].
  • Lógica limpiar: La función utiliza el modelo Carrito para buscar y eliminar todos los registros que pertenezcan al usuario actualmente autenticado [16:25].
  • Finalización del Módulo: Una vez completadas estas acciones, el módulo de carrito queda listo para el paso final: la pasarela de pagos [21:02].