Magento Transactional email hints and tips

Transactional emails – the catch-all name given to all customer-facing emails that Magento sends out, or that any of the modules that you install may send out.

As within anything to do with Magento, out of the box it upplies its own email templates, but they’re (frankly) pretty awful, and no self-respecting store would want to be seen dead sending out anything where the formatting and content hadn’t been significantly improved from the default position.

This post contains a few useful hints and tips to bear in mind when editing Transactional Emails – hopefully there’s a nugget or two here that you may find useful.

Use CMS blocks in Transactional Emails…

…as there’s nothing stopping you! If the emails you want to send out are going to contain (as most do) a common header and footer which stay the same across all the emails that you send, then put the header into one static block, and the footer into another, then just call them in the Transactional Email in the same way that you would call them on a CMS page :

Email content

That way, if you ever need to change the contents of the footer of your email templates, you can just change the CMS block, and all the emails will update themselves from that, rather than having to change each and every Transactional Email every time.

Magento’s own built-in shortcuts

You’ll see from the default email templates which come with Magento that there are a number of variables which can be called (depending on the context) within the email. If you’re every wondering “Can I just pull up the shipping address at this point”, or “how can I spit out the customer’s name”, then these variables are for you.

The available variables depend on the email concerned – so don’t try outputting the identity of the “send to a friend” recipient in a sales order confirmation email. The complete (pretty much, anyway) list can be found here.

Disable unnecessary transactional emails

By default, Magento wants to send an email pretty much every time someone farts. It wants to send an email when the order is placed, and another when the order is updated with some comments. Likewise for an invoice, invoice comments, a shipment, shipment comments, a credit memo and credit memo comments. The customer, on the other hand, probably just cares about two things : (1) what have I just bought? And (2) when is it going to get to me?

So the first step is to disable all the unnecessary emails – in System -> Configuration -> Sales -> Sales Emails I’d disable every “update” email, and would also disable all the normal emails apart from the Order confirmation and the Delivery confirmation.

That includes, by the way, credit memo emails – almost certainly whatever payment method you’re using, be it Paypal, Sagepay or another payment gateway, will send an email direct to the customer when you refund them some or all of their original transaction with you. So why send them yet another one from Magento…disable the credit memo emails as well.

The only exception to the above is if you’re using payment methods which allow customers to pay later (by purchase order, on account, or to send a cheque) – in which case I would leave the invoice email enabled, as it’ll be useful for the customer to have confirmation when the order is placed, but then also have confirmation when payment is received by the merchant. But where payment is taking place at the point of purchase, there’s no need to send an order confirmation email and an invoice email at what is effectively the same time.


  • Jeroen Herczeg

    I have noticed using a CMS block for the footer, the unsubscription link doesn’t work {{var subscriber.getUnsubscriptionLink()}} .

    • Giles (author)


      No, because the transaction email probably isn’t loading the subscriber information into it, just the basic customer and order information.


  • Jeroen Herczeg

    Thanks for the information.
    It took too much time to update all the transactional emails whenever I had too make changes to the layout.
    Now I use 2 CMS blocks for the header and footer.
    For the shortcode I had to use {{block type=”cms/block” block_id=”header-block” }} instead of {{header-block}}

    • Giles (author)


      Thanks for your comment. Yes – I was just using a short summary when putting {{header-block}} – meaning that people should insert the correct shortcode appropriate to their block.

      But yes, you would use :

      {{block type="cms/block" block_id="blockIdHere" template="cms/content.phtml"}} 


  • Wes

    Hi Giles
    Great post. Came across it when searching in google for “list of magento transactional emails”.
    Have you seen anyone list out the 35 or so default emails with a little reference of what they do and whether they are sent internally (like contact us) or externally (new order). Would be hand right now if you have a link. If not, I’ll create it myself and when finished put it up on:

    • Giles (author)


      I’ve got a convenient link right here…hope all’s well Down Under!


  • ValA

    Just were are the default email templates located which come with Magento?

    • Giles (author)

      The files themselves are stored in app/locale/en_US/template/email, but to use them as a base for your email you would create a new Transactional Email, then load the template into it through the admin panel.

    • giles (author)


      Thank you for the heads up!


Leave a Reply

Your email address will not be published. Required fields are marked *

Want to talk to us about your project?