Shopify
This page contains the setup guide and reference information for Shopify.
Prerequisites
- Your Shopify store name
- Your Shopify login details or API password
Features
Feature | Supported? |
---|---|
Full Refresh Sync | Yes |
Incremental - Append Sync | Yes |
Namespaces | No |
The Shopify source supports both Full Refresh and Incremental syncs. You can choose to copy only the new or updated data, or all rows in the tables and columns you set up for replication, every time a sync is run.
Daspire can sync data for the Shopify API.
Setup guide
Using API password to set up
Go to https://admin.shopify.com/store/YOURSTORE, click Settings from the side menu.
Click Apps and sales channels from the side menu. Then click Develop apps.
Click Create an app to create a private application.
Enter your App name and select the appropriate App developer.
Open the App you just created, click Configuration. Then click Configure in Admin API integration.
In Admin API access scopes, select the resources you want to allow access to. Daspire only needs read-level access. Once you're done, click Save.
Note: The UI will show all possible data sources and will show errors when syncing if it doesn't have permissions to access a resource.
Once you have assigned the APP relevant access scope, click the API credentials tab, and then click Install app.
Once the app is installed, your Admin API access token will show, copy it. Your API access token starts with shpat_. You'll use as the api_password for the integration
You're ready to set up Shopify in Daspire!
Set up Shopify in Daspire
Select Shopify from the Source list.
Enter a Source Name.
Enter your Shopify Store Name.
Using OAuth 2.0, Authenticate your Shopify account or using API password, enter your API password.
Enter Replication Start Date - the date you would like to replicate data from.
Click Save & Test.
Output schema
This Source is capable of syncing the following core Streams:
- Abandoned Checkouts
- Collects
- Custom Collections
- Customers
- Draft Orders
- Discount Codes
- Metafields
- Orders
- Orders Refunds
- Orders Risks
- Products
- Transactions
- Pages
- Price Rules
- Locations
- InventoryItems
- InventoryLevels
- Fulfillment Orders
- Fulfillments
- Shop
NOTE
For better experience with Incremental Refresh the following is recommended:
Order Refunds, Order Risks, Transactions should be synced along with Orders stream.
Discount Codes should be synced along with Price Rules stream.
If child streams are synced alone from the parent stream - the full sync will take place, and the records are filtered out afterwards.
Data type mapping
Integration Type | Daspire Type |
---|---|
string | string |
number | number |
array | array |
object | object |
boolean | boolean |
Performance considerations
Shopify has some rate limit restrictions. Typically, there should not be issues with throttling or exceeding the rate limits but in some edge cases, user can receive the warning message as follows:
Caught retryable error '<some_error> or null' after <some_number> tries. Waiting <some_number> seconds then retrying..."
This is expected when the source hits the 429 - Rate Limit Exceeded HTTP Error. With the given error message, the sync operation still goes on, but will require more time to finish.
Troubleshooting
Max number of tables that can be synced at a time is 6,000. We advise you to adjust your settings if it fails to fetch schema due to max number of tables reached.