What you get
The Embedded App SDK has a robust
window.postMessage API that provides:
- Custom modal windows
- Alert, confirm and input dialogs
- Top bar with icon, breadcrumbs, buttons, pagination and dropdown menus
- Flash messages
Enabling the Embedded App SDK
First, follow the Getting Started guide to create a development store and an app.
Once you have a Partner account and an app, in your Partners dashboard, find the section titled "Embedded settings" and select the "Enabled" radio button.
Enabling this for existing apps that are not designed to use the SDK will result in users being unable to use your app. Once enabled, Shopify will attempt to load your app inside an iframe.
HTTPS, SSL Certificates and mixed content restrictions
The Shopify Admin uses HTTPS for all pages. Mixed content restrictions in web browsers requires all embedded applications to also run on HTTPS.
Publishing an embedded app in the App Store requires the app to have an SSL certificate. Failure to use SSL when running an embedded app will cause errors in web browsers, due to mixed content restrictions.
Apps can be developed locally using an SSL tunnel to
localhost such as ngrok.
OAuth will behave normally in your app, as it would for any other Shopify apps or other OAuth enabled services with one caveat:
Since the application is loaded inside an iframe it is critical that the initial OAuth request redirect escapes the iframe to make the requests. Shopify returns the
X-Frame-Options=DENY header and prevents any Shopify admin pages from being loaded inside an iframe.
This means that where the OAuth process would normally begin with:
It should now return a page containing:
The above example assumes you're using the Shopify Omniauth gem. If not, replace
/auth/shopify with the supported