> Manuales > Carrito de la compra en PHP

Planteamientos iniciales para la realización de un carrito de la compra sencillo en PHP. Almacenamiento del carrito en una variable de sesión.

Vamos a ver una manera sencilla de realizar un carrito de la compra en PHP, utilizando una variable de sesión para guardar los datos del carrito, como los nombres de los productos, sus precios y otros datos de interés. En estos ejemplos nos vamos a centrar exclusivamente en la funcionalidad del carrito, es decir, la memorización de los productos comprados a lo largo de toda la sesión, dejando de lado todo lo relativo a presentación o la extracción de los productos de una base de datos.

Para entender este manual son necesarios unos conocimientos previos sobre PHP, que se pueden obtener de la lectura de nuestro manual de PHP http://www.desarrolloweb.com/php/ o los talleres prácticos de la tecnología http://www.desarrolloweb.com/manuales/6/. Debemos prestar especial atención al manejo de sesiones en PHP y, dado que esta implementación del carrito está realizada utilizando programación orientada a objetos, será necesario que conozcamos un poco ese tipo de programación, particularmente en PHP 4.

El carrito lo hemos creado con la versión PHP 4. Para que este ejemplo funcione en PHP 5 (que básicamente cambia con respecto a su antecesor en el trabajo con objetos) habría que realizar algunas modificaciones.

Referencia: Disponemos de algunos artículos sobre la programación orientada a objetos en PHP 4.

Se pueden descargar los códigos de este artículo en un archivo comprimido.

Librería lib_carrito.php

Vamos a atacar al problema creando una librería con la declaración de una clase, que luego utilizaremos para crear un objeto carrito. Con dicho objeto implementaremos el trabajo típico del carro de la compra, es decir, introducir productos, extraerlos, contabilizar precios, etc. Esta librería la guardaremos en un archivo llamado lib_carrito.php y contendrá el código de la clase carrito, con todos sus métodos y propiedades.

El carrito se debe poder acceder en cualquier momento, siempre y cuando el visitante permanezca en la página. Además, cada visitante debe disponer de un carrito propio. Aunque podríamos pensar en otras soluciones, estas necesidades descritas inicialmente, hacen muy recomendable el uso de variables de sesión, puesto que ofrecen la mejor forma de tratar con datos específicos de cada usuario, que deben perdurar entre las distintas páginas que visite.

Vamos a mantener una variable de sesión con una instancia de la clase carrito, que contendrá el carro de la compra del visitante. Esta variable de sesión se guardará en $_SESSION["ocarrito"] y se debe crear al acceder a la página, siempre y cuando no se haya creado previamente. Por ello, en cada página se ha de comprobar si hay un carrito creado y, si no es así, se debe instanciar el objeto.

if (!isset($_SESSION["ocarrito"])){
    $_SESSION["ocarrito"] = new carrito();
}


Este código lo hemos situado dentro del archivo librería del carrito, después de la declaración de la clase.

Miguel Angel Alvarez

Fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Com...

Manual