customizing email notification issue

Solved
Naty1
Excursionist
16 0 3

Hi There!

Hope you can help me. I need to send specific instructions for customers buying different products from my shop. I want to include the specifications on the order notification email, but of course it has to be set up on a way people buying certain items gets the right specification.  so I tried adding conditional content using liquid operators ( shopify blog developer help) "It’s possible to display specific content for individual products on an email, using conditional Liquid operators. With if statements you can add text, or images, that will appear when a product fulfills criteria that you set up." 

{% if line.title contains 'Book' %}
<p>These are the instructions for the Book</p>
{% endif %}

 Unfortunately this did not work on my email template see bellow: ( the highlighted area is what I inserted) Please help as I am struggling with this for a while. Much appreciated 

Nats

shopify email issue.JPG

0 Likes

Hey @Naty1 

I think the 'contains' operator is case sensitive. Which means that most probably your logic doesn't work because the value returned from 'line.title' has a capital letter e.g. 'Farm' instead of 'farm'.

A solution would be:

{% assign line_title_value = line.title | handleize %}
{% if line_title_value contains 'farm' %}
    // Your code here
{% endif %}


I prefer 'handleize' instead of 'downcase' as it will replace also any spaces with dashes https://shopify.dev/docs/themes/liquid/reference/filters/string-filters#handle-handleize 

Hope that will help!

Best,

Deni

0 Likes
Naty1
Excursionist
16 0 3

Hi Deni

Thanks so much for your help! I did try what you suggested but still dosnt work :/ perhaps I am not doing right? this is what I did:

 

Hi {{ customer.first_name }}, we're getting your order ready to be shipped. We will notify you when it has been sent.
{% assign line_title_value = line.title | handleize %}
{% if line_title_value contains 'farm' %}
// In the meantime, you can download your set’s audio files from the following link. You can download them one at a time or choose the Zip-file to get them all at once.

<a href=http://files.differentisgood.co.za/>Link to Farm animal set audio file</a>

0 Likes

@Naty1 

Replace 'handelize' with 'downcase' and check if that works.

0 Likes
Naty1
Excursionist
16 0 3

Hi dany

ok... this is just not working! :( I realized I was inserting the info in the wrong cell. so I did exactly as they show us on the example for the blog developer (  bellow the line.variant.title)  but still doesn't work! I am having an error when saving (as per picture shopify email issue 01.JPG) ...and then if I change to %endorf% as suggested... I get another message saying ...use %endif% ...makes no sense...

Here is what I did...please please, could you tell me exactly what  to do to make it work? this is something that I will be implementing with at least 3 products and I really need this "customize-product email" to work 

Here what I did:

{% if line.variant_title != 'Default Title' %}
<span class="order-list__item-variant">{{ line.variant_title }}</span><br/>
{% endif %}
{% assign line_title_value = line.title | handleize %} {% if line_title_value contains 'farm' %} // In the meantime, you can download your set’s audio files from the following link. You can download them one at a time or choose the Zip-file to get them all at once
<a href=http://files.differentisgood.co.za/>Link to Farm animal set audio file</a>
{% endorf %}

 

 

 

0 Likes

This is an accepted solution.

Hi @Naty1 

Just copy/paste the code below and see how it goes

 

 

{% if line.variant_title != 'Default Title' %}
<span class="order-list__item-variant">{{ line.variant_title }}</span><br/>
{% endif %}
{% assign line_title_value = line.title | downcase %} {% if line_title_value contains 'farm' %} In the meantime, you can download your set’s audio files from the following link. You can download them one at a time or choose the Zip-file to get them all at once <a href=http://files.differentisgood.co.za/>Link to Farm animal set audio file</a> {% endif %}

'endfor' if the closing element of 'for', and 'endif' is the closing element of 'if'. So you can't close the {% if %} statement with {% endfor %}. Also you've got a spelling mistake  {% endorf %}

Let me know how it goes

 

Naty1
Excursionist
16 0 3

you are a super star! it works! :) and I did the same with another product and also works like a charm! Thanks so much for your help! 

