Shopify

Overview

Shopify is an e-commerce platform for online stores. This Parsons integration with the Shopify REST API supports fetching records of orders.

Note

Authentication

Shopify supports different types of authentication methods for different types of apps, which are documented here.

Quickstart

To instantiate the Shopify class, you can either store your Shopify API subdomain, password, key, and version as environmental variables (SHOPIFY_SUBDOMAIN, SHOPIFY_PASSWORD, SHOPIFY_API_KEY, and SHOPIFY_API_VERSION, respectively) or pass in your subdomain, password, key, and version as arguments:

from parsons import Shopify

# First approach: Use API credentials via environmental variables
shopify = Shopify()

# Second approach: Pass API credentials as arguments
shopify = Shopify(subdomain='mysubdomain', password='1234', api_key='1234', api_version='2020-10')

You can then call various endpoints:

# Fetch orders
orders = shopify.get_orders()

API

class parsons.Shopify(subdomain=None, password=None, api_key=None, api_version=None, access_token=None)[source]

Instantiate the Shopify class Args:

subdomain: str

The Shopify subdomain (e.g. myorg for myorg.myshopify.com) Not required if SHOPIFY_SUBDOMAIN env variable set.

password: str

The Shopify account password. Not required if SHOPIFY_PASSWORD env variable set.

api_key: str

The Shopify account API key. Not required if SHOPIFY_API_KEY env variable set.

api_version: str

The Shopify API version. Not required if SHOPIFY_API_VERSION env variable set.

access_token: str

The Shopify access token. Not required if SHOPIFY_ACCESS_TOKEN env variable set. If argument or env variable is set, password and api_key are ignored.

Returns:

Shopify Class

get_count(query_date=None, since_id=None, table_name=None)[source]

Get the count of rows in a table. Args:

query_date: str

Filter query by a date that rows were created. This filter is ignored if value is None.

since_id: str

Filter query by a minimum ID. This filter is ignored if value is None.

table_name: str

The name of the Shopify table to query.

Returns:

int

get_orders(query_date=None, since_id=None, completed=True)[source]

Get Shopify orders. Args:

query_date: str

Filter query by a date that rows were created. Format: yyyy-mm-dd. This filter is ignored if value is None.

since_id: str

Filter query by a minimum ID. This filter is ignored if value is None.

completed: bool

True if only getting completed orders, False otherwise.

Returns:

Table Class

get_query_url(query_date=None, since_id=None, table_name=None, count=True)[source]

Get the URL of a Shopify API request Args:

query_date: str

Filter query by a date that rows were created. Format: yyyy-mm-dd. This filter is ignored if value is None.

since_id: str

Filter query by a minimum ID. This filter is ignored if value is None.

table_name: str

The name of the Shopify table to query.

count: bool

True if refund should be included in Table, False otherwise.

Returns:

str

graphql(query)[source]

Make GraphQL request. Reference: https://shopify.dev/api/admin-graphql Args:

query: str

GraphQL query.

Returns:

dict

classmethod load_to_table(subdomain=None, password=None, api_key=None, api_version=None, query_date=None, since_id=None, completed=True)[source]
Fast classmethod so you can get the data all at once:
tabledata = Shopify.load_to_table(subdomain=’myorg’, password=’abc123’,

api_key=’abc123’, api_version=’2020-10’, query_date=’2020-10-20’, since_id=’8414’, completed=True)

This instantiates the class and makes the appropriate query type to Shopify’s orders table based on which arguments are supplied. Args:

subdomain: str

The Shopify subdomain (e.g. myorg for myorg.myshopify.com).

password: str

The Shopify account password.

api_key: str

The Shopify account API key.

api_version: str

The Shopify API version.

query_date: str

Filter query by a date that rows were created. Format: yyyy-mm-dd. This filter is ignored if value is None.

since_id: str

Filter query by a minimum ID. This filter is ignored if value is None.

completed: bool

True if only getting completed orders, False otherwise. value as value

Returns:

Table Class