Migrating checkout UI extension app to functions

We have an app that uses checkout UI extensions to enable rule based checkout blocking. We want to release a v2 version that uses functions to do the same thing. New merchants would use the function version by default, and we would try to nudge our current merchants to migrate to the functions version over time.

What is the process for doing something like this, including getting the Plus-only restriction lifted from the app?

Thanks!

Hey @Alex_Moser :waving_hand: thanks for reaching out.

I did some digging here and have some context to share that I hope you’ll find useful.

On the rollout: there isn’t a one to one “convert this UI extension into a function” path, since they’re different building blocks (client side UI vs server side validation). What other apps have done in the past is what you mentioned: add the validation function as a new extension inside the same app, ship it in a new app version, and run both side by side during the transition. New installs default to the function, and you nudge existing merchants over on your own timeline.

For the Plus only restriction: that flag is applied manually during app review. The criterion is whether the app’s primary functionality is available to non-Plus merchants, so once your core blocking feature works on non-Plus plans through the function, you qualify. I would recommend reaching out to Support through an authenticated ticket and ask to have it re-evaluated/removed once your function version is live and working as expected.

Hope this helps!