Skip to main content

Shopify Integration for Nodus

1. Introduction to the Shopify Integration

What Is This Integration?

The Shopify integration connects your Shopify e-commerce platform data with Nodus, allowing you to extract, analyze, and transform order data, customer information, product details, and other e-commerce metrics. This integration functions as a source connector, bringing your Shopify store data into the Nodus ecosystem for advanced analytics and business intelligence.

Prerequisites:

  • An active Shopify store
  • API Access Token from a custom Shopify app with read permissions
  • Shop name (your Shopify store URL)

Connection Overview:

The integration leverages Shopify's Admin API (REST) and GraphQL API to extract store data. Authentication is handled through API Access Token, and data is extracted based on templates that specify which datasets to retrieve.

2. Platform Setup Documentation (Setup Form for Shopify)

Purpose & Scope

This section covers how to set up the initial connection between Nodus and Shopify by providing the necessary authentication credentials and store details.

Field-by-Field Breakdown:

Integration Name

  • Field Name & Label: Integration Name
  • Description & Purpose: A descriptive name to identify this Shopify integration within your Nodus account.
  • Validation Rules & Format: Text string, required field.
  • Examples: "Main Shopify Store", "Brand X Shopify"
  • Troubleshooting Tips: Use a descriptive name that clearly identifies the specific Shopify store.

Shop Name

  • Field Name & Label: Shop Name
  • Description & Purpose: The name of your Shopify store, used to access your store's data.
  • Validation Rules & Format: Text string, required field.
  • Examples: "your-store-name" (without the .myshopify.com suffix)
  • Troubleshooting Tips: This is the subdomain part of your Shopify URL. If your store URL is "your-store-name.myshopify.com", enter "your-store-name".

API Access Token

  • Field Name & Label: API Access Token
  • Description & Purpose: The authentication token used to access Shopify API.
  • Validation Rules & Format: Alphanumeric string, required field.
  • Examples: "shpat_123abc456def789ghijk"
  • Troubleshooting Tips: This token is created when you set up a custom app in your Shopify admin. Make sure your app has the necessary read permissions.
  • Link Label: "Locate your API Information"
  • URL: https://shopify.dev/
  • Purpose: Helps users find documentation for creating Shopify apps and obtaining API credentials.

Step-by-Step Guide:

  1. Log in to your Shopify admin dashboard
  2. Go to Settings > Apps and sales channels > Develop apps > Create an app
  3. Give your app a name and configure Admin API scopes (select read-only permissions)
  4. Install the app to your store
  5. Copy the Admin API Access Token
  6. Enter your Shop Name and API Access Token in the Nodus setup form
  7. Verify connection and save the configuration

3. Extraction/Query Configuration (Extraction Form for Shopify)

Purpose & Overview

This section explains how to configure data extraction from Shopify. Shopify offers various templates for extracting different types of store data and metrics.

Template & Field Documentation:

Template Selection

  • Field Name & Label: Select a template
  • Description & Purpose: Defines which type of Shopify data to extract
  • Validation Rules & Format: Dropdown selection, required field
  • Available Options:
    • Order Details - Customer journey data, UTM parameters, and line item details
    • Order Performance - Order metrics like sales, quantities, and financial data
    • Marketing Attribution - Marketing attribution data
    • Order Items Performance - Order items performance data
    • Order Item Details - Order item details data
    • Customer Profiles - Customer profiles data

Lookback Range

  • Field Name & Label: Lookback Range
  • Description & Purpose: Specifies how many days back to extract data
  • Validation Rules & Format: Dropdown selection, required field
  • Available Options:
    • 3-day Range
    • 7-day Range
    • 28-day Range (recommended)
    • 90-day Range (Optimal if 90-day DDA is used)
  • Troubleshooting Tips: Larger date ranges may result in longer processing times.

Historic Date Selection

  • Field Name & Label: Historic Date
  • Description & Purpose: For historical data extraction, specifies a custom date range
  • Validation Rules & Format: Date picker, required field
  • Troubleshooting Tips: Shopify maintains historical data, but very old data may have limitations.

Workflow & Examples:

  1. Select the appropriate template (e.g., "Order Details" for customer journey data)
  2. Choose a lookback period or specific historic date range
  3. Preview the query to confirm configuration
  4. Execute extraction

Data Mapping & Underlying Models for Shopify

Data Model Overview

The Shopify integration uses both REST API and GraphQL queries to extract data. Each template corresponds to specific API endpoints and data structures.

Schema & Field Mapping

Shopify Dimension Tables

Order Details Schema

