v 7.0 Third Party 743
Download for v 7.0
Technical Name email_template_template
Also available in version
You bought this module and need support? Click here!

If an organisation's email layout is a bit more complicated, changes can be tedious when having to do that across several email templates. So this addon allows to define templates for mails that is referenced by other mail templates.

This way we can put the layout parts into the template template and only content in the other templates. Changing the layout is then only a matter of changing the template template.


Create an email template with the related document model 'Email Templates'. Now most of the fields gray out and you can only edit body_text and body_html. Be sure to use ${body_text} and ${body_html} respectively in your template template.

Then select this newly created template templates in one of your actual templates.

For example, create a template template

Example Corp logo
Example Corp header
${object.body_text} <- this gets evaluated to the body_text of a
                       template using this template template
Example Corp
Example street 42
Example city
Example Corp footer

Then in your template you write

Dear ${object.partner_id.name},
Your order has been booked on date ${object.date}
for a total amount of ${object.sum}.

And it will be evaluated to

Example Corp logo
Example Corp header
Dear Jane Doe,
Your order has been booked on date 04/17/2013
for a total amount of 42.
Example Corp
Example street 42
Example city
Example Corp footer

Given the way evaluation works internally (body_text of the template template is evaluated two times, first with the instance of email.template of your own template, then with the object your template refers to), you can do some trickery if you know that a template template is always used with the same kind of model (that is, models that have the same field name):

In your template template:

Dear ${'${object.name}'}, <-- gets evaluated to "${object.name}" in the
first step, then to the content of object.name
Example Corp

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author, please use the developer contact information. They can usually be found in the description.
Please choose a rating from 1 to 5 for this module.