> For the complete documentation index, see [llms.txt](https://docs.intelligems.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.intelligems.io/merchandising-experiences/offer-test-qa-checklist.md).

# Merchandising Experience QA Checklist

{% hint style="success" %}
**Let Atlas QA take the first pass.** Our quality assurance agent reviews your experience configuration and your live storefront and returns a report telling you what's broken, why it matters, and how to fix it — with screenshots. Run it from the **QA & Preview** tab of any test. [Learn more](/general-features/atlas-ai/atlas-qa.md).
{% endhint %}

This checklist applies to any Merchandising experience — Amount off Products, Amount off Order, Volume Discount, Free Gift, BXGY and Onsite Upsells — whether it's set up as a **Test** or a **Personalization**.

## How it works

**Offers:** When you create and save your Offer, Intelligems automatically creates the necessary Discount Function in your Shopify account. Once your experience is live, Intelligems provides the correct discounts to your shoppers — based on their test group for a Test, or automatically for a Personalization (subject to any targeting rules you've set).

**Onsite Upsells:** Once your experience is live, Intelligems displays your upsell to shoppers based on the placement and targeting rules you've configured. If your Onsite Upsell includes a discount, Intelligems creates the necessary Discount Function the same way it does for Offers. If it doesn't include a discount, no Discount Function is created — the upsell is just serving merchandising content.

## What to check first

Before heading to your site to preview your experience, there are a few things you should check to make sure your integration is functional:

* **Is Intelligems JavaScript in your live theme?** Check out this article for more information on where to find this.
* **Have you added the necessary snippets for any relevant merchandising components?** Check out [this article](/merchandising-experiences/offers-integrating-widgets.md) for more information on how to do this.

## Previewing your experience

Once you've confirmed both of those items are true, you can preview your experience on your live site. Enter Preview mode by going to the Preview tab in your pending experience > Open preview.

This will open your site in a new window with the Intelligems preview widget enabled. In the preview widget, you'll see:

* The name of the experience you are previewing in the top left
* For Tests: a dropdown to switch between different test groups in the bottom left
* A toggle to highlight any replacements in the top right
* An edit button in the bottom right: this enables integration mode, where you can edit onsite content

Did you set up any [Onsite Edits](/general-features/editors/onsite-editor.md) for your experience? If so, view any locations where you used the Visual Builder to change language on your store to merchandise the offer, such as a banner or content on the PDP. Confirm copy or images are correctly updating when switching the test group in the Intelligems Preview Widget (Tests), or that they display correctly for your audience (Personalizations). Note that you may need to hard refresh when switching groups in the widget!

### Step 2: Confirm that any Components or Onsite Upsells are visible and working correctly

**For Offers:** Did you add an [Offer Message](/merchandising-experiences/offers-integrating-widgets/slide-outs.md), [Quantity Buttons](/merchandising-experiences/offers-integrating-widgets/quantity-buttons.md) or [Progress Bar](/merchandising-experiences/offers-integrating-widgets/progress-bars.md) to your experience? If so, confirm that each Component is visible on your site, in the correct location, and working correctly — when switching test groups (Tests) or as configured (Personalizations).

**For Onsite Upsells:** Did you create an Onsite Upsell? If so, confirm:

* It appears in the correct location — product page or cart drawer
* The correct products are being recommended for different scenarios
* Copy, images, and styling match what you built in the visual builder
* It updates correctly when switching test groups (Tests) or displays as expected for your audience (Personalizations)
* Clicking into a recommended product or adding it to cart works as expected
* **If your upsell includes a discount**, continue to Step 3 to confirm the discount is applying correctly

Choose one of the test groups (or, for a Personalization, your live experience), and empty your cart if it is not already. Add the appropriate product, or products, to your cart to trigger the offer.

* [ ] If you are testing a **Discount Offer** (Amount Off Product, Amount Off Order or Volume Discount), you should see the discount show up in both the cart and at checkout for any products it is applicable to.
* [ ] If you are testing a **Free Gift Offer**:
  * [ ] If the gift is set up to be automatically added to cart, you should see the defined product get auto-added and discounted to free once you have met the minimum requirement for it.
  * [ ] If the gift is not set up to auto-add, you will need to manually add the defined product to cart and will then see it discounted to free as long as you have met the minimum requirement for it.
  * [ ] You should see the gift get removed from cart if you drop below the minimum requirement.
* [ ] If you are testing an **Onsite Upsell** that is discounted, you should also see the discount show up in both the cart and at checkout for any products it is applicable to.

Be sure to test multiple scenarios to ensure your Offers and Onsite Upsells are always being provided correctly. This list is not exhaustive, and these may not all be applicable to your site, but a few scenarios we recommend testing include:

* Below the defined minimum
* Above the defined minimum
* When using a discount code that should stack
* When using a discount code that shouldn't stack
* Adding to cart from different locations on the site
* Adding products from different shipping profiles and zones for shipping offers
* Viewing your Onsite Upsell on both product pages and the cart drawer
* Test on multiple devices and browsers (such as desktop Chrome and mobile Safari) to confirm there are no discrepancies.

**For Tests:** complete these steps in each test group, being sure to empty your cart when you switch to a new test group. **For Personalizations:** complete these steps once against your live experience.&#x20;

If you notice any issues, or have any questions, please feel free to [reach out to Intelligems support!](https://portal.usepylon.com/intelligems/forms/intelligems-support-request)

Now that you've completed the QA checklist for your Offer Test, you can start your Merchandising experience, you can start your Test or go live with your Personalization!

{% hint style="info" %}
This checklist covers Merchandising experiences. Each module has its own: Content, Pricing, Shipping, Checkout, and Post-purchase.
{% endhint %}

When you save a Merchandising experience, Intelligems registers the discount in your Shopify account. When you start it, that discount begins applying to shoppers based on their group and whatever else you've targeted. Everything below applies whether you built a Test or a Personalization.

QA happens in two passes. Preview shows you the on-site changes. The discount itself only applies once the experience is running, so the cart and checkout pass comes second, on a started experience with the audience locked down.

### **Check your integration first**

* [ ] Is the Intelligems script in your live theme? [Here's](/getting-started/adding-intelligems-script-to-your-theme.md) where to find it.
* [ ] Using Quantity Buttons or a Progress Bar? Both need a short snippet in your theme on top of the script. [Component setup](/merchandising-experiences/offers-integrating-widgets.md).
* [ ] Count the automatic discounts already active in your Shopify admin, including other apps'. Shopify allows five. Past that, Intelligems can't register yours and shows a Discount Synchronization Error, and the offer won't apply to anyone.
* [ ] Free Gift? Check that the gift has stock at a location Shopify ships inventory from. Stock held only at other locations reads as out of stock, and the gift gets pulled at checkout.

{% hint style="info" %}
A Merchandising offer applies in the cart and at checkout. It doesn't change the price on your product or collection pages. If you want a lower price on the PDP, that's a Price Change experience.
{% endhint %}

### **Pass one: preview the on-site changes**

Open your experience and go to the **Preview** tab.

* [ ] **Open preview** loads your site in a new tab with the Intelligems preview widget enabled. Pick the theme you want to preview first.

Then check whatever you built alongside the offer. A Merchandising experience can carry Content Edits, Redirects, Styles & Javascript, a Theme Change or Template Changes as well:

* [ ] Go to each place you set up a content change, switch groups in the widget, and confirm the content updates. You may need a hard refresh after switching.
* [ ] Sweep the rest of the site to make sure nothing changed where it shouldn't have.

{% hint style="warning" %}
The discount and the components won't show up in preview while the experience is still pending. Your cart will show full prices, and a free gift will add at its normal price. That's the discount not running yet, not your offer being misconfigured. Pass two is how you check it.
{% endhint %}

### **Pass two: QA the offer in cart and at checkout**

To see the discount you need the experience running, so run it for yourself only:

1. In **Targeting**, add a URL parameter audience, for example `utm_source=testqa`, and exclude everyone else.
2. Start the experience.
3. Visit your site with `?utm_source=testqa` on the URL.

Real shoppers won't enter, and the discount will apply for you. Empty your cart, then add the products that trigger the offer for the group you're checking.

#### **Amount off Products, Amount off Order and Volume Discount**

* [ ] The discount shows in the cart and again at checkout, on every product it should apply to.
* [ ] The discount name you set is the one shown to the shopper in both places.
* [ ] Products the offer excludes are still at full price.

#### **Free Gift**

* [ ] Set to auto-add? The gift appears on its own once the cart meets the minimum, discounted to free.
* [ ] Not set to auto-add? Add the gift yourself and confirm it discounts to free once the minimum is met.
* [ ] Drop back below the minimum. The gift comes out of the cart.
* [ ] Raise the quantity across the threshold a few times and count the gift lines. You should have one.

#### **Scenarios worth running**

Run these in each group, emptying the cart when you switch. Not all of them will apply to your store.

* Just below the minimum, and just above it
* Every tier of a Volume Discount, not only the first and last
* Adding to cart from the PDP, the collection page and the quick-add, if you have all three
* Products from more than one shipping profile or zone

{% hint style="info" %}
Minimums on a Free Gift or a Volume Discount tier are measured against the cart subtotal **before** any discount, including Shopify discount codes. So a $200 cart with a code taking it to $140 still clears a $150 minimum. Free shipping thresholds work the other way and use the subtotal after discounts.
{% endhint %}

### **Before you open it up**

* [ ] Replace the QA audience with the targeting you actually want, or remove it to run to everyone.
* [ ] Confirm the experience is still running after the targeting change.

If anything looks wrong, or you have questions, [reach out to Intelligems support](https://portal.usepylon.com/intelligems/forms/intelligems-support-request).


---

# 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.intelligems.io/merchandising-experiences/offer-test-qa-checklist.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.