You are welcome @Naty1 

0 Likes
hxtm
New Member
1 0 0

Hello @MladenGorchev @Naty1 

 

I am trying to do the same thing, except for every product in my store. Any ideas on streamlining this process?

 

BH

0 Likes
Valentinaudisio
New Member
11 0 0

Hello, 

 

Same thing, I need to have a confirmation email for a certain product Tag, which is Valentines, I tried the below but it is not working. (we use zapiet for delivery set up)

 

Could you please let me know what I am doing wrong?

 

<!-------------- Original template is on the bottom of this field------------------>

<!-------------- CUSTIMIZED TEMPLATE (ZAPIET APP) ----------------->
{% capture email_title %}Thank you for your purchase! {% endcapture %}
{% capture email_body %}
Hi {{ customer.first_name }},

{% if product.tags contains ‘valentines’ %}

<p>Happy Valentine’s Day!</p>

<p>Thank you so much for ordering from Bocca di Lupo at home. We will prepare your food with the same love and authentic hand we are used to, in the restaurant kitchen.</p>

<p>If you are within London your order is scheduled for delivery by Brisqq on Saturday 13th February and should arrive before 7:30pm.</p>

<p>If you are Nationwide, your order is scheduled for delivery by Parcelforce on Saturday 13th February and should arrive before 4pm. We have trialled every delivery company suitable, and have selected the partner with the lowest failure rate (about 3% for us) – however sending something as perishable as fresh food (which must be prepared and packed immediately before despatch, and can’t survive lengthy transit delays) tests our delivery partners’ systems to the limit. You can expect your food to come on time. </p>

<p>However, in the unlikely event there is a problem please contact me at 0203 701 4787 to help fix it – and do bear in mind that Parcelforce is only contactable by us until lunchtime on Saturdays. </p>

<p>In the meantime please <a style="color:blue;" href="https://athome.boccadilupo.com/blogs/recipes">click here</a>(for recipes) so you can plan your cooking. We have done the hard bits for you, and nothing will be difficult or anything less than fun. We don't send bread with your order, so you may like to buy or bake some in advance.</p>

<p>I hope you enjoy your meal(s), and are transported a little to Italy in the eating (and drinking). </p>
<p>Buon appetito </p>
<p>Valentina (at home manager and the Valentines fairy) X </p>

{% else %}

<p>Thank you so much for ordering from Bocca di Lupo. We will prepare your food with the same love and authentic hand we use in the restaurant kitchen.</p>
<p> Delivery will be roughly between 3pm and 7:30pm if you're in London, or 8am-8pm if you're elsewhere. If you neeed to know more about delivery, <a style="color:blue;" href="https://boccadilupoathome.com/pages/delivery-details">click here</a></p>
<p>If you've any questions regarding your order, please <a style="color:blue;" href="https://boccadilupoathome.com/pages/fqas-help">click here</a>, or for CASA NOSTRA, our dining club, <a style="color:blue;" href="https://boccadilupoathome.com/pages/casa-nostra-faqs">here</a>. If you need to know something we haven't covered there, please send us a mail. </p>
<p>In the meantime please <a style="color:blue;" href="https://athome.boccadilupo.com/blogs/recipes">click here</a> for recipes so you can plan your cooking. We have done the hard bits for you, and nothing will be difficult or anything less than fun. We don't send bread with your order, so you may like to buy or bake some in advance. </p>
<p>I hope you enjoy your meal, and are transported a little to Italy in the eating (and drinking).</p>
<p>Buon appetito</p>
<p>Phill X</p>

{% endif %}

 

{% endcapture %}

<!DOCTYPE html>
<html lang="en">
<head>
<title>{{ email_title }}</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width">
<link rel="stylesheet" type="text/css" href="/assets/notifications/styles.css">
<style>
.button__cell { background: {{ shop.email_accent_color }}; }
a, a:hover, a:active, a:visited { color: {{ shop.email_accent_color }}; }
</style>
</head>

