Start here
Three checks resolve most reports:
Use a fresh incognito window. A visitor's group is decided once and remembered. Reloading will never show you the other group, and a stale assignment from before a config change is the most common false alarm.
Check the test is published, and that the affected product is in it.
Open the browser console. Look for red errors, and confirm Cooee loaded.
Prices are not changing anywhere
Symptoms. Every visitor sees the original price, on every page.
No price elements are tagged. Run
document.querySelectorAll('[data-lc-price-p]').length. If it returns0, the theme is not tagged — see Setting up price testing. This is the most common cause on a first test.The elements carry
-pbut not-v. Compare that count withdocument.querySelectorAll('[data-lc-price-p][data-lc-price-v]').length. If the second is lower, those elements are missing the value attribute and are deliberately left untouched — Cooee will not guess a price from the rendered text. Adddata-lc-price-vnext to eachdata-lc-price-p.The value is formatted rather than raw. Check
document.querySelector('[data-lc-price-p]').dataset.lcPriceV. It must be cents, like"2999". A"$29.99"means amoneyfilter was applied in Liquid, and the element is treated as untagged.The app embed is off. Online Store → Themes → Customize → App embeds. Especially likely just after publishing a new theme, which does not inherit the setting.
The test is not published, or the product has no price change on the variant arm.
Caching. Test in incognito; clear Shopify and CDN caches if your setup is aggressive.
Prices change in some places but not others
Symptoms. The product page is right, but the collection grid, search dropdown or quick view is not.
Cause. Those templates are not tagged, or are tagged incompletely. Tagging is per element, so every place a price is rendered needs its own attributes — and themes commonly render prices from several different snippets.
Fix. On the page that is wrong, run both counts. A 0 on the first means that template is untagged. A lower second number means it has the product attribute but not the value, which has the same visible effect. Commonly missed: product card snippets, predictive search, quick view, recommendation rails, and separate mobile markup.
A product page shows the wrong test price after switching variant
Symptoms. The price is changed, but by the wrong amount — it looks like the adjustment was applied to a different variant's price.
Cause. The displayed price is calculated from data-lc-price-v. When a shopper switches variant, the theme updated the price text but left that attribute at the previous variant's value.
Fix. Switch variant and inspect the price element. If the visible text and dataset.lcPriceV disagree, whatever updates the price on variant change must update the attribute too. Themes that re-render the section through Shopify get this for free; themes that swap the text in JavaScript from an embedded product JSON need the attribute set in the same place.
Prices stopped changing after a theme update
Cause. The update overwrote the files carrying your attributes. This is the standard failure after any theme change or theme swap.
Fix. Re-apply the tags using the record you kept during setup, then re-run the console checks on each key template.
The price flashes then changes back
Symptoms. The test price appears briefly, then reverts.
Causes. Something re-renders the element after Cooee has written to it — commonly a currency converter, a variant-change script, or a bundle or volume-pricing app.
Fix. Identify the app or script by disabling candidates one at a time on a staging theme, then report what you find.
The cart or checkout shows the original price
This is the serious one — stop the test. A shopper shown one price and charged another is worse than running no test at all.
Not on Shopify Plus. The charged price relies on a Cart Transform Function, which is Plus-only. The display half works, the charging half cannot. No workaround.
The Cart Transform Function is not active. It is installed at publish; failure there clears the test rather than half-publishing it. Re-publish and watch for an error.
The cart predates enrolment. A cart created before the visitor was assigned may not carry the assignment. Empty it and add again.
Another app transforms the cart. Shopify permits one cart transform. A subscription, bundle or wholesale app doing its own will conflict.
The compare-at price or savings badge looks wrong
The struck-through figure is resolved in this order:
If the group adjusts the compare-at price, that adjustment is applied to the element's own
data-lc-price-vvalue.Otherwise, if the product already had a compare-at price and it is still above the test price, it is left alone — an existing sale is not overwritten with a smaller one.
Otherwise, when the test lowered the price, the pre-test price is shown as the strike-through.
If none of those produce a figure above the test price, the compare-at and savings elements are hidden — a strike-through at or below the price beside it advertises a discount that does not exist.
If the value looks stale, the compare-at element is probably missing data-lc-price-cmp, or has it without a matching data-lc-price-v.
A product does not appear in the picker
It must be active and published to the Online Store
Recently created products may need a few minutes to sync
Try searching by product ID or handle
The report shows zeros
Reports are built nightly. A test published today will not have full numbers until tomorrow.
Nobody has been enrolled. Check in incognito that you can be assigned. If not, check the app embed and the audience filters.
Audience filters are too narrow. Targeting a UTM campaign that is not currently driving traffic means nobody qualifies.
Traffic is not splitting as configured
Assignment is deterministic per visitor, so the split converges over volume rather than holding exactly at any moment. With a few hundred visitors it should be close. If it is badly skewed over thousands, report it with the numbers.
What to include when reporting a problem
The test name and affected product
Which surface — product page, collection, search, cart, checkout
Desktop, mobile or both
The result of both counts on the affected page —
[data-lc-price-p]and[data-lc-price-p][data-lc-price-v]A screenshot showing displayed and charged price if they differ
Any console errors
Your theme, and any apps touching pricing or the cart
