Shopify Connector
Prerequisites
- A Shopify store (any plan)
- Store Owner or staff account with API access
Authentication
Shopify uses OAuth 2.0. Landed handles the OAuth flow automatically -- you will be redirected to Shopify to authorize access.
Step 1: Connect via OAuth
- In Landed, click Add Connector and select Shopify
- Enter your Shop Domain (e.g.,
mystore.myshopify.com) - Click Connect to Shopify
- You will be redirected to Shopify's authorization page
- Review the permissions and click Install app
- You will be redirected back to Landed
Note: You must enter the .myshopify.com domain, not a custom domain. Your shop domain is visible in your Shopify admin URL: https://admin.shopify.com/store/mystore corresponds to mystore.myshopify.com.
Required Shopify Scopes
Landed requests read-only access to:
| Scope | Streams |
|---|---|
read_orders | orders, order_line_items, transactions, refunds, fulfillments |
read_products | products |
read_customers | customers |
read_inventory | inventory_items, inventory_levels |
read_locations | locations |
read_discounts | discount_codes |
read_content | collections |
Configuration in Landed
| Field | Value |
|---|---|
| Shop Domain | Your Shopify store domain (e.g., mystore.myshopify.com) |
Available Streams
| Stream | Description | Sync Mode |
|---|---|---|
orders | Order records with totals, currency, status, tags | Incremental |
order_line_items | Individual line items within orders | Incremental |
products | Product catalog with title, vendor, type, status | Incremental |
customers | Customer records with email, order count, total spent | Incremental |
transactions | Payment transactions linked to orders | Incremental |
refunds | Refund records | Incremental |
fulfillments | Fulfillment records with tracking info | Incremental |
inventory_items | Inventory item definitions | Incremental |
inventory_levels | Inventory quantities per location | Full refresh |
collections | Product collections (smart and custom) | Full refresh |
locations | Store locations | Full refresh |
discount_codes | Discount code definitions | Full refresh |
Common Issues
| Symptom | Cause | Fix |
|---|---|---|
Invalid shop domain | Domain format wrong | Use the .myshopify.com domain, not a custom domain |
401 Unauthorized | OAuth token expired or revoked | Disconnect and reconnect the Shopify connector in Landed |
| Missing orders | Orders outside sync window | Landed syncs incrementally from the last checkpoint |
Rate limit exceeded | Too many API calls | Landed handles rate limiting automatically; Shopify allows 2 req/sec |
Data Notes
- Shopify OAuth tokens do not expire (offline access tokens are permanent)
- Monetary values (prices, totals) are returned as strings to preserve decimal precision
- Orders include both open and archived orders
- Line items are synced as a separate stream linked to orders via
order_id
Static IPs for Allowlisting
If your Shopify configuration requires IP allowlisting:
- Production:
34.170.185.84,35.192.90.94 - Staging:
34.171.93.34