Shopify / ui-extensions

MIT License
266 stars 36 forks source link

Allow for default extension point placement #562

Closed kylebuildsstuff closed 3 days ago

kylebuildsstuff commented 1 year ago

Please list the related package(s)

checkout-ui-extensions, admin-ui-extensions-react

Is your feature request related to a problem? Please describe.

There are over 5 extension points and it's cumbersome for merchants new to the checkout editor to try evaluate each slot for what is the optimal placement for a checkout UI extension. I think this leads to a poorer onboarding experience and higher uninstall rates.

I think we can provide a much smoother onboarding experience with default extension points so the merchant doesn't have to fiddle with positions every time but, by default, still get the optimal placement of the app.

jamesvidler commented 1 year ago

Hi @KTruong008, default placements for dynamic extensions is something we are looking into. That being said, have you considered using a static extension point? This enables you (the developer) to define the specific extension point(s) that should be allowed, giving you much more control.

kylebuildsstuff commented 1 year ago

Hi @jamesvidler, I'll have to look more into static extension points if they can work in my case. It definitely looks like it gives more control but can the merchant switch the extension placement from static to dynamic? If so, that'd be great, though having default placements for dynamic slots would still be a nice optimization.

jamesvidler commented 1 year ago

can the merchant switch the extension placement from static to dynamic?

Yes! You can support multiple extension points including your preferred static extension point, as well as the Checkout::Dynamic::Render extension point. If you place the static extension point first in the list of supported extension_points in the toml then the extension will be placed there by default when you activate the extension.

jarthorn commented 3 days ago

Default placements are now supported. Use default_placement attribute in the extension TOML file. https://shopify.dev/docs/apps/build/app-extensions/configure-app-extensions#checkout-ui-extensions