Noli on Shopify.
The Shopify app is the deepest integration Noli has. Installing it wires up order tracking, the storefront widget, in-cart redemption and the customer account - without touching theme code.
Install the app
- Install Noli from the Shopify App Store
Search for Noli Loyalty, or start from app.heynoli.ai and connect your store from the onboarding wizard. Shopify will show you the permissions Noli requests.
- Approve the scopes
Noli reads products, customers and orders so the AI agent can answer accurately and points can be awarded on real purchases, and writes discounts so rewards can be redeemed. Nothing is written to your catalogue.
- Finish onboarding
Set your earn rate, your first reward and your brand colours. Your catalogue starts importing in the background - large stores keep working while it finishes.
Migrating from Smile.io, Yotpo, LoyaltyLion or Rivo? Import your existing customers and point balances during onboarding rather than starting everyone at zero - members notice a reset immediately.
Place the storefront blocks
Noli ships as a theme app extension, so the blocks are added from the theme editor and survive theme updates. Open Online Store → Themes → Customize, then add the blocks you want:
| Block | Where it goes | What it does |
|---|---|---|
| Chat bubble | App embed, any page | The AI agent. Knows the visitor's tier, balance and order history. |
| Loyalty widget | Product or cart page | Points earned on this purchase, and the reward within reach. |
| Join / sign-up | Anywhere in the theme | Explicit opt-in to the program. Required before any points are earned. |
Enrolment is opt-in by design. A customer who has not joined will show up in Noli without points until they do. That is deliberate - bundled or automatic enrolment is not consent, and it is what gets loyalty programs into trouble under GDPR.
Redemption at checkout
Which option you get depends on your Shopify plan:
- In-cart redemption - available on all Shopify plans. The customer applies points in the cart drawer with one click; no codes to copy.
- Checkout extensibility - Shopify Plus only. Points are applied natively at the payment step, where conversion is highest. Add the Noli block from Settings → Checkout → Customize.
- Thank-you page block - shows points just earned and invites non-members to join, at the moment they are most receptive.
There is also a customer account extension, so members see their points and rewards natively inside the Shopify customer account and in Shop.
How points are awarded
Noli listens for the orders/paid and orders/fulfilled webhooks. When one fires, it matches the order to a member by email or phone and credits the points.
The match happens at order time, not later. If the email or phone on the order does not match a member record when the webhook fires, the order earns zero points - and joining afterwards does not backfill it. This is the single most common reason a merchant sees "0 points" on an order that clearly should have earned some.
A customer who opted in but has not ordered yet appears with no name and no points until their first order webhook arrives. That is expected, not a bug.
Troubleshooting
| Symptom | Usual cause |
|---|---|
| No chat bubble on the storefront | The app embed is off in the theme editor, or you are previewing a different theme than the published one. |
| Orders arrive, points do not | Order identity did not match a member at the time the webhook fired - see above. |
| Customers show as "Unknown" with 0 points | They opted in but have not placed an order yet. |
| Reward code rejected at checkout | The reward's own rules - minimum tier, minimum spend, expiry - are enforced server-side and will refuse a redemption that breaks them. |
Still stuck? The Merchant Copilot can run a health check on your program and tell you exactly where the pipeline breaks - see Merchant Copilot, or email support@heynoli.ai.