Cart Transform (Non-Variant) Pricing vs the Legacy Variant Flow
Apippa Custom Price Calculator has two ways of getting a calculated price into the cart and onto the order. Which one your store uses changes add to cart, your catalogue, what the customer sees in the cart, and which advanced settings you get.
- Legacy variant flow (the variant-based flow) — the app creates a real hidden Shopify variant at the calculated price every time someone adds to cart.
- Cart Transform flow (the non-variant, no-variant or variantless flow) — the app stores the customer’s choices as line-item properties and rewrites the line price at checkout with a Shopify Function. No variants are created.
Installed after 24 December 2025? You are already on Cart Transform. Installed before that, you are on the legacy flow until support switches you over.
The two flows side by side
Legacy before each arrow, Cart Transform after it.
- Shopify plan — any plan either way, Basic and Grow included. Shopify Plus is not required.
- Catalogue — one-off “junk” variants build up → one normal variant.
- Add to cart speed — slower, waiting on variant creation → faster, nothing is created.
- Quantity per configuration — capped at 5 → uncapped.
- Per-configuration weight, cost, SKU and location — available → inherited from the parent product.
- Feeds and sales channels — variants can leak into feeds and Google Shopping → feeds see one product at one price.
What the legacy flow costs you
On every add to cart the app calls Shopify’s API, creates a brand-new variant at the calculated price, and adds it to the cart. Its one advantage: it is the only flow that can write a per-configuration weight, cost or SKU back to Shopify. Against it:
- One-off variants surface in collections, on the product page, in product feeds and in Google Shopping.
- Each generated variant is stocked with a buffer of 5, which is why quantity is capped at 5 per configuration.
- The create-and-retry loop trips Shopify’s storefront rate limit under repeated testing and returns “Too Many Requests”.
- Where variant options are linked to Shopify metaobjects or categories, add to cart fails with CANNOT_SET_NAME_FOR_LINKED_OPTION_VALUE: no app may rename linked option values, and this flow tries to.
- If variant creation fails, the app can fall back to a stale variant ID that no longer exists, and
/cart/addreturns a 422. - Cleaning up old variants can break abandoned carts that referenced them.
How Cart Transform works instead
Nothing is created in your catalogue. The cart line stays the parent product, the inputs and calculated price ride along as line-item properties, and at checkout a Shopify Cart Transform Function (the lineExpand operation) reads them and rewrites the line price server-side. lineExpand is native to every Shopify plan, so no upgrade is needed. There are no variant limits and no cleanup process, abandoned carts stay stable because nothing is deleted behind the scenes, and the selections show in the cart, in Shopify admin order details and on packing slips. Google Merchant Center, the Google & YouTube channel and feed-based AI shopping surfaces see a normal single-variant product — the custom price and selections exist only at cart and order level, never at catalogue level.
Can a customer edit the price in browser dev tools?
No. The app attaches an internal signed token to the cart line and the Function rewrites the price server-side, so anything a shopper changes beforehand is overwritten. The flip side is a real limitation: the function only applies prices its own engine calculated and signed. You cannot feed in a price your own JavaScript worked out, and there is no supported headless or API route into the pricing engine.
How to switch
- Installed after 24 December 2025? You already have it.
- Otherwise, ask support in chat for the non-variant (Cart Transform) flow. It is enabled per store on request, and is not applied retroactively or automatically.
- Once enabled, reopen the app and approve the newly requested Shopify permissions (scopes).
- It then works automatically. Your calculators keep collecting the same inputs, so nothing needs rebuilding, and existing orders are unaffected.
Then test one product end to end: configure, add to cart, check the subtotal and the Shopify order. Switching clears every legacy problem listed above.
What you lose by migrating
With no per-configuration variant, the app has nothing to write these onto and the settings are hidden. Cost, SKU and variant location are inherited from the parent product. So is weight, and that one matters: Variant Weight Calculation is legacy-only, so weight-based and carrier-calculated shipping use the product’s static weight whatever the customer configured. It is a known gap — set a sensible fixed product weight, or split very different sizes into separate products. If per-configuration weight is essential to how you charge for shipping, say so before switching; it is what merchants most often discover too late, and support can revert you after testing.
Three behaviours that look like bugs but aren’t
- The cart line shows the base variant price. Shopify’s cart template always renders the original variant price; Cart Transform rewrites it at checkout. The subtotal and the amount charged are correct. That per-line figure is Shopify’s own display, not overridable by the app or a theme setting.
- The options appear twice at checkout, under “Hide 1 item”. Cart Transform builds a parent line plus a component line, and Shopify’s hosted checkout renders both. Cosmetic only: price charged, order record and fulfilment are correct. There is no merchant-side setting; any fix must come from the app.
- Prices fall back to the base price in a large cart. At roughly 15 to 16 calculator items in one cart the payload exceeds Shopify’s per-checkout data size limit. Split large orders across separate checkouts until the fix ships, and tell support if your customers routinely buy more than about 15 configured items.
Leftover Default_cpc and Default Title variants
Variant names like Default_cpc or Default Title may still appear in checkout, on the storefront, in orders and in order emails. They are residual variants left by the legacy flow: harmless, but they look wrong, so support deletes them after the switch — ask if you spot any. Deleting them loses no customer data; the selections are line-item properties, listed just below the product name on the order in Shopify admin.
True on both flows
- Real Shopify variants are not supported alongside the calculator. Every option, colour included, must be a calculator element — Dropdown, Radio or Image Selector — so the calculator controls the price. Leaving real variants in place is one of the most common causes of add-to-cart failures: Add to Cart Not Working.
- Cart drawers are not supported on any theme. Set Online Store > Themes > Customize > Theme settings > Cart to Page, not Drawer.
- Quantity comes from the calculator, not Shopify’s quantity field. Add a Number Input, turn on Use as Quantity, make the formula per-unit, and remove any quantity multiplier. An order email showing ×1 when the customer bought several means that toggle is off and the count is travelling only as a line-item property. See Implementing a Quantity Field.
Still stuck?
Start a live chat from inside the app with your store URL and product page URL, which flow you think you are on, and what you see versus what you expected. If you are on the legacy flow and any symptom above sounds familiar, ask us to enable the non-variant flow.
Add Apippa Custom Price Calculator to your Shopify store — start free: https://apps.shopify.com/custom-price-calculator
Updated on: 17/08/2026
Thank you!