Shopify#

The Shopify provider requires a shop parameter to login. For example, for a shop petstore.myshopify.com, use this:

/accounts/shopify/login/?shop=petstore

You can create login URLs like these as follows:

{% provider_login_url "shopify" shop="petstore" %}

For setting up authentication in your app, use this url as your App URL (if your server runs at localhost:8000):

http://localhost:8000/accounts/shopify/login/

And set Redirection URL to:

http://localhost:8000/accounts/shopify/login/callback/

Embedded Apps

If your Shopify app is embedded you will want to tell allauth to do the required JS (rather than server) redirect.:

SOCIALACCOUNT_PROVIDERS = {
    'shopify': {
        'IS_EMBEDDED': True,
    }
}

Note that there is more an embedded app creator must do in order to have a page work as an iFrame within Shopify (building the x_frame_exempt landing page, handing session expiration, etc…). However that functionality is outside the scope of django-allauth.

Online/per-user access mode Shopify has two access modes, offline (the default) and online/per-user. Enabling ‘online’ access will cause all-auth to tie the logged in Shopify user to the all-auth account (rather than the shop as a whole).:

SOCIALACCOUNT_PROVIDERS = {
    'shopify': {
        'AUTH_PARAMS': {'grant_options[]': 'per-user'},
    }
}