Skip to main content

QA checklist for a price test

What to verify before you launch — tagging on every surface, both groups, and one real order.

Written by Shashank Agrawal

Two failures matter most, and neither announces itself:

  1. The shopper is shown one price and charged another.

  2. A surface is untagged, so it silently shows the original price while the rest of the site shows the test price.

Everything below exists to catch those before a real shopper does. Work through it once per test — about twenty minutes.

First: confirm tagging on every surface

Before checking prices at all, confirm Cooee has something to work with. On each page type, run in the console:

document.querySelectorAll('[data-lc-price-p]').length
document.querySelectorAll('[data-lc-price-p][data-lc-price-v]').length

Both numbers must be greater than zero and equal to each other. An element tagged with the product but not the value is left exactly as the theme drew it, so an unequal pair is the same failure as no tagging at all — only harder to spot, because most of the page still changes.

  • Product page

  • Collection page

  • Search results page

  • Quick view / quick add, while open

  • Cart drawer and cart page

  • All of the above at mobile width — many themes swap markup

A zero, or a mismatch, anywhere means that template will show original prices. Fix it before launching, or the test's data will be a mix of two experiences.

Spot-check that the value is raw cents rather than a formatted string:

document.querySelector('[data-lc-price-p]').dataset.lcPriceV

"2999" is right. "$29.99" means a money filter slipped into the Liquid, and that element will not change.

How to check a variant

Each browser profile is one visitor, and a visitor's group is decided once and remembered. To see the other group you need a genuinely fresh browser — not a reload.

  1. Open an incognito window

  2. Visit the store, note which price you see

  3. For the other group, close all incognito windows (they share a session) and open a new one

Assignment is deterministic per visitor, so expect two or three attempts on a 50/50 split.

Product page

  • The test price shows for every product in the test

  • Switching variants shows the correct price for each

  • After switching variant, data-lc-price-v on the price element holds the new variant's cents value

  • Correct on mobile

  • Products not in the test are unchanged

  • The struck-through price and any savings badge are coherent with the shown price

  • If the group adjusts the compare-at price, the struck-through figure reflects that adjustment

The variant check is worth doing carefully. The displayed price is calculated from data-lc-price-v, so a theme that updates the price text without updating that attribute will show a price derived from the previously selected variant — a plausible-looking number that is simply wrong.

Collection and category pages

  • Prices in the product grid reflect the test

  • Quick view and quick add show the test price

  • Prices loaded by infinite scroll or "load more" are also correct

  • Sorting and filtering by price still behave sensibly

Search

  • Search results pages show the test price

  • Instant / predictive search dropdowns show the test price

Cart

  • Adding from the product page carries the test price

  • Adding from a collection quick-add carries the test price

  • The cart drawer and the cart page show the test price

  • Changing quantity keeps the test price

  • The cart total is consistent with the line prices

Checkout — do not skip

  • The checkout price matches the cart price

  • The order total is what the shopper was shown

  • Complete one real test order and confirm the charged amount

A real order is the only way to be certain. Everything before checkout is the storefront; the charged amount comes from the Cart Transform Function, a different mechanism entirely. Place the order, check the amount, refund it.

Both groups

  • Control sees the original price everywhere

  • The variant sees the test price everywhere

  • A visitor stays in the same group across pages and reloads

Audience filters, if you set any

  • A visitor arriving via the targeted campaign or landing page is enrolled

  • A visitor arriving directly is not enrolled and sees normal prices

  • With "keep visitors in the test" on, a qualified visitor still sees the test price when they return directly

Anything unusual on your store

  • Bundles containing a tested product

  • Subscription products

  • Volume or tiered pricing apps

  • Currency converters — check the price does not revert after conversion

  • Loyalty or rewards widgets rendering their own prices

  • No product in this test is also in another active price test

Before you launch

  • Tagging confirmed on every surface, desktop and mobile, with the two counts matching

  • Both groups verified

  • One real order placed and the charged amount confirmed

  • A colleague has looked independently

  • No Cooee errors in the console

If any checkout item failed, do not launch. Go to Troubleshooting price tests.

Did this answer your question?