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 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/add returns 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


  1. Installed after 24 December 2025? You already have it.
  2. 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.
  3. Once enabled, reopen the app and approve the newly requested Shopify permissions (scopes).
  4. 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.



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. Tell support before switching if this matters — it is the setting merchants most often miss until after they migrate.


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, 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: 08/09/2026

Was this article helpful?

Share your feedback

Cancel

Thank you!