How to Customize Shopify Order Confirmation Emails for Paid Subscription Orders

A practical solution for Appstle & recurring subscriptions

Shopify’s default order confirmation email works well for one-time purchases, but things get tricky when you start using subscriptions, especially with apps like Appstle.

Many store owners want to:

  • Show special instructions for recurring orders
  • Add subscription-related messaging
  • Avoid showing subscription content for free trials

However, Shopify has a limitation that often causes confusion. In this post, I’ll explain why this happens and share a working solution to customize order confirmation emails only for paid recurring subscription orders.


Why order tags don’t work in confirmation emails

Subscription apps like Appstle add tags such as:

appstle_membership_recurring_order

But these tags are applied after the order is created.
Shopify sends the order confirmation email immediately when the order is placed.

Because of this timing:

  • The tag does not exist when the email is sent
  • Any condition based on order tags will fail
  • This is expected Shopify behavior, not a bug

So if you’re using a free trial with 100% discount, this becomes even more important.


The correct way to detect subscriptions in confirmation emails

Instead of relying on order tags, Shopify provides subscription data directly on line items at the time the order is created.

The key object is:

selling_plan_allocation

This object is available instantly and works with:

  • Appstle
  • Recharge
  • Skio
  • Mixed carts (subscription + one-time products)


Handling free trials with 100% discount (important)

In Appstle, free trials are usually created using a 100% discount for the first order.
This means:

  • The item is still a subscription
  • But the price is 0

If we don’t handle this correctly, the email will treat the first trial order as a recurring paid order - which is not what we want.


Working solution: show content only for paid recurring subscriptions

Below is the exact logic that works reliably in Shopify order confirmation emails.

Step 1: Open Shopify notification settings

  1. Go to Shopify Admin
  2. Navigate to Settings → Notifications
  3. Open Order confirmation
  4. Switch to Edit code


Step 2: Add this Liquid code

{% assign has_paid_subscription = false %} {% for item in line_items %} {% if item.selling_plan_allocation and item.final_line_price > 0 %} {% assign has_paid_subscription = true %} {% break %} {% endif %} {% endfor %} {% if has_paid_subscription %} <!-- CONTENT FOR PAID RECURRING SUBSCRIPTIONS ONLY --> {% endif %}

How this logic works

  • selling_plan_allocation
    → Confirms the item is part of a subscription
  • final_line_price > 0
    → Ensures it’s a paid renewal, not a free trial

  • Looping through line_items
    → Supports mixed carts correctly

This combination filters out:

  • One-time purchases
  • First-time free trial subscription orders
  • Discounted trial orders

And it correctly detects:

  • Paid recurring subscription orders


Example use cases

You can now safely:

  • Show subscription renewal instructions
  • Add links to the customer portal
  • Display delivery or billing information
  • Add subscription-only support messaging

All without affecting one-time buyers or free trial users.


Key takeaway

If you’re customizing Shopify order confirmation emails for subscriptions:

  • ❌ Do not use order tags
  • ❌ Do not rely on Shopify Flow for confirmation emails
  • ✅ Use selling_plan_allocation
  • ✅ Filter free trials using price checks

This approach is Shopify-native, future-proof, and works reliably with Appstle.



Post a Comment

0 Comments