How to A/B Test Shopify Emails

We needed to a/b test a banner in the “Order Confirmation” email that Shopify sends. Here’s how we did it:

First, at the top of the email template in Shopify, we created a variable called, “randomNumber” using a random number generator, which outputs either a 1 or 2 (i.e. “true” or “false”):

{% assign min = 1 %}
{% assign max = 3 %}
{% assign diff = max | minus: min %}
{% assign randomNumber = "now" | date: "%N" | modulo: diff | plus: min %}
Thanks to

Then, in the body of the email template, we added the following if…else statement:

{% if randomNumber == 1 %}
       <p>Learn more at <a href="">Our Store Name</a></p>
  {% else %}
      <p>Learn more at <a href="">Our Store Name</a></p>
{% endif %}

Note the “control”/”variation” text in the “utm_content” url parameter, which will allow us to filter the results in Google Analytics.

That’s it! Let me know if you’ve found a different way to run an A/B test in a Shopify transactional email.

Posted in ,

Toby Cryns

Toby Cryns is a freelance CTO, expert WordPress developer, and teacher.

He offers free advice to improve your freelance biz.

He also publishes small droppings every now and them to and

Follow Toby's contributions on Github and