34 🛒 INICIO MÓDULO CARRITO | Migración, Modelo y Acción Add to Cart | Laravel 12 E-commerce

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

Descripción

Lección 34: 🛒 Inicio Módulo Carrito | Add to Cart y Ajustes al Wishlist

Este capítulo marca el inicio del módulo de carrito de compras, una funcionalidad indispensable para el proceso de checkout. Antes de la implementación principal, se corrigen y completan detalles pendientes del módulo de favoritos.

Ajustes y Finalización del Módulo Favoritos

Se realizan correcciones y se añade la acción de eliminación para completar el módulo:

  • Validación de Acceso 🔒: Se implementa una verificación de autenticación en la función index de favoritos. Si un usuario no está logueado, se le redirige a la página de login con un mensaje de aviso [02:24].
  • Eliminación de Favoritos 🗑️:
    • Se define una ruta DELETE con el método destroy para eliminar un producto favorito específico [04:46].
    • La lógica utiliza el ID del registro de favorito para buscarlo y eliminarlo de la tabla productos_favoritos [09:41].
  • Enlace a Detalle del Producto 👁️: El nombre de cada producto en la lista de favoritos se convierte en un hipervínculo que lleva al usuario a la página de detalle del producto, permitiendo revisar la información antes de comprar [10:46].

🛍️ Inicio del Módulo Carrito (Cart)

Se establece la estructura fundamental para manejar los productos que un usuario desea comprar:

  • Diseño de Base de Datos 🗄️: Se crea la tabla carritos para almacenar los registros. A diferencia de favoritos, esta tabla incluye un campo clave:
    • usuario_ID: Para saber a qué cliente pertenece el registro.
    • producto_ID: Para identificar el producto.
    • cantidad: De tipo integer, para registrar cuántas unidades del producto desea comprar el usuario [13:35], [17:26].
  • Modelo y Relaciones 🔗: En el modelo Carrito, se definen las relaciones belongsTo tanto para el User como para el Producto, facilitando consultas futuras [20:25].
  • Rutas Definidas 🛣️: Se establecen las rutas base para las cinco acciones principales del carrito [21:53]:
    1. Ver Carrito (GET /carrito).
    2. Agregar al Carrito (POST /carrito/agregar).
    3. Actualizar Cantidad (PUT /carrito/actualizar).
    4. Eliminar Producto (DELETE /carrito/{id}).
    5. Vaciar Carrito (POST /carrito/limpiar).
  • Contador en Encabezado: Se agrega lógica para mostrar el número total de productos en el carrito en el header del sitio, visible solo para usuarios autenticados [27:40].

Acción Add to Cart (Método Store)

Se implementa la lógica principal para agregar un producto al carrito:

  • Envío de Cantidad por Defecto: Al agregar un producto desde la vista principal, se asume por defecto una cantidad de 1 mediante un campo hidden [31:06].
  • Lógica de Inserción Condicional ⚖️:
    • Producto Existente: Si el producto que se intenta añadir ya está en el carrito del usuario, la lógica suma la nueva cantidad a la cantidad existente en el registro [33:13].
    • Producto Nuevo: Si el producto no existe en el carrito, se crea un nuevo registro con el usuario_ID, producto_ID y la cantidad inicial [34:04].
  • Redirección: Tras el proceso, el usuario es redirigido a la vista de carrito (web.carrito) [34:40].