# Redemption behavior

{% hint style="info" %}
This feature is available for **All** plans.
{% endhint %}

### What is Redemption Behavior

{% embed url="<https://youtu.be/opz8MdMpBIY>" %}

Redemption Behavior lets you control what happens when customers interact with key moments in your loyalty program — applying discounts, redeeming free gifts, or clicking the Point Calculator from a product page.

There are four triggers you can configure:

* **Trigger: Apply discount** — What happens after a customer applies a discount code (e.g., stay on page, go to cart, or open cart drawer)
* **Trigger: After customer redeem free gift** — What happens after a customer redeems a free gift reward (e.g., manually add to cart, auto add, or auto add and open cart drawer)
* **Trigger: After customer redeems free shipping** — Where customers land when they click "Continue shopping" on the free shipping success modal
* **Trigger: Point Calculator link (non-login customers)** — What happens when a guest (non-logged-in customer) clicks the "Join Reward Program" link under the Point Calculator (open the loyalty widget inline or redirect to the login page)

These settings work across all areas of your loyalty program:

* The loyalty widget (both V2 and V3)
* The loyalty page
* Redeeming blocks
* My rewards blocks
* Ways to redeem blocks
* Dashboard blocks

By configuring these settings, you can create a smoother shopping experience that encourages customers to continue browsing your store even after redeeming a reward, potentially increasing cart value and improving conversion rates.

### Requirements before using this feature

Before using Redemption Behavior, you should:

1. Have an active Joy Loyalty program set up on your Shopify store
2. Have at least one reward that customers can redeem (discount code or free gift)
3. If you plan to use a cart drawer option, you'll need to know the CSS selector for your theme's cart drawer button

### Why you should use Redemption Behavior

When customers redeem rewards, the default experience may not match your store's shopping flow. For example, redirecting customers to the cart page right away can feel like pressuring them to check out immediately — preventing them from adding more items and reducing your average order value.

For free gift programs, requiring customers to manually add the gift to their cart adds unnecessary friction. Choosing the right behavior for each action helps you create a seamless redemption experience.

### Configuring Redemption Behavior

#### Access Redemption Behavior

1. From your Shopify admin, go to **Apps**
2. Click on **Joy Loyalty**
3. In the Joy Loyalty dashboard, click **Settings** in the left navigation
4. Select the **General** tab
5. Scroll down to find the **Redemption Behavior** card

#### Choose what happens when customers apply discounts

In the Redemption Behavior section, you'll see options for controlling what happens after customers apply a discount code:

{% stepper %}
{% step %}
**Option 1: Stay on the current page**

This option keeps customers on the same page after applying a discount code. The discount is still added to their cart, and a success message appears, but they aren't redirected anywhere.

1. Under "Trigger: Apply discount," select **Stay on current page**
2. Click **Save**

This is ideal for merchants who want to encourage customers to continue browsing and potentially add more items to their cart after redeeming a discount.
{% endstep %}

{% step %}
**Option 2: Go to the cart page**

This is the default option. When selected, customers are redirected to the cart page after applying a discount code.

1. Under "Trigger: Apply discount," select **Go to cart page**
2. Click **Save**

This option works well if you want customers to immediately review their cart and proceed to checkout after applying a discount.
{% endstep %}

{% step %}
**Option 3: Show cart drawer**

This option opens your store's cart drawer/sidebar after a customer applies a discount code, allowing them to see their updated cart without leaving the current page.

1. Under "Trigger: Apply discount," select **Show cart drawer**
2. In the "Cart drawer button selector" field, enter the CSS selector that your theme uses for the cart button or icon
   * For example: `#cart-icon-bubble`
3. Click **Save**

The cart drawer selector is the ID of your theme's cart button element (always starts with `#`). If you're unsure what selector to use, you can:

* Check your theme documentation
* Ask your theme developer
* Inspect the cart button element using your browser's developer tools
  {% endstep %}

