> For the complete documentation index, see [llms.txt](https://docs.roadmap.so/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roadmap.so/loyalty-and-rewards/membership-tiers-and-referrals/the-customer-rewards-storefront-redeeming-block.md).

# The Customer Rewards storefront redeeming block

Let customers see and redeem their tier rewards on the storefront: the block's states, how redemption behaves in the cart, and every setting explained.

The **Customer Rewards** block is the storefront home for your tier rewards: the free gifts and discounts you configure under [Reward customers for reaching a tier](/loyalty-and-rewards/membership-tiers-and-referrals/reward-customers-for-reaching-a-tier.md). Customers see the rewards their tier has unlocked, the ones still locked ahead of them, and redeem straight into the cart.

<figure><img src="https://393112916-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJ8asLD4FVCFagK40xEr4%2Fuploads%2FAvGctD9V4Ur6SIy55Gwc%2FScreenshot%202026-09-08%20at%204.22.12%E2%80%AFPM.png?alt=media&#x26;token=ceb2f8cf-0d99-4878-a712-388bee1fdae3" alt=""><figcaption></figcaption></figure>

### Add the block

Add **Customer Rewards** to your theme like the other Roadmap loyalty blocks, through the app blocks in the theme editor: see [Customize the loyalty widgets](/loyalty-and-rewards/getting-started/customize-the-loyalty-widgets.md). Its styling controls mirror the Product Redeemer's, so the two sit naturally side by side.

<figure><img src="https://393112916-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJ8asLD4FVCFagK40xEr4%2Fuploads%2F7OtIu50abFnvpxbrZ2vL%2FScreenshot%202026-09-08%20at%204.23.31%E2%80%AFPM.png?alt=media&#x26;token=3dd8cba8-07e7-4398-a8db-5a148c358337" alt=""><figcaption></figcaption></figure>

### What customers see

Each reward renders as a card, and the card's state follows the customer:

* **Locked**: the reward's tier hasn't been reached yet, with your locked text, for example *Reach Platinum to unlock*. Rewards for **maintaining** a tier show a time-locked state once the tier is reached but the membership period isn't complete, with your available-after text.

<figure><img src="https://393112916-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJ8asLD4FVCFagK40xEr4%2Fuploads%2FBgOy7rQWNm8AEQATNwXS%2FScreenshot%202026-09-08%20at%204.29.32%E2%80%AFPM.png?alt=media&#x26;token=0e7d3a93-13a7-456c-ae1b-e05315c48b83" alt=""><figcaption></figcaption></figure>

* **Available**: the reward is redeemable, with a claim button, for example **Claim reward**. The badge can show the discount itself (free, a percentage, or an amount off) using the dynamic discount value, and the card shows the reward's minimum spend when one is set.

<div align="left"><figure><img src="https://393112916-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJ8asLD4FVCFagK40xEr4%2Fuploads%2FNTUjpDqP4xBPJnZ5Gs0D%2FScreenshot%202026-09-08%20at%204.25.21%E2%80%AFPM.png?alt=media&#x26;token=fb6739b5-c20e-42f5-8d33-6eb6a363cbc4" alt="" width="375"><figcaption></figcaption></figure></div>

* **Sold out**: the reward's product is out of stock. The card keeps its badge and pricing, but the claim button is replaced with a greyed-out **Sold out** button until the product is back in stock.

<div align="left"><figure><img src="https://393112916-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJ8asLD4FVCFagK40xEr4%2Fuploads%2Fl1GejcWEDZN6sdoLHHtk%2FScreenshot%202026-09-08%20at%204.50.11%E2%80%AFPM.png?alt=media&amp;token=eb8eac08-a884-4929-b608-cf2a152066db" alt="" width="375"><figcaption></figcaption></figure></div>

* **Redeemed**: the reward is in the cart, with a **Remove** action, and optionally the discount code shown after claiming.

<div><figure><img src="https://393112916-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJ8asLD4FVCFagK40xEr4%2Fuploads%2F3ImjLAtL96hZ3rMH8ioa%2FScreenshot%202026-09-08%20at%204.26.41%E2%80%AFPM.png?alt=media&#x26;token=e2592995-3ab1-437d-b792-e247f3b3ea4d" alt=""><figcaption><p>Redemption in the Customer Rewards block</p></figcaption></figure> <figure><img src="https://393112916-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJ8asLD4FVCFagK40xEr4%2Fuploads%2F8ApiOSASlOgyaYUDzzda%2FScreenshot%202026-09-08%20at%204.26.15%E2%80%AFPM.png?alt=media&#x26;token=a51b7228-da24-465c-9377-cceb8e64a2e9" alt=""><figcaption><p>Redemption in the cart</p></figcaption></figure></div>

* **Fully redeemed**: the customer has used their maximum redemptions for the reward.

<figure><img src="https://393112916-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJ8asLD4FVCFagK40xEr4%2Fuploads%2Fq7TOTDUFiIFCSkusJJTo%2FScreenshot%202026-09-08%20at%204.29.32%E2%80%AFPM.png?alt=media&#x26;token=a10054d8-8de3-45cb-bf32-1239235961c8" alt=""><figcaption></figcaption></figure>

The rewards appear in the same order as your admin list: drag them into position in **Customer Rewards** and the block follows.

### How redemption behaves in the cart

Redemptions are coupon-based: redeeming adds the product to the cart and applies the reward's coupon.

* **One reward at a time.** If a reward is already in the cart, redeeming another shows your *You already have a reward in your cart* message instead of stacking or replacing.

<figure><img src="https://393112916-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJ8asLD4FVCFagK40xEr4%2Fuploads%2FMvY2N3uyhoH2IxykXS1b%2FScreenshot%202026-09-08%20at%204.36.27%E2%80%AFPM.png?alt=media&#x26;token=e8c0d40f-cf29-4839-b7ff-a09dbad1ee78" alt=""><figcaption></figcaption></figure>

* **The discount stays on the chosen product.** Adding other eligible products or changing quantities doesn't move it, and extra units the customer adds beyond the redemption aren't discounted.
* **Minimum spend is enforced.** Below the reward's minimum order value, redemption is blocked with your configured message. If the cart later drops below the minimum, the card swaps its Remove action for the minimum-spend message and the discount won't apply at checkout.
* **Combinations**: tier-reward coupons can't stack with each other, since only one coupon applies at checkout. They can combine with automatic discounts (Roadmap and Shopify native) when the reward allows combinations.

### What each card displays

The reward's **Target Selection** in the admin (*What can customers redeem?*) decides the card's contents:

* **Specific Products**: up to 20 hand-picked products, browsable in the card's scroll view.
* **Products from Collections**: the collections' products populate the card, up to 10 collections with 10 products shown per collection.
* **Any Product in Store**: customers can redeem against any product in your inventory, so the block shows the reward on its own, without a product.

#### Give Any Product rewards a Card Image

<figure><img src="https://393112916-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJ8asLD4FVCFagK40xEr4%2Fuploads%2FBLRvHQoqrzO2V7hEV6IV%2FScreenshot%202026-09-08%20at%204.44.22%E2%80%AFPM.png?alt=media&amp;token=b5c33466-371e-4d74-8ae9-c8a419dd0b09" alt="" width="375"><figcaption></figcaption></figure>

An *Any Product in Store* reward has no product image of its own, so by default its card renders as text only, which looks bare next to the product cards around it. The reward's **Card Image** setting fixes that: upload an image (under 500 KB; .png, .jpg, .jpeg, .svg, .gif, or .webp) and the card carries the same visual weight as its neighbours.

<div><figure><img src="https://393112916-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJ8asLD4FVCFagK40xEr4%2Fuploads%2Fme7dFLxpYchvB3U5vGLt%2FScreenshot%202026-09-08%20at%204.45.55%E2%80%AFPM.png?alt=media&amp;token=7acc7d95-d98d-496d-8e57-d6d9b181e399" alt=""><figcaption><p>Card without an image</p></figcaption></figure> <figure><img src="https://393112916-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJ8asLD4FVCFagK40xEr4%2Fuploads%2FbnakmaUI9fKszU0n4u9e%2FScreenshot%202026-09-08%20at%204.43.03%E2%80%AFPM.png?alt=media&amp;token=14ae01b5-948b-4f81-b522-db834f15e4c6" alt=""><figcaption><p>Card with an Image uploaded</p></figcaption></figure></div>

### The block settings

The settings are grouped in the roadmap loyalty widget editor, top to bottom:

* **Block headings**: the block's title and subtitle, with sizing.
* **Card labels and text, by state**: locked and logged-out text, the time-locked available-after text, unlocked text, and redeemed text, plus **Show discount code after claiming**.
* **Error messages and styling**: the already-have-a-reward, minimum-spend, and not-eligible messages in one place.
* **Badge styles**: per-state badge text for locked and available (with the discount value as a dynamic insert), plus position and size.
* **Card style**, **Typography**, and **Button styles**: matching the Product Redeemer's controls, including applied-state styling, text and hover colours, and the loading animation colour.
* **Layout**: grid or carousel mode, card width, spacing, and the image ratio.

### Related guides

* [Reward customers for reaching a tier](/loyalty-and-rewards/membership-tiers-and-referrals/reward-customers-for-reaching-a-tier.md): configuring the rewards the block displays
* [Loyalty Tiers](/loyalty-and-rewards/membership-tiers-and-referrals/loyalty-tiers.md)
* [Customize the loyalty widgets](/loyalty-and-rewards/getting-started/customize-the-loyalty-widgets.md)
* [Ways to redeem points: overview](/loyalty-and-rewards/points-and-ways-to-earn/ways-to-redeem-points-overview.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.roadmap.so/loyalty-and-rewards/membership-tiers-and-referrals/the-customer-rewards-storefront-redeeming-block.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
