Recently saw this message:
“You can install a maximum of one cart transform function on each store.”
https://shopify.dev/docs/api/functions/latest/cart-transform
Previously this was per app, does anyone know if this is a recent change, and if so - why?
Yeah this changed earlier this year and the reason is buried in the Functions ordering problem. With per-app limits multiple Cart Transforms could install on one store and there’s no deterministic ordering rule for them. App A inserts a merchandise line, App B’s transform now sees a cart state different from what the buyer added, but App B has no way to know whether A ran first or whether what it sees is “after-transform” or “before-transform”. Shopify either had to invent priority/manifest rules or restrict to one. They chose restrict.
Practical impact: if you need multiple transformation behaviors (bundling + add-on injection + price adjust), you wrap them in one Function and orchestrate internally, read merchant config from a metafield namespace and run sub-transforms in a deterministic order you control.
Worth asking whether some of what you’d planned actually belongs in Cart Validation Function instead (different limit, different lifecycle), or in a Checkout UI Extension that mutates the cart through storefront API before checkout. Cart Transform isn’t always the right tool just because it’s Functions-shaped.
What’s the use case you ran into the limit on?
Hello @_aurimas ,The Cart Transform limitation on Shopify has been revised.
Based on Shopify’s official documentation, only one Cart Transform Function may be active on a shop at any point in time.
Official docs: https://shopify.dev/docs/api/functions/latest/cart-transform
Only one app/transform function will control Cart Transforms for the store. There could be a conflict between several apps that use Cart Transform Old discussions about the limit as “one per app” have become outdated
This Cart Transform limitation is relevant to:
- App bundles
- Cart merging/extraction apps
- Pricing rules apps
- Warranty/upsell transform apps
Alternative recommendations by Shopify include:
- Using Discount functions whenever possible
- Using Cart Validation Functions for limits and rules
- Combining everything within one transform function/app
Hi, @_aurimas
Absolutely, this is a recent official change.
It used to be one cart transform function per app, but Shopify updated the rule to only one per store in total.
I believe Shopify made this change mainly to prevent logic conflicts between multiple cart transform functions, improve cart stability and performance, and simplify the execution order during checkout.
Now we can only have one cart transform active on a store, and all cart customizations have to be consolidated into that single function.
Makes sense @AnneLuo, thank you!
Do you know how this is enforced, especially with public apps who have their own cart transforms?
We’ve been able to deploy multiple cart transforms (1 custom, 2 public apps) for one of our clients recently, so I’m still a bit unclear on how this works.