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 :

{{header-block}}
Email content
{{footer-block}}

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.