Show points earned in the order confirmation email
Show customers the points they are set to earn from an order, and their current balance, inside Shopify's own Order confirmation email.
Requires the Joy Point Calculator block placed in your checkout order summary. Shopify makes that placement available on the Shopify Plus plan. Without the block, the setting does nothing and nothing breaks.
What it does
When this setting is on, the Joy Point Calculator block in checkout writes the customer's estimated points to the order as order attributes. Shopify's Order confirmation notification reads those attributes through a short Liquid snippet that Joy gives you, so the points message arrives in the same email as the receipt.
| Attribute | What it holds | When it is written |
|---|---|---|
Joy loyalty points earned | The points this order is set to earn | The estimate is above zero |
Joy loyalty points balance | The customer's balance at checkout, not counting this order | The checkout email matches a customer in Joy |
Joy loyalty points label | Your Custom point label, singular or plural | Either number above is written |
How to set up
Turn on the setting in Joy
Go to Settings → Additional features and turn on Show points earned in the order confirmation email. Save your changes.
Place the Joy Point Calculator block in checkout
In Shopify's Checkout and accounts editor, add the Joy Point Calculator app block to the checkout order summary, then save.
Paste the snippet into Shopify's Order confirmation email
Copy the snippet from the card in Joy. In Shopify admin, go to Settings → Notifications → Order confirmation, paste it where the message should appear, and save.
{% assign joy_points = attributes["Joy loyalty points earned"] %}
{% assign joy_balance = attributes["Joy loyalty points balance"] %}
{% assign joy_label = attributes["Joy loyalty points label"] | default: "points" %}
{% if joy_points != blank %}
<p>You're set to earn {{ joy_points }} {{ joy_label }} from this order.</p>
{% endif %}
{% if joy_balance != blank %}
<p>Your current balance: {{ joy_balance }} {{ joy_label }}.</p>
{% endif %}The sentences are in English. Rewrite them in your store's voice or language, but keep the variable names and the if guards. The guards are what stop an order without Joy data from showing a blank line or a zero.
Test with a real order
Place a real test order, then check its Additional details in Shopify admin to confirm the Joy attributes were written. Shopify's Send test notification uses sample order data, so it never shows the Joy line.
Good to know
- It is an estimate. The number is calculated in checkout, before the order exists, which is why the snippet says the customer is set to earn. Points actually awarded can differ after refunds, order edits, excluded payment methods, or earning caps checked against the final order. With Customer opt-in enrollment, a shopper who hasn't joined can see the line but won't earn points.
- Tax-inclusive stores. If you award points on tax and your prices include tax, the estimate can come out higher than the points awarded.
- The balance line. It appears only when the checkout email matches a customer in Joy, and shows the balance at checkout, not counting this order's points. A member with no points sees
0. Delete the balance block from the snippet if you would rather not show it. - Point label. A change to your Custom point label applies to orders placed afterwards. Earlier orders keep the label they were placed with.
When the points line doesn't show
The line appears only when the Joy Point Calculator block wrote the number to the order during checkout.
Nothing shows on any order: check your setup
- Your store is on Shopify Plus, which is required to place the block.
- The Joy Point Calculator block is in the checkout order summary.
- The setting is on in Joy. The checkout banner still shows when it's off, so this is easy to miss.
- The snippet is saved in Shopify's Order confirmation template. If another app, such as Klaviyo, sends that email, the snippet won't be in it.
Some orders may not show it: this is expected
- Shop Pay hides app blocks unless you turn on Include app in Shop Pay in the checkout editor. Even then, some Shop Pay orders may arrive without the number.
- Orders placed outside your online checkout (POS, orders created in admin, imports, marketplaces, subscription renewals) don't run the block.
- Checkouts opened from draft order invoices may not let the block write the number.
- The order earns no points, or the customer can't earn in your program: they left, were excluded by a segment, are a B2B customer you excluded, or aren't a member when enrollment is Manually assigned.
Turn it off
Do this in order, because Joy cannot edit your Shopify notification template for you:
- Remove the snippet from Settings → Notifications → Order confirmation in Shopify.
- Turn off the setting in Joy.
- Only then remove the Joy Point Calculator block from checkout, if you want it gone.
Emails already sent cannot be changed.
FAQs
Nothing appears in my Order confirmation email. What should I check?
Check the order's Additional details in Shopify admin. Joy attributes there mean the email template is the issue; no attributes mean the block didn't write them. See When the points line doesn't show.
Can I show only the points earned, without the balance?
Yes. Delete the second if block from the snippet.