# Charm — Loyalty & Memberships for Shopify (full site text) > Full text of the substantive pages on https://charmloyalty.com, for AI assistants. The curated summary with key facts, pricing, languages, and company identity is at https://charmloyalty.com/llms.txt. Product documentation full text: https://docs.charmloyalty.com/llms-full.txt --- # Shopify loyalty points that protect your margin Loyalty points for Shopify with flexible earning rules, reward types, expiry and anti-fraud controls. Native on every surface. Free up to 250 orders/month. URL: https://charmloyalty.com/features/points 25+ earning rules, every common reward type, and the controls (expiry, anti-fraud, redemption caps) to keep your loyalty liability honest. Native to every Shopify surface, none of it iframed. A loyalty points program is a closed-loop economy: customers earn points by behaving the way you want (placing orders, leaving reviews, referring friends), then spend those points on rewards that cost you less than acquiring a brand-new customer would. Charm's points engine ships with more than 25 pre-built earning rules and every common reward type out of the box. You define the math, and Charm handles the bookkeeping, including expiry, anti-fraud cooldowns, and the full adjustment history of every customer. ## Pick your earning rules Earning rules are the levers that decide which behaviors get rewarded. Stack as many as fit your program — most stores use 3-5 in production. Available rule types: order placed (by amount spent or points per item, with optional minimum and bonus bands), signup bonus, newsletter and SMS signup, birthday (with a different reward per VIP tier), name day, membership anniversary, pet birthdays, child birthdays, nth-order milestones, punch cards, complete the set (buy from every collection in a set of 2 to 8), collection- and product-specific purchases, subscription orders and milestones, reviews (via Judge.me / REVIEWS.io / Okendo / Yotpo / Stamped / Loox / Fera / Air Reviews / WebwinkelKeur), social follows and shares (TikTok / Instagram / Facebook / X), custom actions, and referrals. Each rule has its own caps and cooldowns. A birthday bonus can be capped to once per year. A review reward can require a verified purchase. A social follow can require the platform to confirm the action via OAuth. Milestone and punch-card rules aren't limited to points, either: each step can hand out a free product, an amount or percentage off, or free shipping — so "every 3rd order earns 10% off" or "free shipping on the 5th order" is a single rule. ## Choose how customers redeem The reward types cover virtually every loyalty pattern: discount codes (fixed amount or percentage), free shipping, store credit (applied at checkout), and free products, which go straight into the cart with the reward applied. Rewards can be stackable or exclusive, have minimum order requirements, and expire after configurable windows. Per-customer redemption caps prevent abuse. Customers redeem in three places: the floating widget on any storefront page, the customer account hub, or by applying a code at checkout. The latter is auto-generated and emailed when they redeem. ## Expiry and anti-fraud Points expire by inactivity (the default — 12 months since last activity), absolute date, or per-rule lifetime. The expiry policy applies retroactively to existing balances so you can tighten the screws without rebuilding the program. Anti-fraud cooldowns block double-dipping on review rewards (one per order), referral rewards (one per friend), and signup bonuses (one per device fingerprint). Manual review queues catch the rest. ## Bulk admin & ledger Adjust any customer's balance manually (with a required reason logged to the ledger). Bulk-import balances from a CSV during migration. Export the full per-customer history at any time. Every change is journaled: who, what, when, why. Restoration after uninstall + reinstall is a single click on the data-migration screen. ## Example setups - DTC beauty: signup-to-second-order: 200 pt signup bonus + 5× points on second order. Designed to flip browsers into repeat buyers within 30 days. Typical lift: +35% second-order conversion. - Coffee subscription: birthday + review: Birthday bonus (500 pts) + review bonus (100 pts/photo). Quiet engagement program built around moments people already enjoy. - Apparel: collection multipliers: 2× points on full-price seasonal collections, 1× on basics. Lifts AOV on the lines you actually want to push. ## FAQ Q: Can customers earn points on discounted orders? A: Yes by default; you can exclude orders below a threshold or with specific discount codes via the earning-rule conditions. Q: Do points show up in Shopify customer-account pages? A: Yes — Charm renders a native customer-account block showing balance, tier, recent activity, and earned rewards. No iframes. Q: Can I import a points balance from another loyalty app? A: Yes. CSV import of balances, per-customer earned history, tier status, and outstanding redemption codes is available on every plan, with dedicated migration assistance included. Q: Are points liability tracked anywhere? A: Charm exposes a running liability report: total outstanding points × your configured point value = open liability. Export to CSV for your accounting team. Q: Can I retroactively change point values? A: Yes — point values are a separate setting from earning rules, so changing the value updates the liability calculation without rewriting earn history. Q: Does the earn rate have to be one point per dollar? A: No. The order-placed rate takes an 'N points per Y spent' ratio — 1 point per $1, 1 point per $10, whatever suits your margin — and you can re-frame the same ratio at any time without rewriting earn history. --- # VIP tiers that turn Shopify buyers into regulars VIP tiers for your Shopify loyalty program with point multipliers, exclusive rewards and automated celebrations. Every feature in every plan. URL: https://charmloyalty.com/features/vip-tiers Bronze, Silver, Gold, Platinum — or your own ladder. Multipliers, exclusive rewards, branded icons, and automated celebrations. Tier achievement is a brand moment, not a balance update. A tier program splits your customer base into named cohorts by how they qualify — points earned, amount spent, orders placed, successful referrals, or a customer tag, mixed and matched per tier. Each cohort earns at a different multiplier and unlocks different rewards. The goal isn't to reward big spenders — it's to give every customer a visible ladder to climb. The climb itself is what drives retention. Charm ships tier infrastructure designed around that idea, not just discount tiering. ## Design your tier ladder Start with three or four named tiers. Bronze / Silver / Gold / Platinum is the default; rename freely (e.g., Friend / Regular / Insider / Curator). Each tier qualifies on a list of criteria you choose — points earned, amount spent, orders placed, successful referrals, or a customer tag — set to require all of them or just any one. A 'Tiers qualify by' selector switches the whole ladder to one basis at once, and any tier can be removed. Thresholds should be set so 30-40% of repeat customers reach the second tier within 90 days. Too high = the climb feels impossible. Too low = the tier loses meaning. See our Field Note on tier ladder design for the math. ## Set multipliers and perks Give each tier its own points multiplier: Gold earns 2× on every earning rule, Platinum 3×. Enter it as a factor or as the rate members earn, and the tier card can tell shoppers "Earn 7 points per €1 spent" instead of a multiplier they would have to decode. Perks beyond the multiplier: tier-exclusive rewards (only Gold can redeem the free product), free shipping and member discounts with an optional minimum order, early access to members-only collections, and different rule values per tier. Perks render in the customer account hub as a checklist with locks. Customers see what they're earning toward, not just what they already have. ## Give a gift for reaching a tier A tier can hand out something once, on arrival: bonus points, a free product, or a set of products the member picks one from. Deliver it the moment the customer reaches the tier, or let it wait in their account until they claim it, so the code only starts counting down when they are ready to shop. The gift reaches the cart without anyone typing a code and covers exactly one item. Add a gift to a tier later and you can issue it to the members already there, after seeing how many never got it, or give it to a single customer from their page. ## Celebrate the upgrade When a customer crosses a tier threshold, Charm fires three things automatically: the in-app celebration bar on their next pageview, a tier-achievement email (one of the pre-built templates), and a Klaviyo event if Klaviyo is connected. The celebration design matters. We picked the celebration-bar pattern over modal popups because it doesn't interrupt purchase intent — it rewards it. ## Manual tier changes for your best customers Pin a customer to any tier from their customer page, and they stay there until you remove the override. Moving someone up works like earning the tier: its one-time gifts are issued, the tier reaches your email platform, and one checkbox sends the tier email. Moving them down removes the ongoing perks and leaves the gifts they already received. Qualification can count lifetime activity, the current calendar year, or a rolling window of months. With a window, a grace period keeps a customer's tier for a set number of days after they dip below the threshold, so a reset doesn't demote loyal customers overnight. ## Example setups - DTC beauty: tier-locked early access: Bronze members see launches at general release. Gold sees them 24h early. Platinum sees them 72h early + gets a free sample of every new SKU. - Subscription supplements: tier as membership: Active subscribers auto-tier to Gold. Cancelled subscribers drop to Bronze after 30 days. The tier itself becomes the retention signal. - Apparel: free returns as the Platinum perk: Platinum gets free returns by tier (no rolling-credit math). The perk both encourages high-AOV orders and reduces cart abandonment from return-anxiety. ## FAQ Q: How many tiers should we have? A: Three or four. Five reads as a labyrinth; two doesn't feel like a ladder. Default starters use 3 named tiers + 1 entry-level. Q: What's the difference between a VIP tier and a paid membership? A: VIP tiers are earned through behavior (spend, points, orders). Paid memberships are bought. Both stack — a customer can be a paying member AND earn into VIP tiers, and the perks compound. Paid memberships are live today; see the Memberships feature page. Q: Can customers see how far they are from the next tier? A: Yes — the customer account hub shows a progress bar to the next tier threshold and a checklist of perks they'll unlock. Q: What happens if a customer downgrades? A: That depends on how your tiers qualify. On lifetime activity, tiers only ever go up. With a calendar year or a rolling window, a customer can drop when their activity falls below the threshold, and an optional grace period keeps their tier for a set number of days first. Q: Can members choose their tier gift? A: Yes. Offer several products as one tier gift and the member picks one. You can also let the gift wait in their account until they claim it, so the code doesn't expire before they are ready to order. Q: Can a tier card show points per euro instead of a multiplier? A: Yes. Set the tier's boost as a rate and the card reads "Earn 7 points per €1 spent". It works when your store earns one rate on every order. With bonus bands or a minimum order, tiers keep the multiplier. Q: Can I run a tier-only bonus campaign? A: Yes — bonus campaigns (shipping next) can be scoped to a single tier, multiple tiers, or all customers. --- # Punch cards that bring Shopify customers back Punch cards for Shopify. Every order is a punch, a full card earns a reward and resets. Points, products, discounts or free shipping. URL: https://charmloyalty.com/features/punch-cards Every order is a punch. When the card fills, the customer earns a reward and it resets — a repeating loyalty loop, not a one-time bonus. Reward a full card with points, a free product, a discount, or free shipping. A punch card is the oldest loyalty mechanic there is: buy N times, get something on the house. The reason it still works is that it reframes the next purchase as progress toward a reward the customer has already partly earned — the sunk-cost effect, pointed the right way. Charm's punch cards are digital, automatic, and repeating. You set how many orders complete a card and what a completed card grants; Charm counts paid orders, shows the progress on the storefront, fires the reward when the card fills, and resets it so the next cycle starts immediately. ## Set the card length and its reward Choose how many orders make a card — 5 and 10 are the common ones — and what completing it grants. A finished card isn't limited to points: it can hand out a free product, a fixed or percentage discount, or free shipping, so "every 10th order ships free" is a single rule. Because the reward is just another Charm reward, it inherits the same expiry, redemption, and anti-abuse controls as the rest of your program — no separate system to reason about. ## Show live progress everywhere Progress is the whole point, so Charm surfaces it where the customer already is: the floating storefront widget and the native customer-account hub both show "3 of 5" toward the next card, with the reward spelled out. Seeing one punch left is the nudge that turns a maybe into an order — the card does the merchandising for you. ## Punches that stay honest Punches derive from paid orders, so the count reflects real revenue, not abandoned checkouts. Refunds self-correct the card, and webhook replays never double-punch — the earning is idempotent, the same reconcile logic that protects points. Cancelled or unpaid orders never advance the card, so there's no clawback drama and no customer confusion about a punch that vanished. ## Make it repeat When a card completes and the reward fires, Charm resets it and the next cycle begins — the mechanic keeps driving the order after this one, not just the current milestone. Punch cards stack with the rest of Charm: customers still earn points on every order, still climb VIP tiers, and still get referral credit, so the card is an extra habit loop layered on top, not a replacement. ## Complete the set: stamps for collections A set is a card whose stamps are collections instead of orders. Pick 2 to 8 collections, and each one is stamped the first time a paid order includes something from it. When every collection is stamped, the set pays out with the same reward choices as a punch card, and it can start a new round. It suits stores whose customers buy rarely but widely: an outdoor brand can reward the full outfit, a hat maker all four seasons. Customers see the set as a shelf of your collections in the Loyalty Hub and on the loyalty page, as a checklist in the widget, and as progress at the POS register. ## Example setups - Coffee & F&B: the regulars' card: Punch cards mirror the physical loyalty card your customers already expect — but they never lose it, and it works online and at the counter on the same count. - DTC beauty: replenishment nudge: A short card with a sample reward turns one-off trials into a replenishment habit without the margin hit of a standing discount. - Apparel: free shipping loop: Free shipping on the Nth order removes the biggest repeat-purchase friction while keeping the reward cost predictable. ## FAQ Q: What happens to a card after it's completed? A: It resets automatically and the next cycle starts, so punch cards keep driving repeat orders rather than granting a one-time reward. Q: Do refunds remove a punch? A: Yes. Punches derive from paid orders, so a refund self-corrects the card. Webhook replays never double-punch — the earning is idempotent. Q: Can a completed card give something other than points? A: Yes — a finished card can grant points, a free product, a fixed or percentage discount, or free shipping. Q: Do punch cards work in Shopify POS? A: Yes. POS orders punch the same card as online orders, on one shared balance, so in-store and web progress never drift apart. Q: What's the difference between a punch card and a set? A: A punch card counts orders, so any purchase moves it forward. A set counts collections, so only an order from a collection the customer hasn't bought from yet adds a stamp. Use a punch card to bring customers back, and a set to widen what they buy. --- # A Shopify referral program that rewards both sides A Shopify referral program that rewards both sides, with anti-fraud cooldowns, milestone bonuses and a per-customer ledger. Free up to 250 orders/month. URL: https://charmloyalty.com/features/referrals Friend-of-friend referrals with anti-fraud cooldowns, milestone bonuses, and a full per-customer ledger. Both sides win — quietly, in a way that doesn't read as MLM. A referral program rewards an existing customer (the referrer) for sending a new customer (the referee) to your store, conditional on the new customer making a purchase. It's the cheapest customer acquisition channel that exists, when the offer is calibrated honestly. Charm's referral engine ships with anti-fraud controls built in. Cooldowns, per-customer caps, milestone bonuses, and a complete ledger that shows pending vs completed referrals at the customer level. ## Configure the friend-of-friend offer Both sides get rewarded. The referee (new customer) typically gets a discount on their first order (10-15% off works best). The referrer (existing customer) earns points or store credit only after the referee's order ships and the return window closes. Most stores set the referrer's reward at 1-1.5× their average gross margin on the referee's first order — making the program self-funding even before second-order revenue. ## Lock in the anti-fraud controls Cooldown period: a customer who just signed up can't earn the referrer reward for at least N days (default 7). This blocks the 'refer yourself' loophole. Per-customer cap: limit how many referrals a single customer can convert in a month (default 10). Stops the long-tail of fake-account abusers. Manual review queue: referrals above a configurable threshold pause for human review before the reward fires. ## Add milestone bonuses Stack additional bonuses on top of the per-referral reward: 250 pts at 5 successful referrals, 1000 pts at 10, free product at 25. Milestones turn casual referrers into engaged advocates. Milestones are global per-customer (counted across their lifetime) not reset annually. The point is that hitting 25 referrals feels significant — making it expire defeats the purpose. ## Track the ledger Every referral has a clear state: pending (referee signed up, hasn't ordered) → converted (referee placed order) → eligible (return window cleared) → paid (referrer rewarded). The customer's account hub shows their full referral history with statuses. The admin shows a referral leaderboard you can use to identify advocates worth reaching out to personally. ## Example setups - DTC beauty: friend-gets-product: Friend gets a free travel-size with their first order (high perceived value, low CAC). You earn store credit. Typical conversion: 18% of referees become repeat customers. - Coffee subscription: subscription-conditional reward: Friend gets 50% off first month. You earn nothing until their second month renews. Filters tire-kickers, rewards genuine advocacy. - Apparel: milestone bonuses for advocates: Standard 10% off / 200 pts per referral. At 5 successful referrals: free embroidered product (high-margin, low-cost gesture). Creates word-of-mouth volume. ## FAQ Q: How is fraud actually blocked? A: Three layers: cooldown periods between signup and reward eligibility (defaults to 7 days, configurable 0-90), per-customer caps on monthly referrals, and a manual review queue above threshold. Device fingerprinting catches the rest. Q: Can referrers share their code on social media? A: Yes — every customer gets a unique shareable link and a discount code. Both work; the link auto-applies the discount, the code can be entered manually at checkout. Q: What happens if the referee returns the order? A: Referrer reward only fires after the configured return window closes (default 30 days). If the referee returns within that window, no reward is paid. Q: Can I see who my best advocates are? A: Yes — the admin shows a referral leaderboard sorted by lifetime successful referrals. Use it to identify advocates worth a personal thank-you or a comp upgrade. Q: Does the referral discount stack with VIP tier perks? A: Configurable per-program. Default: yes — the referee can use the referral discount AND apply their VIP tier multiplier on the same order. --- # Sell paid memberships on Shopify like any product Sell paid memberships on Shopify and run your own Amazon Prime. Free shipping, point multipliers and member-only discounts. No cut of your revenue. URL: https://charmloyalty.com/features/memberships Sell a VIP plan as a product. Members unlock free shipping, point multipliers, and member-only discounts — perks that stack on top of the free loyalty program and your VIP tiers, settled by the same checkout engine. A paid membership is a VIP plan a customer buys, rather than earns. Where VIP tiers reward behavior, a membership is a deliberate purchase — a recurring (or fixed-term) relationship that gives the member better economics every time they shop. In Charm a membership is just a product. The customer buys it, the perks switch on, and they stack on top of everything the free program already does. Membership revenue lands in your Shopify payout like any other order, with no platform cut. ## Sell it as a product Link a membership plan to any product — or pin it to a single variant when you sell several plans (monthly vs annual, Silver vs Gold) on one product page. The plan inherits that variant's price, so member pricing is always whatever you set in Shopify. Plans are one-time or term-based today (e.g. a 12-month pass). Auto-renewing subscription billing is in build — see the FAQ. ## Perks that stack on tiers A membership carries the same perk vocabulary as a VIP tier: free or discounted shipping, a point multiplier, member-only discounts, members-only content (gate chosen pages, products, or collections to members, enforced on the storefront), and custom benefit cards. The perks resolve through the exact same checkout discount Function that powers VIP tiers — so a paying member who is also Gold gets both, compounded, with no double-charging or conflicts. Members see their active plan and its perks in the loyalty hub and their Shopify customer account, alongside their points and tier. ## Drive sign-ups on the storefront A dedicated product-page block presents the plan — perks, price, and term — to logged-out shoppers (served from a cached metafield, so it's fast and safe for guests). Logged-in customers who already own the plan see a 'you're a member' note instead. The floating widget also surfaces a membership card: an upsell anchor to the plan for non-members, or the active-plan summary for members. Both read per-variant, so they update as the shopper switches options. ## Track the revenue Every membership purchase captures its amount and currency, so analytics show lifetime membership revenue, active-and-grace revenue, and active-member counts — money, not just headcount. Expiry runs on a cron with a configurable grace window, and membership fees are automatically excluded from point earning so a plan never circularly earns redeemable points against its own multiplier. ## Example setups - DTC beauty: replenishment membership: A paid plan with free shipping + 2× points turns one-off buyers into a predictable replenishment cohort, without the discount race of a subscribe-and-save. - Coffee: the regulars' club: An annual pass with member pricing and a birthday gift. The perk that pays for itself is free shipping; the perk that retains is the status. - Apparel: early-access membership: Members get 72h early access to every drop plus a multiplier. The plan funds the marketing of the drop itself. ## FAQ Q: Is this a subscription with recurring billing? A: Today memberships are sold as one-time or fixed-term plans (e.g. a 12-month pass) with expiry and a grace window. Auto-renewing subscription billing is built and pending Shopify's review of the subscription APIs — it'll switch on without changing how perks work. Q: Do membership perks stack with VIP tiers and points? A: Yes — that's the point. A paying member who is also a VIP tier earns both multipliers (compounded) and gets both sets of perks, all resolved by the same checkout Function. No conflicts, no double-charges. Q: Does buying a membership earn points? A: No. The membership fee is automatically excluded from point earning across every surface (order earning, refunds, on-page estimate, checkout preview) so a plan can't circularly earn redeemable points against its own multiplier. Q: Where do customers see their membership? A: In the storefront loyalty hub and their native Shopify customer account, alongside points and tier. The product page and floating widget also show 'you're a member' once they own the plan. Q: Do you take a cut of membership revenue? A: No. Membership sales settle through Shopify checkout like any other order — Charm never sits between you and the money, and there's no per-order or per-member fee. --- # Run double points campaigns on Shopify Loyalty bonus campaigns for Shopify. Double points weekends, seasonal pushes and VIP-only events. Schedule, clone and run per market. URL: https://charmloyalty.com/features/campaigns Schedule double-points weekends, seasonal pushes, VIP-only events, or high-value-order bonuses. Draft, schedule, clone, archive — and run different campaigns per market. A bonus campaign is a time-boxed change to your earning rules: for a defined window, some or all customers earn more, or earn on something they normally wouldn't. It's how you turn a loyalty program from a static perk into a lever you can pull around sales, launches, and slow seasons. In Charm a campaign has a start and end date, a status workflow, and an audience — and it composes with your permanent rules rather than replacing them. When the window closes, earning returns to normal automatically; nothing to remember to switch off. ## Pick the bonus and the window Start from a template — VIP tier bonus, high-value order bonus, or a redemption-tag campaign — or build your own. Set the start and end dates and the multiplier or bonus the campaign applies. Because campaigns layer on top of your base rules, a double-points weekend is exactly that: every existing earning rule pays out at 2× for the window, then reverts on its own. ## Target who sees it Scope a campaign to everyone, or to a single VIP tier for member-only events. Tier-scoped bonuses are a low-cost way to make status feel valuable without a permanent giveaway. Campaigns are per-locale aware via Shopify Markets, so you can run a Black Friday push in one market and a quiet week in another without cross-contaminating the offer. ## Manage the lifecycle Every campaign moves through a clear status workflow — draft, scheduled, active, ended, cancelled — so it's always obvious what's live now, what's queued, and what's finished. Schedule ahead of time and a campaign flips itself to active on the start date and to ended on the close date. Cancel a scheduled or active campaign at any point without touching your permanent rules. ## Clone and repeat Recurring moments — every payday weekend, every seasonal drop — don't need rebuilding. Clone a finished campaign, adjust the dates, and schedule the next run in seconds. Archived campaigns stay on record, so you can look back at what you ran last Black Friday and repeat what worked. ## Example setups - Apparel: seasonal drops: Schedule a bonus-points window around each drop so loyalty amplifies the launch instead of sitting idle between them. - DTC beauty: payday pushes: Clone a double-points weekend to run every payday — recurring demand, built once and rescheduled in seconds. - F&B: slow-week rescue: Spin up a short high-value-order bonus to smooth a predictably quiet week without cutting your everyday margin. ## FAQ Q: Do I have to turn a campaign off manually? A: No. A scheduled campaign activates on its start date and ends on its close date automatically, then earning reverts to your permanent rules. Q: Can a campaign target only one VIP tier? A: Yes — scope it to a single tier for member-only events, or to everyone. You can also run different campaigns per market via Shopify Markets. Q: Can I reuse a campaign I ran before? A: Yes. Clone any finished campaign, change the dates, and schedule the next run — archived campaigns stay on record for reference. --- # Ready-made loyalty emails for Shopify Ready-made loyalty emails for Shopify in your brand colors, covering the whole lifecycle. Send from Charm or sync to Klaviyo. Every plan included. URL: https://charmloyalty.com/features/emails A full library of lifecycle templates, brand colors baked in, sent straight from Charm or synced to Klaviyo — every loyalty moment becomes a reason to check their inbox instead of unsubscribing. A loyalty program that never emails anyone is invisible — a points balance or an expiring reward only drives a repeat order if the customer actually sees it. Charm treats every loyalty event as a trigger for a branded, on-time email, not an afterthought bolted onto a generic ESP template. The template library covers the full member lifecycle out of the box — onboarding, earning, redeeming, advocacy, and membership status — and every template ships with your brand colors already applied. No design work required before the first one sends. ## A template for every lifecycle moment Onboarding: a welcome email the moment someone joins the program, explaining how to earn and what's available to redeem right now. Earning: points-earned confirmations, birthday and name day rewards, and a store-credit cashback notice — each one shows the new balance and what it unlocks. Redeeming: reward-redeemed confirmations with the code front and center, plus reward- and points-expiring nudges timed to drive one more order before the deadline. Advocacy: referral-completed and friend's-welcome-reward emails that close the loop on your referral program without a manual follow-up. Membership & status: tier-achieved celebrations, an approaching-next-tier nudge, and membership welcome / expiring / expired notices that protect recurring revenue from silently lapsing. ## A WYSIWYG editor that doesn't make designers cry Every template opens in a visual editor — brand colors, logo, and fonts are pulled in automatically, and you rearrange blocks without touching HTML. Per-locale translations are included: a Czech customer gets the Czech version of the same template, automatically, in the same brand styling. ## Two-way Klaviyo sync, or send straight from Charm Charm fires a loyalty event — points earned, tier achieved, referral completed — into Klaviyo the moment it happens. You author the campaign, own the segment, and keep your existing flows. Don't use Klaviyo? Skip it entirely. Charm sends every template directly from your own domain, with deliverability handled out of the box. ## Example setups - Coffee subscription: expiry nudge: A points-expiring email three days out recovers otherwise-lost redemptions, and reads as a favor rather than a sales pitch. - DTC beauty: the tier-achieved moment: A tier-achieved email doubles as a small celebration of the customer's own status — the kind of moment people screenshot unprompted. - Apparel: closing the referral loop: Referral-completed and friend's-welcome emails remove the manual thank-you that most referral programs quietly depend on. ## FAQ Q: Do I need Klaviyo to use Charm's emails? A: No — every template can send directly from Charm, from your own sending domain. Klaviyo sync is optional, for stores that want to build flows around loyalty events. Q: Can I edit the email templates? A: Yes, in a WYSIWYG editor — brand colors and logo are pre-filled, and you add, remove, or reorder blocks without writing HTML. Q: Are the emails translated for international customers? A: Yes — every template is available in Charm's supported languages, matching the customer's Shopify Markets locale automatically. Q: What triggers each email? A: Each template maps to a specific loyalty event — joining the program, earning points, an expiring reward, a tier upgrade, a completed referral, or a membership change — and you can turn any one of them off individually. --- # Shopify POS loyalty with one balance everywhere Shopify POS loyalty with one balance online and in store. Earn points, redeem rewards and see tiers at the register. No second app, no second login. URL: https://charmloyalty.com/features/pos Charm runs natively inside Shopify POS. Staff earn points, redeem any reward, and see tier and membership status at the register — the same engine, the same balance, no second app or login. Most loyalty apps stop at the storefront. But a returning customer who shops both online and in person has one relationship with your brand — and expects one balance. Charm's POS extension closes that gap. It's a thin in-store surface over the exact same points engine, reward catalog, VIP tiers, and memberships that power the web. Nothing to reconcile, nothing that drifts: the counter reads and writes the same ledger. ## Look up any member at the register A Smart Grid tile and a customer block surface the attached customer's loyalty state instantly: points balance, current tier and its perks, active membership, and store-credit balance. Staff see the rewards the customer can actually afford right now, plus the next reward they're working toward — so the upsell ('you're 200 points from a free product') is a glance, not a calculation. ## Redeem every reward type The redeem modal handles all three reward types in person: mint a discount code, issue store credit, or grant a free product. Points are deducted server-side through the same redeem path as the web, so the existing reconcile and claw-back logic just works. Store credit redeems as Shopify's native tender, so it settles cleanly through the POS payment flow. ## Earn automatically on every sale POS orders earn points on the same rules as online orders — no separate configuration. A post-sale block confirms the points earned and the new balance on the receipt screen, so the customer sees the reward land before they leave. Earning is idempotent and self-healing: it reconciles regardless of webhook timing, so a flaky connection at the counter never costs a customer their points. ## Built for the shop floor The extension is localized in thirty-five languages and reacts to the device's active language. It's tolerant of the offline moments real registers have, and it authenticates through the POS session automatically — there's no token plumbing or extra sign-in for staff. Because it reuses Charm's existing resolvers, anything you change online — a new reward, a tier perk, a membership — shows up at the counter with no extra setup. ## Example setups - Beauty: omnichannel regulars: Counter staff see the customer's tier and affordable rewards instantly, turning a checkout into a recognized, rewarded moment. - Apparel: flagship + web: Members shop the flagship and online interchangeably; the multiplier and member discount apply identically at both. - Food: fast line, real rewards: A glance at the tile shows the balance; redeeming a reward is one modal, so the line keeps moving. ## FAQ Q: Is this a separate app my staff have to install? A: No — it's an extension of the same Charm app, running inside Shopify POS. Staff authenticate through the POS session automatically; there's no second login or device. Q: Do in-store and online points share one balance? A: Yes. POS reads and writes the same points ledger, reward catalog, tiers, and memberships as the storefront. There's nothing to sync or reconcile. Q: Which rewards can be redeemed at the register? A: All three types — discount codes, store credit (as native POS tender), and free products. Points are deducted server-side through the same redeem path as the web. Q: What languages does the POS extension support? A: Thirty-two — every language Charm ships, from English, Czech, and German to Japanese, Vietnamese, and Thai. It follows the device's active language. Q: Does it cost extra? A: No. POS loyalty is part of Charm — the same plan, no per-location or per-register surcharge. --- # Loyalty integrations from Klaviyo to Shopify Flow Connect Shopify loyalty to Klaviyo, Shopify Flow, Functions and the review apps you already run. Two-way sync, no glue code, nothing to maintain. URL: https://charmloyalty.com/features/integrations Shopify Flow, Shopify Functions, two-way Klaviyo sync, and eight review platforms — Charm connects to the tools you already run, with no glue code and nothing to maintain. A loyalty program that lives in isolation from your reviews, email, and automation tools creates duplicate work — exporting reviewer lists to manually award points, or building a workaround just to fire a welcome email. Charm is built on Shopify's own extension points, so most of that glue code simply isn't needed. Two kinds of integration are on offer: Shopify's native primitives (Flow, Functions, Markets, Customer Accounts) that Charm runs on directly, and third-party platforms (Klaviyo, eight review apps) that connect through pre-built, no-code setups. ## Built on Shopify Flow and Functions Shopify Flow gives Charm six actions merchants can drop into any workflow — award points, deduct points, grant store credit, mark a tier achieved, and more — combined with Flow's own triggers and conditions for logic Charm doesn't natively expose. Shopify Functions powers the product-reward discount generator: the checkout-native logic that applies a free product or percentage-off reward without a discount-code workaround. ## Two-way Klaviyo sync Charm fires every loyalty event — points earned, tier achieved, reward redeemed, referral completed — into Klaviyo as a native event, ready to build flows and segments around. It's two-way: customer profile properties (points balance, tier, membership status) sync back into Klaviyo, so a "VIP tier = Gold" segment stays accurate without a scheduled export. ## Eight review platforms, one setting Judge.me, REVIEWS.io, Okendo, Yotpo, Stamped, Loox, Fera, and Air Reviews all connect the same way: turn on the earning rule, set the point value, and every verified review submitted through that platform earns points automatically. No CSV exports, no manual awarding — the review platform's own webhook tells Charm a review happened, and the points post within seconds. ## Shopify Markets and custom webhooks Shopify Markets lets you run different loyalty rules — or entirely different point values — per market, without a second app install. Anything not covered by a native integration can usually be reached with a custom webhook — ask during setup and we'll point you at the right event. ## Example setups - DTC beauty: reviews fund the program: Every review-platform earning rule turned on at once — reviews become the single largest source of point issuance, funded entirely by content the store already wanted. - Supplements: a Klaviyo win-back layer: Points-expiring events feed a dedicated Klaviyo win-back flow, layered on top of Charm's own expiry email for two chances to recover the redemption. - Apparel: multi-market tiers: Shopify Markets runs a EUR tier ladder and a USD tier ladder from the same install, each with its own thresholds and currency-appropriate rewards. ## FAQ Q: Do I need Klaviyo to use Charm? A: No — Klaviyo sync is optional. Every email can also send directly from Charm, and every core feature works without any integration turned on. Q: Which review platforms does Charm support? A: Judge.me, REVIEWS.io, Okendo, Yotpo, Stamped, Loox, Fera, and Air Reviews — each connects via an earning rule, no custom code required. Q: Can I run different loyalty rules per country? A: Yes, via Shopify Markets — set different point values, tier thresholds, or reward catalogs per market from a single Charm install. Q: What if the tool I use isn't listed? A: Shopify Flow covers most custom logic without code. For anything else, custom webhooks are available — ask during setup. --- # Shopify greetings with names correctly declined Greet Shopify customers by name in the correct grammatical case, with Czech and Polish declension and name-day rewards. Powered by the free Vocato app. URL: https://charmloyalty.com/features/name-personalization Czech and Polish don't just translate — they bend a person's name depending on how you address them. Charm greets each shopper in the correct grammatical case, and turns their name day into a reward. Powered by the free Vocato app. In English you write "Hi, Eliška" and you're done. In Czech, Polish, and other inflected languages a name changes form depending on its role in the sentence — so addressing someone as "Ahoj, Eliška" is as jarring as writing "Hi, Eliška's" in English. The correct greeting is "Ahoj, Eliško." Most loyalty apps never get this right, because their copy was written in English first and localized afterwards. Charm reads the correct forms from Vocato — a free companion app that maintains curated Czech, Slovak, and Polish name data — and uses them in two places: the greeting a customer sees in their loyalty hub, and a name-day reward that fires on the right date. Nothing for you to translate, and nothing for the shopper to fill in. ## Greetings in the vocative When Vocato is connected, Charm addresses each customer in the vocative — the case your language uses to speak to someone. "Eliška" becomes "Eliško", "Petr" becomes "Petře", the Polish "Piotr" becomes "Piotrze". The loyalty hub greets them the way a person would, not the way a database would. It's on by default the moment Vocato is detected — better copy with zero configuration — with a single toggle if you'd ever prefer the plain first name. Czech and Polish are supported; Slovak keeps the plain name, because modern Slovak has effectively dropped the vocative for names, and we won't invent a form native speakers would find odd. ## Name-day rewards In Czech, Slovak, and Polish culture a name day — svátek, meniny, imieniny — is a second personal celebration alongside a birthday. Charm turns it into an automatic reward: set the points or the discount, and every customer earns it on their day. It works exactly like the birthday rule, minus the friction — the date comes from the customer's first name, so there's nothing to collect. The loyalty hub shows a friendly countdown to the next name day, and a dedicated name-day email goes out when it arrives. ## Powered by the free Vocato app Vocato is a free sister app that maintains the name-declension and name-day datasets Charm reads from. Install it and Charm detects it automatically — no API keys, no field mapping, no setup screen. Both capabilities light up on their own. A single "Sync from Vocato" button backfills your existing customers in one pass, so the correct greetings and name-day dates apply to the people already in your program, not just new signups. ## Honest about the edges The name has to exist in Vocato's curated datasets. Real Czech, Slovak, and Polish given names are covered; an unrecognized or made-up name simply falls back to the plain first name, and no name-day reward is scheduled. Nothing breaks — the personalization just doesn't apply. Because the datasets are curated rather than machine-guessed, what Charm shows is correct whenever it shows anything at all. The failure mode is "plain name", never "wrong name". ## Example setups - Czech DTC beauty: A Prague skincare brand greets every member correctly and gifts a name-day discount — small touches that read as "this brand is one of us", not a US import. - Polish apparel: Addressing shoppers as "Piotrze" rather than "Piotr" is the difference between a localized store and a merely translated one — and it costs nothing to switch on. - Selling into CEE: A merchant expanding into Czech and Polish markets via Shopify Markets gets native-grade personalization without hiring a copywriter for each language. ## FAQ Q: Do I need the Vocato app for this? A: Yes — the vocative greetings and name-day dates come from Vocato's curated datasets. It's free, and once installed Charm detects it automatically with no setup. Without it, Charm uses the plain first name and skips name-day rewards. Q: Which languages are supported? A: Vocative greetings work in Czech and Polish. Name-day rewards work for Czech, Slovak, and Polish name-day calendars. Every other locale keeps the plain first name. Q: Why no Slovak vocative? A: Modern Slovak has effectively dropped the vocative case for names, so Vocato doesn't produce one — and neither do we. Slovak customers still get name-day rewards; their name just stays in its plain form. Q: What happens if a name isn't recognized? A: It falls back gracefully to the plain first name, and no name-day reward is scheduled. Because the data is curated, Charm only personalizes when it's confident it's correct. --- # Build a loyalty landing page in your Shopify theme A loyalty landing page built from Shopify theme app blocks. Earning, rewards, VIP tiers, referrals and an auto-generated FAQ in every store language. URL: https://charmloyalty.com/features/landing-page A dedicated loyalty landing page, assembled from Charm's own theme app blocks. Ways to earn, rewards, VIP tiers, referrals, and an auto-generated FAQ — signed-in members see their balance and progress, guests see the join pitch. On your brand, in thirty-five languages. A loyalty widget answers "what's my balance?" for people who already know they're in the program. A landing page does the opposite job: it's a full storefront page that explains the whole program to someone who hasn't joined yet, and gives a member a place to see everything at once — earn rules, rewards, their tier, their referral link. In Charm the page is built from the same theme app blocks that power the rest of your storefront. You create a normal Shopify page, then drop in the blocks you want and arrange them in the theme editor. Every block reads live from your program, so the values on the page are the values in your admin — never a screenshot that drifts out of date. ## Create the page, let Charm fill it You create a normal Shopify page — Charm doesn't invent a route outside your theme — and from the Charm admin you deep-link straight into the theme editor for it. From there you add the loyalty blocks and arrange them like any other section. Because it's a real theme page, it inherits your header, footer, and theme styling for free, and lives at a clean URL you control. Nothing is iframed; each block renders natively in your theme. ## Blocks that show the real program A full-bleed or contained hero opens the page, with mobile-specific image, overlay, and height controls so it reads well on a phone. Below it, a ways-to-earn section shows every rule with its real point value — including punch-card stamp grids that fill in and milestone ladders that show live progress toward the next reward. A rewards block lays out what points buy. VIP tiers render in three layouts — an icon grid, stacked rows, or a comparison table that highlights the shopper's current tier — so you can pick the density that fits the brand. A referral section carries the member's personal code and share link, reward tiles, and live stats. The page closes with an auto-generated FAQ built from your actual program settings — and it emits FAQ structured data, so the questions are eligible for rich results in search. An active redeemed-codes shelf shows a returning member the codes they've already unlocked, ready to use. ## Personal for members, persuasive for guests A signed-in member is greeted by name — vocative-aware when the Vocato app is connected, so Czech and Polish names read the way a person would say them — and sees their balance and progress front and center. A logged-out visitor sees the join pitch instead: what the program is and why to sign up. The page is built to feel instant. It paints a skeleton immediately, serves cached program data, and kicks off the member-data fetch while the HTML is still parsing — so the first meaningful paint doesn't wait on a round-trip. ## On your brand, in your words, in every language The page inherits your store's brand colors automatically, and you can override the color theme per surface with a live preview in the Charm admin — so the landing page can differ from the widget or hub without touching the others. Every string is translated into thirty-five languages out of the box and follows the shopper's locale, and every one of them is overridable per surface under "Advanced — all text" if you'd rather phrase it your way. The admin's Visibility → Landing page screen shows a live preview and detects whether the page is actually published, so you're never guessing whether it went live. ## Example setups - DTC beauty: one page to explain it all: A single link in the nav and footer that turns "we have a loyalty program" into a page a browser can actually read — earn rules, rewards, and tiers laid out on-brand. - Apparel: tiers as the hook: Lead with the comparison-table tier layout so shoppers see exactly what Gold unlocks over Silver — the status ladder does the persuading. - F&B: a members' home base: Returning customers get a greeting, their balance and punch-card progress, and their redeemed codes in one place — a reason to come back between orders. ## FAQ Q: Does Charm create the page for me? A: You create a normal Shopify page yourself; Charm then deep-links you straight into the theme editor for it, where you add and arrange the loyalty blocks. The blocks and their live data are Charm's — the page itself lives in your theme, at a URL you control. Q: Will it match my theme and brand? A: Yes. It's a real theme page, so it inherits your header, footer, and styling, and the blocks pick up your store's brand colors automatically. You can override the color theme for this surface specifically, with a live preview in the Charm admin. Q: What do logged-in and logged-out visitors see? A: A signed-in member sees a personal greeting (vocative-aware with Vocato), their balance, and their progress. A guest sees the join pitch — what the program offers and how to sign up. The page paints a skeleton instantly so neither waits on a blank screen. Q: Is it good for SEO? A: The auto-generated FAQ block emits FAQ structured data, so those questions are eligible for rich results in search. And because it's a native theme page rather than an iframe, its content is crawlable like any other page on your store. Q: Can I change the wording, or use it in other languages? A: Every string ships translated into thirty-five languages and follows the shopper's locale automatically. Any string is overridable for this surface under "Advanced — all text" if you want to phrase it your own way. --- # Charm vs Smile.io URL: https://charmloyalty.com/alternatives/smile Smile is the polished category incumbent — but VIP tiers, points expiry, and the Loyalty Hub still sit behind its $199 tier. Charm includes every one of those in every plan, from Free. Smile.io: free tier 200 orders/mo; paid $15 / $79 / $199+. VIP tiers, points expiry & Loyalty Hub gated at the $199 tier; overage above band (as of May 2026). Charm: free 250 orders/mo — every feature; paid $15 / $49 / $79 by order band. VIP tiers, referrals & paid memberships included on every plan, Free up. - VIP tiers + Loyalty Hub included from Free — Smile gates them at $199 - Paid memberships and POS included; Smile does neither - No per-order overage, and 35 languages out of the box ## FAQ Q: Is Charm cheaper than Smile.io? A: It depends on what you need. Smile's entry tier is now $15, but VIP tiers, points expiry, and the Loyalty Hub stay locked until its $199 Growth tier. Charm includes all of those — plus referrals, paid memberships, and POS — in every plan, starting on Free. At Smile's 2,500-order band ($199) Charm Growth is $49. Q: Can I migrate Smile data to Charm? A: Yes. We import customer balances, tier status, and earned-points history via CSV, with dedicated migration assistance on every plan. Q: Do you have feature parity with Smile? A: For the core loyalty surfaces — points, tiers, referrals, redemption, lifecycle emails — yes, plus paid memberships and POS loyalty, which Smile doesn't offer. Bonus campaigns shipped in June 2026 — occasion presets, point multipliers, and scheduling included. --- # Charm vs LoyaltyLion URL: https://charmloyalty.com/alternatives/loyaltylion LoyaltyLion is enterprise-grade with enterprise pricing and a sales-led onboarding. Charm gives growing Shopify brands the same native-surface depth, self-serve, with every feature in every plan. LoyaltyLion: free tier 400 orders/mo (trial); paid $199+ / custom. Above the free tier is sales-led; full pricing is quote-based (as of May 2026). Charm: free 250 orders/mo — every feature; paid $15 / $49 / $79 by order band. Self-serve install, no demo call — plans from $15. - Self-serve install — no demo gate or annual contract - Plans from $15 instead of a $199+ minimum - Native localization in 35 languages, not a US-first afterthought - Self-serve migration — upload LoyaltyLion's own Customers export and preview before anything changes ## FAQ Q: Is Charm a good LoyaltyLion alternative for growing stores? A: Yes — Charm is built for stores past the 'free forever' size who don't want a $199+/month commitment or a forced demo call. Every loyalty feature is included from Free, and you scale on order volume. Q: Can I migrate my LoyaltyLion data to Charm? A: Yes, fully self-serve: download the Customers export from LoyaltyLion (Analytics → Exports) and upload it as-is. Charm auto-detects the format and brings over balances, pending points, VIP tiers, birthdays, and blocked members — with a dry-run preview first, no customer emails fired, and one-click revert. Even the reward codes customers earned in LoyaltyLion but never spent come along: Charm scans them right in Shopify and can convert them to points, keep them visible in the new program, or retire them. See the step-by-step guide on our blog. Q: Do you offer enterprise support like LoyaltyLion? A: Every paid plan (from $15) includes priority EU live chat support, and dedicated migration help is standard for everyone. For multi-store, headless, or SLA needs, our Shopify Plus concierge covers it — talk to us. --- # Charm vs Yotpo Loyalty URL: https://charmloyalty.com/alternatives/yotpo-loyalty Yotpo Loyalty is part of the broader Yotpo retention suite, priced accordingly and taxed per order. Charm is focused — loyalty and memberships — with no per-order fee and a much lower entry. Yotpo Loyalty: free tier 100 orders/mo; paid $199 / custom. Often bundled with the wider Yotpo suite; ~$0.20 per-order overage (as of May 2026). Charm: free 250 orders/mo — every feature; paid $15 / $49 / $79 by order band. Standalone loyalty + memberships; pairs with your existing reviews / SMS apps. - Single-purpose product, not a suite you have to buy into - No $0.20-per-order overage — predictable monthly price - Two-way Klaviyo OAuth sync if you prefer Klaviyo over Yotpo SMS ## FAQ Q: Should I switch from Yotpo Loyalty to Charm? A: If you use the rest of the Yotpo suite (reviews, SMS) and it's paying for itself, keep it. If you mainly use the loyalty piece and pay enterprise-tier prices plus per-order overage for it, Charm gets you the same outcomes from $15 with no per-order fee. --- # Charm vs Joy URL: https://charmloyalty.com/alternatives/joy Joy is a strong, feature-heavy value play — but it still gates paid memberships behind its Advanced tier. Charm puts memberships (and everything else) in every plan, with a more curated design language. Joy: free tier 150 orders/mo; paid $29 / $129 / $499. Feature gates between tiers; paid memberships only at Advanced (as of May 2026). Charm: free 250 orders/mo — every feature; paid $15 / $49 / $79 by order band. No feature gates between tiers — memberships included from Free. - No "unlock this in the next plan up" — every feature on every tier - Paid memberships and POS included from Free; Joy gates memberships at Advanced - Curated illustration system + Playfair display type, not generic clipart ## FAQ Q: Is Charm better than Joy? A: Depends on what you optimize for. Joy's entry price is lower at $29. Charm trades a little on entry price for no feature gates between tiers (memberships and POS included from Free), deeper native-surface integration, EU localization, and a more refined design system. --- # Charm vs Rivo URL: https://charmloyalty.com/alternatives/rivo Rivo positions as a Plus-leaning retention platform and charges accordingly once you grow. Charm matches the native depth, includes memberships in every plan, and never taxes you per order. Rivo: free tier 200 orders/mo; paid $49 / $199 / $499+. Scale tier ~$199 at 2,500 orders; memberships & dev toolkit gate higher (as of May 2026). Charm: free 250 orders/mo — every feature; paid $15 / $49 / $79 by order band. Same 2,500-order band as Rivo Scale — at $49, not $199. - Rivo charges ~$199 for 2,500 orders; Charm Growth is $49 for the same band - Paid memberships included on every plan — no separate upsell tier - No per-order fee, and native customer-account surfaces from day one ## FAQ Q: Is Charm a Rivo alternative for Shopify Plus stores? A: Yes. Rivo Scale's 2,500-order cap fits inside Charm Growth's 5,000 band at a quarter of the price, with memberships and POS included rather than gated. For multi-store, headless, and SLA needs, our Shopify Plus concierge covers Plus brands. --- # Charm vs BON Loyalty URL: https://charmloyalty.com/alternatives/bon BON is a solid mid-market value app — but it bills a per-order overage above your band. Charm matches the price ladder, never charges per order, and includes memberships and POS everywhere. BON Loyalty: free tier 150 orders/mo; paid $29 / $129 / $499. Per-order overage above band ($0.05–$0.15/order) (as of May 2026). Charm: free 250 orders/mo — every feature; paid $15 / $49 / $79 by order band. No per-order overage — you move bands, you're never taxed per order. - No per-order overage — BON bills $0.05–$0.15 per order above your cap - Paid memberships + POS included; native customer-account hub built in - Refined design language and no third-party iframes - Self-serve migration: upload BON's customer data export and preview before anything changes ## FAQ Q: Why choose Charm over BON? A: If BON's per-order overage and feature gates don't bother you, it's a fine app. Charm includes every feature (memberships, POS, VIP tiers) on every plan, never charges per order, and ships a native customer-account hub plus Klaviyo two-way sync from the entry tier. Q: Can I migrate my BON Loyalty data to Charm? A: Yes, self-serve: export your customer data from BON and upload the file as downloaded. Charm recognizes the format and brings over point balances, join dates and customers excluded from the program, with a dry-run preview first, no customer emails fired, and one-click revert. BON doesn't export VIP tiers, so add a Tier column with the tier's name in Charm to seat members in a tier. Or let our team run the migration for you at no extra cost. --- # Charm vs Growave URL: https://charmloyalty.com/alternatives/growave Growave is an all-in-one bundle (loyalty + reviews + wishlist) that scales in price with bundle breadth. Charm is focused on loyalty and memberships — pair it with the best-in-class reviews app of your choice. Growave: free tier 100 orders/mo; paid $49 / $199 / $499 / $999. Pricing scales with order volume and bundle breadth (as of May 2026). Charm: free 250 orders/mo — every feature; paid $15 / $49 / $79 by order band. Focused loyalty + memberships; integrates with 9 review platforms. - Loyalty + memberships focus, not an all-in-one bundle you partly use - Pair Charm with Judge.me / Loox / Okendo as you prefer - No platform cut on membership revenue, no per-order fees ## FAQ Q: Should I replace Growave with Charm + a reviews app? A: If you're paying Growave for loyalty + reviews and want best-in-class on each, yes. Charm + Judge.me (or another review app you like) typically beats the bundled tier on both price and product depth — and Charm includes paid memberships, which the bundle doesn't. --- # Charm vs Okendo URL: https://charmloyalty.com/alternatives/okendo Okendo is a reviews-first suite, and loyalty is one of five products priced as one bundle with no free tier. Charm is a focused loyalty app — free up to 250 orders — that pairs with Okendo reviews so you can move just the loyalty piece. Okendo: free tier No free plan (14-day trial); paid ~$19 / $119 / $299+ by order volume. Reviews-first suite; loyalty is one of five bundled products (reviews, loyalty, referrals, quizzes, surveys). No free tier (as of July 2026). Charm: free 250 orders/mo — every feature; paid $15 / $49 / $79 by order band. Focused loyalty + memberships; keep Okendo (or any app) for reviews. - Focused loyalty app, not a five-product reviews suite you buy as one bundle - Free forever up to 250 orders — Okendo has no free plan, only a 14-day trial - Keep Okendo for reviews and move just loyalty — built-in Okendo import for the balances ## FAQ Q: Can I keep Okendo reviews and move only loyalty to Charm? A: Yes. Charm is loyalty and memberships, not reviews, so keep Okendo's reviews product (or Judge.me, Loox, etc.) and move just the loyalty program. Charm has a built-in Okendo migration preset for the balances, VIP tiers, and enrolment history. Q: Can I migrate my Okendo loyalty data to Charm? A: Yes. Charm imports your Okendo Customer Profiles export — balances, VIP tiers, enrolment dates, plus pending members and pending points — through a dry-run preview, with dedicated migration assistance on every plan. Q: Is Charm cheaper than Okendo? A: It depends what you need. Okendo prices the whole platform (reviews, loyalty, referrals, quizzes, surveys) by order volume with no free tier. If you mainly use the loyalty piece, Charm gives you a focused loyalty + memberships app free up to 250 orders, then $15 / $49 / $79 by order band. --- # Charm vs Ellity.eu URL: https://charmloyalty.com/alternatives/ellity Ellity is a loyalty program for Shoptet — when you replatform to Shopify, it can't come with you. Charm is where your program lands: a one-file import that recreates the Shopify customer accounts and every balance, email-silent, in a few clicks. Ellity.eu: free tier 60 orders/mo (Shoptet); paid CZK tiers by order volume + add-ons. Shoptet-only loyalty app — it cannot move to Shopify with you (as of July 2026). Charm: free 250 orders/mo — every feature; paid $15 / $49 / $79 by order band. Where your program lands on Shopify — one-file import recreates the accounts. - Shoptet-only — when you move to Shopify, Ellity can't follow; Charm is where the program lands - One-file import recreates Shopify accounts for members new to Shopify, email-silent - Free forever up to 250 orders, every feature in every plan, predictable USD pricing ## FAQ Q: I'm moving from Shoptet to Shopify — can I keep my Ellity loyalty program? A: Yes. Charm has a built-in Ellity migration preset: export your points once, and Charm imports every balance and VIP tier — creating the Shopify customer accounts for members who don't exist there yet, without sending any emails. Q: Will my customers lose their points when I switch to Shopify? A: No. Charm imports current balances and VIP tiers from Ellity's Export Points file, preserves each member's registration date, and lands them in a ready-made program. There's a one-click revert if anything looks off before launch. --- # Changelog — recent product updates URL: https://charmloyalty.com/changelog ## Launch and run your program from chat (2026-10-05) URL: https://charmloyalty.com/changelog/launch-and-run-your-program-from-chat With an assistant connected through **Set up in chat**, you can now go from setup to a live program without leaving the conversation. **Switch things on, with your yes every time.** Ask the assistant to turn the program, VIP tiers, customer e-mails or referrals on or off, or to put a paid membership on sale. Before anything changes it shows you what will happen: switching VIP tiers on, for example, tells you how many customers land in each tier, how many tier gifts are created and the most those gifts can cost if every one is used. Nothing changes until you agree, and every switch is listed in **Change history**. **Send the launch announcement.** The one-off e-mail that tells your members the program is live, each with their own balance, can now be sent from chat. The assistant sends you a test first if you want one, tells you how many members it reaches and sends it only once, after you agree. **Edit your e-mails.** Change the subject or any line of a customer e-mail, in your main language and your other languages, or put Charm's default text back. **Record partner payments.** Charm never sends money. Once you have paid a partner yourself, tell the assistant: it shows what the partner is owed, records the payment once you confirm the amount and sends the partner the usual confirmation. Where the widget and the program page appear in your store is still set in Shopify's theme editor. See the [guide](https://docs.charmloyalty.com/getting-started/set-up-in-chat/). ## Translate all texts in bulk with a CSV file (2026-10-03) URL: https://charmloyalty.com/changelog/translate-all-texts-in-bulk Charm ships its customer texts in 35 languages. For a language it doesn't ship, or for texts you rewrote in your own words, there is now one place to translate everything at once: **Settings → Languages & translations**. **See where the work is.** Every store language gets a status: **Ready**, or **Not translated** with the number of texts still missing, plus how many of its texts are your own. **One file per language.** Export a language as a CSV file with only the texts that need translating, or all of them. Each row says where the text appears, which variables such as `{{points}}` to keep, the text in your primary language and the current translation. Texts with a number get a row per plural form, with example numbers. Translate it in Excel, Google Sheets or DeepL, or send it to a translator. **Review before anything is saved.** The import finds the language from the file and shows every change next to the current text. A missing or renamed variable, a broken brace or a link in an e-mail is flagged, and you can fix it right in the review. A translation that matches Charm's own text keeps following Charm's default and your tone of voice. **Undo in one click.** The last import can be undone, and any text you changed again since stays as you changed it. The file covers the Loyalty Hub and account blocks, checkout, the thank you page, the landing page, the store widget, every loyalty e-mail, and the program and points name. **Translate all texts** opens the page from Customer copy, the widget, the landing page and Emails. The full walkthrough is in the [guide](https://docs.charmloyalty.com/data/translate-texts-in-bulk/). ## Choose where member and VIP discounts apply (2026-10-03) URL: https://charmloyalty.com/changelog/choose-where-member-discounts-apply A member discount is a promise to your best customers, not a blanket markdown. You now decide where it applies. **Never on the membership itself or on gift cards.** A member no longer gets their member discount on buying or renewing the membership, and gift cards are never discounted. There is nothing to set: it holds on every store. A minimum order value on a member discount counts only the items it can discount, so a membership fee in the cart doesn't help reach it. **Keep it off what you choose.** A new **Member and VIP discounts** card under **Settings → Eligibility** leaves out what you pick: - **Items already on sale**: anything sold below its compare-at price keeps its sale price and gets no member discount on top. The rest of the cart is still discounted. - **Subscription products**: subscribers already save, so the member discount doesn't add to it. - **Collections and product tags**: pick collections, or tag products `wholesale` or `no-discount`, and they're left out. **Stack it, or let the better one win.** **Combine with other discounts** is on, as before: the member discount adds up with your own order and product discounts. Turn it off and Shopify applies whichever discount is better for the customer, never both. Every setting starts off, apart from combining, so checkout stays exactly as it was until you change something. An assistant connected through **Set up in chat** can change these settings too. See the [guide](https://docs.charmloyalty.com/eligibility/member-and-vip-discounts/). ## Cashback store credit with an expiry date (2026-10-02) URL: https://charmloyalty.com/changelog/cashback-credit-that-expires Cashback credit that nobody spends sits on your books for ever. You can now give it a deadline, the same way store-credit rewards already could. **A switch where you set the cashback.** The **Store credit cashback** perk on VIP tiers and paid memberships and the **Cashback as store credit** rule under **Earning points** have a new **Expire the cashback credit** switch. Turn it on and set **Days the credit stays usable**: 180 days to start with, counted from the day each credit is issued. Off, which stays the default, the credit never expires. **Shopify enforces it.** Charm issues the credit with its expiry date and Shopify removes whatever is left of it on that day, so the deadline holds at checkout without anything to run on your side. A refund that comes after the credit has expired leaves the customer's balance alone, as there is nothing left to take back. **Customers know the date.** The **Store credit earned** email adds a "Valid until" line under the amount, and the perk reads "5% back as store credit, valid for 180 days" on every surface that lists it. See the [guide](https://docs.charmloyalty.com/points/store-credit-expiry/#cashback-store-credit). ## Paid memberships: plan cards everywhere, their own multiplier and plan switching (2026-10-02) URL: https://charmloyalty.com/changelog/paid-memberships-plans-perks-and-switching Paid memberships get the tools to sell a plan and to keep members on it. **Each plan has its own points multiplier.** A membership now carries a **Points multiplier**, the same field VIP tiers have, so Monthly can earn ×1.5 and Yearly ×2. When a member's tier multiplies too, the higher of the two applies: Silver at ×1.25 plus Yearly at ×2 earns ×2. The points-earned email, the order history, the cart and product estimates all quote the same figure, and the membership block on the product page leads its perk list with it. **Keep the multiplier with a purchase.** Set **Keep the multiplier with a purchase every (months)** and a member who hasn't ordered for longer earns the lower **Multiplier when inactive** on their next order. The full multiplier returns from the order after. At 0, the default, the multiplier always applies. **Plan cards for every visitor.** The plans now show to every visitor, member or not. Each card has the price per period, the monthly equivalent, the perks and a line on when the plan pays for itself, such as "Pays for itself from $125 in orders a month". Its button opens the plan's own variant. **A Memberships block for the landing page.** Add **Landing: Memberships** in the theme editor and choose **Plan cards** or a **Comparison table**, with an optional "Without membership" column. A member sees "Current plan" on their own plan; a lapsed member sees when it ended and how to rejoin. Edit the heading and subtitle under **Visibility → Landing page**. **In the Loyalty Hub and the widget.** The Loyalty Hub shows the plan cards right under the section heading; a member sees their own plan instead, with its status, renewal date and member-since date. In the widget the membership card reads "From $8.25 a month", and the plan view switches between Monthly and Yearly. **Highlight as best value.** With two or more plans, switch on **Highlight as best value** on one of them. It gets a "Best value" badge and an accent edge on the landing page, in the Loyalty Hub and in the widget, and opens first in the widget. **Show the payoff, or leave it out.** **Show when the plan pays for itself** is on by default, per plan. Turn it off and the payoff line disappears from that plan on every surface, the comparison table included. **Members switch plans from the hub.** A member on an auto-renewing plan can switch to another plan from the Loyalty Hub. The new plan starts at the next renewal and nothing is charged today. Until then the hub shows "Switching to Yearly on 1 November", with Undo. **Store credit on the member's birthday.** The new **Birthday store credit** perk adds an amount of store credit on the member's birthday, say $10 on Monthly and $15 on Yearly, with an optional expiry. It's paid once a year to members whose birthday is on file, on top of your birthday bonus, and a customer with the perk from two places gets the larger amount. The **Store credit earned** email tells them. VIP tiers can offer it too. **Monthly store credit, per plan.** The **Monthly store credit** perk has a **Credit per billing cycle** field in the membership editor: every successful renewal adds that amount to the member's store credit. See the [memberships guide](https://docs.charmloyalty.com/memberships/overview/) and [membership perks](https://docs.charmloyalty.com/memberships/add-membership-perks/). ## Let your AI assistant tune the program (2026-10-01) URL: https://charmloyalty.com/changelog/let-your-assistant-tune-the-program More and more merchants run their shops through an AI assistant. Until now Charm's assistant tools could look up customers, award points and read your program; changing the program still meant the admin. That changes today. **Tell the assistant, it does it.** "Add a 50-point rule for a product review with a photo." "Put an advent box in the rewards for 400 points until Christmas." "Raise Gold to 2 000 points and give it free shipping." With the new `program:write` permission on an API key, Claude, ChatGPT or your own integration adds, changes and removes ways to earn and rewards, edits your VIP tiers and sets the program and points names and expiry policies. The widget and the loyalty hub pick the change up immediately, exactly as if you had saved it in the admin. **Set it up in chat, from the first screen.** New stores see "Prefer to set it up by chatting?" in onboarding, and every store has it on the home page. Open Set up in chat, add the Charm address to Claude or ChatGPT as a connector, and type the one-time code Charm shows you on the approval page. No API key to copy, nothing to request from us. The approval page shows where it sends you back (claude.ai or chatgpt.com) and warns you if Charm doesn't recognize the app asking. Connected this way, the assistant reads your shop and program and changes the program; it can't see customer data or change anyone's points. The card offers three prompts to start with, from "set up a program for my shop" to "translate every title". **Already running? Manage it in chat.** Once your program is live, the home page card turns to managing it: "Manage your program by chatting", with prompts to review the last 30 days, plan a bonus points campaign or fill in missing translations, and a reminder that an approved change reaches customers right away. With an assistant connected, the card says so ("Connected: Claude") and takes you to the connection or to everything the assistant changed. **Campaigns too.** "Double points this weekend on the Summer collection" or "put the 10 % reward on sale until Sunday" becomes a bonus campaign. A campaign created by an assistant sends no email until you say so, and the preview tells you how many members an email would reach before you agree. **In every language of your store.** Titles of ways to earn, rewards, tiers and perks can be set per language, so a Czech and Slovak store gets both from one request. **Every change is previewed first.** Each write can run as a dry run, which returns the exact difference and the one-line summary the admin shows, without changing anything. The assistant is told to preview, show you, and only then apply. **Nobody overwrites anybody.** If you save a page in the admin while an assistant changed the same thing (or the other way round), the later save is refused with a clear message instead of silently replacing the other's work. Saving one page never blocks another. **A history of who changed what, and undo.** Program → More actions → Change history lists every change to the program and its campaigns, whether it came from you in the admin or from an assistant, each with a one-line summary. Undo puts the latest change to a rule, reward, tier, campaign or membership back, after asking you first. **New tiers, with your say on who moves.** "Add a Diamond tier at 6 000 points" works too. While your VIP tiers are live, the assistant first shows how many members would move up, move down or be re-placed, and which tier gifts that would issue, and only goes ahead once you agree. The same goes for a new bar on an existing tier. Members of a removed tier are moved quietly to the tier below, without a "you reached a tier" email; anyone who has climbed higher in the meantime is promoted as usual. However large the program, every member is re-checked, even if an update on our side interrupts it. **Referrals too.** "Give referrers 750 points and their friends 15 % off a first order over 40 €" changes both sides of the referral program, the friend's discount code and how codes begin, in one step. Codes friends already hold follow the new settings. **Who earns, and which e-mails go out.** "Don't give points on wholesale orders or gift cards" or "turn off the points-earned e-mail" works too. The assistant can exclude customers, orders, products and collections, ask customers to opt in, and switch single e-mails on or off, telling you first how many members an e-mail can reach. **Paid memberships, ready to launch.** "Set up a Snow Club for 499 a year with free shipping and double points" creates the membership and, if you want, a draft product to sell it through. It waits off sale until you have looked it over and put it on sale yourself. **And the partner programme.** "Give partners 12 % on code orders and keep commissions for 30 days" or "make an Influencers group at 20 %" changes the programme's defaults and its partner groups. Approving partners and paying them stays with you. **The switches stay yours.** Turning the program, VIP tiers, referrals, the partner programme or all e-mails on or off, and putting a membership on sale, remains a click in the admin. Switching tiers on issues gifts to every member at once; that is a decision no assistant makes for you. Available on every plan. Connect from Set up in chat, or grant `program:write` on a key in Settings → API, only to an assistant you supervise. Read the [MCP guide](https://docs.charmloyalty.com/api/mcp#changing-the-program-from-an-assistant) and the [API changelog](https://docs.charmloyalty.com/api/changelog). ## A launch page that says what every switch does (2026-09-30) URL: https://charmloyalty.com/changelog/a-launch-page-for-going-live Going live used to be one switch on the home page. It now has a page of its own that shows, before anything changes, what customers will see and who will hear about it. **Opened from the home page.** The **Activate your loyalty program** step in the setup guide opens the new **Launch** page. Once the program is live, the same step offers **Open launch page**, so you can come back later for tiers or the announcement. **Where customers see the program.** The first card checks that Charm is on in your theme, with a link to the theme editor, and that the rewards page is in the customer account menu. Below it, every placement has its own chip, from the widget and the Loyalty Hub to the product page and the cart: green when it's live, one click away from its settings. Only placements for the programs you run are listed. **Your VIP tiers, before they go live.** A table shows how many of your existing members land in each tier, how many gift codes that issues and what they are worth at retail prices, and how many "Approaching next tier" emails go out. **Turn tiers on** then places every member in batches with a progress line, "Evaluated 120 of 400", which you can stop and continue. Once tiers are on, the table shows the current distribution. **Every switch says what it does.** Next to **Launch program** the page lists what happens now (every new order earns points) and what does not (launching sends no email, tiers stay off until you turn them on). Leave the other steps off and it's a quiet start: points count, nobody is told. On the right, a summary of every program you run: ways to earn, rewards, tiers and active members. **A launch email for the customers you already have.** The welcome email only reaches customers who sign up from now on. The new **Program launch** email tells your existing members the program is live, with their own balance and their next reward. Send yourself a test, edit the wording under **Emails**, then send it with one confirmation. It goes out once, in the background, and the page shows the progress and the date it was sent. While customer emails or the program are off, it waits and goes out once they are back on. See the [guide](https://docs.charmloyalty.com/getting-started/launch-your-program/). ## Hand a new tier gift to members already in the tier (2026-09-30) URL: https://charmloyalty.com/changelog/catch-up-members-with-a-tier-gift A tier gift is issued the moment a customer moves up into the tier. Add a gift to a tier later, and the members already in it get the new gift in a few clicks. **Offered right after you save.** When you save a new gift on a tier that already has members, a banner lists it with the number of members without it and an **Issue** button. The gift's row under **Perks** shows the same number, and the icon goes away once every member has the gift. **See the cost first.** The preview shows how many members get a code and what the codes can cost at retail prices: the product's current price for a free product, the most expensive option for a choice of products, the amount for an amount-off gift. **One click for the whole tier.** **Issue codes** works through the tier in batches and shows the progress, "Issued 25 of 40". Stop it at any time and carry on later with the members still waiting. **Email the code, if you want.** Tick **Email customers their code** and each member gets the new **Tier gift** email with their code, the gift and its expiry date. Edit its wording under **Emails** in the **VIP tiers** group. Leave it unticked and the code simply waits in the member's account. See the [guide](https://docs.charmloyalty.com/tiers/tier-gifts/#catch-up-members-already-in-the-tier). ## A developer console for your Charm API integrations (2026-09-30) URL: https://charmloyalty.com/changelog/developer-console-for-the-api Whoever builds on the Charm API for your store (your developer, an agency, a headless storefront) can now see what their integration does without asking anyone to read logs. **Every request of the last seven days.** Settings → API → Developer console lists each request with its key, status, error and request ID, and links every error to an explanation of how to fix the call. Filter by key or by status. **Webhook deliveries you can replay.** Each webhook endpoint shows its last 20 deliveries with the response your server gave. Send a delivery again, send a test event of any subscribed topic, or turn an endpoint back on once its server is healthy. **Test a key in one click.** Open a key and press *Test key*: Charm runs the same checks a real request would and tells you whether it works. **Integrations that never break by surprise.** The API is now versioned by date. New endpoints and fields keep arriving, but a change that could break an integration ships only in a new version that you opt into, per key or per request. Each key and webhook endpoint keeps the version it was created with. Available on every plan. Read the [API changelog](https://docs.charmloyalty.com/api/changelog) and the [overview](https://docs.charmloyalty.com/api/overview#developer-console). ## Build your own loyalty experience on the Charm API (2026-09-29) URL: https://charmloyalty.com/changelog/build-your-own-loyalty-experience Stores that run a custom storefront (Hydrogen, Next.js, a Lovable build, a mobile app) can now build their loyalty program's pages without writing a backend for it. **Customer session tokens.** Your server asks Charm for a short-lived token for the signed-in shopper, and the browser or app calls the Charm API directly with it. A token acts for that one customer only, never does more than the key that created it, and stops working the moment you revoke that key. **No backend needed.** A theme store adding its own loyalty UI gets a token for the signed-in shopper straight from its own storefront. A browser-only storefront or mobile app that signs shoppers in with Shopify's customer accounts trades their Shopify sign-in for a Charm token; Charm checks with Shopify who the shopper is. **A whole loyalty page in one call.** One request returns the balance, the tier and the gap to the next one, the rewards at the customer's price with a clear reason when one can't be redeemed yet, the latest history in the shopper's language, the program and the referral link. **Points estimates.** Show "earn 240 points" on a product page or for the whole cart, calculated exactly like the order award: exclusions, tax handling, campaigns and the customer's tier included. **Everything shoppers do for themselves.** Joining the program, setting a birthday, adding children and pets, claiming a way to earn, pulling a tier gift and redeeming a reward straight into the cart work from your own storefront exactly as in the Charm widget, with the same rules and limits. **Referrals without the widget.** When a friend arrives through a member's link, one call returns the friend's discount and attributes the order to the member, with the same protection against self-referrals and returning customers. Shares of a member's link from your site or app are counted too. The API documentation got a quickstart, a reference for every endpoint and field, and a catalog that explains every error and how to fix the call. Everything is available on every plan, free included. Start with the [headless guide](https://docs.charmloyalty.com/api/headless) or the [quickstart](https://docs.charmloyalty.com/api/quickstart). ## Customers choose how much to redeem, on every surface (2026-09-29) URL: https://charmloyalty.com/changelog/choose-how-much-to-redeem An amount-off reward can be redeemed several times over in one go: at 100 points for €1 off, a customer with 1,000 points can take €10 off as a single code. Customers could already pick the amount in the cart and at checkout. Now they can do it everywhere they redeem. **A stepper on the rewards page.** Each amount-off reward on the rewards page has a quantity stepper. As it moves, the card restates the discount and its points cost, so the customer sees exactly what they get before redeeming. **Your range, everywhere.** With **Limit how much can be redeemed at once** turned on, the stepper on the rewards page, in the floating widget and in the Loyalty Hub starts at your minimum discount and goes up to your maximum or as far as the customer's points reach. A €5 to €15 range on €1 steps starts at €5. The reward's info tip states the range, so customers know it up front. See the [guide](https://docs.charmloyalty.com/points/discount-type/). ## Loyalty details on Shopify orders and customers, in your team's language (2026-09-29) URL: https://charmloyalty.com/changelog/loyalty-details-in-your-admin-language Charm's **Charm Loyalty** block on the Shopify order page shows what an order earned and how the points add up. It now also answers the most common support question in a plain sentence: why an order didn't earn. **A reason you can act on.** Instead of a short code, the block says what happened: the order was placed before your program went live (with the launch date), the customer is excluded, the order is waiting for payment or fulfillment, or it carries a tag you excluded from earning. Every case Charm checks has its own sentence, and when an order might still qualify, **Award points now** is right there. **In your team's language.** The order block, the customer block, and the **Adjust points balance** and **Redeem reward** windows follow each staff member's own Shopify admin language, in all 32 languages of the Charm app. Dates follow the same language, and messages from Charm, such as not enough points for a reward, read the same way. Add the blocks once from the app blocks card on any order or customer page. See the [guide](https://docs.charmloyalty.com/data/shopify-admin-blocks/). ## Your members keep their perks when AI agents shop (2026-09-29) URL: https://charmloyalty.com/changelog/loyalty-when-ai-agents-shop A growing share of orders is placed by an AI agent on the shopper's behalf. The agent never sees your theme or the Charm widget, so what a member keeps depends on how each perk is delivered. **VIP perks apply on their own.** Charm's tier and membership discounts, member pricing on products and collections, and free shipping run as an automatic Shopify discount tied to the customer. When ChatGPT, Gemini, Copilot or the Shop app checks out for a signed-in member, the perks apply exactly as in your store, and points for the order follow as always. **In every currency.** Fixed tier discounts and order minimums follow the currency of the checkout, so a 10 EUR member discount is worth the same in a CZK or USD checkout, whether a person or an agent pays. **Ready for agents to read your program.** Charm speaks the loyalty extension of the Universal Commerce Protocol, the standard Google and Shopify use for AI shopping: the member's tier, its benefits and the points a cart will earn, in the exact shape agents expect. What agents can and can't do with codes, members-only products and referral links is explained in the [AI agents guide](https://docs.charmloyalty.com/api/ai-agents). ## One order milestone, one clear line to the goal (2026-09-25) URL: https://charmloyalty.com/changelog/one-milestone-one-line Many stores start with a single milestone: a bonus on the sixth order, a gift on the tenth. The storefront now draws it as one line from where the customer is today to the goal. **Now, then the goal.** On the left sits the customer's current order count, labelled *Now*, with *2 / 6 orders* under it. On the right sits the milestone and its reward: *Order 6, +500 points*. The line between them fills as orders come in, so progress reads at a glance, for members and guests alike. **Wherever the milestone appears.** The floating widget and the rewards page both show the new line, and so do subscription payment milestones with a single goal. The previews under **Visibility** show it too. **The condition next to the count.** When only orders over a minimum count, *Orders over €50* sits right under the card's title in the widget, and in the same line as the order count on the rewards page, for milestones and punch cards alike. With two or more milestones you keep the familiar ladder, one dot per milestone, scrollable when there are many. *Now* is translated into all 35 storefront languages. ## Your store's font everywhere, a sharper header chip and an instant cart (2026-09-25) URL: https://charmloyalty.com/changelog/store-font-header-chip-and-cart Storefront details that make Charm feel like part of your theme. **Your font on every control.** Buttons, dialogs and tooltips in the floating widget, on the rewards page and in the cart prompt all use your store's font, so nothing on the page reads like a system default. **A sharper header chip.** - A new **No outline** corner style drops the chip's border, so the chip can sit in your header as plain text. - Merged into your theme's account icon, the shared pill follows your **Corners** and **Appearance** settings: theme, brand accent or filled. - On phones the merged chip shows just the points next to the account icon, so the header stays on one line. - A click anywhere on the merged chip opens your theme's account menu, Horizon included. - The chip is in place before the header first appears, so the header never shifts while the page loads. - The preview under **Visibility → Header chip** shows the chip before you switch it on. **Gifts land in the cart at once.** A free product claimed on the rewards page shows up in your theme's cart drawer immediately, just like it does from the floating widget. **Also improved:** - Rewards page sections show your corner style from the very first frame. - Collections built with Shopify's newer collection features, such as exclusions, several sources or sub-collections, work everywhere Charm reads collections, from collection earning rules to the program page. ## Older updates - 2026-09-24 — [Switch from BON Loyalty with one export](https://charmloyalty.com/changelog/switch-from-bon-loyalty) - 2026-09-23 — [Loyalty amounts in each shopper's own currency](https://charmloyalty.com/changelog/amounts-in-the-shoppers-currency) - 2026-09-23 — [Loox reviews through Loox's own webhook](https://charmloyalty.com/changelog/loox-webhook-reviews) - 2026-09-22 — [Child birthdays: a reward parents plan around](https://charmloyalty.com/changelog/child-birthday-rewards) - 2026-09-22 — [Pets you can manage, birthday emails with the code, and tighter privacy](https://charmloyalty.com/changelog/pets-birthday-emails-and-privacy) - 2026-09-22 — [Points per item: reward how much they buy, not how much it costs](https://charmloyalty.com/changelog/points-per-item) - 2026-09-22 — [Rewards page banners: image beside the text, a photo for phones, heights you set](https://charmloyalty.com/changelog/rewards-page-banner-layouts) - 2026-09-16 — [Campaigns in the shopper's language, on the orders you choose](https://charmloyalty.com/changelog/campaigns-in-the-shoppers-language) - 2026-09-16 — [Complete the set: a punch card whose stamps are collections](https://charmloyalty.com/changelog/complete-the-set) - 2026-09-16 — [The customer page says more, and works on a phone](https://charmloyalty.com/changelog/customer-page-upgrades) - 2026-09-16 — [Gifts go straight to the cart](https://charmloyalty.com/changelog/gifts-go-straight-to-the-cart) - 2026-09-16 — [Every link opens in the customer's own market](https://charmloyalty.com/changelog/links-in-the-customers-own-market) - 2026-09-16 — [Pet birthdays: a reward for the one they actually shop for](https://charmloyalty.com/changelog/pet-birthday-rewards) - 2026-09-16 — [Points previews that match the order](https://charmloyalty.com/changelog/points-previews-that-match-the-order) - 2026-09-16 — [Referrals, emails and setup, refined](https://charmloyalty.com/changelog/referrals-emails-and-setup-fixes) - 2026-09-16 — [Review rewards that follow your review app](https://charmloyalty.com/changelog/review-rewards-that-follow-your-review-app) - 2026-09-16 — [Locked rewards that say so, a calmer widget header, and a hub that fits a phone](https://charmloyalty.com/changelog/storefront-polish) - 2026-09-16 — [Tier gifts members choose, and claim when they're ready](https://charmloyalty.com/changelog/tier-gifts-choose-and-claim) - 2026-09-16 — [Right balances, right languages, quiet imports](https://charmloyalty.com/changelog/welcome-balance-referrer-language-and-imports) - 2026-09-14 — [Moving a customer up a tier by hand now counts](https://charmloyalty.com/changelog/manual-tier-changes-and-tier-emails) - 2026-09-14 — [A tier card can say what its members earn](https://charmloyalty.com/changelog/tier-earn-rates-and-badge-shapes) - 2026-09-10 — [Smile.io and Rivo imports: reward codes, large balances and Rivo's newer export](https://charmloyalty.com/changelog/smile-and-rivo-import-fixes) - 2026-09-09 — [Birthday rewards that grow with the tier, and arrive in time](https://charmloyalty.com/changelog/birthday-rewards-by-tier) - 2026-09-08 — [See when customers come back, and what each reward brings in](https://charmloyalty.com/changelog/retention-and-reward-revenue) - 2026-09-07 — [WebwinkelKeur shop reviews earn rewards](https://charmloyalty.com/changelog/webwinkelkeur-reviews) - 2026-09-03 — [The orders counter now forecasts your month](https://charmloyalty.com/changelog/orders-usage-forecast) - 2026-08-31 — [Reward every year a customer stays](https://charmloyalty.com/changelog/membership-anniversary-rewards) - 2026-08-25 — [A real button in the cart, and customer search that takes a name](https://charmloyalty.com/changelog/cart-button-and-customer-lookup) - 2026-08-25 — [Four new ways to say "this shouldn't earn points"](https://charmloyalty.com/changelog/earning-exclusions) - 2026-08-25 — [Let Klaviyo own every send, and build the flows before the first real event](https://charmloyalty.com/changelog/esp-events-without-charm-emails) - 2026-08-25 — [Numbers that tell the truth on a freshly migrated store](https://charmloyalty.com/changelog/honest-numbers-and-housekeeping) - 2026-08-25 — [Loloyal joins the one-click imports, and kept codes survive the old app leaving](https://charmloyalty.com/changelog/loloyal-import-and-code-restore) - 2026-08-25 — [Merge two customers in Shopify and the loyalty program follows](https://charmloyalty.com/changelog/merge-customers-and-transfer-balance) - 2026-08-25 — [Decide what each VIP tier can and can't have](https://charmloyalty.com/changelog/tier-availability-and-benefit-minimums) - 2026-08-20 — [Ask Claude or ChatGPT about your loyalty program — Charm speaks MCP](https://charmloyalty.com/changelog/charm-mcp-server) - 2026-08-20 — [Webhooks and an analytics endpoint land in the Charm API](https://charmloyalty.com/changelog/api-webhooks-and-analytics) - 2026-08-20 — [Buy a membership without leaving the widget](https://charmloyalty.com/changelog/memberships-on-the-storefront) - 2026-08-20 — [Ask Shopify Sidekick about your loyalty program — zero setup](https://charmloyalty.com/changelog/shopify-sidekick) - 2026-08-13 — [Gorgias is live: every support ticket now shows the customer's loyalty status](https://charmloyalty.com/changelog/gorgias-live) - 2026-08-13 — [New design controls for your loyalty page](https://charmloyalty.com/changelog/landing-page-design-controls) - 2026-08-13 — [The last places English was still slipping through](https://charmloyalty.com/changelog/language-gaps-closed) - 2026-08-13 — [Points that expire now really expire, and a nudge before a customer misses a tier](https://charmloyalty.com/changelog/points-expiry-and-tier-nudges) - 2026-08-13 — [Running referrals or memberships without points? Charm stops mentioning points](https://charmloyalty.com/changelog/programs-without-points) - 2026-08-13 — [Punch cards and milestones: set a minimum, and hand the reward over in the order](https://charmloyalty.com/changelog/punch-cards-and-milestones-conditions) - 2026-08-13 — [Referrals no longer get lost at checkout — and can now pay out in product](https://charmloyalty.com/changelog/referrals-guest-checkout) - 2026-08-13 — [Review rewards get a limit per customer, and a verified-purchase requirement](https://charmloyalty.com/changelog/review-reward-controls) - 2026-08-13 — [Charm got a lot lighter, and a lot faster](https://charmloyalty.com/changelog/speed-and-reliability) - 2026-08-13 — [Design your loyalty page with your real program in front of you](https://charmloyalty.com/changelog/theme-editor-preview) - 2026-08-10 — [Omnisend sync and a loyalty sidebar in Gorgias](https://charmloyalty.com/changelog/omnisend-and-gorgias) - 2026-08-10 — [Moving from Smile.io or Yotpo? Upload the export, we'll do the rest](https://charmloyalty.com/changelog/smile-and-yotpo-imports) - 2026-08-10 — [Store credit that can expire, referrals with a minimum, and credit back every cycle](https://charmloyalty.com/changelog/store-credit-and-referral-controls) - 2026-08-10 — [Hindi, Indonesian, and Malay — Charm now speaks thirty-five](https://charmloyalty.com/changelog/thirty-five-languages) - 2026-08-04 — [Ignore tagged orders, and choose how far back new members earn](https://charmloyalty.com/changelog/order-tags-and-historic-purchases) - 2026-08-04 — [Point values and reward costs — now per VIP tier](https://charmloyalty.com/changelog/per-tier-rules-and-rewards) - 2026-08-04 — [The Charm API: your loyalty program, open to your stack](https://charmloyalty.com/changelog/public-api) - 2026-08-03 — [Tone of voice, now per language](https://charmloyalty.com/changelog/tone-per-language) - 2026-08-02 — [A reliability round for points, refunds and referrals](https://charmloyalty.com/changelog/points-reliability) - 2026-08-01 — [Traditional Chinese, Vietnamese, and Thai — Charm now speaks thirty-two](https://charmloyalty.com/changelog/thirty-two-languages) - 2026-07-30 — [Checkout redemption speaks all 29 languages — and the admin stops flickering](https://charmloyalty.com/changelog/checkout-localization-admin-polish) - 2026-07-30 — [Referral rewards: monthly caps and tighter guardrails](https://charmloyalty.com/changelog/referral-controls) - 2026-07-30 — [Your old app's reward codes don't have to die with it](https://charmloyalty.com/changelog/reward-code-takeover) - 2026-07-29 — [A points chip in your store header](https://charmloyalty.com/changelog/header-points-chip) - 2026-07-29 — [Late-July polish](https://charmloyalty.com/changelog/late-july-polish) - 2026-07-29 — [Migrate from LoyaltyLion in minutes — no support ticket needed](https://charmloyalty.com/changelog/loyaltylion-migration) - 2026-07-29 — [Show points anywhere: collection cards, quick view & beyond](https://charmloyalty.com/changelog/points-anywhere) - 2026-07-29 — [Reward loyalty over time: review & subscription milestones](https://charmloyalty.com/changelog/review-subscription-milestones) - 2026-07-29 — [Rewards that sell themselves — and a homepage that proves it](https://charmloyalty.com/changelog/rewards-merchandising-insights) - 2026-07-22 — [Clearer analytics: where members come from, where points go](https://charmloyalty.com/changelog/analytics-reporting-improvements) - 2026-07-21 — [Reward any action with Shopify Flow](https://charmloyalty.com/changelog/custom-action-earning-rule) - 2026-07-21 — [Stack product rewards on the same item (Plus)](https://charmloyalty.com/changelog/same-line-discount-stacking) - 2026-07-19 — [Mid-July polish](https://charmloyalty.com/changelog/mid-july-polish) - 2026-07-19 — [Points for newsletter and SMS signups](https://charmloyalty.com/changelog/newsletter-sms-signup-bonuses) - 2026-07-18 — [Copy your setup between stores](https://charmloyalty.com/changelog/copy-settings-between-stores) - 2026-07-18 — [Banner email headers, and a real image picker](https://charmloyalty.com/changelog/email-banners-and-image-picker) - 2026-07-17 — [Auto-generated loyalty FAQ](https://charmloyalty.com/changelog/auto-generated-faq) - 2026-07-17 — [Birthday rewards, upgraded](https://charmloyalty.com/changelog/birthday-rewards-v2) - 2026-07-17 — [One brand palette, every surface](https://charmloyalty.com/changelog/brand-colors) - 2026-07-17 — [Redeem points right in the cart](https://charmloyalty.com/changelog/cart-redeem) - 2026-07-17 — [Members-only content](https://charmloyalty.com/changelog/exclusive-access) - 2026-07-17 — [July quality pass](https://charmloyalty.com/changelog/july-quality-pass) - 2026-07-17 — [Loyalty landing page](https://charmloyalty.com/changelog/loyalty-landing-page) - 2026-07-17 — [Bigger, safer imports](https://charmloyalty.com/changelog/migration-importer) - 2026-07-17 — [Opt-in enrollment](https://charmloyalty.com/changelog/opt-in-enrollment) - 2026-07-17 — [Tier progress that knows the deadline](https://charmloyalty.com/changelog/tier-progress-deadline) - 2026-07-17 — [Formal or casual — one switch](https://charmloyalty.com/changelog/tone-of-voice) - 2026-07-07 — [Name-day rewards — and greetings in the vocative](https://charmloyalty.com/changelog/name-day-rewards) - 2026-07-07 — [Four more languages — Charm now speaks twenty-nine](https://charmloyalty.com/changelog/twenty-nine-languages) - 2026-07-02 — [Ten new languages — Charm now speaks twenty-five](https://charmloyalty.com/changelog/ten-new-languages) - 2026-07-01 — [Localization goes Nordic — on both sides of the app](https://charmloyalty.com/changelog/admin-localization) - 2026-06-27 — [Make the Loyalty Hub your own](https://charmloyalty.com/changelog/loyalty-hub-customization) - 2026-06-26 — [Reward the referrer, not just the friend](https://charmloyalty.com/changelog/referrer-rewards) - 2026-06-25 — [Tighter guards on signup and birthday bonuses](https://charmloyalty.com/changelog/bonus-guards) - 2026-06-25 — [Ecomail, natively integrated](https://charmloyalty.com/changelog/ecomail-sync) - 2026-06-24 — [Milestone rewards beyond points, and your program on the storefront](https://charmloyalty.com/changelog/milestone-rewards-usage-and-polish) - 2026-06-22 — [Multi-criteria tiers, punch cards, and custom actions](https://charmloyalty.com/changelog/tiers-punch-cards-custom-actions) - 2026-06-12 — [Bonus campaigns & Reward Spotlight](https://charmloyalty.com/changelog/bonus-campaigns) - 2026-06-02 — [Loyalty at the counter — Shopify POS](https://charmloyalty.com/changelog/pos-loyalty) - 2026-06-01 — [Paid memberships are live](https://charmloyalty.com/changelog/paid-memberships) - 2026-05-31 — [Loyalty Advisor — what to do next](https://charmloyalty.com/changelog/loyalty-advisor) - 2026-05-30 — [One-click migration from Rivo + richer exports](https://charmloyalty.com/changelog/migration-export) - 2026-05-27 — [The email library grows to thirteen templates](https://charmloyalty.com/changelog/email-coverage-expansion) - 2026-05-22 — [A wider, calmer mega menu](https://charmloyalty.com/changelog/mega-menu) - 2026-05-16 — [Shopify Plus landing page goes live](https://charmloyalty.com/changelog/enterprise) - 2026-05-09 — [Integrations directory + 11 detail pages](https://charmloyalty.com/changelog/integrations-directory) - 2026-05-01 — [Charm goes live on the Shopify App Store](https://charmloyalty.com/changelog/public-launch) - 2026-04-18 — [Submitted to the Shopify App Store](https://charmloyalty.com/changelog/app-store-submission) - 2026-03-27 — [Referral system refresh](https://charmloyalty.com/changelog/referral-refresh) - 2026-03-13 — [Email editor + seven lifecycle templates](https://charmloyalty.com/changelog/email-editor) - 2026-02-26 — [Klaviyo, natively integrated](https://charmloyalty.com/changelog/klaviyo-two-way-sync) - 2026-02-12 — [facederma.cz + facederma.sk: custom B2C + B2B reward program launched](https://charmloyalty.com/changelog/facederma-plus-migration) - 2026-01-15 — [The decision to ship publicly](https://charmloyalty.com/changelog/public-decision) - 2025-10-10 — [Localization pass: eleven languages, written not translated](https://charmloyalty.com/changelog/localization-pass) - 2025-07-22 — [First custom build: jmbonline.cz + jmbonline.sk live in production](https://charmloyalty.com/changelog/internal-pilots) - 2025-04-15 — [The conversation that started Charm](https://charmloyalty.com/changelog/origin)