---
title: Price test QA checklist (Shopify)
slug: qa-checklist
description: A step-by-step QA checklist for Shopify price tests in Personizely: setup checks, storefront prices, cart and checkout, test orders and resetting stats.
image: https://archbee-image-uploads.s3.amazonaws.com/1y1Fr-DMGy_apx7FwibyA/ORDTWfNKMXiY3ZRv0QSgP_personizely-docs-og.png
docTags: 
createdAt: 2026-10-16T19:42:54.353Z
---

This checklist helps you confirm a Shopify [price test](https://docs.personizely.net/product-price-shopify) is set up correctly before real visitors see it. Work through it for every variation, on desktop and mobile. It covers both strategies; items marked *(clones)* or *(cart transform)* apply only to [duplicate products](https://docs.personizely.net/duplicate-products-clones) or [cart transform](https://docs.personizely.net/cart-transform).

**Available on:** Shopify.

## 1. Preliminary setup

- The Personizely app embed is enabled in your published theme: **Online Store → Themes → Customize → App embeds**. See [Install on Shopify](https://docs.personizely.net/install-shopify).
- [Price selectors](https://docs.personizely.net/price-campaign-css-selector) are configured under **Settings → Campaigns**, and **Validate** shows no errors (supported themes).
- *(clones)* Inventory, shipping profiles, discounts, search, reviews, subscription and bundle apps are set up for the duplicates. See [Set up your store before launch](https://docs.personizely.net/duplicate-products-clones#set-up-your-store-before-launch).
- Every variation has the price rules you intended, including variant-level rules. See [Price rules and rounding](https://docs.personizely.net/price-adjustment-rules).
- The campaign has a primary goal, usually **Purchase** with revenue or profit per visitor.

:::hint{type="info"}
Support can review your setup before launch. Send them the campaign link from the chat in the app.
:::

## 2. Storefront prices (preview)

Open each variation with its preview link (`?ply_preview_campaign=<campaignId>.<variationId>`, from the variation's **Preview** button). Prices that were rewritten get a red outline. The preview parameter stays on links you click, so you can browse the store in that variation.

- Prices and compare-at prices follow your rules, including rounding.
- Nothing else changed by accident: titles, images, videos, descriptions, ratings and reviews look the same as on the live site.
- On the product page, switching variants updates the price every time.
- Savings amounts and percent-off badges are correct, and compare-at prices equal to the price are hidden.
- Prices are rewritten on every page where the product appears:
  - Homepage
  - Collection pages
  - Search bar (predictive search) and search results
  - Product page
  - Recommended products (for example "You may also like" and "Recently viewed")
  - Cart drawer and cart page upsells
  - Product quizzes
  - Landing pages and other app-rendered sections
- Prices in other currencies are correct if you sell in several markets.
- Open the live site with `?ply_disable=1` to compare against the original store with Personizely turned off.

## 3. Cart and checkout (running campaign)

Preview only repaints the storefront. **Checkout prices change only while the campaign is running**, so test cart and checkout on a running campaign:

1. Give the campaign a [target](https://docs.personizely.net/targets) that only you match, for example a query string filter such as `?qa=price`, and start it.
2. Open the store in a private window with that query string and add `?ply_debug=1`. The browser console shows which variation you're in ("Campaign … ran - variation …").
3. Open new private windows until you've landed in each variation and the control.

Then check, for each variation:

- Prices in the cart drawer, cart page and checkout match the product page.
- Prices stay correct with a quantity of 2 or more.
- Products from different variations and products outside the test show the right prices together in one cart.
- Custom bundle or volume pricing works as intended.
- *(cart transform)* `/cart.js` shows `attributes.__campaignVariations` with your campaign and variation.
- *(cart transform)* Checkout shows the variation price. Compare-at prices don't appear in checkout; this is expected.
- *(clones)* The cart contains the duplicate product (`/cart.js` shows a different product ID from the original), at the variation price.
- *(clones)* Opening a duplicate's URL directly redirects to the original product. *(With **Products with subscriptions or bundles** on, visitors in a variation are instead taken to the duplicate.)*
- Express checkout buttons (Shop Pay, Apple Pay, Google Pay) on product and collection pages charge the right price. These buttons can skip the cart; if they show the original price, consider hiding them on campaign products during the test.
- Discount codes you plan to promote still apply.

## 4. Test order

- The cart holds the right products and variants for the variation.
- Complete a test checkout (Shopify's test payment gateway or a real order you refund) and check the prices on the order.
- The order shows up under the right variation in the campaign report after a few minutes.

## 5. Before launch

- Switch the target back to your real audience (or **All visitors**).
- Reset the campaign's statistics so your test orders and visits don't count. See [Report filters, outliers and resetting stats](https://docs.personizely.net/analytics-filters).
- Check the traffic split and the advanced statistical settings.

## Troubleshooting

- **A price isn't outlined in preview** → it isn't matched by your price selectors, or its card has no product ID. See [Price selectors](https://docs.personizely.net/price-campaign-css-selector#troubleshooting).
- **Cart or checkout shows the original price** → see [Cart transform troubleshooting](https://docs.personizely.net/cart-transform#troubleshooting) or [Duplicate products troubleshooting](https://docs.personizely.net/duplicate-products-clones#troubleshooting).
- **You always land in the same variation** → your assignment is stored in the browser. Use a new private window for each attempt.

## Related

- [Price testing (Shopify)](https://docs.personizely.net/product-price-shopify)
- [Price selectors](https://docs.personizely.net/price-campaign-css-selector)
- [Price rules and rounding](https://docs.personizely.net/price-adjustment-rules)
- [Cart transform](https://docs.personizely.net/cart-transform)
- [Duplicate products (clones)](https://docs.personizely.net/duplicate-products-clones)
- [Preview and QA](https://docs.personizely.net/preview-qa)