<body>
<table class="body">
<tr>
<td>

<table class="header row">
<tr>
<td class="header__cell">
<center>

<table class="container">
<tr>
<td>

<table class="row">
<tr>
<td class="shop-name__cell">
{% if shop.email_logo_url %}
<img src="{{shop.email_logo_url}}" alt="{{ shop.name }}" width="{{ shop.email_logo_width }}">
{% else %}
<h1 class="shop-name__text">
<a href="{{shop.url}}">{{ shop.name }}</a>
</h1>
{% endif %}
</td>

<td class="order-number__cell">
<span class="order-number__text">
Order {{ order_name }}
</span>
</td>
</tr>
</table>

</td>
</tr>
</table>

</center>
</td>
</tr>
</table>

<table class="row content">
<tr>
<td class="content__cell">
<center>
<table class="container">
<tr>
<td>

<h2>{{ email_title }}</h2>
<p>{{ email_body }}</p>
<table class="row actions">
<tr>
<td class="actions__cell">
<table class="button main-action-cell">
<tr>
<!--<td class="button__cell"><a href="{{ order_status_url }}" class="button__text">View your order</a></td>-->
</tr>
</table>
{% if shop.url %}
<table class="link secondary-action-cell">
<tr>
<td class="link__cell"><a href="{{ shop.url }}" class="link__text"> Go to Bocca di Lupo at Home</a></td>
</tr>
</table>
{% endif %}
</td>
</tr>
</table>


</td>
</tr>
</table>
</center>
</td>
</tr>
</table>

<table class="row section">
<tr>
<td class="section__cell">
<center>
<table class="container">
<tr>
<td>
<h3>Order summary</h3>
</td>
</tr>
</table>
<table class="container">
<tr>
<td>


<table class="row">
{% for line in line_items %}

{% if item_count == 1 %}
{% assign columnWrapperClass = 'order-list__item--single' %}
{% elsif forloop.first == true %}
{% assign columnWrapperClass = 'order-list__item--first' %}
{% elsif forloop.last == true %}
{% assign columnWrapperClass = 'order-list__item--last' %}
{% else %}
{% assign columnWrapperClass = '' %}
{% endif %}
<tr class="order-list__item {{columnWrapperClass}}">
<td class="order-list__item__cell">
<table>
<td>
{% if line.image %}
<img src="{{ line | img_url: 'compact_cropped' }}" align="left" width="60" height="60" class="order-list__product-image"/>
{% endif %}
</td>
<td class="order-list__product-description-cell">
<span class="order-list__item-title">{{ line.title }} × {{ line.quantity }}</span><br/>
{% if line.variant.title != 'Default Title' %}
<span class="order-list__item-variant">{{ line.variant.title }}</span>
{% endif %}
</td>
<td class="order-list__price-cell">
{% if line.original_line_price != line.line_price %}
<del class="order-list__item-original-price">{{ line.original_line_price | money }}</del>
{% endif %}
<p class="order-list__item-price">{{ line.line_price | money }}</p>
</td>
</table>
</td>
</tr>{% endfor %}
</table>

<table class="row subtotal-lines">
<tr>
<td class="subtotal-spacer"></td>
<td>
<table class="row subtotal-table">
{% if discounts.first.code %}

<tr class="subtotal-line">
<td class="subtotal-line__title">
<p>
<span>Discount ({{ discounts.first.code }})</span>
</p>
</td>
<td class="subtotal-line__value">
<strong>{{ discounts_savings | money }}</strong>
</td>
</tr>

{% endif %}


<tr class="subtotal-line">
<td class="subtotal-line__title">
<p>
<span>Subtotal</span>
</p>
</td>
<td class="subtotal-line__value">
<strong>{{ subtotal_price | money }}</strong>
</td>
</tr>

