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:

  1. In Shopify Admin, go to Apps and integrations > App and sales channel settings > Develop apps
  2. Create a new app
  3. Set redirect URI: https://yourapp.deepchain.dev/oauth/callback
  4. Request scopes: write_products, write_orders, read_inventory, etc.
  5. 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