Skip to main content

How Kickflip uses Shopify's cart transform function

Kickflip uses a Shopify cart transform function to apply customized prices at checkout. When other apps on your store use the same feature, Shopify's rules can cause conflicts — here's what to watch for.

How Kickflip prices customized products

When a shopper customizes a product in Kickflip, our customizer calculates the final price for that configuration. Shopify's base variant price stays unchanged, so the customizer's price has to be applied inside Shopify for the cart and checkout to be correct.

We use a cart transform function to do this. It runs every time the cart is read and applies the Kickflip price (along with multi-currency adjustments and the right line layout for bundles) to the matching cart line.

If this function is blocked or overridden by another app, customized products will be priced incorrectly at checkout. The constraint comes from Shopify and we cannot work around it from our side.


What Shopify allows, and what it doesn't

These rules are set by Shopify, not by Kickflip:

  • A store can install one cart function per app, and multiple apps can each install their own.

  • When the cart is read, every installed cart function runs. Shopify does not let one app override another up front.

  • The order in which different apps' operations are applied is not guaranteed.

  • When two apps' operations target the same cart line, Shopify silently drops some of them. It does not warn the merchant or the apps involved.

This last point is the one that matters most for Kickflip brands.


What happens when another app touches the same line

Cart functions can perform three operations: Expand, Merge, and Update. Kickflip always uses Expand on customized lines. Here is how Shopify handles the combinations:

Combination on the same line

Shopify's behavior

Expand + Expand

Only one Expand is applied. The other is silently dropped, and the winner is not predictable.

Expand + Update

The Expand wins. The Update is silently dropped, even if it came from a different app.

Merge + Update

Both apply. Lines are merged first, then the Update modifies the merged line.

Any operation + a selling plan

Shopify rejects Expand, Merge, and Update entirely. The line keeps its base variant price.

Because Kickflip uses Expand on every customized line:

  • Another bundle / mix-and-match / personalization app that also expands the same line will collide with us. One bundle is dropped, and the cart may show the wrong price, missing sub-variants, or duplicated items.

  • A B2B pricing, volume-discount, or "rewrite line price" app that uses Update on the same line will have its Update silently dropped by Shopify. Their price will not apply to customized products.

  • A subscription app that attaches a selling plan to a customized line will cause Shopify to reject our Expand entirely, and the shopper will be charged the base variant price.

We want to be transparent about this: in these scenarios, the failure is not something Kickflip can detect or fix from inside our app. The behavior is decided by Shopify after both apps have submitted their operations.


How to identify cart-function apps on your store

In your Shopify admin, go to Settings → Apps and sales channels → Develop apps → App functions. Any function listed with the target purchase.cart-transform.run is a cart function. Common categories include:

  • Bundle and mix-and-match builders (including native Shopify Bundles)

  • Subscription apps

  • B2B / wholesale pricing apps

  • Volume-discount apps that rewrite line prices

  • Gift-with-purchase apps

  • Other product personalization apps


What we recommend

  1. After installing any new app that affects pricing, bundles, subscriptions, or cart line items, place a test order with a Kickflip-customized product that has an extra price (an upcharge from the customizer, so the final price differs from the variant's base price).
    ​
    ​Without an upcharge you cannot tell whether our cart function actually ran. Confirm the price is correct in the cart, at checkout, and on the resulting Shopify order.
    ​

  2. Test bundles, non-default markets, discount codes, and any selling plans you use.
    ​

  3. If something looks wrong, contact Kickflip support with the name of the other app, the customized product, and a screenshot of the cart. Knowing the other app usually lets us identify the conflict pattern immediately.

When a conflict is confirmed, the fix is usually one of:

  • Configuring the other app to exclude Kickflip-customized products.

  • Removing the conflicting app, or replacing it with one that doesn't rely on a cart transform function.

  • Switching your Kickflip account to our legacy variant price handling strategy, which prices customized products without a cart transform function and avoids these conflicts entirely. It comes with some trade-offs, so reach out to Kickflip customer support to discuss whether it's the right fit for your store.


References

Did this answer your question?