Punch cards
A punch card rewards repeat buyers automatically. Every qualifying order is a punch; once a customer fills the card — reaches N orders — they get a reward and the card resets. It then repeats, so a punch card is an ongoing loop rather than a one-time bonus.
How it works
- Set orders per card (
N, minimum 2) and the reward a completed card grants. - Each paid, eligible order adds one punch. Progress within the current card is
orders ÷ N; a customer who has placed 7 orders on a 5-order card has completed one card and is 2 punches into the next. - Completion is idempotent and derives from the order ledger, so webhook replays never double-grant. If an order is refunded or cancelled it stops counting, and progress self-corrects on the next recalculation.
Head start: gift the first stamps
Optionally, every card can start with free starter stamps — 1 to 3 gift stamps that appear pre-filled the moment a customer (or visitor) first sees the card. Turn it on with Give cards a head start in the punch-card rule; new punch cards have it on by default with 1 gift stamp.
Why it exists: the endowed progress effect. In the classic study (Nunes & Drèze, 2006), a 10-stamp card with 2 stamps pre-filled beat an 8-stamp card requiring identical effort — 34% vs 19% completion. A card that is visibly begun feels worth finishing; a card at zero feels like a chore not yet started.
What it changes — and what it deliberately doesn’t:
- Display only. The head start never shortens the cycle. “Orders per card” still means real orders: an 8-order card with 2 gift stamps renders as a 10-stamp card, 2 pre-filled — the customer still places 8 orders per reward.
- Gift stamps render as ★ tiles, visually distinct from earned ✓ stamps, with a short note (“We’ve added your first stamps to get you started”) so the gift is explained — the research shows unexplained endowment underperforms.
- Progress counters switch to plain stamp numerals (“3 / 10”) so no surface ever overstates real orders placed.
- The head start appears on every cycle (it’s part of the card’s design, not a one-time bonus), for guests and members alike — visitors browsing the widget or program landing page see a card that’s already begun before they even join.
- Rewards, points economics, refund handling, and POS order counts are untouched.
Reward on a completed card
A punch card can grant any of:
| Reward | Behavior |
|---|---|
| Bonus points | Points land on the customer’s balance |
| Free product | Granted via a Shopify Function discount |
| Amount off | Fixed-value discount code |
| Percentage off | Percentage discount code |
| Free shipping | Free-shipping discount code |
Discount-type rewards are issued exactly once per completed card through the same battle-tested discount path redemptions use, and the customer gets the completion email automatically.
Punch card vs. order-count milestone
They look similar but solve different jobs:
- Order-count milestone — a one-time bonus the first time a customer reaches a threshold (e.g. “200 points on your 3rd order”).
- Punch card — a repeating card that resets and runs again every cycle (e.g. “every 5th order is free, forever”).
Use a milestone to celebrate a one-off moment; use a punch card to build a durable buy-again habit. And for rewarding customers who stay subscribed, see subscription payment milestones.
Where it shows up
Punch-card progress appears on the storefront widget and the customer account hub as a “{filled}/{N}” progress row, so shoppers always see how close the next reward is. Configure it under Ways to earn → Digital punch card.