# 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'},
        }
    }