When you first receive access to your ReturnLogic account, you will see that the email notifications that are internal to the platform are already pre-coded and immediately functional. Each of these email notifications can be edited and customized using custom HTML code.
If you are new to editing code in the email notifications, please check out this video tutorial on How to Edit Emails Sent to My Shoppers
Email Notification Customization
At this time, ReturnLogic does not offer technical support with customization as it pertains to code but we have created this article so you can compare your customized code to the original code in case you need to reference it or you are in the process of troubleshooting. If you are having trouble identifying where your custom code may be causing an error or causing an email to not function as expected, you can copy and paste the original code below to "start over". Of course, you are always welcome to do this and then continue customizing as you see fit. The notifications you can customize are the following:
RMA Start
RMA Success
RMA Requested
RMA Rejected
RMA Received
RMA Completed
Shipping Information
Settings
In ReturnLogic, we call each of these emails "notifications". You can go to Settings, Notifications, and then you can click on the blue text for any of these to see the code for each.
Where to edit an email Notification
By clicking on the title of any of these emails (blue title text), you can go to the edit page where you can see the code behind each email.
Testing
On the edit page for the notifications, there may be an option on the upper right-hand side of the page to send a test email.
In this example, the blue text that says "send test email" will trigger an email to the email address of the account you are logged into. This will allow you to see how the code is functioning and to preview what the shopper would see if they were sent the same notification. It is always a good idea to send yourself a test email after making changes to the code so that if there is an issue with how the email appears, you are aware of it before the notification gets triggered and is sent to shoppers.
If you use any of the below default notification templates and still have any issues, first confirm that you have copied and pasted the code exactly as it appears in this guide. Formatting can impact the notifications.
Original Code
Below is the original, unedited code that comes with each new ReturnLogic account:
RMA Start
Subject:Your {{storeName}} return
Body:<img style="max-width: 100%;" src="{{logoImageUrl}}" alt="logo image" /><div><p> Hello {{fromShippingName}}</p><p>Your return for {{storeName}} is ready to start. Click on the button below to choose the item(s) that you want to return.</p><table style="color: #333; font-size: 14px; width: 100%; min-width: 100%;" border="0" width="100%" cellspacing="0" cellpadding="0"><tbody><tr><td align="center" valign="middle" width="100%"><table style="background-color: #00ad77; border: none; border-radius: 3px; padding: 0 0 0 0;" border="0" width="200" cellspacing="0" cellpadding="0"><tbody><tr><td style="color: #ffffff; font-size: 16px; padding: 10px;" align="center" valign="middle"><a style="color: #ffffff; text-decoration: none; display: inline-block;" href="{{startUrl}}" target="_blank" rel="noopener">Start Return</a></td></tr></tbody></table></td></tr></tbody></table></div>
RMA Success
Subject: Your return for Order #{{rma.order_order_number}}
Body: <img src="{{logoImageUrl}}" alt="logo image" style="max-width: 100%;"><p>Return Confirmation for Order #{{orderNumber}}</p>Hello {{rma.from_shipping_name}}<p> Your return request has been approved. Package your items securely, affix the label to the top and drop off at the nearest provider. We will issue your refund/exchange when your items are received.</p><p>Return your item(s) by: {{rmaExpirationDate}}</p><p> Tracking Number: <a href="{{trackingUrl}}">{{trackingNumber}}</a></p><p>Return Provider: {{returnProvider}}</p><p>Return Method: {{returnMethod}}</p><br><a href="{{labelUrl}}" target="_blank">View and Print</a><br><a href="{{rmaUrl}}" target="_blank">Check return status</a>
RMA Requested
Subject: Your return for Order #{{rma.order_order_number}}
Body:<img src="{{logoImageUrl}}" alt="logo image" style="max-width:100%;"> <p>Return Requested for Order #{{orderNumber}}</p> <p>Hello {{rma.from_shipping_name}}</p> <p>Your return request has been saved and our customer service team is reviewing it. We will notify you when your request is approved or rejected.</p> <p>Items in your return:</p> {{#each rmaItems}} <p>{{ productName }}</p> <ul> <li>Return Reason: {{ returnReasonDescription }}</li> </ul> {{/each}}
RMA Rejected
Subject: Your return for Order #{{rma.order_order_number}}
Body: <img src="{{logoImageUrl}}" alt="logo image" style="max-width: 100%;"><p>Return Rejected for Order #{{orderNumber}}</p>Hello {{rma.from_shipping_name}}<p> Your return request has been rejected for the following reason(s):</p><p>{{rejectionComment}}</p>
RMA Received
Subject: Your return
Body: <img src="{{logoImageUrl}}" alt="logo image" style="max-width: 100%;"><p>Return Received for Order #{{orderNumber}}</p>Hello {{rma.from_shipping_name}}<p> Your return has been received and will be processed shortly. We will send you a final notification once processing of your return has been completed. </p><br><a href="{{rmaUrl}}" target="_blank">Check return status</a>
RMA Completed
Subject: Your return for Order #{{rma.order_order_number}} has been completed
Body:<img src="{{logoImageUrl}}" alt="logo image" style="max-width: 100%;"><p>Return Completed for Order #{{orderNumber}}</p>Hello {{rma.from_shipping_name}}<p> Your return request has been completed! You will be receiving the following items:</p>{{#if showRefund}}<h3>Refund</h3><h4>Refund Total: <strong>{{currencySymbol}}{{final_return_calculated_refund_amount}}</strong></h4><p>Refund amount has been credited back to your original payment method(s).</p>{{/if}}{{#if showGiftCard}}<h3>Store Credit</h3><h4>Credit Total: <strong>{{currencySymbol}}{{final_return_calculated_gift_card_amount}}</strong></h4><p>We have issued you an online store credit in the amount of <span class="bold">{{currencySymbol}}{{final_return_calculated_gift_card_amount}}</span> for the following items.</p>{{#each giftCardItems}}<img src="{{this.image_url}}" width="50px" style="width:50px; min-width:50px;"><p>{{this.sku_name}}</p>{{/each}}<p>Please keep this email if you do not intend to use all of your credit immediately.</p>{{#if storeCreditExpirationDate}}<p>Your store credit will expire on <strong>{{storeCreditExpirationDate}}</strong></p>{{/if}}{{#if storeUrl}}<p>You can visit <a href="{{storeUrl}}">{{storeUrl}}</a> to use your credit immediately.</p>{{/if}}<p>Gift Card Code:<strong>{{giftCardCode}}</strong></p>{{/if}}{{#if showExchange}}<h3>Exchange Items</h3>{{#each exchangeItems}}<img src="{{this.image_url}}" width="50px" style="width:50px; min-width:50px;"><p>{{this.sku_name}}</p>{{/each}}<p>Exchange items will be processed and shipped out within 1-2 days.</p>{{/if}}{{#if showWarranty}}<h3>Warranty Items</h3>{{#each warrantyItems}}<img src="{{this.image_url}}" width="50px" style="width:50px; min-width:50px;"><p>{{this.sku_name}}</p>{{/each}}<p>Warranty items will be processed and shipped out within 1-2 days.</p>{{/if}}{{#if rma.final_customer_comment}}<h3>Return Comment</h3>{{rma.final_customer_comment}}{{/if}}{{#if processIncomplete}}<p>Your return was not processed in its entirety, this is why.</p><p>{{rejectionComment}}</p>{{/if}}
Shipping Information
Subject: {{fromShippingName}} has sent you information regarding a return
Body: <img src="{{logoImageUrl}}" alt="logo image" style="max-width: 100%;"><p>{{ fromShippingName }} has sent you information regarding a return.</p><p><a href="{{labelUrl}}" target="_blank" style="text-decoration:none; display: inline-block;">View and Print</a></p><p><strong>This label can be used until {{rmaExpirationDate}}.</strong></p>
Tech Support for the Customization of Code
Customizing email templates with Handlebars allows you to leverage your data and fully customize your notifications to your needs. There are 4 common logic operators that anyone customizing the templates should be aware of: {{#if}} {{else}} {{#when}} and {{#each}}.
{{#if}}
Accepts 1 argument and if the variable is true or defined it will conditionally render the data within the {{#if}}{{/if}} block.
Example 1:
{{#if processIncomplete}} <p>Your return was not processed in its entirety </p> {{/if}}
Example 2: Within an {{#if}} block you can render a specific section if the expression returns false by using an {{else}} expression. {{else}} takes in 0 arguments and everything past it will render until it reaches the {{/if}}.
{{#if processIncomplete}} <p>Your return was not processed in its entirety </p> {{else}} <p>Your return has been processed successfully</p> {{/if}}
Example 3: Let’s say you used the variable {{shopperEmail}} which is present on all email templates, since that value will always be defined there is no advantage in doing this
{{#if shopperEmail}} <p>Thank you for shopping with us!</p> {{/if}}
vs.
<p>Thank you for shopping with us!</p>
{{#when}}
Gives you the ability to conditionally render data if the expression returns true
1st Argument is the variable you want to evaluate in the expression
2nd Argument is mathematical operator and must be enclosed in quotes: “>”, “=”, “<=“, etc
Supported Operators: =, !=, <, >, <=, >=, &&, AND, ||, OR, NOT
3rd Argument is what the expression is evaluating and must be enclosed in quotes
Example:
{{#when returnProvider "=" "FedEx"}} <p>You can expect your new items in 1-3 days</p> {{/when}}
{{#each}}
Accepts 1 argument, which must be an array.
Example: You can access the properties on the array like you would a normal variable. You can also use {{else}} if you need to handle edge cases when an array might be empty.
{{#each rmaItems}} <p>{{productName}}</p> <ul><li> Return Reason: {{returnReasonDescription}}</li></ul> {{else}} <p>There are no items listed on your return</p> {{/each}}
Example 2: {{#each}} is unique because it can be used in combination with {{#when}] operator; however that can effect how the variables are accessed. Inside of the when block you’ll access variables on the array by prefixing ../ to the variable name like so: {{../productName}}. Inside of the when you can also access the top-level properties not on the array by the using the standard notation like so: {{shopperEmail}}
{{#each rmaItems}} <p>{{productName}}</p> <p>{{#when returnType "=" "exchange"}} The items in your {{../returnType}} will be shipped via {{returnProvider}} once the {{../productName}} is received. {{/when}}</p> {{/each}}
To learn more about the utilizing helpers to customize your email templates, read more here: https://handlebarsjs.com/guide/builtin-helpers.htm
lIf you need additional assistance, we are happy to connect you with one of our partners that specializes in custom coding. Please let your CSM or chat support representative know that you’d like to be referred.
We're here to help! Email us at support@returnlogic.com or use the live chat inside the platform with any questions or feedback.