Este carrito es de los más sencillos que he encontrado en los Manuales de PHP, y además funciona a la perfección. Solo le falta terminar el artículo: ¿Cómo envía el cliente la peticion de compra al servidor, una vez que ha terminado de llenar su carrito?.
Muy practico este manual.
Pero ciertamente de nada sirve si no puedes enviar el resultado al servidor o por mail.
Si alguien puede indicarme alguna referencia de como puedo hacer que se envie por mail... Lo agradecería.
operadormail@ono.com
Gracias
| Por: Elias Schmidt | | 14/12/2005
|
Hola, primeramente de agradezco Miguel por haber expuesto un carro tan bueno como este, esta COMPLETO, lo que le falta seria lo que cada uno quiere hacer luego con este carro, por lo tanto no le falta nada, yo por mi parte lo estudie y lo adapte modificando algunos códigos para que se envié por mail la solicitud de la compra, solamente lo que se tiene que hacer es agregar un par de líneas como ser:
echo '<FORM ACTION="send.php" METHOD="POST">
al archive lib_carrito.php y crear el archive send.php que en este manual lo puedes encontrar.
Nuevamente MUCHAS GRACIAS
| Por: Igor André Guerra | | 18/12/2005
|
Hola yo estoy mas o menos creando esa posibilidad leyendo el array los datos e introduciendoloes en una tabla dentro de la base de datos llamada pedidos. Ahi puedo ver el numero de cliente asignado a el usuario que confirma el pedido, y de esa manera poner el marcha el pedido y poder realizarle la factura.
Si quieres echarle un vistazo a lo que estoy haciendo gracias todo a desarrolloweb claro, mas que nada porque gracias a todos los manuales que he encontrado en la web he podido realizar cosas muy majas la verdad.
La pagina es http://www.northsystems.org y no esta del todo acabado pero se puede echar un vistazo al registro de usuarios, o por ejmplo al funcionamiento del carrito. Nada mas que tenga el envio del carrito a la BD lo pondre por aqui.
Gracias a todos y sobre todo a tod@s.
Hola he probado el carrito y jala de maravilla e incluso hize unas modificaciones y esta de lujo, pero tengo el problema de que me envie la compra total por email a mi y con respuesta al cliente que solicito la compra, he logrado enviar los correos a mi a al cliente pero al revisar el correo no aparece la compra que realizo el cliente, solo los datos se pide al cliente, ojala y alguien me pueda ayudar a resolver esto y una vez que este terminado, les pondre el carrito con las modificaciones para que lo tomen como ejemplo.
Atentamente
Noe
Hola si necesitas que te envie la informacion al mail, existe una funcion que lo hace, funcion mail(), es muy sencillita de usar, aunque supongo que ya la conoceras, si necesitas ayuda puedes ponerte en contacto conmigo, acabo de utilizarla para un formulario de una empresa, y ahora estoy mirando como poner un carrito de la compra.
Un saludo
| Por: Roberto Buil Artal | | 06/9/2006
|
Bueno como veo no soy el único que ha tenido verdaderos problemas para poder almacenar el carrito en una variable y así meterlo en la base de datos.
Pero gracias a esta URL que explica las clases http://www.desarrolloweb.com/articulos/1913.php
a mi amigo Sergi y a varias horas he creado una función que os puede servir a los novatos como yo.
//EN lib_carrito.php
//declaro 2 variables nuevas
var $codref;
var $suma;
//añado una función
function guarda_carrito(){
global $codref;
global $suma;
$suma = 0;
for ($i=0;$i<$this->num_productos;$i++){
if($this->array_id_prod[$i]!=0){
$this->codref.=$this->array_id_prod[$i] . " ".$this->array_precio_prod[$i]. "<BR>";
$suma += $this->array_precio_prod[$i];
}
}
$this->suma=$suma*1.16;
}
//Y para finalizar las recupero desde mi página de confirma.php y las almaceno en variables para meter en la BD.
$_SESSION["ocarrito"]->guarda_carrito();
$pedido=$_SESSION["ocarrito"]->codref;
$total=$_SESSION["ocarrito"]->suma;
Espero que os sirva de algo.
Agradezco a los desarrolladores de esta web las explicaciones del código, e imagino que si no lo han dado completo es para evitar la comercialización con su herramienta. Pero aqui estamos los usuarios para ayudarnos entre todos.
Acabo de descargar los archivos de esta miniaplicación, veo que esta muy bien diseñado, algo sencillo para los usuarios que no somos expertos en php, analizaré bien el codigo y espero pronto publicar el codigo completo para los usuarios que no saben como mandar los datos al servidor, una vez mas Gracias a Miguel por aportarnos este tipo de manuales que nos ayudan a todos.
Si no te permite el servidor PHP enviar emails puedes crear una tabla con los pedidos y darlos de alta con toda la información, guardando los datos en el servidor.
Felicidades por el manual, realmente ayuda mucho, por lo menos a la gente, que como yo, nos estamos iniciando en php.
Pero a la hora de ejecutarlo tenia el mismo problema que ya se a comentado anteriormente. Añadia bien cosas al carrito, pero al mostralo volvia a comenzar desde cero.
Después de darle muchas vueltas creo k he dado con la solución, por lo menos a mi me funciona.
Simplemente hay que poner al comienzo de todas las paginas(metercarrito, vercarrito, eliminarcarrito):
include("lib_carrito.php);
session_start();
Un saludo.
kaotic | Amontonar productos en carrito
| 14/5/2009 |
Buenos dias, el carrito m ha servido de mucho, tengo una duda, me gustaria saber como pudo hacer para que s un cliente compra un mismo producto varias veces, conseguir que me marcara el numero de productos de ese tipo que hay, un ejemplo seria:
Modelo Cantidad Precio
Silla 5 200
Gracias anticipadas
harry22 | el link esta roto
| 03/6/2009 |
no puedo descargar los archivos
jrivero | como extraemos de la bd
| 02/12/2009 |
yo tengo mi duda de como extraer los datos de mi base de datos... eh buscado mil maneras y no puedo dar con la tecla si por favor me pueden ayudar se lo agradezco tengo q hacer eso lo antes posible...
mandar respuesta por mensaje privado o agregarme a mi msn jar_florida@hotmail.com
psbcn | carrito PHP
| 12/5/2010 |
Toto del tutorial acerca del "CARRITO DE LA COMPRA" es perfecto.
FALTA........(y aquí mi gran duda) como mandar mediante EMAIL los productos.
Es sencillo cuando hay un solo producto.
Pero, ¿ como recoger en el e-mail LOS VARIOS PRODUCTOS?
Espero una respuesta
Muy agradecido.
Pepe
Ollie | instancias
| 14/5/2010 |
disculpa miguel pero en cada script hay que instanciar el objeto cada vez?
porque intento acceder a una propiedad desde el principio cuando se supone qe ya esta instanciada y me manda al diablo alguna sugerencias?
gracias buen articulo :D
raizen7... | Imprimir la data
| 06/8/2010 |
Gracias por vuestra ayuda, me servirá de mucho, solo tenia dudas con la parte de imprimir la data pero ya lei las soluciones , solo hay que iniciar cesión e incluir las librerías.
Edyvarg... | Aumentar Cantidad de un producto
| 24/11/2010 |
Hola, el Tutorial y script del carrito en PHP esta excelente, felicidades por hacerlo tan bien y tan simple, lo único que sería necesario hacer en mi caso, es poder aumentar la cantidad de un producto al elegirlo, por ej. producto=01 precio=100usd cantidad=? - como agregar esto al objeto para que sume las cantidades necesarias? seria genial poder tener esto también en el carrito, de cualquier forma Gracias por compartirlo. Saludos.
Edyvarg... | Aumentar Cantidad Resuelto :)
| 24/11/2010 |
HOla, logré agregarle la "cantidad" al script, solo agregando pocas cosas, el funcionamiento es bastante simple, de ahí en adelante ya depende de otras cosas mas desarrollarlo, pero funciona bien :), solo agregué en "lib_carrito.php" la cantidad y en la suma de los productos el multiplicador por esa cantidad:
<?
class carrito {
//atributos de la clase
var $num_productos;
var $array_id_prod;
var $array_nombre_prod;
var $array_precio_prod;
var $array_cantidad_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,$cantidad_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->array_cantidad_prod[$this->num_productos]=$cantidad_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><b>Cantidad</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>" . $this->array_cantidad_prod[$i] . "</td>";
echo "<td><a href='eliminar_producto.php?linea=$i'>Eliminar producto</td>";
echo '</tr>';
$suma += $this->array_precio_prod[$i] * $this->array_cantidad_prod[$i];
}
}
//muestro el total
echo "<tr><td><b>TOTAL:</b></td><td> <b>$suma</b></td><td> </td></tr>";
//total más 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;
}
}
//inicio la sesión
session_start();
//si no esta creado el objeto carrito en la sesion, lo creo
if (!isset($_SESSION["ocarrito"])){
$_SESSION["ocarrito"] = new carrito();
}
?>
en "index.php" agregué un valor más de cantidad, en este caso de prueba solo puse 1 para el primer producto 2 para el segundo y asi sucesivamente (esto podrá ser un input desarrollando mas el codigo):
<?
include("lib_carrito.php");
?>
<html>
<head>
<title>Trabajando con el carrito</title>
</head>
<body>
<a href="mete_producto.php?id=12&nombre=silla+modelo+jupiter&precio=80&cantidad=1">Silla modelo jupiter 80 euros cantidad 1</a>
<br>
<br>
<a href="mete_producto.php?id=16&nombre=mesa+camilla+oferta&precio=29&cantidad=2">Mesa camilla en oferta 29 euros</a>
<br>
<br>
<a href="mete_producto.php?id=18&nombre=Silla+oficina&precio=102&cantidad=3">Silla oficina 102 euros</a>
<br>
<br>
<a href="mete_producto.php?id=98&nombre=Aparador+cocina+blanco&precio=200&cantidad=4">Aparador cocina blanco 200 euros</a>
<br>
<br>
<br>
- <a href="ver_carrito.php">Ver carrito</a>
</body>
</html>
...y por último en "mete_producto.php" agregué la variable cantidad:
<?
include("lib_carrito.php");
$_SESSION["ocarrito"]->introduce_producto($_GET["id"], $_GET["nombre"], $_GET["precio"], $_GET["cantidad"]);
?>
<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>
......para empezar creo que esto puede ser de ayuda, muchas Gracias de nuevo al creador de este código y si hay algún error en lo que agregué sera de gran ayuda saber como corregirlo, Saludos :)
Edyvarg... | Enviar Carrito a BD MySQL
| 24/11/2010 |
Hola, todo perfecto hasta acá, ahora solo queda encontrar la forma de enviar los resultados del carrito a una BD para que se guarden en una tabla de "pedidos", si alguien tiene alguna idea sobre esto será de mucha ayuda, gracias a todos.
serpy12 | Ayuda con el envio de variables
| 25/3/2011 |
Quisiera que en esta linea:
<a href="carrito_php/mete_producto.php?id=12&nombre=silla+modelo+jupiter&precio=80&cantidad="></a>
Donde dice cantidad quiero que el visitante web tenga un cuadro de texto donde el pueda indicar la cantidad y enviarla al lib_carrito.php
PorFavor enviar respuesta a frankserpy@hotmail.com seria de muxa ayuda
serpy12 | Ayuda por favor
| 25/3/2011 |
modifique lib_carrito.php para tener un campo mas donde meter la cantidad asi:
<?
class carrito {
//atributos de la clase
var $num_productos;
var $array_id_prod;
var $array_nombre_prod;
var $array_precio_prod;
var $array_cantidad;
//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,$cantidad){
$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->array_cantidad[$this->num_productos]=$cantidad;
$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="4">
<tr>
<td><b>Nombre producto</b></td>
<td><b>Precio</b></td>
<td><b>Cantidad</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>" . $this->array_cantidad[$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><td> </td></tr>";
//total más IVA
echo "<tr><td><b>IVA (18%):</b></td><td> <b>" . $suma * 1.18 . "</b></td><td> </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;
}
}
//inicio la sesión
session_start();
//si no esta creado el objeto carrito en la sesion, lo creo
if (!isset($_SESSION["ocarrito"])){
$_SESSION["ocarrito"] = new carrito();
}
?>
Despues en la pag conciertos.html puse esto para pasar los datos :
CONCIERTOS HTML
<?
include("carrito_php/lib_carrito.php");
$_SESSION["ocarrito"]->introduce_producto($_GET["id"], $_GET["nombre"], $_GET["precio"], $_GET["cantidad"]);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html" charset="iso-8859-1">
<title>Conciertos</title>
<link rel="stylesheet" href="../estilo-general.css" type="text/css" media="all">
</head>
<body>
<div id="global">
<!-- INICIO CODIGO DE CABECERA - NO TOCAR -->
<div id="curva-superior"></div>
<div id="cabecera">
<div id="logotipo"><a href="../index.html"><img src="../objetos/logotipo.gif" width="270" height="80"alt="Haz clic aquí para volver a la página de inicio"></a></div>
<div id="publicidad">Bienvenidos a mi Web</div>
</div>
<div id="navegacion">
<ul><li><a href="../index.html">Portada</a></li><li><a href="../historia/historia.html">Historia</a></li><li><a href="../discografia/discografia.html">Discografía</a></li><li><a href="../conciertos/conciertos.html">Conciertos</a></li><li><a href="../descargas/descargas.html">Descargas</a></li><li><a href="../foro/foro.html">Foro</a></li><li><a href="../souvenirs/souvenirs.html">Souvenirs</a></li>
</ul>
</div>
<!-- FIN DE CODIGO DE CABECERA -->
<div id="contenido">
<!-- INICIO CODIGO DE MENU LATERAL IZQUIERDO - NO TOCAR -->
<div id="menu">
<h1>Conciertos</h1>
<ul><li><a href="conciertos-anteriores.html">Conciertos Anteriores</a></li><li><a href="proximos-conciertos.html">Proximos Conciertos</a></li></ul>
</div>
<!-- FIN DE CODIGO DE MENU LATERAL IZQUIERDO -->
<h1>Recordando esos Conciertos</h1>
<p>Esto empezo todo en parte con algo de ilusion por introducirnos en este mundillo pero mas bien fue por quedar los colegas un dia a la semana y juntarnos lo que se llama !!Tener un dia pa los colegas!!</p>
<h2>Y Asi Fue como arrancamos</h2>
<img alt="PINTA LABIOS 135 (11K)" src="../objetos/PINTA%20LABIOS%20135.JPG" height="230" width="236" />
<a href="carrito_php/mete_producto.php?id=12&nombre=silla+modelo+jupiter&precio=80&cantidad=<input type="text" name="cantidad" size="20"">
<input type="text" name="cantidad" size="20"><br>
<input type="submit" value="Añadir a la cesta"><br></form></a>
<a href="carrito_php/mete_producto.php?id=12&nombre=silla+modelo+jupiter&precio=80&cantidad=<input type="text" name="cantidad" size="20" value"asdsa""><input type="text/submit" name="cantidad" size="20" value"sasdsad"><br></a>
<p>Despues de estar tocando semanas nos dicidimos a enviar un maqueta que luego un tiempo despues dio su fruto</p>
<p>Actualmente seguimos tocando y no pararemos de tocar y grabar canciones para esa gente que nos escucha</p>
</div>
<!-- INICIO CODIGO PIE DE PAGINA - NO TOCAR -->
<div id="pie">
<div id="pie1">
<ul><li><a href="#">Foro Ejemplo</a></li><li><a href="#">Contactos</a></li><li><a href="#">Nos Enlazan</a></li></ul></div>
<div id="pie2">Pie2</div>
<div id="pie3">
<ul><li><a href="#">Directorio</a></li><li><a href="#">TopSite</a></li><li><a href="#">Mapa de la Web</a></li></ul></div>
</div>
<!-- FIN CODIGO PIE DE PAGINA - NO TOCAR -->
<div id="curva-inferior"></div>
</div>
</body>
</html>
y mi consulta es consegui pasar todo pero quisier que en esta linea:
<a href="carrito_php/mete_producto.php?id=12&nombre=silla+modelo+jupiter&precio=80&cantidad="></a>
en la variable cantidad quiero que vaya un campo de texto donde el visitante web pueda poner lo que sea y enviar ese dato dado por el no por mi a lib_carrito.php
XD AYUDADME
Tanobru... | Error en PHP 5.3.x
| 09/11/2011 |
Estimados, he utilizado la clase sin inconvenientes, pro cuando la subo a un host que tiene PHP 5.3.37. Por favor si alguien puede ayudarme se lo agradeceré.
Chaksto... | PHP 5.x.x
| 13/11/2011 |
Tanobru...
Tengo en mi compu instalado WAMP corriendo PHP 5.3.0...
A mi me daba un error al intentar agregar un producto. Todo lo que hice fue poner:
session_start(); antes de insertar algo en el carrito, y listo. Es decir en vez de sólo poner:
<?php
include("lib_carrito.php");
$_SESSION["ocarrito"]->introduce_producto($_GET["id"], $_GET["nombre"]);
?>
Yo puse:
<?php
include("lib_carrito.php");
session_start();
$_SESSION["ocarrito"]->introduce_producto($_GET["id"], $_GET["nombre"]);
?>
Quizás te pase lo mismo que me pasaba.
Saludos!
Sik | Insertar productos
| 11/1/2012 |
Hola!
Esta muy bien este carrito y lo quiero implemantar en un proyecto en el cual estoy trabajando pero no he logrado obtener la informacion de los productos de mi BD. Ya hice la conexion y todo pero no he podido realizar este paso.
Si alguien me quisiera ayudar Gracias. Mi correo es sikmaga@gmail.com