Getting started

Ruby on Rails example app

Shopify has published a sample POS embedded app on GitHub. This app uses Ruby on Rails and it demonstrates many of the methods and capabilities of the SDK. You can clone this app locally and use ngrok to try it out using an iPad. Find out more about how to use the example POS app.

Contents of the SDK

The POS App SDK offers you a ShopifyPOS JavaScript API. This API wraps the underlying iOS WebView and provides native tie-in support for:

  • Cart modifications (e.g adding/removing line items, discounts, custom properties)
  • Alert, confirm, and input dialogs
  • Flash messages
  • Modals
  • User and location information.

Learn about the methods that are available using the POS App SDK.

Creating an app that uses the Shopify POS App SDK

First, follow the Getting Started guide to create a development store and an app.

After you have a partners account and an app, in the partners dashboard:

  1. Click Apps in the sidebar.

  2. Click the name of your app.

  3. Click Edit app settings:

    Edit app settings
  4. Scroll down to the Embedded settings section

  5. Select the Enabled radio button for Shopify POS.

    Partners setting

Did you know?

Some older apps may not see an option to enable the POS App SDK. If you are interested in using the POS App SDK and you don't see the option to enable it then reach out to us.

HTTPS, SSL certificates and mixed content restrictions

Shopify POS uses SSL for all of its communication. Security of financial data requires all embedded apps to also run on HTTPS.

Like embedded apps in the Shopify admin, publishing an embedded app in the Shopify App Store requires the app to have an SSL certificate.

OAuth

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:

redirect_to "/auth/shopify?shop=myshopname"

It should now return a page containing:

<script type='text/javascript'>
  window.top.location.href = '/auth/shopify?shop=myshopname';
</script>

Note

The above example assumes you're using the Shopify Omniauth gem. If not, replace /auth/shopify with the supported http://myshop.com/admin/oauth endpoint.

Read more about how to use OAuth with Shopify ›

Selling your POS app in the Shopify App Store

After you have written an embedded app for Shopify POS, you may want to submit it to the Shopify App Store. You can bill merchants for your app using Shopify's Billing API. Merchants can buy your app using the Billing API when they access your app using the Shopify web admin. Billing API requests cannot be made from within the POS itself. Find out about how to get your app listed in the Shopify App Store.