Foros del Web » Programando para Internet » PHP »

Enviar pedido del carrito al correo

Estas en el tema de Enviar pedido del carrito al correo en el foro de PHP en Foros del Web. Hola, me han encargado hacer una página web en la cual he tenido que incluir un carrito de la compra, buscando manuales he encontrado uno ...
  #1 (permalink)  
Antiguo 07/08/2006, 04:08
 
Fecha de Ingreso: agosto-2006
Mensajes: 1
Antigüedad: 11 años, 4 meses
Puntos: 0
Enviar pedido del carrito al correo

Hola, me han encargado hacer una página web en la cual he tenido que incluir un carrito de la compra, buscando manuales he encontrado uno bastante util, pero no encontre como enviar el pedido al correo y llevo varias semanas intentando solucionarlo y soy incapaz, y me estan metiendo prisa para que lo solucione, si alguien me podia ayudar, aqui os pongo el codigo.

lib_carrito.php

<?
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_p rod){
$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 '




<body bgcolor="#D8FAFE">

<table border=1 cellpadding="3">
<tr>
<td><b>Nombre producto</b></td>
<td><b>Precio</b></td>
<td>&nbsp;</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";
echo '</tr>';
$suma += $this->array_precio_prod[$i];
}
}
//muestro el total
echo "<tr><td><b>SUMA:</b></td><td> <b>$suma</b></td><td>&nbsp;</td></tr>";
//muestro el IVA
echo "<tr><td><b>IVA (16%):</b></td><td> <b>" . $suma * 0.16 . "</b></td><td>&nbsp;</td></tr>";
//total más IVA
echo "<tr><td><b>TOTAL:</b></td><td> <b>" . $suma * 1.16 . "</b></td><td>&nbsp;</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();
}
?>


eliminar_producto.php

<?
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="/productos.htm">- Volver a nuestros productos</a>
<br>
<br>
<a href="ver_carrito.php">- Ver carrito</a>

</body>
</html>



mete_producto.php

<?
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="/productos.htm">- Volver</a>
<br>
<br>
<a href="ver_carrito.php">- Ver carrito</a>

</body>
</html>


ver_carrito.php

<?
include("lib_carrito.php");
?>

<html>
<head>
<title>Introduce Producto</title>
</head>

<body>

<?
$_SESSION["ocarrito"]->imprime_carrito();
?>
<br>
<br>
<a href="/productos.htm">Volver a nuestros productos</a>


</body>
</html>



El carrito funciona a la perfeccion pero necesito enviar el pedido al correo, si alguien puede ayudarme se lo agradeceria, me urge bastante.
Gracias.
  #2 (permalink)  
Antiguo 07/08/2006, 05:10
 
Fecha de Ingreso: agosto-2004
Mensajes: 118
Antigüedad: 13 años, 3 meses
Puntos: 1
Prueba con algo como esto:
Código PHP:
// Datos de formateo del e-mail en formato html, añadiendo el parámetro
// "Para" del correo
$SolicitadoPor  EL NOMBRE DEL DESTINATARIOEMPRESAETC;
$Cabecera  "MIME-Version: 1.0\r\n";
$Cabecera .= "Content-type: text/html; charset=iso-8859-1\r\n";
$Cabecera .= "Content-Transfer-Encoding: 7bit\r\n";

//Campo From del email
$Cabecera .= "From: ".$SolicitadoPor."\r\n"//Un nombre y apellido, por ejemplo
//Destinatario
$Destinatario "[email protected]";

//Dar formato al número de pedido
$NumeroPedido /*TU VARIABLE CONTENIENDO EL NUMERO DE PEDIDO*/;
$Asunto "Pedido Nº ".$NumeroPedido." del cliente ".$CodigoCliente//Asunto del e-mail
$Mensaje  "<br>Número de pedido: ".$NumeroPedido."<br><br>";
$Mensaje .= "-----------------------------------<br>";
$Mensaje .= "Fecha del pedido: ".$FechaPedido."<br>";
$Mensaje .= "Hora del pedido: ".$HoraPedido."<br>";
$Mensaje .= "Cliente Nº: ".$CodigoCliente."<br>"//O lo que proceda
$Mensaje .= "Solicitante: ".$PersonaSolicitante."<br>"//Nombre y apellido
$Mensaje .= "-----------------------------------<br><br>";
$Mensaje .= "Detalle del pedido:<br><br><pre>";
//En este caso, yo he utilizado un campo de texto desde un formulario,
//que he almacenado en la variable '$Pedido',  pero podia haber sido una
//consulta a la base de datos.
$Mensaje .= $Pedido."<br></pre>";



//Enviando el pedido usando la función mail() de php.
$EmailSend mail($Destinatario$Asunto$Mensaje$Cabecera)
  or die(
"Error al enviar el pedido."); //Si se produce un error, se informa al usuario 
Permite que te haga unas observaciones.
Ten en cuenta el canon digital, si este procediera.
Si la venta se va ha realizar a cliente final, hay que añadir un 4% de recargo de equivalencia sobre la base imponible.

Si tienes alguna duda, ya sabes.

Última edición por rayder; 07/08/2006 a las 05:15
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 19:26.