Cart Transform is a Shopify Plus exclusive feature. If your store is not on Shopify Plus, see Price testing on non-Plus stores for an alternative approach.
How it works
Shopify Plus price testing uses the Cart Transform API to modify the actual checkout price server-side. When a visitor assigned to the test variant adds a product to their cart, Arktic’s Cart Transform function intercepts the cart before checkout and adjusts the price. The customer sees the test price in their cart and pays it at checkout — no discount codes, no workarounds. The full flow:- Visitor arrives on the product page
- Arktic JS detects they are assigned to the test variant
- Price elements in the DOM are updated to show the test price
- Visitor adds to cart — a hidden cart attribute
spt_asgnis written to the cart recording their assignment - Visitor proceeds to checkout
- Shopify calls Arktic’s Cart Transform function
- Cart Transform reads the
spt_asgnattribute and applies a fixed price override to the correct line items - Checkout completes at the test price
Setup
Step 1: Verify your plan
Confirm your store is on Shopify Plus. Cart Transform functions are not available on lower plans. You can check your plan in Shopify Admin → Settings → Plan.Step 2: Check theme compatibility
Your theme needs two data attributes for the price script to know which elements to update. See Theme compatibility to check if your theme is supported out of the box. If you are using a custom or third-party theme, you may need to add two data attributes before price tests will work correctly. This is a one-time setup.Step 3: Create the experiment
- Go to Experiments → New experiment
- Select Price test (marked Shopify Plus)
- Search for and select the product you want to test
- Set your traffic split
- Click Create experiment
Step 4: Configure Variant B
Click Configure on Variant B. Set the price adjustment: Percentage adjustment A percentage is applied to every variant’s current price. Negative values reduce the price; positive values increase it.-10means show and charge 10% less+15means show and charge 15% more
-5means subtract 5.00 from every variant+10means add 10.00 to every variant
Step 5: Start the experiment
Click Start experiment on the Overview tab. Price changes go live immediately for newly assigned visitors.What the customer sees
| Stage | Control | Variant B |
|---|---|---|
| Product page | Original price | Test price (DOM updated by JS) |
| Cart | Original price | Test price (DOM updated by JS) |
| Checkout | Original price | Test price (applied by Cart Transform) |
| Order confirmation | Original price | Test price |
How the displayed price is updated
The Arktic script looks for elements with thedata-spt-price attribute on the product page and data-spt-cart-price in the cart. When a visitor is assigned to a price test variant, the script updates the text content of these elements to show the test price.
For supported themes (Dawn, Sense, Craft, and others), these attributes are added automatically by the theme app extension. For other themes, you or a developer needs to add them. See Theme compatibility.
Cart attribute and Buy It Now
For standard add-to-cart forms, the cart attributespt_asgn is written to the cart via /cart/update.js on every page load. This ensures Cart Transform always has the assignment data it needs.
For Buy It Now buttons, which bypass the cart entirely, the JS injects a hidden <input name="properties[spt_asgn]" value="..."> field into the product form. This becomes a line item property on the order and is also read by Cart Transform.
Ending a price test
When you Complete or Archive the experiment:- All visitors revert to the original price immediately
- The Cart Transform function stops applying adjustments
- If visitors have items in their cart with the test price already applied, they may see a price change on next cart load (Shopify refreshes cart prices)
Troubleshooting
The price is not updating on the product page Your theme may not have thedata-spt-price attribute. See Theme compatibility to check and add it.
The test price is not applied at checkout
- Confirm the Cart Transform extension is deployed. Run
npx shopify app deploy --allow-updatesfrom the app directory. - Check that the
spt_asgncart attribute is being set. Open your cart at/cart.jsonin the browser and look forattributes.spt_asgn. - Make sure the visitor is assigned to a non-control variant. Check
window.__SPT_ASGN__in the browser console.