A demo app created using Django and ShopifyAPI v8.4+
.
Link to the relevant parts of codebase demonstrating PartnerJam integration.
- Step 1 - Endpoint for storing the cookie
- Step 2 - Notifying PartnerJam about the installation
- Step 3 - Getting the discount from PartnerJam and creating charge
- PartnerJam client
To run this app locally, you can clone the repository and do the following.
- Create a
.env
file to specify this app'sAPI key
andAPI secret key
app credentials that can be found in the Shopify Partners dashboard. PartnerJam related variables can be found in PartnerJam Dashboard.
SHOPIFY_API_KEY=<The API key app credential specified in the Shopify Partners dashboard>
SHOPIFY_API_SECRET=<The API secret key app credential specified in the Shopify Partners dashboard>
APP_URL=<The public app URL specified in the Shopify Partners dashboard>
SCOPES=<Scopes needed for the app>
SHOPIFY_APP_STORE_URL=<URL of your listing in Shopify app store, eg. https://apps.shopify.com/myapp>
PARTNERJAM_SECRET=<You can find this in PartnerJam dashboard>
Note: It's recommended to follow along the tutorial Build a Shopify App with Node and React to understand how to retrieve the
API key
andAPI secret key
app credentials.
- Run the following to install the required dependencies:
$ pip install -r requirements.txt
- Change directories to the main
sample_django_app
app and run all pending migrations:
$ cd sample_django_app
$ python manage.py migrate
- Ensure ngrok is running on port
8000
:
$ ngrok http 8000
- In a new terminal, run the server:
$ python manage.py runserver
- Create an
APP_URL
environment variable based on the URL ngrok gives you. This is used in theCSRF_TRUSTED_ORIGINS
andALLOWED_HOSTS
section ofsettings.py
. Do not include a schema (http:// or https://) in this variable.
export APP_URL=<ngrok-url.ngrok.io>
- From the Partner dashboard, update the "App URL" and "Allowed redirection URL(s)" to include the callback URL:
<https://ngrok-url.ngrok.io>/auth/shopify/callback
- In your browser, open the
https
ngrok url to install and open this app on a shop. Requests to authenticated resources like theproducts
view in theapi
app should now be secured with anAuthorization: Bearer <session token>
header.