Editing Email Templates

In Settings > Emails you will find all of your email templates. Click on one to open it and configure its settings, or edit the Template.

Click Here for all email settings.

Editing the Email Template

The Email Templates use HTML and PHP to generate the email. Making edits to the basic text in an email does not require programming knowledge. You can simply change the text in the Template and Save to update the verbiage.

The template editor is a WYSIWYG (What You See Is What You Get), which means it tries to display content as it would be shown in your email.

The editor also gives you options for applying formatting options through the tools provided. Such as changing the font color, size, embedding links, adding lists, inserting tables, and more.


🚧

Be careful pasting text into your template.

When you copy text from other sources to paste it within the editor, there is often extra HTML formatting brought over with it. That can cause issues in your template as the extra formatting starts to interfere with the template.

Paste your text into a basic text editing tool like Notepad to strip the formatting. Then copy the text from there to be pasted into the template without anything extra.

Editing HTML of your Email Template

Further edits can be made by changing the HTML structure of the Template. To see the HTML, you must click the <> symbol on the WYSIWYG editor.

You can then view or edit the raw HTML of the template.

Variables and Conditions in Email Templates

❗️

Customizing email templates with PHP conditions and variables is meant for users who have experience in advanced templating.

Variables

Click Browse Variables to search through the PHP variables which are available to display in your template, or to use in conditions within the template.

You can search through the list for the variable you're looking for, then hit Copy📄.

The variable will be copied to clipboard like: {{var order.getShippingDescription()}} or {{var store_phone}}. It can then be pasted into your template to display the stored data.

Conditions

Zoey's email templating system supports a limited but useful set of conditions and control structures that allow you to handle dynamic content. Although it doesn't have the full range of capabilities that a general-purpose programming language would offer, you can still implement conditional logic based on Magento-specific variables and methods.

  • if and else Conditions:
    The email templating system supports basic if and else conditions. These conditions can check whether a variable exists, whether it equals a specific value, or if it’s true/false.
    For example:
{{if bill_email.isPastDue()}}
    Invoice Is Past Due
{{else}}
    Invoice Is Ready to be Paid
{{/if}}
{{if order.getGrandTotal() > 100}}
You qualify for free shipping! 
{{else}} 
You do not qualify for Free Shipping. 
{{/if}}
  • depend Conditions:
    The depend directive is a simplified conditional that checks if a variable is set or has a value. It’s typically used for checking whether optional fields like phone numbers, email addresses, or other store configuration data are available before displaying them.
    For example:
 {{depend store_phone}} Call Us: {{var store_phone}} {{/depend}}
  • Comparison Operators
    Zoey’s email template system allows you to use basic comparison operators in conditions:
    == Equality
    != Inequality
    > Greater than and < Less than
    >= Greater than or equal to and <= Less than or equal to
    For example:
{{if order.getGrandTotal() > 100}} You qualify for free shipping! {{/if}}

Text Comparisons for Order Shipping and Payment Methods

There are four methods you can use to compare strings to the Shipping and Payment Method in your email template conditions:

Checking for Specific Shipping Methods

The method order_checker.isShippingMethod() checks if the order uses a specific shipping method, such as "free shipping" or "flat rate." Here’s how you can implement it:

{{if order_checker.isShippingMethod('freeshipping_freeshipping, flatrate_flatrate')}}
Free shipping or flat rate
{{else}}
Paid shipping
{{/if}}

Explanation:
The isShippingMethod() method checks if the order's shipping method matches any of the provided values.
In this case, it is checking for "freeshipping_freeshipping" or "flatrate_flatrate".

📘

You must compare to the Shipping or Payment Method's code.

Checking for Shipping Methods with a Partial Match

The order_checker.isShippingMethodLike() method allows for checking if the shipping methods partially match the provided string.

{{if order_checker.isShippingMethodLike('free, rate')}}
Free or rate shipping method
{{else}}
No free or rate shipping method
{{/if}}

Explanation:
The isShippingMethodLike() method checks if the order’s shipping method contains any substring from the provided list (in this case, "free" or "rate").

Checking for Specific Payment Methods

You can use the order_checker.isPaymentMethod() method to check if the order uses specific payment methods like "checkmo" or "purchase order":

{{if order_checker.isPaymentMethod('checkmo, purchaseorder')}}
Checkmo or Purchase Order payment method
{{else}}
Other payment method
{{/if}}

Explanation:
The isPaymentMethod() method checks whether the current payment method for the order matches one of the provided values (in this case, checkmo or purchaseorder).

Checking for Payment Methods with a Partial Match

The order_checker.isPaymentMethodLike() method works similarly to the shipping counterpart but for payment methods:

{{if order_checker.isPaymentMethodLike('check, order')}}
Check or order payment method
{{else}}
No check or order payment method
{{/if}}

Explanation:
The isPaymentMethodLike() method checks whether the current payment method contains a substring from the provided list, like "check" or "order."

Conclusion

These methods allow you to tailor the content on your platform based on the shipping and payment method used in the order. You can use specific checks for exact matches or more flexible checks using the "like" methods, which match based on substrings.