I built an app that allows the end-user to customize a product on a separate domain. When the user completes the customization the item is added to their Shopify cart and they return to the normal Shopify checkout flow. We need to hide the typical "Add to Cart" button when viewing these customizable products and replace it with a "Customize" button that links to the separate domain (or app proxy). This is easily achieved by editing snippets/buy-buttons.liquid and adding something like: {%- if product.metafields.namespace.foo -%} <a href="/a/namespace/foo?id={{ product.id }}">Customize</a> {%- endif -%} but obviously this is not ideal (not universal for all themes, installing the app should take care of this for them, etc). Pouring over the docs, I can't find if theme extensions are the best way to do this, or if I should look into Dynamic Checkout buttons. The latter is not appropriate, as this is not taking over the checkout, but it could potentially let me hook into the place that I need to. Theme extensions could let me add a block that the user can install on Product pages, but they'd still need to add a custom snippet to hide the typical "Add to Cart" button. Any recommendation on this?