How to Connect OpenClaw to Shopify
Shopify's Admin API enables powerful ecommerce automation, but integration requires understanding custom app creation, API scopes, webhook configuration, and rate limits. This intermediate guide walks you through creating a Shopify custom app, configuring API access, setting up webhooks, testing order and product queries, and building customer support workflows powered by AI.
Why This Is Hard to Do Yourself
These are the common pitfalls that trip people up.
Shopify app approval
Custom apps require admin approval and specific API scopes. Public apps need Shopify Partner account and app review before installation.
Webhook configuration
Shopify webhooks deliver real-time events (orders, products, customers), but require HTTPS endpoints and webhook signature verification.
Rate limits
Shopify REST API has bucket-based rate limiting (40 requests/sec). GraphQL Admin API uses cost-based limits (1000 points/sec). Exceeding limits returns 429 errors.
Step-by-Step Guide
Create Shopify custom app
Set up a custom app in your Shopify store admin.
# 1. Go to Shopify Admin โ Settings โ Apps and sales channels
# 2. Click "Develop apps" โ "Allow custom app development"
# 3. Click "Create an app"
# 4. Set:
# - App name: OpenClaw AI
# - App developer: Your email
# 5. Click "Create app"Warning: Custom apps have full access to your store data if granted. Only enable the minimum required API scopes for security.
Configure API scopes
Grant the app access to necessary Shopify resources.
# In your custom app settings:
# Click "Configure Admin API scopes"
# Enable scopes:
# - read_orders (query orders)
# - write_orders (update order tags, notes)
# - read_products (query product catalog)
# - read_customers (query customer data)
# - write_customers (update customer notes)
# - read_fulfillments (check shipping status)
# Click "Save"
# Click "Install app" to generate API credentialsWarning: Changing API scopes after installation requires reinstalling the app. Plan your scopes carefully before installation.
Install Shopify skill
Configure OpenClaw with your Shopify API credentials.
# After installing the app, copy:
# - Admin API access token (shpat_xxx)
# - Store domain (yourstore.myshopify.com)
# In config/skills/shopify.yaml:
shopify:
enabled: true
store_domain: "yourstore.myshopify.com"
api_token: "shpat_YOUR_ADMIN_API_ACCESS_TOKEN"
api_version: "2024-01" # Use latest stable version
# Install the skill:
openclaw skill install shopify
# Test connection:
openclaw skill test shopify --action get_shop_infoSet up webhooks
Configure Shopify to send real-time events to OpenClaw.
# In Shopify Admin โ Settings โ Notifications โ Webhooks:
# Create webhooks for:
# - Order creation: https://your-domain.com/webhooks/shopify/orders/create
# - Order fulfillment: https://your-domain.com/webhooks/shopify/orders/fulfilled
# - Customer creation: https://your-domain.com/webhooks/shopify/customers/create
# In config/skills/shopify.yaml (continued):
webhooks:
enabled: true
webhook_path: "/webhooks/shopify"
verify_signature: true # Verify HMAC signature from Shopify
webhook_secret: "YOUR_WEBHOOK_SECRET" # From Shopify webhook settingsWarning: Always verify webhook signatures in production. Without verification, malicious actors can send fake webhook events to your endpoint.
Test order/product queries
Verify that OpenClaw can query Shopify data.
# Query recent orders:
openclaw chat "Show me the 5 most recent orders from Shopify"
# Search products:
openclaw chat "Find all products in Shopify with 'organic' in the title"
# Get customer info:
openclaw chat "Show me customer details for email customer@example.com from Shopify"
# Update order:
openclaw chat "Add tag 'reviewed-by-ai' to Shopify order #1234"
# Check logs:
tail -f ~/.openclaw/logs/skills.log | grep shopifyBuild customer support workflows
Create AI-powered workflows for common support tasks.
# Example: Order status automation
# config/workflows/shopify_order_status.yaml:
workflows:
shopify_order_status:
trigger:
type: webhook
path: /webhooks/shopify/orders/create
steps:
- name: Get order details
action: shopify.get_order
params:
order_id: "{{ webhook.body.id }}"
- name: Generate confirmation message
action: ai.generate
input: "Create a friendly order confirmation message for {{ steps.get_order_details.output.customer.first_name }}"
- name: Send to customer (via email or SMS)
action: notify.send
params:
to: "{{ steps.get_order_details.output.customer.email }}"
message: "{{ steps.generate_confirmation_message.output }}"Warning: Shopify webhooks can deliver duplicate events. Implement idempotency checks (track processed order IDs) to prevent duplicate actions.
Shopify Integration Requires Ecommerce Expertise
Custom app setup, API scopes, webhook verification, rate limiting, order workflows, customer support automation โ our integration experts build production-ready Shopify integrations that scale with your store.
Get matched with a specialist who can help.
Sign Up for Expert Help โ