What is ‘Shopify DWA Integration Utilizing GraphQL APIs’?
Shopify is transitioning from REST APIs to GraphQL APIs for data access and management. To align with this change, Two Circles has updated the existing Shopify DWA integration to source data from Shopify’s GraphQL API endpoints.
Why did Two Circles switch to ‘Shopify GraphQL’?
This update ensures uninterrupted data access and improved data consistency for clients who rely on Shopify data in their reporting and analytics.
What Clients are affected by this change?
All Two Circles DWA clients currently using Shopify DWA integration tables and views are impacted by this update.
What’s new or changing?
Updated Data Source
The integration now sources data from Shopify’s GraphQL API endpoints, replacing the deprecated REST API connections.
This update ensures data continuity and compliance with Shopify’s latest API standards.
New Schema Structure
Data is now available under a new schema:
shopify_<friendlyname>This provides clearer organization and better scalability for managing Shopify datasets.
Backward-Compatible Views
To simplify migration, backward-compatible views have been created within the new schema.
These views mirror the previous Shopify integration’s structure and field names, allowing existing reports and downstream processes to continue functioning with minimal changes.
Clients can use these views to transition reporting and workflows at their own pace before fully switching to the new schema.
Field Deprecations and Schema Changes
Shopify has deprecated several fields in its GraphQL APIs. As a result, certain DWA tables no longer include these fields.
Table Name |
Deprecated Fields |
Newly Added Fields |
|---|---|---|
abandoned_checkouts |
token, cart_token, gateway, landing_site, referring_site, total_weight, currency, location_id, device_id, source_name, presentment_currency |
None |
abandoned_checkouts_line_items |
destination_location_id |
None |
customer_address |
country_name (Note: The existing ‘Country’ field contains the same data as ‘country_name’.) |
None |
customers |
currency, admin_graphql_api_id |
None |
locations |
country_name (Note: The existing ‘Country’ field contains the same data as ‘country_name’.) |
None |
Monitoring Updates
Monitoring for this version is no longer available in the existing DWA Integration Status report via Tableau.
We are transitioning monitoring to a new technology stack to provide enhanced visibility, automation, and alerting capabilities.
In the interim:
Raw monitoring data will be made available directly in Redshift.
Refer to the Data Integrations - Release Notes - IF - Monitoring - Interim Solution help center article for details on the interim setup.
A future release will reintroduce monitoring through the new platform once complete.
How can clients validate the new Shopify DWA integration against the previous version?
Clients can complete a short User Acceptance Testing (UAT) process to confirm data accuracy and consistency between the previous REST-based Shopify DWA integration and the new GraphQL-based version.
1. Identify and Access Datasets
Locate equivalent tables in both integrations — the legacy REST-based shopify schema and the new shopify_<friendlyname> schema (or its backward-compatible views).
Ensure you have access to both environments for comparison and validation.
2. Validate Record Counts
Compare total row counts for key tables (e.g., orders, customers, products) over a consistent recent date range.
Small timing differences are acceptable, but large gaps should be investigated.
SELECT COUNT(*) FROM shopify.orders;
SELECT COUNT(*) FROM shopify_<friendlyname>.orders;
3. Compare Key Metrics
Aggregate and compare essential business metrics such as total orders, total revenue, and customer counts.
Results between the old and new integrations should align within acceptable variance levels.
SELECT SUM(total_price) FROM shopify.orders;
SELECT SUM(total_price) FROM shopify_<friendlyname>.orders;
4. Spot-Check Field Consistency
Run targeted checks on individual records by joining the two datasets on unique identifiers (e.g., order_id, customer_id).
Compare a few key fields—like total_price, currency, and country—to confirm values are consistent between both integrations.
Use the mapping document to verify which columns align or have been updated between versions.
📎 See the attached Shopify_mapping_doc.xlsx for detailed column mappings and field-level differences.
SELECT a.order_id
FROM shopify.orders a
JOIN shopify_<friendlyname>.orders b ON a.order_id = b.order_id
WHERE a.total_price <> b.total_price;
5. Validate Reporting Outputs
Run key dashboards or reports connected to the new schema or backward-compatible views.
Confirm that results align with those from the previous integration and that no data or structure issues appear.
Once verified, you can confidently transition reporting and downstream processes to the new schema.
What is not affected or included?
Frequency of ingestion remains unchanged.
No new tables are being added.
The current integration will run concurrently with the new version to allow sufficient time for clients to transition reporting and downstream processes.
Further communications on deprecating the legacy version will follow.
How does a client enable this feature?
A new access token is required from the Clients. Please see
Steps to generate the GraphQL Access Token
-
Make sure you have the necessary permissions:
To create a custom app.
To configure API scopes.
To enable app development. -
Activate custom app development through your Shopify admin area:
Login to your Shopify Admin.
Navigate to Settings Apps and sales channels.
Select Develop apps.
Click on Allow custom app development.
Read through the provided information and the warning, and then proceed to Allow custom app development. -
Begin creating the app:
Within your Shopify admin, go to Settings Apps and sales channels.
Click Develop apps, choose the option to Create a custom app.
In the modal window that appears, name your app as "KORE" and select an App developer. This developer can be the store owner or any authorized staff member with Develop apps permission.
Proceed to Create app. -
Configure API scopes:
Click on Select scopes
Within the Admin API access scopes section, select the specific API scopes that you wish to assign to the app. It is suggested to provide read permissions for endpoints like shop, customers, locations, products, orders, tender_transactions and checkouts.
For the Storefront API access scopes, do not select any API scopes, as it grants unrestricted data access.
Save your selections. -
Retrieve the API access token:
Click on Install app.
In the appearing modal window, proceed to Install app.
Obtain the access token.
Visit the Admin API access token section and Reveal the token once.
Note
The Admin API access token is viewable only once on this page due to its sensitive access to store data.
After viewing, securely record the token for future reference. After the initial reveal, this page displays the last 4 digits of the access token for future reference.
The updated Shopify DWA integration will be automatically deployed to all customers currently using Shopify integrations.
Clients will be notified of their individual implementation window.
Internal Release Notes:
https://koresoftware.atlassian.net/wiki/spaces/DWA/pages/4538990605/Data+Integrations+Internal+Release+Notes+-+Shopify+GraphQL+Endpoints