ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Carrito De La Compra En Php

man0olo12 de Noviembre de 2012

1.988 Palabras (8 Páginas)555 Visitas

Página 1 de 8

Carrito de la compra en PHP

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();

}

Carrito de la compra en PHP: www.desarrolloweb.com/manuales/56/

© Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorización.

2

Tu mejor ayuda para aprender a hacer webs

www.desarrolloweb.com

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

de la clase.

Artículo por Miguel Angel Alvarez

Estudio de las necesidades del carrito

Ahora nos vamos a fijar en la clase carrito. Para empezar vamos a hacer un estudio de las

funcionalidades y datos que debería contener.

Métodos del objeto carrito

Las funcionalidades que debería implementar el objeto carrito se definirán como métodos de la

clase carro de la compra. En principio, se deben crear los siguientes métodos:

• Introducir un producto en el carrito

• Eliminar un producto del carrito

• Mostrar el carrito

• Otras funcionalidades que seguro que necesitarás a medida que avances en el trabajo...

Datos a utilizar

Para empezar, tenemos que llevar la cuenta del número de productos que se han introducido

en el carrito. En el momento de creación del objeto carrito, el número de productos debe ser

igual a cero.

También necesitaremos guardar los id_producto de cada uno de los productos que se vayan

introduciendo en el carrito. Lo haremos a través del array $array_id_prod, que es una de las

propiedades del objeto.

Ahora bien, probablemente sea útil guardar más que los simples identificadores de los

productos. Si se guarda su precio y su nombre puede ser útil para mostrar rápidamente esos

valores sin necesidad de acceder a la base de datos.

Para ello se utilizan otro par de arrays, que también se han creado como atributos del objeto

carrito. Estos son $array_nombre_prod, para almacenar los nombres de los productos y

$array_precio_prod, para guardar los precios de cada uno de los productos del carrito.

Artículo por Miguel Angel Alvarez

Implementación de la clase carrito en PHP

Como habíamos dicho, el carrito de la compra se ha implementado en una clase, para

aprovechar algunas de las ventajas de la programación a objetos. Vamos a ver ahora cómo

realizar esa clase, lo que incluye la definición de propiedades y métodos.

Atributos de la clase carrito

Carrito de la compra en PHP: www.desarrolloweb.com/manuales/56/

© Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorización.

3

Tu mejor ayuda para aprender a hacer webs

www.desarrolloweb.com

Es preferible empezar por ver los atributos que tendrá la clase carrito, que ya adelantamos en

el capítulo anterior.

//atributos de la clase

var $num_productos;

var $array_id_prod;

var $array_nombre_prod;

var $array_precio_prod;

El atributo $num_productos guarda el número de productos almacenados en el carrito.

$array_id_prod guarda los identificadores de los productos comprados. $array_nombre_prod

almacena los nombres de los productos y por último, $array_precio_prod, que guarda el precio

de los productos.

Por ejemplo, si tuviésemos un solo producto en el carrito, $num_productos valdría uno.

Además, en los arrays tendríamos una sola posición (con índice cero), donde se guardaría el

identificador, nombre y precio. Estos datos se guardan por separado en cada uno de los tres

arrays.

Métodos del carrito

Vamos ahora con las funciones típicas del carrito que se necesitará crear en algún momento.

Constructor

Se debe contar con un constructor que resuma las tareas de inicialización del carrito. En

concreto, el constructor simplemente inicia a cero el número de productos del carrito.

function carrito () {

$this->num_productos=0;

}

Nota: Este objeto está construido con PHP 4, donde los constructores tienen el mismo nombre que la

clase, en este caso "carrito". En PHP 5 los constructores deben llamarse siempre __constructor

Introducir un producto en el carrito

Se hace con el método introduce_producto(),que recibe los datos del producto y los introduce

en el objeto carrito. También aumenta en uno el número de productos del carrito.

function introduce_producto($id_prod,$nombre_prod,$precio_prod){

$this->array_id_prod[$this->num_productos]=$id_prod;

$this->array_nombre_prod[$this->num_productos]=$nombre_prod;

$this->array_precio_prod[$this->num_productos]=$precio_prod;

$this->num_productos++;

}

El incremento se hace al final porque el numero de productos inicialmente es cero y el primer

producto a insertar deseamos que tenga ese índice.

Borrar un producto del carrito

Debemos disponer de una función que nos permita eliminar un producto del carrito. En este

caso voy a crear una función que recibe el número de línea del producto dentro del carrito, que

corresponde con el índice de los arrays de productos que deseamos borrar. Podríamos recibir

Carrito de la compra en PHP: www.desarrolloweb.com/manuales/56/

© Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorización.

4

Tu mejor ayuda para aprender a hacer webs

www.desarrolloweb.com

también el identificador del producto a borrar o incluso puede ser que nos sea útil crear un par

de funciones para borrar productos del carrito, una recibiendo la línea del carrito y otra

recibiendo el identificador del producto. Para este ejemplo me resulta más fácil recibir la línea

en la que está ese producto en el carrito.

function elimina_producto($linea){

$this->array_id_prod[$linea]=0;

}

Simplemente colocamos a cero el identificador de producto a borrar. No borramos

directamente las variables de sesión porque eso nos obligaría a recolocar todos los índices de

las variables de sesión para que fuesen correlativos. Este detalle tendremos que tenerlo en

cuenta a la hora de mostrar el carrito, pues si el identificador de producto es cero, se entiende

que el producto está eliminado del carrito.

Tampoco disminuimos en uno el número de productos,

...

Descargar como (para miembros actualizados) txt (17 Kb)
Leer 7 páginas más »
Disponible sólo en Clubensayos.com