4. Sistema Web para Cafetería con MVC – Modulo de Productos para CLIENTES y Carrito

4. Sistema Web para Cafetería con MVC – Modulo de Productos para CLIENTES y Carrito

Parte 1 – «Galería de Productos»

Ahora toca la parte para el diseño de una galería de productos, de la cual el cliente podrá seleccionar para añadir a su carrito de compras

productos.php

El método getProductos() del ControladorProductos, se ejecuta junto con la sección, de modo que cuando abramos productos.php en automático invocamos a dicho método

Método getProductos() – ControladorProductos

Este método se encarga de solicitar al método selectPrdocutos() del ModeloProductos el listado de los productos que tenemos en la BD, y de mostrarlos en forma de CARD’s dentro de la sección productos.php

Método selectProductos() – ModeloProductos

Este método lo utilizamos aquí para devolver un ARRAY con los productos que tenemos en la BD.

*** el mismo método ya lo habíamos utilizado para mostrar el listado de productos pero en el menú de Administración de productos.

Parte 2 – Añadir productos al carrito

La BD, en este punto a nuestro carrito podremos agregar productos, los cuales estarán asociados a un Usuario en un momento determinado, es decir, una vez confirmado el pedido.. el carrito volverá a quedar vacío, para poder hacer mas compras.

La vista productos.php

getProductos() como ya sabemos, muestra cada producto en un CARD y tambien muestra un botón Añadir Carrito

El botón Añadir al carrito, produce varios parametros GET en nuestra URL de la sección productos, el principal, es action, ya que por medio de el podremos ejecutar el método correspondiente en nuestro ControladorPedidos

Clase ControladorPedidos.php y método agregarProductoCarrito() – ControladorPedidos

Cuando presionamos el botón Añadir al carrito llegamos a este método, en el cual llenamos un arreglo con los datos necesarios para llenar la tabla de la BD correspondiente:

****** NOTA ******
id_usuario lo obtenemos en el método de login() de ControladorLogin
id_producto lo obtenemos por medio del parámetro GET al presionar Añadir al carrito, al igual que cantidad y precio

agregarProductoModelo() – ModeloPedidos

El Método tienen dos partes:
1.- Nos aseguramos por medio de una consulta SELECT, que no exista en la tabla carrito, un id de producto y un id de usuario, que coincida con el usuario actual.
2.- En caso de que no exista lo anterior, procedemos a añadir al carrito mediante un INSERT la información correspondiente.

Con lo anterior, garantizamos que en una SESIÓN determinada solamente exista un producto de un tipo para cada usuario.

Parte 3 – Sección Ver Carrito

Una vez que tenemos los productos en nuestro carrito, lo siguiente sería ver si estamos de acuerdo con lo que estamos ordenando.

carrito.php

Cuando damos click en la opción de Ver Carrito, invocamos a la sección carrito.php

carrito.php

Imagen 1 .- Tenemos la llamada al metodo listaProductosCarrito() que se encarga de solicitar la información de los productos que el usuario desea comprar
Imagen 2.- Para cada producto que el usuario añadió dibujamos una fila (renglón) de la tabla, pero ademas creamos un formulario dentro de cada fila, el cual nos permitirá modificar las cantidades de cada producto y ademas eliminar un producto en caso de no querer comprarlo.
Imagen 3.- Al pie de la tabla y usando las variables $total y $subtotal que se ven definidas en la Imagen 2, sumamos y acumulamos el valor resultante multiplicar el costo unitario del producto por la cantidad de ese producto y lo acumulamos en $total para todos los productos, teniendo así el total de la compra.

Método listaProductosCarrito() – ControladorPedidos

Este método se encarga de solicitar al método selectProductos() del ModeloPedidos, la información completa del producto que esta en el carrito, la cual se obtiene por medio de una VIEW de BD llamada vista_carrito

View vista_carrito

Así podremos ver la información completa de los product os del carrito.
Estructura de la vista

Método selectProductos() – ModeloPedidos

En este método realizamos la consulta SELECT a la vista pero con el condicional WHERE para traer solamente los productos que el usuario añadió al carrito.
Y retornamos un ARRAY con dicha información

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Entrada anterior 3. Sistema Web para Cafetería con MVC – Modulo de Productos
Entrada siguiente 5. Sistema Web para Cafetería con MVC – Carrito (modificar cantidades de productos y eliminar productos)