Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Nicaragua
UNAN -LEON
Facultad de Ciencias y Tecnologa
Ing. Telemtica
Trabajo Elaborado Por:
Julio Rafael Guido Paniagua
Carnet: 12-01158-0
No. De
CARRITO DE COMPRAS
Este es el nombre generico que se da al software utilizado para recoger
los pedidos de tus clientes. La funcion de este software es permitir
que tus usuarios visiten tu web y pongan en su cesta de la compra,
todos los artculos que desean comprante. Cuando ya los tienen todos,
pueden pasar a la caja y pagar. Es como si fueran al
supermercado, pero sin salir de casa y gracias a tu pagina web.
Lgicamente , tu decides que vendes en tu pagina!
Los servicios de Tienda online necesitan usar bases de datos
mysql.
Mostrar el carrito
Datos a utilizar
Para empezar, tenemos que llevar la cuenta del nmero de productos
que se han introducido en el carrito. En el momento de creacin del
objeto carrito, el nmero de productos debe ser igual a cero.
Tambin necesitaremos guardar los id_producto de cada uno de los
productos que se vayan introduciendo en el carrito. Lo haremos a travs
del array $array_id_prod, que es una de las propiedades del objeto.
Ahora bien, probablemente sea til guardar ms que los simples
identificadores de los productos. Si se guarda su precio y su nombre
puede ser til para mostrar rpidamente esos valores sin necesidad de
acceder a la base de datos.
Para ello se utilizan otro par de arrays, que tambin 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.
Atributos de la clase carrito
Es preferible empezar por ver los atributos que tendr la clase carrito,
que ya adelantamos en el captulo 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 nmero 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.
<td> </td>
</tr>';
for ($i=0;$i<$this->num_productos;$i++){
if($this->array_id_prod[$i]!=0){
echo '<tr>';
echo "<td>" . $this->array_nombre_prod[$i] . "</td>";
echo "<td>" . $this->array_precio_prod[$i] . "</td>";
echo "<td><a href='eliminar_producto.php?linea=$i'>Eliminar
producto</td>";
echo '</tr>';
$suma += $this->array_precio_prod[$i];
}
}
//muestro el total
echo "<tr><td><b>TOTAL:</b></td><td>
<b>$suma</b></td><td> </td></tr>";
//total ms IVA
echo "<tr><td><b>IVA (16%):</b></td><td> <b>" . $suma * 1.16 .
"</b></td><td> </td></tr>";
echo "</table>";
}
La funcin declara primero la variable suma donde se guardar la suma de
importes de los productos.
Se muestran todos los productos con un bucle que recorre las lneas del carrito,
desde la primera hasta el nmero de productos. En cada lnea del carrito se
muestran sus datos, teniendo cuidado porque si el identificador del producto
era cero quera decir que ese producto haba sido borrado del carrito. Adems,
acumulamos en la variable suma el importe de todos los productos del carrito
que no han sido borrados previamente.
Todava dentro del bucle que recorre los productos del carrito, colocamos un
enlace para que el visitante pueda eliminar un producto. Hay que darse cuenta
que el enlace para borrar un producto indica como parmetro la lnea del
carrito que se debe borrar, que era lo que nosotros necesitbamos en la
funcin creada para borrar los productos.
Ya fuera del bucle, imprimimos el importe total con la suma de los importes de
los productos que hemos ido acumulando durante el bucle.
Cdigo completo de la clase
Veamos a continuacin cmo quedara la clase carrito completa, para que no
se nos pase ningn detalle.
class carrito {
//atributos de la clase
var $num_productos;
var $array_id_prod;
var $array_nombre_prod;
var $array_precio_prod;
//constructor. Realiza las tareas de inicializar los objetos cuando se
instancian
//inicializa el numero de productos a 0
function carrito () {
$this->num_productos=0;
}
//Introduce un producto en el carrito. Recibe los datos del producto
//Se encarga de introducir los datos en los arrays del objeto carrito
//luego aumenta en 1 el numero de productos
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++;
}
//Muestra el contenido del carrito de la compra
//ademas pone los enlaces para eliminar un producto del carrito
function imprime_carrito(){
$suma = 0;
echo '<table border=1 cellpadding="3">
<tr>
<td><b>Nombre producto</b></td>
<td><b>Precio</b></td>
<td> </td>
</tr>';
for ($i=0;$i<$this->num_productos;$i++){
if($this->array_id_prod[$i]!=0){
echo '<tr>';
echo "<td>" . $this->array_nombre_prod[$i] . "</td>";
echo "<td>" . $this->array_precio_prod[$i] . "</td>";
echo "<td><a href='eliminar_producto.php?linea=$i'>Eliminar
producto</td>";
echo '</tr>';
$suma += $this->array_precio_prod[$i];
}
}
//muestro el total
echo "<tr><td><b>TOTAL:</b></td><td>
<b>$suma</b></td><td> </td></tr>";
//total ms IVA
echo "<tr><td><b>IVA (16%):</b></td><td> <b>" . $suma * 1.16 .
"</b></td><td> </td></tr>";
echo "</table>";
}
//elimina un producto del carrito. recibe la linea del carrito que debe eliminar
//no lo elimina realmente, simplemente pone a cero el id, para saber que
esta en estado retirado
function elimina_producto($linea){
$this->array_id_prod[$linea]=0;
}
}
<br>
<a href="mete_producto.php?
id=98&nombre=Aparador+cocina+blanco&precio=200">Aparador
cocina blanco 200 euros</a>
<br>
<br>
<br>
- <a href="ver_carrito.php">Ver carrito</a>
</body>
</html>
mete_producto.php
Esta pgina introduce el un producto en el carrito de la compra. Recibe
los datos del producto a introducir por la URL. Lo que hace es llamar al
mtodo introduce_producto(), pasando los datos del producto, que se
reciben por GET.
<?
include("lib_carrito.php");
$_SESSION["ocarrito"]->introduce_producto($_GET["id"],
$_GET["nombre"], $_GET["precio"]);
?>
<html>
<head>
<title>Introduce Producto</title>
</head>
<body>
Producto introducido.
<br>
<br>
<a href="index.php">- Volver</a>
<br>
<br>
<a href="ver_carrito.php">- Ver carrito</a>
</body>
</html>
ver_carrito.php
La pgina que muestra el carrito es bsicamente una llamada al mtodo
de la clase carrito que se encarga de mostrar el contenido del carro de la
compra y la suma de los precios de los productos.
<?
include("lib_carrito.php");
?>
<html>
<head>
<title>Introduce Producto</title>
</head>
<body>
<?
$_SESSION["ocarrito"]->imprime_carrito();
?>
<br>
<br>
<a href="index.php">Volver</a>
</body>
</html>
eliminar_producto.php
Esta pgina recibe por GET el ndice del producto que se desea borrar.
Con el ndice, se llama al mtodo elimina_producto, que se encarga de
marcar como eliminado el producto del carro.
<?
include("lib_carrito.php");
$_SESSION["ocarrito"]->elimina_producto($_GET["linea"]);
?>
<html>
<head>
<title>Introduce Producto</title>
</head>
<body>
Producto eliminado.
<br>
<br>
<br>
<a href="index.php">- Volver</a>
<br>
<br>
Pueden parecer solo unas cuantas palabras, pero son claves en el bueno
funcionamiento de tu negocio y debes dedicarle el tiempo que se
merece. Recuerda cuatro caractersticas esenciales que deben tener
tanto el dominio como el nombre de la marca: descriptivos, claros,
fciles de escribir y fciles de memorizar.
Te recomendamos varios registradores de dominios:
Godaddy
1and1
Arsys
Name
Hostgator
EBAY
-