# Add Joy to Shopify POS

{% hint style="info" %}
This feature is available for **Advanced, and Ultimate** plans.
{% endhint %}

### Introduction

Shopify POS allows for seamless integration of applications directly into the POS grid through extensions. This capability enhances the functionality at the point of sale, making transactions smoother for both retailers and customers.

With our Joy app, you can easily add this functionality to your Shopify POS grid, streamlining operations and improving the customer experience.

{% embed url="<https://go.screenpal.com/watch/cTjwXPnoVFY>" %}

### Instruction for app installation on the POS system[​](https://help.avada.app/joy/how-to-set-up-joy-in-pos/#instruction-for-app-installation-on-the-pos-system) <a href="#instruction-for-app-installation-on-the-pos-system" id="instruction-for-app-installation-on-the-pos-system"></a>

{% hint style="info" %}
Make sure that you have installed our app [Joy Loyalty Program](https://apps.shopify.com/joyio) and subscribed to the plan with the POS option enabled. If you haven't installed Joy yet, please proceed to install it [**here** ](https://apps.shopify.com/joyio)first.
{% endhint %}

Once done, add Joy to your Shopify POS grid on your Point of Sale **mobile app** or **desktop app** by following the instructions below

1. **Point of Sale mobile app**

You need to go to the POS app, then **Add tile** and Select **App.** When you see **Joy: Loyalty Program, tap to** **Add**

<figure><img src="https://1367962225-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpAxc1paAgix94BNLrez8%2Fuploads%2Fgit-blob-003410ae6aa9865c6c8c64b618217e339830b229%2FHow%20to%20set%20up%20POS_1.jpg?alt=media" alt=""><figcaption></figcaption></figure>

2. **Point of Sale desktop app**

You should open the **Point of Sale** menu in the Shopify admin page, then get access to the **POS apps.** You can find **Joy Loyalty Pos Extension** and add it to your **Smart grid tile.** Follow the interactive guide below for detailed instructions.

{% embed url="<https://app.arcade.software/share/cK896P6H117g5BKDDeaJ>" %}

### Add the version that suits your store[​](https://help.avada.app/joy/how-to-set-up-joy-in-pos/#instruction-for-payments-on-the-pos-system) <a href="#instruction-for-payments-on-the-pos-system" id="instruction-for-payments-on-the-pos-system"></a>

Customers can choose between two versions of the Joy widget for Shopify POS: Joy Loyalty POS Extension and Joy: Loyalty program (Legacy).

<figure><img src="https://1367962225-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpAxc1paAgix94BNLrez8%2Fuploads%2Fgit-blob-d870507568156b4112de8fbf8c8f4c72ad4d8dbb%2Fimage%20(178).png?alt=media" alt=""><figcaption></figcaption></figure>

1. **New Version (Joy Loyalty POS Extension)**: Launched in 2024, leveraging the [Shopify POS UI extension](https://shopify.dev/docs/api/pos-ui-extensions), this version enhances the POS interface with features like a modal for customer redemptions, inputs for greater flexibility, and the ability to see the member's status and name. It allows customers to redeem free products, locate existing coupons, and manage their loyalty details more effectively.

<figure><img src="https://1367962225-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpAxc1paAgix94BNLrez8%2Fuploads%2Fgit-blob-edaca8773200ed58e43fbae07f96bc69ec0b417f%2FScreenshot_20240923_105304_Shopify%20POS.jpg?alt=media" alt="" width="375"><figcaption></figcaption></figure>

2. **Previous Version (Joy: Loyalty Program)**: This legacy version is now deprecated. Initially, it displayed the balance and basic member information directly in the grid and allowed for redeeming discounts and percentages with fixed presets. Due to advancements in technology and customer feedback, we recommend migrating to the latest version for improved functionality and support.

<figure><img src="https://1367962225-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpAxc1paAgix94BNLrez8%2Fuploads%2Fgit-blob-4f284ee0031eab6fa01d4abeb7becf0ed1b3cd68%2Fimage%20(179).png?alt=media" alt="" width="375"><figcaption></figcaption></figure>

### Enable your POS programs <a href="#faqs" id="faqs"></a>

By default, the programs set up in your store are not automatically enabled for the POS channel. To ensure that your customers can earn and redeem points at the point of sale, you must actively select which earning and redeeming programs should be available on POS channels.

<figure><img src="https://1367962225-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpAxc1paAgix94BNLrez8%2Fuploads%2Fgit-blob-39323ea2e053b97073ec5c7e4584e956e740fce0%2Fimage%20(180).png?alt=media" alt=""><figcaption></figcaption></figure>

### FAQs[​](https://help.avada.app/joy/how-to-set-up-joy-in-pos/#faqs) <a href="#faqs" id="faqs"></a>

#### I added a customer in POS but it still says no program available. What is the error and what should I do?[​](https://help.avada.app/joy/how-to-set-up-joy-in-pos/#i-add-a-customer-in-pos-but-it-still-says-no-program-available-what-is-the-error-and-what-should-i-do) <a href="#i-add-a-customer-in-pos-but-it-still-says-no-program-available-what-is-the-error-and-what-should-i-d" id="i-add-a-customer-in-pos-but-it-still-says-no-program-available-what-is-the-error-and-what-should-i-d"></a>

This is a common question we receive from our customers. If you encounter this error, make sure that:

* You have subscribed to our Essential as POS integration is only available within this plan. If you are using the Joy Starter, points will show as zero on POS.
* The customer has enough points to redeem and use the reward
* You have set up and enabled at least **one redeem program** for POS.
* You have successfully connected Joy to the POS system.
* Before being able to select any available program in Joy, you must first select the product and customer and ensure the Joy app is connected.

#### POS shows 0 points and displays "Session token fetch failed." What should I do?

If the Joy tile on your POS shows **"Balance: 0 points"** and you see an error banner at the bottom saying **"Session token fetch failed for Joy: Loyalty Program. Check \[staff name]'s permissions"**, this means the POS staff account does not have permission to access the Joy app.

Joy follows Shopify's standard way to communicate between Shopify POS and apps. This means staff permissions are managed by Shopify, and each staff member who uses the POS must be granted app access in your Shopify admin. You can learn more about this in the [Shopify community discussion](https://community.shopify.dev/t/sessiontoken-showing-as-null/13811/9).

To remedy this, check which permission model your store uses:

**Option 1: Individual staff permissions**

If your store manages permissions per staff member:

1. Go to **Shopify Admin** → **Settings** → **Users and permissions**
2. Select the staff account used on your POS device
3. Under **App permissions**, make sure **Joy: Loyalty Program & Rewards** is enabled
4. Save and reopen the POS app

**Option 2: Role-based permissions**

If your store uses Shopify's role-based permission system (Settings → Users → **Roles**):

1. Go to **Shopify Admin** → **Settings** → **Users** → **Roles**
2. Select the role assigned to your POS staff (e.g., "Cashier")
3. Under **Point of Sale** permissions, expand the **Apps** section
4. Make sure both **Use apps that work with Shopify POS** and **Manage POS UI extensions** are enabled
5. Save and reopen the POS app

Once the staff member has the correct app permissions (either individually or through their assigned role), the customer's point balance will display correctly on the POS.

{% hint style="info" %}
This applies to all POS staff accounts. If you have multiple staff members using POS devices, each one needs app permissions enabled — either individually or through their assigned role.
{% endhint %}

### Wrap up

Integrating Joy with Shopify POS makes loyalty rewards seamless. Install the app, enable programs, and use the latest Joy POS Extension for optimal functionality. For issues, check your plan, setup, and eligibility. Contact us for non-Shopify POS support!


---

# 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/pos/add-joy-to-shopify-pos.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.
