Creación de un carro de la compra con CodeIgniter
El objetivo de esta sesion es dar una pequeña introducción de cómo crear un carro de la compra con CodeIgniter. La idea es usar base de datos, formularios y sesiones para mantener la información del usuario y de los libros que añada al carro de la compra durante toda la visita de nuestra aplicación.
Estado del arte
Actualmente existen multitud de carritos de la compra realizados en PHP, por ejemplo:
osCommerce (http://www.oscommerce.com)
Demostración online http://demo.oscommerce.com/index.php
Magento http://www.magentocommerce.com/
PrestaShop http://www.prestashop.com/
Nosotros vamos a analizar uno de los primeros carritos de carro desarrollados con PHP. Actualmente se ha visto superado por Magento y PrestaShop pero nos sirve perfectamente para entender la funcionalidad que queremos desarrollar el proyecto de integración.
En la siguiente figura podemos ver una captura de la página principal de la demostración online del carrito de la compra.
Visualización de un producto
En la figura que aparece a continuación podemos ver la ficha de un producto, por ejemplo, la de la película "Speed" a través de la siguiente URL: http://demo.oscommerce.com/product_info.php?products_id=17
Como vemos en la imagen, nos muestra información del producto y dos botones: uno para mostrar los comentarios y otro para añadir el producto a la cesta.
No es díficil presuponer que el script PHP **product_info.php** obtendrá el id del producto de la URL vía GET, realizará una consulta en base de datos y mostrará la información de dicho producto en la página.
Carro de la compra
Si pinchamos en el enlace "Añadir a la cesta", la aplicación nos lleva a la página de visualización de la cesta actual añadiendo el producto a la misma. La url de la página es esta: http://demo.oscommerce.com/shopping_cart.php
En la siguiente figura podemos ver un ejemplo.
En esta página podemos actualizar (botón "Actualizar cesta") la cantidad que queremos de cada producto e inclusive eliminar el o los productos que tenemos en la cesta. Las siguientes acciones disponibles son "Continuar comprando" que nos llevará a la página principal o "Realizar pedido" que es el paso final donde confirmamos el pedido.
Página principal con el carro de la compra a la derecha
Una de las características de los eCommerce actuales es que nos permiten interactuar con la página sin estar logueados, es decir, podemos añadir, borrar y actualizar productos en la cesta sin estar autenticados en la aplicación. Gracias a la gestión de sesiones en PHP, podemos guardar información del usuario entre diferentes páginas aunque el usuario no se haya autenticado en la aplicación.
Si volvemos a la página principal, podemos ver como aparece en la esquina superior derecha información del carro de la compra. En la siguiente figura podemos ver un ejemplo.
En el recuadro rojo vemos la información del carro actual. Si seguimos añadiendo productos al carro la información se mantendrá. Si estando en la página de la cesta pinchamos en el enlace "Realizar pedido" nos mostrará una pantalla donde nos pedirá que nos registremos, si no somos usuarios registrados o que nos autentiquemos si somos usuarios registrados.
En el apartado de ejercicios se especifican los módulos a realizar dando más detalles al respecto.