When you receive and process orders, your customers receive email notifications about it. The following messages are available:
- An order confirmation is sent to the customer when they place an order. This email contains information about ordered items, shipping, billing, and order status.
- Order status changed notification is sent when order status changes to inform the customer about the progress of the order fulfillment.
- Order shipped is sent when you ship an order and change its status to "Shipped" or assign a tracking number. With this email, the customer knows that the purchased items are on their way.
- Order is ready for pickup is sent when you change the order status to Ready for Pickup. It notifies the customer that purchased items are ready for pickup.
- Download e-goods email is sent to a customer when the order’s status is changed to Paid and their digital order is now ready for download.
- Abandoned Cart Recovery is a message that reminds the shopper about their unfinished order. Read this tutorial on abandoned carts recovery.
Editing email notification templates
Email notifications are built with the help of HTML tags and use special variables to display actual order information in the email. Let's take a look at the list of available variables and explore examples of their use.
Variables for customer information
Name |
Description |
${customer.name} |
Displays customer’s name. |
${customer.email} |
Displays customer’s email |
${customer.membership_name} |
Displays customer group name |
${customer.membership_id} |
Displays customer group ID |
Variables for order information
Name |
Description |
<#list order.items as orderItem> </#list> |
Displays the list of ordered products. |
${orderItem.name} |
Displays the name of the product. |
${orderItem.sku} |
Displays the SKU of the product. |
<#noescape>${orderItem.description}</#noescape> |
Displays the product description. |
${orderItem.customerUrl} |
Calls the URL of the product page. |
${orderItem.imageUrl} |
Displays the product image. |
${orderItem.quantity} |
Displays the quantity of ordered items. |
${orderItem.price} |
Displays the product price. |
${orderItem.isShippingRequired} |
Displays to verify if shipping is required. |
${orderItem.weight} |
Displays the weight of the ordered item. |
${orderItem.subtotal} |
Displays the order item subtotal (item price x quantity of ordered items). |
<#list orderItem.options as option> </#list> |
Displays the list of options selected for the product. |
${option.name} |
Displays the option name. |
${option.value} |
Displays the amount of price modifier. |
<#list orderItem.attributes as attribute> </#list> |
Displays the list of hidden attributes set for the product. |
${attribute.name} |
Displays the hidden attribute title. |
${attribute.value} |
Displays the hidden attribute name. |
<#list orderItem.visibleAttributes as visibleAttribute> </#list> |
Displays the list of attributes set for the product. |
${visibleAttribute.name} |
Displays the attribute title. |
${visibleAttribute.value} |
Displays the attribute name. |
<#list orderItem.files as file> </#list> |
Displays the list of files attached to the product. |
${file.description} |
Displays the description of the file. |
${file.fileName} |
Displays the file name. |
${file.name} |
Displays the name of the file. |
${file.type} |
Displays the type of the file. |
${file.size} |
Displays the size of the file. |
${file.url} |
Adds a download link for the file. |
${order.number} |
Displays the number of the order. |
${order.customerUrl} |
Adds URL to the customer’s profile. Empty if the order was made anonymously. |
<@orderLink/> |
Adds order number. If an order was placed by a registered customer, contains a URL to the customer's order history. If a customer is not registered, the order number will be displayed as plain text. |
${order.adminUrl} |
Adds a link to the order in your Control Panel. |
${order.dateCreated} |
Displays the date of the order placement. |
${order.paymentStatus} |
Displays the current payment status of the order. |
<@paymentStatusColor/> |
Changes the color of the payment status element depending on the status of the payment. |
${order.subtotal} |
Displays the order subtotal. |
${order.total} |
Displays the order total. |
${order.shippingCost} |
Displays the shipping rate for the order. |
${order.weight} |
Displays the total weight of ordered items. |
<#list order.taxes as tax> </#list> |
Displays a list of taxes applied to the order. |
${tax.name} |
Displays the name of the tax. |
${tax.value} |
Displays the value of the tax. |
<#list order.discounts as discount> </#list> |
Displays a list of the discounts applied to the order. |
${discount.name} |
Displays the name of the discount. |
${discount.value} |
Displays the value of the discount. |
${order.couponPercent} |
Displays the percent of discount coupon applied to the order. |
${order.couponName} |
Displays the discount coupon name. |
${order.couponCode} |
Displays the discount coupon code. |
${order.totalDiscount} |
Displays the total value amount of discount applied to the order. |
${order.isShippingRequired} |
Displays to verify if shipping is required. |
${order.shippingAddress} |
Displays the whole shipping address for the order. It’s also possible to display each element of the shipping address separately. |
${order.shippingAddress.name} |
Displays the name of the customer. |
${order.shippingAddress.companyName} |
Displays the Company name specified in the shipping address |
${order.shippingAddress.street} |
Displays the street specified in the shipping address. |
${order.shippingAddress.city} |
Displays the city specified in the shipping address. |
${order.shippingAddress.country} |
Displays the country specified in the shipping address. |
${order.shippingAddress.countryCode} |
Displays the code of the country which is specified in customer's shipping address |
${order.shippingAddress.postalCode} |
Displays the postal (ZIP) code specified in the shipping address. |
${order.shippingAddress.state} |
Displays the state specified in the shipping address. |
${order.shippingAddress.stateCode} |
Displays the code of the state which is specified in customer's shipping address |
${order.shippingAddress.phone} |
Displays customer’s phone number. |
${order.shippingAddress.province} |
Displays the province specified in the shipping address. |
${order.shippingAddress.provinceCode} |
Displays the code of the province which is specified in customer's shipping address |
${order.billingAddress} |
Displays the whole billing address for the order. It’s also possible to display each element of the billing address separately. |
${order.billingAddress.name} |
Displays the name of the customer. |
${order.billingAddress.companyName} |
Displays the Company name specified in the billing address. |
${order.billingAddress.street} |
Displays the street specified in the billing address. |
${order.billingAddress.city} |
Displays the city specified in the billing address. |
${order.billingAddress.country} |
Displays the country specified in the billing address. |
${order.billingAddress.countryCode} |
Displays the code of the country which is specified in customer's billing address |
${order.billingAddress.postalCode} |
Displays the postal (ZIP) code specified in the billing address. |
${order.billingAddress.state} |
Displays the state specified in the billing address. |
${order.billingAddress.stateCode} |
Displays the code of the state which is specified in customer's shipping address |
${order.billingAddress.phone} |
Displays the phone number specified in the billing address. |
${order.billingAddress.province} |
Displays the province specified in the billing address. |
${order.billingAddress.provinceCode} |
Displays the code of the province which is specified in customer's shipping address |
${order.pickupTime} |
Displays the time of the pickup selected by a customer |
${order.isPaid} |
Displays to show that the order has been paid. |
${order.paymentMethod} |
Displays the Title “Payment method:” and the name of the payment method. |
${order.PaymentMethod.isOnline} |
Displays to verify the payment method. |
${order.PaymentMethod.instructionsTitle} |
Displays the title of the payment instructions. |
${order.PaymentMethod.instructions} |
Displays the content of payment instructions. |
${order.PaymentMethod.name} |
Displays the name of the payment method. |
${order.orderComments} |
Displays the order comments. |
${order.privateAdminNotes} |
Displays the staff order notes added by the store owner. |
${order.isPaymentStatusUpdated} |
Displays the updates in the payment status. |
${order.isFulfillmentStatusUpdated} |
Displays the updates in the fulfillment status. |
${order.fulfillmentStatus} |
Displays the current fulfillment status of the order. |
${order.trackingNumber} |
Displays the order tracking number if enabled. |
${order.trackingUrl} |
Adds the URL of order tracking page for carrier-calculated shipping options. |
${order.affiliateID} |
Displays the affiliate ID of the order. |
${order.extraFields} |
Displays any extra fields that were added to the order. |
<#list order.extraFields as extraField> </#list> |
Displays the list of order extra fields. |
${extraField.key} |
Displays the extra field' key. |
${extraField.value} |
Displays the extra field's value. |
${extraField.title} |
Optional. Displays the extra field' title. |
${extraField.orderDisplaySection} |
Optional. Displays the extra field's title. |
${extraField.type} |
Displays the extra field's type. |
Variables for products information
Name |
Description |
${product.name} |
Displays the product name. |
${product.sku} |
Displays the product SKU. |
${product.quantity} |
Displays the quantity of the product. |
${product.adminUrl} |
Displays the URL of the product page in the Control Panel. |
${product.customerUrl} |
Adds the URL of the product page. |
${product.imageUrl} |
Displays the product image. |
${product.warningLimit} |
Displays the number of items in stock that triggers the "Low Stock Notification". |
${product.options} |
Displays if product options were selected. |
<#list product.options as option></#list> |
Displays the list of product options. |
${option.name} |
Displays the option name. |
${option.value} |
Displays the selected option’s value. |
${product.attributes} |
Displays if attributes were selected. |
<#list product.attributes as attribute> </#list> |
Displays the list of hidden attributes set for the product. |
${attribute.name} |
Displays the hidden attribute title. |
${attribute.value} |
Displays the hidden attribute name. |
<#list product.visibleAttributes as visibleAttribute> </#list> |
Displays the list of attributes set for the product. |
${visibleAttribute.name} |
Displays the attribute title. |
${visibleAttribute.value} |
Displays the attribute name. |
Available variables for store information
Name |
Description |
${store.id} |
Displays the Store ID. |
${store.name} |
Displays the store name. |
${store.logoUrl} |
Calls the URL of the store logo. |
<@storeLogo/> |
Displays the store logo. If the logo is not specified, it displays the store name. |
${store.storeUrl} |
Calls the storefront URL. |
${store.companyEmail} |
Displays the company email, which is specified in the store settings. |
${store.customerOrdersPageUrl} |
Calls the URL to the customer’s order history page. |
<#list store.legalPages as page> </#list> |
Displays the list of legal pages. |
${page.name} |
Displays the name of a certain legal page. |
${page.url} |
Calls the URL of the certain legal page. |
<@legalPages/> |
Displays the list of legal pages in a single string. |
${store.controlPanelUrl} |
Adds your Online Store control panel URL to the message. |
${store.egoodsLinkLifetime} |
Displays the lifetime of E-goods link. |
${store.egoodsMaxDownloadAttempts} |
Displays the maximum quantity of download attempts for E-goods products. |
${store.officeAddress} |
Displays the physical address of the store which is specified in the store settings. |
${store.resetPasswordUrl} |
Adds a customer's password reset URL to the message. |
${store.businessRegistrationID} |
Displays store business registration (VAT) ID. |
Variables for brand information
Name |
Description |
${brand.name} |
Displays your brand name. |
${brand.logoUrl} |
Calls the URL of your logo. |
If an element contains a sub-element, the request will look like this: ${order.shippingAddress.city}
The list of elements can be specified using this construction:
<#list order.items as orderItem>
${orderItem.name}
</#list>
Changing the Order Confirmation email
Online Store provides default messages for paid and unpaid order confirmations to help keep your customers up to date.
Paid orders generate the following message:
Thank you for your ${store.name} store order!
We will send you a notification email as soon as your package is shipped.
Unpaid orders (for instance, offline payment methods) generate the following message:
Thank you for your ${store.name} store order!
Your order on ${order.dateCreated} has been submitted and will be processed
as soon as payment is received.
You can customize these messages to match the voice of your store using HTML.
The ${store.name} variable displays your store name in the message. You can place it in any part of the message.
Removing the сompany phone number from the Order Confirmation email
If provided, we add your company phone number to the Order Confirmation emails by default. If you want to remove this line from your emails, delete the following line of code from your Order Confirmation templates:
<#if (store.officeAddress.phone)?has_content>
or call <b>${store.officeAddress.phone}</b></#if>
The ${store.officeAddress.phone} variable is responsible for displaying the phone number in the email. If you remove this line from the template code, the phone number won’t be displayed.
Using the order extra fields
Order extra fields allow you to save some additional information to order. It can be visible or hidden from the customer.
Additional tools for working with order extra fields include two functions and an array of objects: getOrderExtraFieldValue("key"), getOrderExtraField("key"), order.extraFields.
Here are some examples:
Show all order extra fields set to be visible in order details (title and orderDisplaySection is specified)
<#list order.extraFields as extraField>
<#if extraField.title?has_content && extraField.orderDisplaySection?has_content>
${extraField.title}: ${extraField.value}
</#if>
</#list>
Print value of a specific order extra field
<#assign myExtraFieldValue = getOrderExtraFieldValue("askHowYouFoundUsApp")>
<#if myExtraFieldValue?has_content>
${myExtraFieldValue}
</#if>
Where "askHowYouFoundUsApp" is the key of your order extra field.
Print specific fields of a specific order extra field (remove fields you don't need to show)
<#assign myExtraField = getOrderExtraField("askHowYouFoundUsApp")>
${myExtraField.key}
${myExtraField.value}
${myExtraField.type}
${myExtraField.orderDisplaySection}
${myExtraField.title}
Where "askHowYouFoundUsApp" is the key to your order extra field.
Comments
0 comments
Please sign in to leave a comment.