{% step %}
**How to find and add "Cart drawer button selector"**

{% embed url="<https://youtu.be/Z77AccpkItw>" %}
{% endstep %}
{% endstepper %}

#### Choose what happens when customers redeem a free gift

In the same Redemption Behavior section, you'll find options for controlling what happens after a customer redeems a free gift reward:

{% stepper %}
{% step %}
**Option 1: Customer manually adds to cart**

The customer redeems the free gift and receives a coupon code. They need to manually add the free gift product to their cart themselves.

1. Under "Trigger: After customer redeem free gift," select **Customer manually adds to cart**
2. Click **Save**

This gives customers full control over when they add the gift to their cart.
{% endstep %}

{% step %}
**Option 2: Auto add to cart**

The free gift product is automatically added to the customer's cart when they redeem. A confirmation modal shows the coupon details.

1. Under "Trigger: After customer redeem free gift," select **Auto add to cart**
2. Click **Save**

This reduces friction by adding the gift automatically, while still showing the coupon information to the customer.
{% endstep %}

{% step %}
**Option 3: Auto add to cart and immediately open cart drawer (Recommended)**

The free gift product is automatically added to the customer's cart and the cart drawer opens immediately — no extra clicks needed. The customer sees the gift already in their cart right away.

1. Under "Trigger: After customer redeem free gift," select **Auto add to cart and immediately open cart drawer**
2. In the "Cart drawer button selector" field, enter the CSS selector that your theme uses for the cart button or icon. It's the same CSS selector as in the video guide above
   * For example: `#cart-icon-bubble`
3. Click **Save**

{% hint style="success" %}
This is the **recommended** option. It provides the smoothest experience — customers redeem and instantly see the gift in their cart without any intermediate steps.
{% endhint %}

The cart drawer selector is the ID of your theme's cart button element (always starts with `#`). If you're unsure what selector to use, you can:

