[Feature Request] API to identify which App Blocks are (or aren't) installed

As requested in [IMPORTANT] Stop creating issues here, use the Shopify Community forum instead · Issue #2521 · Shopify/ui-extensions · GitHub, I am re-raising this issue from GitHub.

Please find below the details of API to identify which App Blocks are (or aren't) installed · Issue #2291 · Shopify/ui-extensions · GitHub

Please list the related package(s)

checkout-ui-extensions

If this related to specific APIs or components, please list them here

N/A

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

We’ve had many clients who’ve installed our app, but completely miss the “adding the App Block” step. They install the app, configure it, but then don’t actually add anything into their Checkout. Or, they add it in only one of the three places we need them to add it.

We expect users to add something into the Pre Purchase, Thank You and Order Status pages, and in 100% of cases where they’ve not done this it’s been a misunderstanding on the users part.

While better documentation and guidance is something we can provide, it would make a big difference if we could expose that information in the Settings of our App.

Describe the changes you are looking for

A way to programmatically query a store and identify:

  • What AppBlocks are added onto each page (doesn’t need to be all AppBlocks, just the ones related to our app is fine from our perspective)
  • And, where in the page are they added? This is particularly important for the dynamic app blocks where they can be positioned in more than one location.
  • Any configuration related to the App Block would be awesome too - for instance, has the user clicked the “Available in Shop Pay” checkbox.

Describe alternatives you’ve considered

At the moment we use two processes:

  1. We can look at calls to our API to identify some data (i.e. is the extension even loading), but this doesn’t tell us where it is
  2. We can manually go through the checkout for each client and visually check.

Additional context

Related, but not exactly the same as:

A use case for this was illustrated in [Checkout UI] purchase.checkout.* targets do not render in order summary on mobile one-page checkout · Issue #2218 · Shopify/ui-extensions · GitHub.