Enviar copia del mensaje del cliente en el checkout. Prestashop 1.6

Prestashop ofrece la posibilidad de que el cliente escriba un comentario durante el checkout. Se suele usar bastante y es habitual que el cliente indique sobretodo instrucciones de entrega.

mensaje

Este comentario queda registrado en lo que es el servicio de atención del cliente. Queda colgado del pedido en cuestión

historico

En el propio pedido se muestra ese primer mensaje para que se tenga en cuenta.

comentario

En ocasiones es útil que en el momento de crearse el pedido se envíe una copia de este mensaje por mail.

Override CustomerMessage.php

Para hacerlo, una solución fácil es sobrescribir CustomerMessage, en concreto el método que se ocupa de crear este mensaje dentro de prestashop, que es el método add.

En override\classes\   creamos un fichero CustomerMessage.php con el siguiente contenido

 

El código es muy sencillo, coge el identificador del pedido y el mensaje y lo envía por mail usando la plantilla copia_mensaje_pedido. Usa como destinatario el email configurado para la tienda. El asunto del mail se puede cambiar en el propio código (variable $subject)

Como siempre, cuando se usa este sistema de overrides, hay que borrar el fichero cache/class_index.php para que tenga efecto.

Plantillas de email

Esta plantilla copia_mensaje_pedido se mete en la carpeta de mails de prestashop  para los idiomas que usemos, p.ej mails/es/. En caso de que hayamos editado ya las plantillas de mail en nuestro tema, hay que meterla también en themes/tu_tema/mails/es.

Cada plantilla de mail consta de una versión  html y otra en txt.

mails

El fichero copia_mensaje_pedido.html consta de la misma cabecera y footer que el resto de mails de prestashop. Este es el contenido:

Lo que nos interesa es la parte central del fichero donde se muestra el id del pedido y el mensaje. Estas 2 variables se le han inyectado antes.

 

La versión txt, copia_mensaje_pedido.txt es bastante mas sencilla

 

Todo esto esta probado y testeado en Prestashop 1.6.1.X