Search code examples
prestashop

Where I can find all variables for email template in Prestashop 1.6


In which class I can find all variables for email template in PrestaShop?
I mean something like {firstname} or {lastname}. Or maybe it depends by class method. For example. If I create new payment template then I need to go PaymentModule.php ?


Solution

  • As I say in the comment, it depends by the method that sends the e-mail. If you want to create a new payment template you have to see the PaymentModule.php and check the ValidateOrder method.
    This is all the vars that you can use in your e-mail template:

    $data = array(
    '{firstname}' => $this->context->customer->firstname,
    '{lastname}' => $this->context->customer->lastname,
    '{email}' => $this->context->customer->email,
    '{delivery_block_txt}' => $this->_getFormatedAddress($delivery, "\n"),
    '{invoice_block_txt}' => $this->_getFormatedAddress($invoice, "\n"),
    '{delivery_block_html}' => $this->_getFormatedAddress($delivery, '<br />', array(
        'firstname'    => '<span style="font-weight:bold;">%s</span>',
        'lastname'    => '<span style="font-weight:bold;">%s</span>'
    )),
    '{invoice_block_html}' => $this->_getFormatedAddress($invoice, '<br />', array(
            'firstname'    => '<span style="font-weight:bold;">%s</span>',
            'lastname'    => '<span style="font-weight:bold;">%s</span>'
    )),
    '{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->phone : $delivery->phone_mobile,
    '{delivery_other}' => $delivery->other,
    '{invoice_company}' => $invoice->company,
    '{invoice_vat_number}' => $invoice->vat_number,
    '{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->phone : $invoice->phone_mobile,
    '{invoice_other}' => $invoice->other,
    '{order_name}' => $order->getUniqReference(),
    '{date}' => Tools::displayDate(date('Y-m-d H:i:s'), null, 1),
    '{carrier}' => ($virtual_product || !isset($carrier->name)) ? Tools::displayError('No carrier') : $carrier->name,
    '{payment}' => Tools::substr($order->payment, 0, 32),
    '{products}' => $product_list_html,
    '{products_txt}' => $product_list_txt,
    '{discounts}' => $cart_rules_list_html,
    '{discounts_txt}' => $cart_rules_list_txt,
    '{total_paid}' => Tools::displayPrice($order->total_paid, $this->context->currency, false),
    '{total_products}' => Tools::displayPrice(Product::getTaxCalculationMethod() == PS_TAX_EXC ? $order->total_products : $order->total_products_wt, $this->context->currency, false),
    '{total_discounts}' => Tools::displayPrice($order->total_discounts, $this->context->currency, false),
    '{total_shipping}' => Tools::displayPrice($order->total_shipping, $this->context->currency, false),
    '{total_wrapping}' => Tools::displayPrice($order->total_wrapping, $this->context->currency, false),
    '{total_tax_paid}' => Tools::displayPrice(($order->total_products_wt - $order->total_products) + ($order->total_shipping_tax_incl - $order->total_shipping_tax_excl), $this->context->currency, false));
    

    If you're creating a new module, you can pass all the vars that you needs, 'overriding' the ValidateOrder method