Most loyalty programmes charge a monthly fee to track things you can track yourself with two metafields and a Liquid snippet. A milestone tracker is one of them. It counts how many times a customer has bought from you, and shows them a celebration message when they hit a round number. Fifth purchase, tenth, twentieth. No points, no tiers, no app.

What You Need

  • Shopify store (any plan with checkout extensions or Order Status Page additional scripts)
  • Access to Shopify Flow (free on Basic and above) or a single custom webhook
  • 10 minutes

Step 1: Create a Customer Metafield

Go to Settings > Custom data > Customers. Add a metafield:

  • Namespace: custom
  • Key: purchase_count
  • Type: Integer
  • Default value: 0

This stores the running tally of how many orders each customer has placed.

Step 2: Increment the Counter on Every Order

Set up a Shopify Flow trigger for “Order Created”. The flow should:

  1. Get the customer from the order
  2. Read the current value of custom.purchase_count (default to 0 if empty)
  3. Add 1 to the value
  4. Update the customer metafield with the new value

If you do not have Shopify Flow, use an order-created webhook pointing to a small automation (Zapier, Make, or a custom endpoint) that does the same thing.

Step 3: Show the Milestone on the Order Status Page

In Checkout Settings > Order Status Page > Additional Scripts, add a Liquid snippet:

<{% if customer %}>
{% assign count = customer.metafields.custom.purchase_count.value | default: 0 %}
{% assign milestone = count | modulo: 5 %}
{% if milestone == 0 and count >= 5 %}
<div style="text-align:center;padding:24px;background:#f9f5f0;border-radius:12px;margin:16px 0;">
<h2>This is order number {{ count }}!</h2>
<p>You just unlocked a milestone. Check your inbox for a little something from us.</p>
</div>
{% endif %}
{% endif %}

Step 4: Send a Milestone Email (Optional)

Back in Shopify Flow, add a conditional branch after the metafield update. If the new count is divisible by 5 (use the modulo operation), send a customer email. Keep it short:

“Five orders. Thank you for coming back that many times. Here is a small token: [discount code or free shipping link].”

Step 5: Show Milestones on the Customer Account Page

If your theme has a customer account page, add a small banner showing their purchase count and the next milestone:

<p>You have made {{ customer.metafields.custom.purchase_count.value | default: 0 }} orders. Next milestone: order number {{ customer.metafields.custom.purchase_count.value | default: 0 | plus: 5 | minus: customer.metafields.custom.purchase_count.value | default: 0 | modulo: 5 }}.</p>

Adjust the maths to show “X orders until your next reward” if you prefer.

Why This Works Better Than a Plugin

Loyalty apps charge between $9 and $47 per month for features most small stores never use. Points, tiers, referral engines, VIP clubs. A milestone tracker does one thing: it acknowledges repeat behaviour. That is the core of loyalty. The rest is decoration.

When a customer sees “This is your 10th order” on the confirmation page, they feel seen. When they get a short email with a discount code after their 5th purchase, they feel rewarded. You spent zero dollars on software and 10 minutes of setup.

What to Avoid

  • Do not show the counter on the product page. It belongs on the order status page and the account page, not in the shopping experience.
  • Do not make the milestone reward a percentage discount. Flat rewards (free shipping, a free sample, a small fixed credit) feel more genuine.
  • Do not skip the email. The order status page is a moment. The email is a memory.

Want more like this? Join MOKU Club for free. Weekly resources, early access to new guides, and occasional templates you can actually use. Join below.

Your AI Agent Is Only as Safe as Its Worst Permission
Your AI Agent Is Only as Safe as Its Worst PermissionAiDesign

Your AI Agent Is Only as Safe as Its Worst Permission

HeraHeraOctober 20, 2026
4 Trust Signals Your Product Page Is Missing (And Exactly Where to Put Them)DesignTips & Tricks

4 Trust Signals Your Product Page Is Missing (And Exactly Where to Put Them)

HeraHeraJune 24, 2026
Bright airy studio workspace with sculptural 3D objects on a table near industrial windows
Meshy 7 Just Made Image-to-3D Actually Match Your Reference. Here Is What That Unlocks.AiDesignNews

Meshy 7 Just Made Image-to-3D Actually Match Your Reference. Here Is What That Unlocks.

HeraHeraAugust 17, 2026