Cart Transform (Non-Variant) vs the Legacy Variant Flow (Checkout)
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 you switch yourself in the app (see How to switch). Stores already on Cart Transform keep it even on an older plan.
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.
- If you are still on the older (legacy) flow, open the app and go to Settings. Use the "No more extra variants" card at the top — or the same pop-up on Home — and click Upgrade. A current sales-based plan is required to switch. Stores already on Cart Transform keep it even on an older plan.
- If you are taken to Plans, pick a current sales-based plan and approve it in Shopify. The switch then finishes on its own, as long as you approve the plan within 7 days of clicking Upgrade.
- Shopify may also ask you to approve a permission (write_cart_transforms). Approve it, reopen the app, and click Upgrade again if the switch has not finished. Your calculators do not need 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, consider this before you switch — it is what merchants most often discover too late. Message us if you need to stay on the legacy flow or to be reverted 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 supported on themes with a Cart type setting. You turn this on yourself in the app under Settings → Cart drawer (a current sales-based plan is required; Upgrade will also move you to Cart Transform if needed). See Cart drawer support. On other themes, set the cart type to Page.
- 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.
Variant questions merchants ask most
These come up again and again in chat. They all trace back to the same fact: variants only exist on the legacy flow, and on Cart Transform there are no per-configuration variants at all. If you are unsure which flow you are on, see the switch section above.
Can the calculator send a calculated weight to Shopify (for weight-based / carrier-calculated shipping)?
Yes — but only on the legacy variant flow. Turn on Variant Weight Calculation in the calculator settings and enter a weight formula the same way you build a price formula (reference your inputs, e.g. length × width × a density constant). The app writes that weight onto the hidden variant it creates, so Shopify’s weight-based and carrier-calculated rates use the real configured weight.
On Cart Transform there is no per-configuration variant to write to, so weight falls back to the parent product’s static weight no matter what the customer configured. If per-configuration weight drives your shipping cost, either stay on the legacy flow, set a sensible fixed product weight, or split very different sizes into separate products. Consider this before you switch — it is the setting merchants most often miss until after they migrate. Message us if you need to stay on the legacy flow for this reason.
Do all those generated variants pile up in my catalogue?
No. On the legacy flow the app cleans up the variants it generates automatically — this is controlled by the Variant Deletion Setting in the app. Generated “junk” variants are removed once they are no longer needed, so they do not accumulate on the product. One caution: deleting a variant that an abandoned cart still points at can break that cart, which is one more reason the non-variant Cart Transform flow (where nothing is ever created or deleted) is the cleaner long-term option. If you still see stray Default_cpc or Default Title variants after switching flows, those are harmless leftovers — ask support to remove them; no customer data is lost.
Can the calculator match / sync to my existing Shopify variants (e.g. colour + size)?
The calculator does not read from or price off your real Shopify variants — it controls the price itself. Every option that should affect price (colour included) must be built as a calculator element (Dropdown, Radio or Image Selector), not left as a native Shopify variant. Leaving real variants live alongside the calculator is one of the most common causes of add-to-cart failures.
On the legacy flow, once options are modelled as calculator elements, the app can create/select a hidden variant that carries the configuration through to the order — so the selections (colour, mounting type, size, etc.) land correctly on the Shopify order line. On Cart Transform, the selections travel as line-item properties and appear on the cart, the Shopify order and the packing slip — just below the product name in the order detail — without any variant being created. Either way the answer to “will my customer’s exact choices show on the order?” is yes; the mechanism differs by flow.
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, switch to Cart Transform in the app (Settings → "No more extra variants" → Upgrade). If you cannot switch, or something still looks wrong after you do, start a live chat and we will help.
Add Apippa Custom Price Calculator to your Shopify store — start free: https://apps.shopify.com/custom-price-calculator
Updated on: 11/11/2026
Thank you!