Carrito de compra en PHP, MySql y forma de pago Paypal (Parte 7: Envío de e-mail al comprador)

Hasta ahora hemos visto los siguientes puntos:

Ahora solo nos falta enviar la factura al cliente con los datos de la compra a modo de e-mail.

Pasos a seguir para enviar el e-mail con la factura al cliente:

  1. Recogemos los valores de la compra que nos devuelve PayPal
  2. Creamos el HTML que se enviará por e-mail
  3. Llamamos a una función para enviar el mail con los datos al cliente.

Con estos 3 sencillos pasos ya tendremos el tutorial finalizado por completo.

Recoger variables de Paypal con la información del cliente (PayPal IPN)

Si habéis seguido todas las partes del tutorial y en concreto en la que creabamos el script “comprar.php“, recordaréis que creamos un input oculto con el valor “return” en el atributo name.

[html]

[/html]

Pues bien, esta página a la que estamos apuntando será a la que PayPal enviará al usuario en caso de que el pago se realice con éxito y es justo aquí donde vamos a llevar a cabo los 3 procesos que hemos mencionado anteriormente. Así que si no la hemos creado, vamos a incluir en nuestra aplicación una página llamada “exito.php“.

Para empezar, lo primero que tenemos que hacer es recoger los valores que nos devuelve PayPal para tener datos del cliente con los que “jugar”. Esto es tan simple como recuperar variables de un formulario enviadas por POST:

[php]
$nombre = $_POST[‘first_name’];
$apellido = $_POST[‘last_name’];
$email_client = $_POST[‘payer_email’];
$calle_client = $_POST[‘address_name’];
$ciudad_client = $_POST[‘address_city’];
$pais_client = $_POST[‘address_country’];
$zonaRes_client = $_POST[‘residence_country’];
$total_pedido = $_POST[‘mc_gross’];
[/php]

TRUCO

Estas no son las únicas variables que nos puede devolver PayPal, para ver las variables que nos devuelve podemos hacer dos cosas: 1) Ir a la documentación de Paypal sobre las variables que nos devuelve o 2)Poner un “print_r” para que nos muestre todos los datos que nos llegan de la variable POST de la siguiente manera:

[php]
print_r($_POST);
[/php]

Esto nos mostrará por pantalla tanto las variables que nos pasa por POST como sus valores.

Preparar el envio del e-mail en PHP con HTML

Ahora que tenemos los datos estamos preparados para redactar el e-mail que se le enviará al cliente que ha efectuado la compra, donde informaremos

[php]
$email = $email_client;
$asunto = ‘COLORATE – Resumen de tu pedido’;

//Texto que se incluirá en el mail.
$html .= “

COMPRA PRODUCTOS COLORATE

Hola $nombre,

Tu solicitud de compra ha sido realizada con éxito.
Gracias por comprar en COLORATE. Aquí le adjuntamos el resumen de tu pedido.

“;

$html .= “

Datos del Comprador

“;
$html .= “Nombre : ” . $nombre . “
“;
$html .= “Apellido : ” . $apellido . “
“;
$html .= “E-mail del comprador : ” . $email_client . “
“;
$html .= “Calle del comprador : ” . $calle_client . “
“;
$html .= “Ciudad del comprador : ” . $ciudad_client . “
“;
$html .= “País del comprador : ” . $pais_client . “
“;
$html .= “Zona Residencia comprador: ” . $zonaRes_client . “
“;
$html .= “


“;
$html .= “Total de la compra : ” . $total_pedido . “€
“;

//Con la variable cabecera le decimos a PHP que queremos enviar un mail en formato HTML.
$cabeceras = “Content-type: text/html\r\n”;
[/php]

Con esto ya tenemos la información necesaria para enviar el mail.

Llamamos a una función para enviar el mail con los datos al cliente.

Con toda la información guardada en variables, ya estamos preparados para llamar a la función mail para enviar un correo electrónico en PHP. Es tan simple como:

[php]
mail($email,$asunto,$html,$cabeceras);
[/php]

Como se que a muchos de vosotros tenéis problemas para enviar un mail con PHP en localhost, también podréis ver el resultado de lo que se enviará por correo electrónico poniendo un “echo” de la variable html.

[php]
echo “
$html
“;
[/php]

Donde veréis un resultado parecido a este (hacer clic para verlo ampliado):

Variables de Paypal

Para terminar os dejo el código completo de la página “exito.php“:

[php]

Compra realizada con éxito, por favor revisa su correo para ver la notificación.

Volver a la tienda Colorate

COMPRA PRODUCTOS COLORATE

Hola $nombre,

Tu solicitud de compra ha sido realizada con éxito.
Gracias por comprar en COLORATE. Aquí te adjuntamos el resumen de tu pedido.

“;
$html .= “

Datos del Comprador

“;
$html .= “Nombre : ” . $nombre . “
“;
$html .= “Apellido : ” . $apellido . “
“;
$html .= “E-mail del comprador : ” . $email_client . “
“;
$html .= “Calle del comprador : ” . $calle_client . “
“;
$html .= “Ciudad del comprador : ” . $ciudad_client . “
“;
$html .= “País del comprador : ” . $pais_client . “
“;
$html .= “Zona Residencia comprador: ” . $zonaRes_client . “
“;
$html .= “


“;
$html .= “Total de la compra : ” . $total_pedido . “€
“;

$cabeceras = “Content-type: text/html\r\n”;

/*Si no te funciona enviar mail desde localhost, prueba a imprimir en
pantalla la información que se enviará al mail del cliente.*/
echo “
$html
“;

//3. llamamos a una función para enviar el mail con la factura al cliente.
mail($email,$asunto,$html,$cabeceras);
?>


[/php]

Espero que os haya gustado este tutorial después de haber publicado sus 7 partes de inicio a fin. Ahora solo falta la descarga de los ficheros que la publicaré en la parte 8, asi como las posibles mejoras a realizar.

Guía tutorial Carrito de compras con Php y forma de pago PayPal