* Check your theme documentation
* Ask your theme developer
* Inspect the cart button element using your browser's developer tools
* [Contact our support team](https://joy.so/contact) — we're happy to help you find the right selector
  {% endstep %}
  {% endstepper %}

{% hint style="info" %}
If you already entered a cart drawer selector for the "Apply discount" trigger, the same selector will be automatically filled in here. You can override it if your store uses a different selector for the cart drawer in different contexts.
{% endhint %}

#### Choose where customers continue shopping after redeeming free shipping

After a customer redeems points for free shipping, the success modal shows a **Continue shopping** button. This trigger sets where that click sends the customer.

**Where to find this setting**

1. From your Shopify admin, go to **Apps**
2. Click on **Joy Loyalty**
3. In the Joy Loyalty dashboard, click **Settings** in the left navigation
4. Select the **General** tab
5. Scroll down to the **Redemption Behavior** card
6. Locate the **Trigger: After customer redeems free shipping** option

{% stepper %}
{% step %}
**Enter your Continue shopping URL**

In the "Continue shopping URL" field, enter the destination you want customers to land on after they redeem free shipping. The field accepts a relative path (e.g., `/`, `/collections/spring`) or a full URL (e.g., `https://yourshop.com/collections/new-arrivals`).

1. Type your destination URL — common choices are `/` for your homepage or `/collections/spring` for a specific catalog page
2. Click **Save**

Leave the field blank to keep the default destination `/collections/all`.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
The Continue shopping destination applies to every free shipping redemption across the loyalty widget, loyalty page, and account page — one setting, one consistent experience.
{% endhint %}

#### Choose what happens when a guest clicks the Point Calculator link

On product and cart pages, the Point Calculator shows a "Join Reward Program" link that prompts guests (non-logged-in customers) to sign up. This trigger controls where that click leads.

**Where to find this setting**

1. From your Shopify admin, go to **Apps**
2. Click on **Joy Loyalty**
3. In the Joy Loyalty dashboard, click **Settings** in the left navigation
4. Select the **General** tab
5. Scroll down to the **Redemption Behavior** card
6. Locate the **Trigger: Point Calculator link (non-login customers)** option

{% stepper %}
{% step %}
**Option 1: Open loyalty widget (Recommended)**

The loyalty widget opens inline so the customer can sign up or log in without leaving the page. Once authenticated, they stay on the same product — full shopping context preserved.

1. Under "Trigger: Point Calculator link (non-login customers)," select **Open loyalty widget**
2. Click **Save**

{% hint style="success" %}
This is the **default** for new stores, and the best choice when your loyalty widget is enabled — guests don't lose the product page they were about to buy.
{% endhint %}
{% endstep %}

{% step %}
**Option 2: Redirect to login page**

The customer is redirected to your store's standard login page. After signing in, they land on your store's default post-login destination.

1. Under "Trigger: Point Calculator link (non-login customers)," select **Redirect to login page**
2. Click **Save**
   {% endstep %}
   {% endstepper %}

{% hint style="info" %}
**Fallback**: If "Open loyalty widget" is selected but the widget isn't loaded on the page, the click falls back to the login page redirect so the customer can still sign in.
{% endhint %}

#### Testing your settings

After configuring your Redemption Behavior, test both triggers to make sure they work as expected:

**For Apply discount:**

1. Visit your store as a customer
2. Sign in to your loyalty account
3. Redeem points for a discount code
4. Apply the discount and check that the behavior matches your setting

**For Free gift redemption:**

1. Visit your store as a customer
2. Sign in to your loyalty account
3. Redeem points for a free gift reward
4. Check that the gift is added to your cart and the post-redeem behavior matches your setting

**For After free shipping redeem:**

1. Visit your store as a customer
2. Sign in to your loyalty account
3. Redeem points for a free shipping reward
4. On the success modal, click **Continue shopping** and confirm you land on the URL you configured (or `/collections/all` if you left the field blank)

**For Point Calculator link (guests — non-logged-in customers):**

1. Visit your store in a private/incognito window (so you're signed out)
2. Open a product page that shows the Point Calculator
3. Click the "Join Reward Program" link
4. Confirm the loyalty widget opens inline (if "Open loyalty widget" is selected) or that you're sent to the login page (if "Redirect to login page" is selected)

### FAQs

#### Will these settings affect all discount codes in my store?

No, these settings only apply to discount codes and free gifts that customers redeem through your Joy Loyalty program. They won't affect other discount codes applied manually or from other apps.

#### What happens if I select a cart drawer option but don't provide a selector?

If you don't provide a valid cart drawer selector, the system will fall back to keeping customers on the current page when they apply a discount, or showing the coupon confirmation modal for free gifts.

#### Can I have different settings for different parts of my loyalty program?

Currently, the Redemption Behavior apply globally to all areas of your loyalty program where customers can redeem rewards.

#### Can customers still go to their cart after applying a discount if I select "Stay on current page"?

Yes, customers can still navigate to their cart manually using your store's regular cart button or icon.

#### What if my theme doesn't have a cart drawer?

If your theme doesn't have a cart drawer feature, choose "Stay on current page" or "Go to cart page" for discounts, and "Customer manually adds to cart" or "Auto add to cart" for free gifts.

#### Do the two triggers share the same cart drawer selector?

When you enter a selector in one trigger, it auto-fills the other trigger if that field is empty. You can override each one independently if needed.

#### Does the Point Calculator trigger affect logged-in customers?

No. The "Join Reward Program" link only appears to guests (non-logged-in customers). Logged-in customers see their points balance on the calculator with no sign-up prompt, so this setting has no effect on them.

#### What do existing stores see after this setting is released?

If your loyalty widget is already enabled, guests (non-logged-in customers) clicking the Point Calculator link will open the widget inline by default — no extra setup needed. Stores without the widget keep the existing login-page redirect until you change the setting.


---

# Agent Instructions: 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:

```
GET https://help.joy.so/settings/general/redemption-behavior.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
