dominios y alojamiento web en hostalia

Carrito de la compra en PHP

20 de septiembre de 2004
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.
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.

Compartir en redes sociales

Comentarios
Fueron enviados 22 comentarios al artículo
16 comentarios no revisados
6 comentarios revisados:
Por: Alberto
14/2/2005
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/2005
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/2009
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

dajacar...
ayuda
04/12/2010
hola amigos soy nuevo en php me gustaria saber como lo hago correr, ayudenme o denme un manual, dajacar@hotmail.com

luismig...
Increible que Facilidad.!!
21/11/2011
Nunca me había dado cuenta de que tan simple estaba hecho este articulo.
Siempre buscaba y buscaba carrito y nunca encontraba algo que podia entender
Muy Buen Post.!!!

Lo mas interesante es que a toda una clase lo transforma en session !!!
Muy Buen Aporte

kend
pregunta importante
29/12/2011
hola , estoy tratando de hacer un sistema de vetas en php en el que tenga alta, baja y cambio de productos , "lo cual ya yo tengo entendido"; pero tengo que desarrollar la pagina de ventas en donde se supone que tendre que seleccionar los productos de una lista y que me los ponga en el tiket que se tendrá que visualizar.

mi pregunta es k ¿si este tema de carrito de compras me puede servir de ejemplo para mi sistema de ventas?

Manuales relacionados
Categorias relacionadas
El autor
Lectura recomendada
Compra este libro en Agapea, la librería urgente a domicilio.
Últimas noticias
Donaciones
Si piensas que te hemos ayudado y merecemos tu apoyo económico...