{% if attributes.Checkout-Method != "pickup" %}
<tr class="subtotal-line">
<td class="subtotal-line__title">
<p>
<span>Shipping</span>
</p>
</td>
<td class="subtotal-line__value">
<strong>{{ shipping_price | money }}</strong>
</td>
</tr>
{% endif %}


{% for line in tax_lines %}

<tr class="subtotal-line">
<td class="subtotal-line__title">
<p>
<span>{{ line.title }}</span>
</p>
</td>
<td class="subtotal-line__value">
<strong>{{ line.price | money }}</strong>
</td>
</tr>

{% endfor %}
</table>
<table class="row subtotal-table subtotal-table--total">

<tr class="subtotal-line">
<td class="subtotal-line__title">
<p>
<span>Total</span>
</p>
</td>
<td class="subtotal-line__value">
<strong>{{ total_price | money_with_currency }}</strong>
</td>
</tr>

<tr class="subtotal-line">
<td class="subtotal-line__title">
<p>
<span>This is not a VAT invoice.</span>
</p>
</td>
<td class="subtotal-line__value">
</td>
</tr>
</table>

{% assign transaction_size = 0 %}
{% for transaction in transactions %}
{% unless transaction.kind == "capture" or transaction.kind == "void" %}
{% assign transaction_size = transaction_size | plus: 1 %}
{% endunless %}
{% endfor %}

{% if transaction_size > 1 %}
<table class="row subtotal-table">
<tr><td colspan="2" class="subtotal-table__line"></td></tr>
<tr><td colspan="2" class="subtotal-table__small-space"></td></tr>

{% for transaction in transactions %}
{% if transaction.status == "success" and (transaction.kind == "authorization" or transaction.kind == "sale") %}
{% if transaction.payment_details.credit_card_company %}
{% capture transaction_name %}{{ transaction.payment_details.credit_card_company }} (ending in {{ transaction.payment_details.credit_card_last_four_digits }}){% endcapture %}
{% else %}
{% capture transaction_name %}{{ transaction.gateway | replace: "_", " " | capitalize }}{% endcapture %}
{% endif %}


<tr class="subtotal-line">
<td class="subtotal-line__title">
<p>
<span>{{transaction_name}}</span>
</p>
</td>
<td class="subtotal-line__value">
<strong>{{ transaction.amount | money }}</strong>
</td>
</tr>

{% endif %}
{% if transaction.kind == 'refund' %}
{% if transaction.payment_details.credit_card_company %}
{% assign refund_method_title = transaction.payment_details.credit_card_company %}
{% else %}
{% assign refund_method_title = transaction.gateway %}
{% endif %}


<tr class="subtotal-line">
<td class="subtotal-line__title">
<p>
<span>Refund</span>
<br>
<small>{{ refund_method_title | capitalize }}</small>
</p>
</td>
<td class="subtotal-line__value">
<strong>- {{ transaction.amount | money }}</strong>
</td>
</tr>

{% endif %}
{% endfor %}
</table>
{% endif %}
</td>
</tr>
</table>


</td>
</tr>
</table>
</center>
</td>
</tr>
</table>

<table class="row section">
<tr>
<td class="section__cell">
<center>
<table class="container">
<tr>
<td>
<h3>Customer information</h3>
</td>
</tr>
</table>
<table class="container">
<tr>
<td>

<table class="row">
<tr>
{% if requires_shipping and shipping_address and attributes.Checkout-Method != "pickup" %}
<td class="customer-info__item" valign="top" style="vertical-align:top;">
<h4>{% if attributes.Checkout-Method == "delivery" %}Delivery address{% else %}Shipping address{% endif %}</h4>
<p>
{{ shipping_address.name }}
{% if shipping_address.company %}
<br/>{{ shipping_address.company }}
{% endif %}
<br/>{{ shipping_address.address1 }}
{% if shipping_address.address2 %}
<br/>{{ shipping_address.address2 }}
{% endif %}
<br/>{{ shipping_address.city }}, {{ shipping_address.province }} {{ shipping_address.zip }}<br />

