Foros del Web » Programando para Internet » PHP »

carrito de compras, mandar por mail

Estas en el tema de carrito de compras, mandar por mail en el foro de PHP en Foros del Web. hola como andan? mi pregunta es la siguiente, tengo un carrito de compras, (jcart), los productos se cargan de una base de datos, pero al ...
  #1 (permalink)  
Antiguo 23/10/2010, 11:37
 
Fecha de Ingreso: febrero-2010
Ubicación: cba
Mensajes: 203
Antigüedad: 14 años, 10 meses
Puntos: 16
carrito de compras, mandar por mail

hola como andan? mi pregunta es la siguiente, tengo un carrito de compras, (jcart), los productos se cargan de una base de datos, pero al resultado final del carrito, tengo que mandar los productos solicitados con la funcion mail de php, pero no se como hacerlo. les paso el codigo:

Código PHP:

    
foreach ($cart->get_contents() as $item)
        {
          
        
$item_id    $item['id'];
        
$item_name    $item['name'];
        
$item_price    $item['price'];
        
$item_qty    $item['qty'];

            echo 
$item_id."-";
        
        echo 
$item_name."-";
      
       echo 
"$".$item_price."-";
     
      echo  
$item_qty;
       echo 
"<br>";


hasta aqui me muestra los produtos solicitados, pero como puedo extraer todos los productos, almacenarlos y mandarlos con la funcion mail de php. Creo que tendria que ponerlos en una variable, pero como se haria?

gracias
  #2 (permalink)  
Antiguo 23/10/2010, 12:05
 
Fecha de Ingreso: octubre-2010
Mensajes: 19
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: carrito de compras, mandar por mail

Hola,

Es muy sencillo, además de hacer un echopara sacar en pantalla, tambien lo vas concantenado en una variable que posteriormente usas en la función mail de php y listo.
Código PHP:
<?

foreach ($cart->get_contents() as $item)
{

    
$item_id    $item['id'];
    
$item_name    $item['name'];
    
$item_price    $item['price'];
    
$item_qty    $item['qty'];

    
$mensaje.=$item_id."-".$item_name."-".$item_price."$"."-".$item_qty."<br>";
    echo 
$item_id."-";
    echo 
$item_name."-";
    echo 
"$".$item_price."-";
    echo  
$item_qty;
    echo 
"<br>";
mail('[email protected]''titulo'$mensaje);


}
Luego ya puedes usar por ejemplo un mail con html etc.

http://php.net/manual/en/function.mail.php

Un saludo.
  #3 (permalink)  
Antiguo 23/10/2010, 12:07
 
Fecha de Ingreso: febrero-2010
Ubicación: cba
Mensajes: 203
Antigüedad: 14 años, 10 meses
Puntos: 16
Respuesta: carrito de compras, mandar por mail

muchas gracias, sirvio!!!
  #4 (permalink)  
Antiguo 25/02/2011, 07:21
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 10 meses
Puntos: 209
Respuesta: carrito de compras, mandar por mail

hola, gordon me pudiera pasar una guia de cómo leer mis productos desde la bd, es decir integrar jcart con mysql
  #5 (permalink)  
Antiguo 25/02/2011, 08:30
 
Fecha de Ingreso: febrero-2010
Ubicación: cba
Mensajes: 203
Antigüedad: 14 años, 10 meses
Puntos: 16
Respuesta: carrito de compras, mandar por mail

guia no tengo, pero te paso mi codigo, tienes que crear un bd (el nombre que tu quieras...) en mysql con estos datos: copia y pega: (despues cambia la ruta de las imagenes...)

CREATE TABLE IF NOT EXISTS `productos` (
`id` int(11) NOT NULL auto_increment,
`titulo` varchar(50) NOT NULL,
`imagen` varchar(50) NOT NULL,
`precio` varchar(50) NOT NULL,
`visible` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=21 ;

--
-- Volcar la base de datos para la tabla `productos`
--

INSERT INTO `productos` (`id`, `titulo`, `imagen`, `precio`, `visible`) VALUES
(1, 'pomada', 'jcart-1.1/jcart-1.1/os/561.jpg', '12', '1'),
(2, 'no s tanto', 'jcart-1.1/jcart-1.1/os/561.jpg', '17', '1'),
(3, 'nunca tanto', 'jcart-1.1/jcart-1.1/os/23411.gif', '144', '1'),
(4, 'pero nnc tan', 'jcart-1.1/jcart-1.1/os/hosp_britanico.gif ', '1333', '1'),
(5, 'herpes', 'jcart-1.1/jcart-1.1/os/Logo HSBC.jpg', '1221', '1'),
(6, 'colgate', 'jcart-1.1/jcart-1.1/os/logo_omint.jpg', '2334123', '1'),
(7, 'no se nada papao', 'jcart-1.1/jcart-1.1/os/MEDICUS.jpg', '121', '1'),
(8, 'diego tara', 'jcart-1.1/jcart-1.1/os/spm amsa.jpg', '124', '1'),
(9, 'salcroband', 'jcart-1.1/jcart-1.1/os/swiss.jpg', '122', '1'),
(10, 'va no se', 'jcart-1.1/jcart-1.1/os/swiss.jpg', '2323', '1'),
(11, 'la cosa es asi', 'jcart-1.1/jcart-1.1/os/swiss.jpg', '99.9.9', '1'),
(12, 'geniol max', 'jcart-1.1/jcart-1.1/os/swiss.jpg ', '54.55', '1'),
(13, 'pedro capo', 'jcart-1.1/jcart-1.1/os/spm amsa.jpg', '54.66', '1'),
(14, 'max no se tanto', 'jcart-1.1/jcart-1.1/os/MEDICUS.jpg', '99.99', '1'),
(15, 'gogo max 44', 'jcart-1.1/jcart-1.1/os/logo_omint.jpg', '12.99', '1'),
(16, 'marucha al espiedo', 'jcart-1.1/jcart-1.1/os/Logo HSBC.jpg', '87.54', '1'),
(17, 'jor armendariz', 'jcart-1.1/jcart-1.1/os/hosp_britanico.gif', '21.55', '1'),
(18, 'no se tanto poo', 'jcart-1.1/jcart-1.1/os/23411.gif', '36.55', '1'),
(19, 'jorgito pedro jujuyeo', 'jcart-1.1/jcart-1.1/os/561.jpg', '13', '1'),
(20, 'kiko y kako', 'jcart-1.1/jcart-1.1/os/561.jpg', '99.99', '1');



ESTE ES EL CODIGO DEL CARRITO QUE TIENE UN PAGINADOR DE LOS RESULTADOS
Código PHP:



include("conectar.php"); 

$registros 15;
$pagina $_GET["pagina"];

if (!
$pagina) { 
    
$inicio 0
    
$pagina 1

else { 
    
$inicio = ($pagina 1) * $registros



$resultados mysql_query("SELECT id FROM productos WHERE visible = 1");
    
$total_registros mysql_num_rows($resultados); 
    
$resultados mysql_query("SELECT * FROM productos WHERE visible = 1   LIMIT $inicio, $registros");    
    
$total_paginas ceil($total_registros $registros); 

$d=1;
 
// Primero, debemos ver nuestros elementos...




echo '<table  border="0" cellpadding="0" cellspacing="15" width="607">';

 
      
$contador =1;
   
      
$num_col=4;
   
      echo 
"<tr>";
   
      while (
$row=mysql_fetch_assoc($resultados)){
   
        echo 
"<td>";
   
        echo 
"<form method='post' action='' class='jcart'> ";

    echo 
"<input type='hidden' name='my-item-id' value='$d' />";
    echo 
"<input type='hidden' name='my-item-name' value='$row[titulo]' />";
    echo 
"<input type='hidden' name='my-item-price' value='$row[precio]' />";
    echo 
"<b><center>$row[titulo]</b><br /><img src='$row[imagen]'width='150' height='150' class='bor' /><br /><br><img src='images/icon.gif' /> Precio: <span style=color:#cc0000;font-size:15px>$$row[precio]</span><br> <img src='images/icon.gif' /> Cantidad: <input type='text' name='my-item-qty' value='1' size='3' /></center> <br> ";

$d++;

if(
$_SESSION['id'])
{echo 
"<center><input type='submit' name='my-add-button' value='.' class='button' /></center>";
    
    }
else
{
    echo 
"<center><span style='color:red;border:1px solid red;padding:4px'>Inicie Sesión</span></center>";
}

echo 
"<div class='dash3'></div>";

    echo        
"    </form>";
  
        echo 
"</td>";
   
        if (
$contador == $num_col){
   
          echo 
"</tr><tr>";
  
          
$contador=0;
  
        }
  
        
$contador++;
  
      }
  
      
//terminar de rellenar tablacon celdas...
  
      
if ($contador $num_col){
  
        
$celdas_falt=$num_col $contador;
  
        while (
$celdas_falt <= $num_col){
  
          echo 
"<td>$nbsp</td>";
 
          
$celdas_falt++;
  
        }
  
        echo 
"</tr>";
  
      }



echo 
'</table>'

    
mysql_free_result($resultados);                
    
    if(
$total_registros) {
        
        echo 
"<center>";
        
        if((
$pagina 1) > 0) {
            echo 
"<a href='pedido2.php?pagina=".($pagina-1)."' style='border:1px solid #ccc;padding:3px;'>< Anterior</a> ";
        }
        
        for (
$i=1$i<=$total_paginas$i++){ 
            if (
$pagina == $i) {
                echo 
"<b style='border:1px solid #ccc;padding:3px;'>".$pagina."</b> "
            } else {
                echo 
"<a href='pedido2.php?pagina=$i' style='border:1px solid #ccc;padding:3px;'>$i</a> "
            }    
        }
      
        if((
$pagina 1)<=$total_paginas) {
            echo 
" <a href='pedido2.php?pagina=".($pagina+1)."' style='border:1px solid #ccc;padding:3px;'>Siguiente ></a>";
        }
        
    
        
    }            
               
        echo 
"</center>"   ;     
?>
            

</div> 



ESTO LO TIENES QUE PONER ANTES DE <HTML>
|
|
|
^
Código PHP:
<?

// INCLUDE JCART BEFORE SESSION START
include 'jcart-1.1/jcart-1.1/jcart/jcart.php';

// START SESSION
session_start();

// INITIALIZE JCART AFTER SESSION START

$cart =& $_SESSION['jcart']; if(!is_object($cart)) $cart = new jcart();

?>



[B]DESPUES CARGAS LOS CSS Y JQUERY Y UN SCRIPT PARA QUE OCULTE Y HAGA VISIBLE EL CARRITO[/B]


<script type="text/javascript" src="slider2/jquery.min.js" ></script>

<link rel="stylesheet" type="text/css" media="screen, projection" href="jcart-1.1/jcart-1.1/jcart/jcart.css" />



<script language="JavaScript">
function muestra_oculta(id){
if (document.getElementById){ //se obtiene el id
var el = document.getElementById(id); //se define la variable "el" igual a nuestro div
el.style.display = (el.style.display == 'none') ? 'block' : 'none'; //damos un atributo display:none que oculta el div
}
}
window.onload = function(){/*hace que se cargue la función lo que predetermina que div estará oculto hasta llamar a la función nuevamente*/
muestra_oculta('contenido_a_mostrar');/* "contenido_a_mostrar" es el nombre que le dimos al DIV */
}
</script>



[B]Y TAMBIEN PONE ESTOS CSS..[/B]

<style type="text/css">
        

            #sidebar { margin: -50px 0px 0px 150px;display: block; position:absolute;z-index:200;}

        #pedro a:hover{
          
        }

            .jcart { margin:0 0px 0px 0; padding:20px ; border:solid 1px #ccc; float:left;   }
            .jcart ul { margin:0; list-style:none; padding:0 20px; text-align:left; }
            .jcart fieldset { border:0; }
            .jcart strong { color:#000066; }
            .jcart .button {  background: url(images/comprar.gif)  ; width: 104px;height: 36px;cursor:pointer;border: 0px solid transparent; }

            fieldset { border:1px; float: left;}
            #paypal-button { display:block; padding:0px; }

            .clear { clear:both; }
        </style>

SI HAZ SEGUIDO TODOS LOS PASOS TE TIENE QUE FUNCIONAR BIEN, DIME COMO TE FUE.. SALUDOS..
  #6 (permalink)  
Antiguo 25/02/2011, 09:01
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 10 meses
Puntos: 209
Respuesta: carrito de compras, mandar por mail

muchas gracias, en un rato, te digo
  #7 (permalink)  
Antiguo 25/02/2011, 11:15
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 10 meses
Puntos: 209
Respuesta: carrito de compras, mandar por mail

excelente y si quiero agregarle alguna forma de pago, como rapidpago o alguna otra ???
  #8 (permalink)  
Antiguo 16/03/2011, 14:40
 
Fecha de Ingreso: diciembre-2010
Ubicación: mty
Mensajes: 6
Antigüedad: 14 años
Puntos: 0
Respuesta: carrito de compras, mandar por mail

no lo entendi bien solo veo cuandro y muchas errores a la hora de ejecutarlo, no se que hago mal, pero ok la base de datos bien... el 1er codigo como se llama el archivo? el segundo como se llama... antes del HTML de cual archivo, porque me aparece iniciar sesion y que el include del js no se encuentra no entiENDO!!!! disculpa pero estoy desesperado
  #9 (permalink)  
Antiguo 16/03/2011, 16:47
 
Fecha de Ingreso: febrero-2010
Ubicación: cba
Mensajes: 203
Antigüedad: 14 años, 10 meses
Puntos: 16
Respuesta: carrito de compras, mandar por mail

vamos por parte. Primero bajete el JCART.en la misma carpeta, ahi tienes que poner tu archivo para que todo funcione bien. Te paso de nuevo el codigo.

Código PHP:
<?

// INCLUDE JCART BEFORE SESSION START
include 'jcart/jcart.php';

// START SESSION
session_start();

// INITIALIZE JCART AFTER SESSION START

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<script type="text/javascript" src="jcart/js/jquery-1.4.4.min.js"></script>
        <script type="text/javascript" src="jcart/js/jcart.min.js"></script>


<style type="text/css">
        

            #sidebar { margin: -50px 0px 0px 855px;display: block; position:fixed;bottom: 100px;overflow:visible}

        #pop a:hover{
          
        }

            .jcart { margin:0 0px 0px 0; padding:20px ; border-left:solid 1px #ccc; float:left; border-right:solid 1px #ccc;   }
            .jcart ul { margin:0; list-style:none; padding:0 20px; text-align:left; }
            .jcart fieldset { border:0; }
            .jcart strong { color:#000066; }
            .jcart .button {  background: url(../../images/comprar.gif)  ; width: 104px;height: 36px;cursor:pointer;border: 0px solid transparent; }

            fieldset { border:1px; float: left;}
            #paypal-button { display:block; padding:0px; }

            .clear { clear:both; }
        </style>

</head>

<body>
<div id="sidebar">
<div id="jcart">
<?php $jcart->display_cart();?>  <!--CON ESTO SE MUESTRA EL CARRITO-->
 
 
 </div> 
 </div>

<?


include("conectar.php");  

$registros 15;
$pagina $_GET["pagina"];
$prod $_POST["prod"];

if (!
$pagina) { 
    
$inicio 0
    
$pagina 1

else { 
    
$inicio = ($pagina 1) * $registros



$resultados mysql_query("SELECT id FROM productos WHERE visible = 1");
    
$total_registros mysql_num_rows($resultados); 
    
$resultados mysql_query("SELECT * FROM productos WHERE visible = 1   LIMIT $inicio, $registros");    
    
$total_paginas ceil($total_registros $registros); 

$d=1;
 
// Primero, debemos ver nuestros elementos...




echo '<table  border=0" cellpadding="0" cellspacing="0" width="607">';

 
      
$contador =1;
   
      
$num_col=4;
   
      echo 
"<tr>";
   
      while (
$row=mysql_fetch_assoc($resultados)){
   
        echo 
"<td>";
   
        echo 
"<form method='post' action='' class='jcart'> ";

    echo 
"<input type='hidden' name='my-item-id' value='$row[id]' />";
    echo 
"<input type='hidden' name='my-item-name' value='$row[titulo]' />";
    echo 
"<input type='hidden' name='my-item-price' value='$row[precio]' />";
    echo 
"<center><span style='color:green;font-size:15px'><b>$row[titulo]</b></span><br /><img src='../../$row[imagen]'width='150' height='150' class='bor' /><br /><br><span style=color:#cc0000;font-size:20px;font-weight: bolder>$$row[precio] </span>  <img src='images/icon.gif' /> Cant: <input type='text' name='my-item-qty' value='1' size='2' /></center>  ";




echo 
"<center><input type='submit' name='my-add-button' value='agregar al carrito' class='button' /></center>";
    
       echo        
"    </form>"


echo 
"<div class='dash3'></div>";


  
        echo 
"</td>";
   
        if (
$contador == $num_col){
   
          echo 
"</tr><tr>";
  
          
$contador=0;
  
        }
  
        
$contador++;
  
      }
  
      
//terminar de rellenar tablacon celdas...
  
      
if ($contador $num_col){
  
        
$celdas_falt=$num_col $contador;
  
        while (
$celdas_falt <= $num_col){
  
          echo 
"<td></td>";
 
          
$celdas_falt++;
  
        }
  
        echo 
"</tr>";
  
      }



echo 
'</table>'

    
mysql_free_result($resultados);    
   
    echo 
'</div>';             
     echo 
'<br>';
    if(
$total_registros) {
        
        echo 
"<center>";
        
        if((
$pagina 1) > 0) {
            echo 
"<a href='pedido2.php?pagina=".($pagina-1)."' style='border:1px solid #ccc;padding:3px;'>< Anterior</a> ";
        }
        
        for (
$i=1$i<=$total_paginas$i++){ 
            if (
$pagina == $i) {
                echo 
"<b style='border:1px solid #ccc;padding:3px;'>".$pagina."</b> "
            } else {
                echo 
"<a href='pedido2.php?pagina=$i' style='border:1px solid #ccc;padding:3px;'>$i</a> "
            }    
        }
      
        if((
$pagina 1)<=$total_paginas) {
            echo 
" <a href='pedido2.php?pagina=".($pagina+1)."' style='border:1px solid #ccc;padding:3px;'>Siguiente ></a>";
        }
        
    
        
    }            
               
        echo 
"</center>"   ;     
?>
*crea un archivo que se llame pedido2.php y lo pones en la misma carpeta (donde aparece jcart.php).

Copia y pega esto tal cual y te tiene que funcionar.



CREA UN ARCHIVO CONECTAR.PHP Y LE PONES ESTO:

Código PHP:
<?
    $SERVIDOR 
"localhost";
    
$USUARIO  "root";
    
$PALABRA  "";
    
$BASE     "tu base de datos";
    
$CONECTOR mysql_connect($SERVIDOR$USUARIO$PALABRA);
    
mysql_select_db($BASE$CONECTOR);
mysql_query("SET NAMES 'ISO-8859-1'");
?>

sigue todos los pasos y dime como te fue.
saludos

Etiquetas: carrito, compras, mail, mandar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:14.