Carro de la compra

Buenas, tengo una web con diversos productos y diversas secciones, necesito un carrito de la compra que simplemente me recuerde el producto marcado en las diferentes secciones y cuando el usuario termine lo mande a un formulario de contacto en el que vea los productos que ha marcado. ¿Sencillo verdad?
Pues me he vuelto loco buscando algo que pueda adaptar a mi diseño y nada porque por ejemplo en HotScripts te marean con tantas opciones y luego no veo instrucciones sencillas para copiar y pegar el código.
También he visto sistemas complejos como osCommerce que NO se puede personalizar bien a la web que ya tengo. Además supongo que no es necesaria una base de datos ni tanto rollo para una cosa tan sencilla que con un javascript o un php debería de quedar más que solucionado.
Seguro tienes algo que me pueda servir...
Un saludo y gracias por anticipado
1

1 Respuesta

21.000 pts.
Te anexo el código de una clase en php que te puede ayudar a desarrollar tu propia shopping cart, es muy adaptable y sencilla de entender, si tienes problemas no dudes en contactarme.
<?php
class ShoppingCart {
var $items;
function add_items($product_id, $qty)
{
$this->items[$product_id]=$qty;
}
function update_items($product_id, $qty)
{
if(array_key_exists($product_id, $this->items))
{
if($this->items[$product_id]>$qty)
{
$this->items[$product_id]-=($this->items[$product_id]-$qty);
}
if($this->items[product_id]<$qty)
{
$this->items[$product_id]+=abs($this->items[$product_id]-$qty);
}
if($qty==0)
{
unset($this->items[product_id]);
}
}
}
function remove_item($product_id)
{
if(array_key_exists($product_id, $this->items))
{
unset($this->items[$product_id]);
}
}
function show_cart()
{
return $this->items;
}
}
$cart = new ShoppingCart;
$cart->add_items("Apples", 5);
$cart->add_items("Oranges", 15);
$cart->add_items("Peaches", 17);
$cart_items = $cart->show_cart();
foreach($cart_items as $key => $value)
{
echo "Item name = $key; Item quantity: $value <br>";
}
$cart->update_items("Peaches", 28);
$cart->update_items("Oranges", 7);
$cart_items=$cart->show_cart();
echo "================<br>";
foreach($cart_items as $key=>$value)
{
echo "$key = $value<br>";
}
$cart->remove_item("Oranges");
$cart_items=$cart->show_cart();
echo "================<br>";
foreach($cart_items as $key=>$value)
{
echo "$key = $value<br>";
}
?>
Te anexo una liga de una shopping cart en java script
http://www.aquino.cjb.cc/scripts/javascript/sg/JS%20Shoppe.zip
Gracias de nuevo, creo que te llevaras 5 estrellas :-). Una última cosa, desde un html supongo que puedo agregar al carro productos con enlaces de este tipo:
<a href="mete_producto.php?id=12&nombre=silla+modelo+jupiter&precio=80">Silla modelo jupiter 80 euros</a>
No me ha quedado claro por que en tu código hay varias listas de productos. Mi idea es no complicarme mucho si luego tengo que actualizar la web con nuevos productos. Tampoco creo que sea la mejor opción hacer una base de datos para meterle los productos nuevos. ¿Tú qué dices?
Un saludo...
Muchas gracias, sin duda me será útil, supongo me recomiendas usar el que esta en php, lo único que no he visto es alguna instrucción que luego envíe el pedido por e-mail. Yo en los formularios de mi servidor uso lo siguiente, ¿cómo se adaptaría al carrito?
<Form method="POST" action="mail.php">
<input type = "hidden" name="recipient" value="[email protected]">
Gracias de nuevo!
En efecto yo te recomendaría en php, porque el problema que tiene javascript es que es un lenguaje que se ejecuta en el navegador, y esto puede llegar a tener problemas en ciertos navegadores, en cambio el php se ejecuta en el servidor, por lo que no importa mucho el navegador que se use. Pero de todas formas la ultima palabras la tienes tu.
Para enviar la información vía email puedes hacer esto:
echo '<Form method="POST" action="mail.php">
<input type = "hidden" name="recipient" value="[email protected]dominio.com"> ';
$cart_items = $cart->show_cart();
$i=0;
foreach($cart_items as $key => $value)
{
echo '<input type = "hidden" name="prod_$i" value="$key"><p>';
echo '<input type = "hidden" name="canti_$i" value="$value"><p>';
$i++;
}
De esta forma lo que haces es que en la forma colocas todo los productos con sus cantidades y eson enviados en un mail normal como el que ya tienes.
En efecto la liga que pones de ejemplo te puede servir muy bien. Solo tienes que obtener la información de las variables por medio de la variable $_GET
En el ejemplo hay listas de productos solo como referencia.
Estoy de acuerdo contigo sobre eso de mantener las cosas lo más simples, el problema en el caso de una tienda virtual regularmente es muy dinámico, por lo que yo si te recomendaría que todos tus productos los tuvieras en una base de datos y te voy a explicar porque. Si por ejemplo tu idea es modificar los productos directamente en un documento html, cada vez que necesites hacer un cambio de producto, precio o simplemente borrar un producto tendrías que ir al documento html y hacer las modificaciones con el riesgo que tengas que volver a hacer todo el documento.
Podrías almacenar los datos de los productos en un documento de texto, pero tienes casi el mismo problema que con los html ya que tienes que entrar al archivo buscar lo que necesitas modificar y después modificarlo. Otro problema es que si tu lista de productos empieza a crecer el script se vuelve más lento en la búsqueda.
En cambio si todo lo tienes en una base de datos, basta hacer un query y documentos en php automáticamente todo queda modificado sin necesidad de meterte en problemas.
Pero todo depende en la cantidad de productos si tu idea es tener 10 productos que no van a sufrir muchas modificaciones, posiblemente modificar los productos no seria problema y seria más fácil, pero si tu lista de productos va a crecer, te sugiero que mejor coloques todo en una base de datos.
Pero claro la ultima decisión sera tuya.
Espero que esto responda a tus dudas, sino ya sabes que me puedes contactar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas