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
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.
Test bundles, non-default markets, discount codes, and any selling plans you use.
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.
