Shopify Connector
Manage orders, products, customers, and inventory in Shopify
Shopify Connector
Automate your e-commerce operations with Shopify. Manage orders, sync products, update inventory, track customers, and streamline fulfillment—all from DeepChain.
Overview
The Shopify connector provides 17 operations for managing your online store. Whether you're automating order fulfillment, managing inventory, or syncing customer data, this connector keeps your store running smoothly.
Authentication
Shopify supports two authentication methods:
Option 1: OAuth 2.0 (Recommended)
Secure, delegated access:
auth_type: oauth2
client_id: "your-app-id"
client_secret: "your-app-secret"
shop: "your-store.myshopify.com"
How to set it up:
- In Shopify Admin, go to Apps and integrations > App and sales channel settings > Develop apps
- Create a new app
- Set redirect URI:
https://yourapp.deepchain.dev/oauth/callback - Request scopes:
write_products,write_orders,read_inventory, etc. - Install and copy credentials
Option 2: Private App
Simple token-based authentication:
auth_type: private_app
shop: "your-store.myshopify.com"
access_token: "shpat_xxxxx"
Create a private app in Settings > Apps and integrations > Private apps and copy the access token.
Available Operations
| Operation | What It Does |
|---|---|
getProduct |
Fetch product by ID |
createProduct |
Create new product |
updateProduct |
Update product details |
listProducts |
List products with filtering |
getOrder |
Fetch order by ID |
createOrder |
Create new order |
updateOrder |
Update order details |
listOrders |
List orders |
fulfillOrder |
Mark order as fulfilled |
getCustomer |
Fetch customer by ID |
createCustomer |
Create new customer |
listCustomers |
List customers |
getInventory |
Get inventory levels |
updateInventory |
Update inventory |
createWebhook |
Register webhook for events |
listWebhooks |
List webhooks |
deleteWebhook |
Remove webhook |
Practical Workflow Examples
Example 1: Auto-Create Order
Turn form submissions or external orders into Shopify orders:
- id: create_order
type: shopify_connector
config:
operation: createOrder
email: "{{ input.customer_email }}"
line_items:
- variant_id: "{{ input.variant_id }}"
quantity: "{{ input.quantity }}"
shipping_address:
first_name: "{{ input.first_name }}"
last_name: "{{ input.last_name }}"
address1: "{{ input.address }}"
city: "{{ input.city }}"
province: "{{ input.state }}"
zip: "{{ input.zip }}"
country: "{{ input.country }}"
send_receipt: true
Example 2: Update Inventory
Sync inventory from external sources:
- id: sync_inventory
type: shopify_connector
config:
operation: updateInventory
inventory_item_id: "{{ input.inventory_item_id }}"
available: "{{ input.stock_count }}"
tracked: true
Example 3: Create Product with Variants
Add new product with multiple options:
- id: create_product
type: shopify_connector
config:
operation: createProduct
title: "{{ input.product_name }}"
vendor: "{{ input.vendor }}"
product_type: "{{ input.category }}"
body_html: "{{ input.description }}"
variants:
- title: "Small"
price: "{{ input.price_small }}"
- title: "Large"
price: "{{ input.price_large }}"
metafields:
- namespace: "custom"
key: "sku"
value: "{{ input.sku }}"
Example 4: Fulfill Order
Mark order items as shipped:
- id: fulfill_order
type: shopify_connector
config:
operation: fulfillOrder
order_id: "{{ input.order_id }}"
line_items:
- id: "{{ input.line_item_id }}"
quantity: "{{ input.quantity }}"
tracking_info:
number: "{{ input.tracking_number }}"
company: "{{ input.carrier }}"
notify_customer: true
Example 5: List Recent Orders
Find unfulfilled orders:
- id: find_unfulfilled
type: shopify_connector
config:
operation: listOrders
status: "any"
fulfillment_status: "unfulfilled"
limit: 50
created_at_min: "{{ subtractDays(now(), 7) }}"
Rate Limits
Shopify enforces API rate limits:
- REST API: 2 requests per second
- GraphQL API: 50 points per second (cost-based)
Note: DeepChain handles retries with backoff.
Error Handling
| Error | What It Means | How to Fix |
|---|---|---|
NotFound |
Product, order, or customer doesn't exist | Verify IDs |
UnprocessableEntity |
Invalid field or value | Check required fields |
Unauthorized |
Bad token or insufficient permissions | Re-authenticate |
Best Practices
1. Use Variant IDs for Line Items
Always use variant ID, not product ID:
line_items:
- variant_id: "{{ input.variant_id }}" # Correct
quantity: "{{ input.qty }}"
2. Set Notify Customer Flag
Control order notifications:
send_receipt: true # Send order confirmation email
notify_customer: true # Send shipment notification
3. Track Inventory
Always enable inventory tracking for accurate stock:
- id: create_product
type: shopify_connector
config:
operation: createProduct
variants:
- sku: "{{ input.sku }}"
tracked: true # Enable tracking
Next Steps
- Connectors Overview — See all connectors
- Shopify API Documentation — Full API reference
- Product Management — Shopify product docs