Carrito de la compra en PHP

Valoración del artículo:
Planteamientos iniciales para la realización de un carrito de la compra sencillo en PHP. Almacenamiento del carrito en una variable de sesión.
Publicado: 20/9/04
Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.
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.

Comentarios
Fueron enviados 15 comentarios al artículo
12 comentarios no revisados
3 comentarios revisados:
Por: Alberto
14/2/05
Esta muy bueno gracias por la nota. Alguien sabe como hacer para que no se pongan duplicados en la lista sino que se aumente la cantidad de productos? Es decir, si compras dos veces el mismo producto se lista dos veces, estaria bueno que se ponga "cantidad: 2", no? Vyo a ver si puedo hacerlo pero no se mucho como para esto.
Por: Cluster
21/4/05
Los métodos empleados (en general y concretamente) como "imprime_carrito()" .. estaría mejor si devolviesen su salida ante su llamada (con un return $html por ejemplo concatenando su salida en esa variable) ..
Todo esto con el objetivo por ejemplo de generar un e-mail o un archivo .. etc.
De la forma que está si bien cumple su objetivo principal, complica y hace que hay que "rediseñar" ese método para hacer taréas de lo más comunes con el trabajo de un "carrito" como es esa misma: generar una orden de pedido mínimo por e-mail.

Un saludo,

hkcrist...
variable carro de compra
04/12/09
estoy desarrollando mi carro de compras, pero aun no he podido agregar una variable de valor adicional en cuanto a las personas interesadaas en comprar mi producto y se encuentras en bogotá y las personas que estan fuera de bogota, debido a que los valores adicionales de envio son diferentes. hkcristian@gmail.com

Manuales relacionados
Categorias relacionadas
El autor
Lectura recomendada
Compra este libro en Agapea, la librería urgente a domicilio.
Últimas noticias
Alojados en el grupo
Copyright | Publicidad | Acerca de | Datos legales | Contacta