{% if attributes.Delivery-Date %}
<br />Delivery Date: {{ attributes.Delivery-Date | date: "%A, %-d %B %Y" }}<br />
{% endif %}
{% if attributes.Delivery-Time %}
Delivery Time: {{ attributes.Delivery-Time }}<br />
{% endif %}
{% if attributes.Shipping-Date %}
<br />Shipping Date:<br/>{{ attributes.Shipping-Date | date: "%A, %-d %B %Y" }}<br />
{% endif %}
</p>
</td>
{% endif %}
{% if attributes.Checkout-Method == "pickup" %}
<td class="customer-info__item" valign="top" style="vertical-align:top;">
<h4>Pickup address</h4>
<p>
{% if attributes.Pickup-Location-Company %}
{{ attributes.Pickup-Location-Company }}<br/>
{% endif %}
{{ attributes.Pickup-Location-Address-Line-1 }}
{% if attributes.Pickup-Location-Address-Line-2 %}
<br/>{{ attributes.Pickup-Location-Address-Line-2 }}
{% endif %}
<br/>{{ attributes.Pickup-Location-City }}
<br/>{{ attributes.Pickup-Location-Region }}
<br/>{{ attributes.Pickup-Location-Postal-Code }}
<br/>{{ attributes.Pickup-Location-Country }}<br/>

{% if attributes.Pickup-Date %}
<br />Pickup Date:<br/>{{ attributes.Pickup-Date | date: "%A, %-d %B %Y" }}<br />
{% endif %}
{% if attributes.Pickup-Time %}
<br/>Pickup Time:<br/>{{ attributes.Pickup-Time | date: "%R" }}<br />
{% endif %}
</p>
</td>
{% endif %}
{% if billing_address %}
<td class="customer-info__item" valign="top" style="vertical-align:top;">
<h4>Billing address</h4>
<p>
{{ billing_address.name }}<br/>
{{ billing_address.address1 }}
{% if billing_address.address2 %}
<br/>{{ billing_address.address2 }}
{% endif %}
<br/>{{ billing_address.city }}, {{ billing_address.province }} {{ billing_address.zip }}
</p>

</td>
{% endif %}
</tr>
</table>
<table class="row">
<tr>
{% if attributes.Checkout-Method != "pickup" %}
<td class="customer-info__item">
<h4>Shipping method</h4>
<p>{{ shipping_method.title }}</p>
</td>
{% endif %}
<td class="customer-info__item">
<h4>Payment method</h4>
{% for transaction in transactions %}
{% if transaction.status == "success" and (transaction.kind == "authorization" or transaction.kind == "sale") %}
<p class="customer-info__item-content">
{% if transaction.payment_details.credit_card_company %}
{% capture credit_card_url %}notifications/{{ transaction.payment_details.credit_card_company | downcase }}.png{% endcapture %}
<img src="{{ credit_card_url | shopify_asset_url }}" class="customer-info__item-credit" height="24">
<span>Ending in {{ transaction.payment_details.credit_card_last_four_digits }} — <strong>{{ total_price | money }}</strong></span>
{% else %}
{{ transaction.gateway | replace: "_", " " | capitalize }} — <strong>{{ transaction.amount | money }}</strong>
{% endif %}
</p>
{% endif %}
{% endfor %}
</td>
</tr>
</table>

</td>
</tr>
</table>
</center>
</td>
</tr>
</table>

<table class="row footer">
<tr>
<td class="footer__cell">
<center>
<table class="container">
<tr>
<td>
<p class="disclaimer__subtext">If you have any questions, reply to this email or contact us at <a href="mailto:{{ shop.email }}">{{ shop.email }}</a></p>
</td>
</tr>
</table>
</center>
</td>
</tr>
</table>

<img src="{{ 'notifications/spacer.png' | shopify_asset_url }}" class="spacer" height="1" />

</td>
</tr>
</table>
</body>
</html>

0 Likes