Setting up loyalty

Turning on the points programme, the settings that decide how it behaves, and the two that will bite you.

6 min read

On this page

Loyalty lives under Rewards in the sidebar, with its settings on the same screen. Enable the feature first under Settings → Features → Rewards.

Before you start: platform support

Loyalty accrual from orders works on BigCommerce and on headless stores that push orders. It does not currently work on Shopify.

The reason is structural rather than a bug we have not got to. Evident awards points when an order reaches a fulfilment status — Completed, Shipped or Awaiting Fulfillment. Shopify’s order status is a payment state (paid, pending, refunded), so it never matches, and no points are ever awarded.

Everything else on a Shopify store works: accounts exist, points can be granted through the API or by hand, tiers calculate, and rewards redeem as store credit or a discount code. It is specifically automatic accrual from orders that does not fire. If loyalty is the reason you are adopting Evident and you are on Shopify, raise it with us before you build on it.

The two settings that will bite you

Orders start date

You must set an orders start date. Without it, Evident refuses to accrue at all and logs a warning — rather than doing the alternative, which is awarding points across your entire order history the first time the job runs.

Set it to the date your programme goes live, or a deliberate amount of backdating if you want to credit recent customers. Nothing before that date ever earns.

Points expiry

Off by default, and worth leaving off unless you have a reason.

If you do enable it, note that it expires on inactivity, not age — a customer who keeps shopping never loses points they earned years ago. And enabling it records an expiry start instant, so that switching it on cannot wipe balances the same night: every customer gets a full window from the moment the policy begins, however long they were already dormant.

Defaults are 365 days of inactivity, a warning at 30 days, and a last-chance reminder at 3.

Tiers

Four tiers — Bronze, Silver, Gold, Platinum — with thresholds you set. Defaults are 500, 2,000 and 5,000.

The tier basis decides what those thresholds count:

  • Lifetime (default) — every point ever earned. Tiers are permanent; nobody is demoted.
  • Trailing 12 months — points earned in the last year, so a tier reflects recent custom and lapses if someone stops buying. Recalculated nightly.

Lifetime is simpler and more generous. Trailing is more accurate about who is currently a good customer and will eventually demote someone, which you should be ready to explain.

Pick before you launch. Switching basis afterwards re-tiers your whole membership at once.

Redemption method

How a redeemed reward actually reaches the customer. Store credit is the default and the right answer for most stores: it applies itself at checkout, so the customer never has to type anything.

Rewards that cannot be paid as credit — a percentage discount, free shipping, a guest with no account — fall back to a coupon automatically.

There is also a webhook method, which POSTs to an endpoint you control so you can fulfil redemptions in your own system.

There is a MANUAL method in the data model. It is deliberately not offered in the admin: it takes the customer’s points and issues nothing.

Notification emails

Off by default, each independently switchable: points earned, reward redeemed, tier changed, birthday, and points expiring. Turn on points-expiring if you enable expiry at all — expiring someone’s balance without warning is how you lose them.

Referral codes

Every loyalty account gets a unique referral code. Codes are globally unique and are generated for accounts created by import as well as by signup.

Be aware of what this does and does not do today: Evident generates and displays codes, and can award points for a completed referral. Inbound code capture is not wired up — there is nothing yet that reads a code off a visit and attributes the resulting order. Treat referral as a manual or externally-driven mechanic for now.

Next

Something missing or out of date? Email [email protected] — docs corrections go straight to the team that builds the feature.