Como añadir nuevos campos de datos en las plantillas de email

En Prestashop, los contenidos de los emails del sistema o de alerta son generados utilizando una plantilla de email. Estas plantillas se pueden editar desde el menú localización>traducciones. Los campos de datos están representados en las plantillas por palabras clave entre llaves como, por ejemplo, {reference}, {invoice_date} o {delivery_phone} que son reemplazadas por datos de la base de datos cuando se envía el email.

A veces, es posible que necesitemos añadir algún campo de datos más o conocer cuales son los que podemos insertar en cada plantilla para personalizarla a nuestro gusto. Hay que tener en cuenta que para poder utilizar una palabra clave antes hay que definirla indicando el dato a extraer de la base de datos. Normalmente las palabras clave se definen mediante un array en el archivo: ./modules/mailalerts/mailalerts.php

Así que editando el siguiente código de este archivo:

$templateVars = array(
'{firstname}' => $customer->firstname,
'{lastname}' => $customer->lastname,
'{email}' => $customer->email,
'{delivery_company}' => $delivery->company,
'{delivery_firstname}' => $delivery->firstname,
'{delivery_lastname}' => $delivery->lastname,
'{delivery_address1}' => $delivery->address1,
'{delivery_address2}' => $delivery->address2,
'{delivery_city}' => $delivery->city,
'{delivery_postal_code}' => $delivery->postcode,
'{delivery_country}' => $delivery->country,
'{delivery_state}' => $delivery->id_state ? $delivery_state->name : '',
'{delivery_phone}' => $delivery->phone,
'{delivery_other}' => $delivery->other,
'{invoice_company}' => $invoice->company,
'{invoice_firstname}' => $invoice->firstname,
'{invoice_lastname}' => $invoice->lastname,
'{invoice_address2}' => $invoice->address2,
'{invoice_address1}' => $invoice->address1,
'{invoice_city}' => $invoice->city,
'{invoice_postal_code}' => $invoice->postcode,
'{invoice_country}' => $invoice->country,
'{invoice_state}' => $invoice->id_state ? $invoice_state->name : '',
'{invoice_phone}' => $invoice->phone,
'{invoice_other}' => $invoice->other,
'{order_name}' => sprintf("%06d", $order->id),
'{shop_name}' => Configuration::get('PS_SHOP_NAME'),
'{date}' => $order_date_text,
'{carrier}' => (($carrier->name == '0') ? Configuration::get('PS_SHOP_NAME') : $carrier->name),
'{payment}' => $order->payment,
'{items}' => $itemsTable,
'{total_paid}' => Tools::displayPrice($order->total_paid, $currency),
'{total_products}' => Tools::displayPrice($order->getTotalProductsWithTaxes(), $currency),
'{total_discounts}' => Tools::displayPrice($order->total_discounts, $currency),
'{total_shipping}' => Tools::displayPrice($order->total_shipping, $currency),
'{total_wrapping}' => Tools::displayPrice($order->total_wrapping, $currency),
'{currency}' => $currency->sign,
'{message}' => $message
);

Podremos modificar algun campo de datos o añadir alguno extra, simplemente añadiendo la nueva palabra clave y el correspondiente mapeo de los datos. Por ejemplo, podemos añadir el número de pedido para reflejarlo en los email de nuevos pedidos junto con la referencia del mismo del siguiente modo:

'{numero_pedido}'=>$order->id_order,

O los números de teléfono móvil de facturación y entrega añadiendo el siguiente código:

'{movil_facturas}' => $invoice->phone_mobile,

'{movil_entregas}' => $delivery->phone_mobile,

Luego solo tendremos que utilizar las nuevas palabras clave que hemos definido en nuestras plantillas de email editandolas desde el backend de Prestashop en el menú: localización>traducciones, seleccionando: traducciones de las plantillas de email como tipo de traducción y el tema que queramos editar, o bien editando directamente los ficheros en la carpeta: /modules/mailalerts/mails/es/, reemplazando /es/ por el idioma que queramos editar.

Anuncios

Acerca de Juan José Boyano

Consultor tecnológico independiente. Especialista en soluciones open source, con conocimientos en sistemas de gestión de contenido como: Joomla, Drupal, Wordpress, etc. Sistemas de gestión de la relación con los clientes (CRM) de código abierto como: Vtiger o Sugar. Sistemas de comunicación PBX VoIP como: Asterisk, Elastix, FreePBX, etc...
Esta entrada fue publicada en Prestashop y etiquetada , , , . Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s