FieldDescription
order_idOrder ID (primary key)
order_nameOrder name (typically #1001, etc.)
legacy_idLegacy resource ID
confirmation_numberOrder confirmation number
created_atOrder creation timestamp
processed_atOrder processing timestamp
updated_atOrder update timestamp
closed_atOrder closed timestamp
cancelled_atOrder cancellation timestamp
financial_statusOrder financial status (paid, pending, etc.)
fulfillment_statusOrder fulfillment status
cancel_reasonReason for cancellation if applicable
is_closedWhether the order is closed
is_confirmedWhether the order is confirmed
is_paidWhether the order is fully paid
is_tax_exemptWhether the order is tax exempt
taxes_includedWhether taxes are included in prices
is_test_orderWhether this is a test order
currency_codeOrder currency code
presentment_currency_codePresentment currency code
phoneCustomer phone number
emailCustomer email
noteOrder notes
tagsOrder tags
po_numberPurchase order number
client_ipClient IP address
source_identifierSource identifier
has_estimated_taxesWhether the order has estimated taxes
requires_shippingWhether the order requires shipping
customer_idCustomer ID reference

Order Line Item Details Schema

FieldDescription
order_idOrder ID
order_nameOrder name
line_item_idLine item ID (unique with order_id)
skuProduct SKU
line_item_titleLine item title
product_idProduct ID
product_titleProduct title
variant_idProduct variant ID
variant_titleProduct variant title
vendorProduct vendor
custom_attribute_keysCustom attribute keys
custom_attribute_valuesCustom attribute values
is_taxableWhether the item is taxable
requires_shippingWhether the item requires shipping
is_gift_cardWhether the item is a gift card
selling_plan_nameSelling plan name if applicable

Customer Profiles Schema

FieldDescription
customer_idCustomer ID (primary key)
first_nameCustomer first name
last_nameCustomer last name
emailCustomer email
phoneCustomer phone number
verified_emailWhether email is verified
accepts_marketingWhether customer accepts marketing
created_atCustomer creation timestamp
updated_atCustomer update timestamp
orders_countNumber of orders placed
tax_exemptWhether customer is tax exempt
tagsCustomer tags
currencyCustomer preferred currency
localeCustomer locale
default_address_idDefault address ID
default_address_address1Default address line 1
default_address_address2Default address line 2
default_address_cityDefault address city
default_address_companyDefault address company
default_address_countryDefault address country
default_address_country_codeDefault address country code
default_address_country_nameDefault address country name
default_address_provinceDefault address province/state
default_address_province_codeDefault address province/state code
default_address_zipDefault address ZIP/postal code
default_address_nameDefault address name
default_address_phoneDefault address phone

Shopify Fact Tables

Marketing Attribution Schema

FieldDescription
order_idOrder ID (primary key)
order_nameOrder name
created_atOrder creation timestamp
processed_atOrder processing timestamp
order_valueOrder total value
source_urlReferring source URL
customer_order_indexCustomer order sequence number
first_visit_idID of customer's first visit
first_landing_pageFirst landing page URL
first_referrer_urlURL that first referred the customer
first_sourceMarketing source of first visit
first_source_descriptionDescription of marketing source for first visit
first_source_typeType of marketing source for first visit
first_utm_campaignUTM campaign parameter from first visit
first_utm_contentUTM content parameter from first visit
first_utm_mediumUTM medium parameter from first visit
first_utm_sourceUTM source parameter from first visit
first_utm_termUTM term parameter from first visit
last_visit_idID of customer's last visit before purchase
last_landing_pageLast landing page URL
last_referrer_urlURL that referred the customer on last visit
last_sourceMarketing source of last visit
last_source_descriptionDescription of marketing source for last visit
last_source_typeType of marketing source for last visit
last_utm_campaignUTM campaign parameter from last visit
last_utm_contentUTM content parameter from last visit
last_utm_mediumUTM medium parameter from last visit
last_utm_sourceUTM source parameter from last visit
last_utm_termUTM term parameter from last visit

Order Items Performance Schema

FieldDescription
order_idOrder ID
line_item_idLine item ID
dayOrder date
quantityQuantity ordered
priceItem price
total_discountTotal discount amount
pre_tax_pricePre-tax price
tax_amountTax amount
tax_rateTax rate
total_priceTotal price

Order Performance Schema

FieldDescription
order_idUnique order identifier (primary key)
dayOrder date
additional_feesAdditional fees charged
discountsDiscount amount applied
dutiesDuty charges applied
gross_salesTotal gross sales amount
net_salesNet sales amount after discounts
ordered_product_quantityTotal quantity of items ordered
returned_product_quantityQuantity of returned items
net_product_quantityNet quantity after returns
ordersNumber of orders (typically 1)
shippingShipping charges
taxesTax amount
tipsTip amount if applicable
returnsTotal returns value
gross_sales_adjustmentsAdjustments to gross sales
discounts_adjustmentsAdjustments to discounts

5. Troubleshooting & FAQs for Shopify

Common Issues & Error Messages

Authentication Failures

  • Error: "Access denied" or "Invalid API token"
  • Solution: Verify your API Access Token and ensure your custom app has the necessary read permissions.

Missing Marketing Attribution Data

  • Common Causes:
    • Missing UTM parameters in original traffic
    • Customer Journey feature not enabled in Shopify
  • Solution: Verify marketing attribution is properly configured in Shopify and UTM parameters are present in your marketing campaigns.

Access Scope Issues

  • Error: "Access scope not granted"
  • Solution: Ensure your custom app has all the required scopes. For the Orders template, you need at minimum read_orders, read_customers, and read_products scopes.

Contact & Support Information

API Scope Requirements

For full functionality, your Shopify API token should have the following read scopes:

  • read_orders
  • read_customers
  • read_products
  • read_inventory
  • read_locations
  • read_fulfillments
  • read_content
  • read_discounts
  • read_marketing_events
  • read_price_rules

Data Retention & Limitations

  • Shopify maintains historical order data indefinitely
  • Certain metrics like customer journey data may only be available for more recent orders
  • GraphQL API has pagination limits (default 250 items per page)
  • ShopifyQL has analytical limitations compared to direct API access