Shopify Store Assistant

Data & APIs

Manage Shopify products, orders, customers, inventory, collections, and store operations via the Shopify Admin API with OAuth authentication. Use this skill when users want to read or modify Shopify store data, manage product listings, process orders, track inventory, or automate e-commerce workflows.

Install

openclaw skills install clawlink-shopify

Shopify

Manage a Shopify store via the Shopify Admin API with OAuth authentication. List and search products, process orders, track customers and inventory, manage collections, and automate store operations.

This skill uses ClawLink for hosted connection flows and credentials so you do not need to configure Shopify API access yourself.

Setup in 3 Steps

Step 1: InstallStep 2: Pair AccountStep 3: Connect Shopify
InstallPairApp-specific connection GIF coming soon
Run the install command in OpenClawSign in and approve the deviceOpen the dashboard and connect Shopify

How It Works

┌─────────────────┐     ┌──────────────┐     ┌──────────────────┐
│   OpenClaw      │────▶│   ClawLink   │────▶│  Shopify Admin   │
│   (User Chat)   │     │   (OAuth)    │     │      API         │
└─────────────────┘     └──────────────┘     └──────────────────┘
         │                       │                       │
         │  1. Install Plugin    │                       │
         │  2. Pair Device       │                       │
         │  3. Connect Shopify  │                       │
         │                       │  4. Secure Token      │
         │                       │  5. Proxy Requests   │
         │                       │                       │
         ▼                       ▼                       ▼
   ┌──────────┐           ┌──────────┐           ┌──────────┐
   │  SKILL   │           │ Dashboard│           │ Shopify  │
   │  File    │           │ Auth     │           │ Store    │
   └──────────┘           └──────────┘           └──────────┘

Install

Install the verified ClawLink plugin from ClawHub. After the user confirms, complete the full setup so ClawLink tools are visible in the next OpenClaw chat.

openclaw plugins install clawhub:clawlink-plugin
openclaw config set tools.alsoAllow '["clawlink-plugin"]' --strict-json
openclaw gateway restart

Then tell the user: "OpenClaw has been restarted. Send /new as a standalone message to start a fresh chat, then ask for Shopify again."

Quick Start

# List products
clawlink_call_tool --tool "shopify_list_products" --params '{}'

# Get a specific product
clawlink_call_tool --tool "shopify_get_product" --params '{"product_id": "PRODUCT_ID"}'

# Search customers
clawlink_call_tool --tool "shopify_search_customers" --params '{"query": "customer@example.com"}'

Authentication

All Shopify tool calls are authenticated automatically by ClawLink using the user's connected Shopify store OAuth token.

No API key is required in chat. ClawLink stores the OAuth token securely and injects it into every Shopify Admin API request on the user's behalf.

Getting Connected

  1. Install the ClawLink plugin (see Install above).
  2. Pair the plugin with clawlink_begin_pairing if it is not configured yet.
  3. Open https://claw-link.dev/dashboard?add=shopify and connect Shopify.
  4. Call clawlink_list_integrations to verify the connection is active.

Connection Management

List Connections

clawlink_list_integrations

Response: Returns all connected integrations. Look for shopify in the list.

Verify Connection

clawlink_list_tools --integration shopify

Response: Returns the live tool catalog for Shopify.

Reconnect

If Shopify tools are missing or the connection shows an error:

  1. Direct the user to https://claw-link.dev/dashboard?add=shopify
  2. After they confirm, call clawlink_list_integrations to verify
  3. Then call clawlink_list_tools --integration shopify

Security & Permissions

  • Access is scoped to the Shopify store connected during OAuth setup.
  • All write operations require explicit user confirmation. Before executing any create, update, or delete call, confirm the target resource and intended effect with the user.
  • Destructive actions (cancel order, delete product, issue refund) are marked as high-impact and must be confirmed.
  • Bulk delete operations cannot be undone and must be explicitly confirmed.

Tool Reference

Products

ToolDescriptionMode
shopify_list_productsList all products in the store with pagination and filtersRead
shopify_get_productGet a single product by ID with variants, images, and metafieldsRead
shopify_search_productsSearch products by title, vendor, product type, or tagRead
shopify_count_productsGet total product count with optional filtersRead
shopify_create_productCreate a new product with variants, options, and imagesWrite
shopify_update_productUpdate an existing product's title, description, or statusWrite
shopify_delete_productPermanently delete a product from the storeWrite
shopify_create_product_variantAdd a new variant to an existing productWrite
shopify_update_product_variantUpdate a product variant's price, SKU, or inventoryWrite
shopify_get_product_imagesList all images for a productRead
shopify_create_product_imageUpload a new image to a productWrite
shopify_create metafieldCreate a metafield on a product for custom metadataWrite
shopify_bulk_create_productsCreate many products (20-50+) via bulk GraphQL mutationWrite

Inventory

ToolDescriptionMode
shopify_list_inventory_levelsList inventory levels across locationsRead
shopify_adjust_inventory_levelIncrease or decrease stock at a specific locationWrite
shopify_connect_inventory_levelConnect an inventory item to a locationWrite
shopify_list_locationsList all warehouse and retail locationsRead
shopify_count_locationsGet the number of configured locationsRead

Orders

ToolDescriptionMode
shopify_list_ordersList orders with status and date filtersRead
shopify_get_orderGet a single order with line items and fulfillment dataRead
shopify_search_ordersSearch orders by name, email, or tagRead
shopify_count_ordersGet order count filtered by statusRead
shopify_create_orderCreate a new committed orderWrite
shopify_update_orderUpdate an order's status or metadataWrite
shopify_cancel_orderCancel an unpaid or unfulfilled orderWrite
shopify_close_orderClose an order (all items fulfilled/cancelled)Write
shopify_calculate_refundPreview accurate refund amounts before processingRead
shopify_create_refundProcess a full or partial refund for an orderWrite
shopify_create_fulfillmentMark items as shipped and create fulfillmentWrite
shopify_cancel_fulfillmentCancel an existing fulfillmentWrite

Customers

ToolDescriptionMode
shopify_list_customersList all customers with paginationRead
shopify_get_customerGet a customer by ID with addresses and ordersRead
shopify_search_customersSearch customers by email, name, or tagRead
shopify_count_customersGet total customer countRead
shopify_create_customerCreate a new customer recordWrite
shopify_update_customerUpdate customer information or addressesWrite
shopify_delete_customerDelete a customer with no existing ordersWrite
shopify_create_customer_addressAdd a new address to a customerWrite
shopify_delete_customer_addressRemove an address from a customerWrite
shopify_bulk_delete_customer_addressesRemove multiple addresses at onceWrite

Collections

ToolDescriptionMode
shopify_list_custom_collectionsList all custom (manually curated) collectionsRead
shopify_get_custom_collectionGet a collection by IDRead
shopify_create_custom_collectionCreate a new custom collectionWrite
shopify_update_custom_collectionUpdate collection title, description, or imageWrite
shopify_delete_custom_collectionDelete a custom collectionWrite
shopify_add_product_to_custom_collectionAdd a product to a custom collectionWrite
shopify_remove_product_from_custom_collectionRemove a product from a custom collectionWrite
shopify_count_custom_collectionsGet custom collection countRead
shopify_create_smart_collectionCreate an automated smart collectionWrite

Fulfillment & Shipping

ToolDescriptionMode
shopify_list_fulfillment_ordersList fulfillment orders for an orderRead
shopify_get_fulfillment_orderGet details of a specific fulfillment orderRead
shopify_apply_fulfillment_holdPause a fulfillment order due to issuesWrite
shopify_cancel_fulfillment_orderCancel a fulfillment order and create a replacementWrite
shopify_create_fulfillment_eventAdd a tracking event to a shipmentWrite

Discounts & Pricing

ToolDescriptionMode
shopify_create_price_ruleCreate a discount price rule (defines the discount logic)Write
shopify_list_price_rulesList all price rulesRead
shopify_create_discount_codeCreate a customer-facing discount codeWrite
shopify_create_discount_code_batchCreate up to 100 discount codes at onceWrite
shopify_count_price_rulesGet price rule countRead
shopify_create_couponCreate a discount coupon with percentage or fixed amountWrite

Store Content

ToolDescriptionMode
shopify_list_articlesList blog articles across all blogsRead
shopify_create_articleCreate a new blog articleWrite
shopify_update_articleUpdate an existing blog articleWrite
shopify_delete_articlePermanently delete a blog articleWrite
shopify_list_pagesList static store pagesRead
shopify_create_pageCreate a new static pageWrite
shopify_list_blogsList all blogsRead
shopify_create_blogCreate a new blogWrite

Webhooks & Events

ToolDescriptionMode
shopify_list_webhooksList all webhook subscriptionsRead
shopify_create_webhookSubscribe to a store event via webhookWrite
shopify_delete_webhookRemove a webhook subscriptionWrite
shopify_count_webhooksGet webhook countRead
shopify_list_eventsList store activity eventsRead
shopify_count_eventsGet event count with filtersRead

Billing

ToolDescriptionMode
shopify_create_app_subscriptionCreate a recurring billing chargeWrite
shopify_cancel_app_subscriptionCancel an active app subscriptionWrite
shopify_create_one_time_application_chargeCreate a one-time billing chargeWrite

Code Examples

List products

clawlink_call_tool --tool "shopify_list_products" \
  --params '{
    "limit": 10,
    "status": "active"
  }'

Get a specific order

clawlink_call_tool --tool "shopify_get_order" \
  --params '{
    "order_id": "ORDER_ID"
  }'

Create a new customer

clawlink_call_tool --tool "shopify_create_customer" \
  --params '{
    "first_name": "Jane",
    "last_name": "Doe",
    "email": "jane.doe@example.com",
    "phone": "+15551234567"
  }'

Search customers by email

clawlink_call_tool --tool "shopify_search_customers" \
  --params '{
    "query": "jane.doe@example.com"
  }'

Adjust inventory level

clawlink_call_tool --tool "shopify_adjust_inventory_level" \
  --params '{
    "inventory_item_id": "INVENTORY_ITEM_ID",
    "location_id": "LOCATION_ID",
    "available_adjustment": -5
  }'

Create a price rule and discount code

clawlink_call_tool --tool "shopify_create_price_rule" \
  --params '{
    "title": "SUMMER_SALE",
    "value_type": "percentage",
    "value": "-20",
    "customer_selection": "all"
  }'

Discovery Workflow

  1. Call clawlink_list_integrations to confirm Shopify is connected.
  2. Call clawlink_list_tools --integration shopify to see the live catalog.
  3. Treat the returned list as the source of truth. Do not guess or assume what tools exist.
  4. If the user describes a capability but the exact tool is unclear, call clawlink_search_tools with a short query and integration shopify.
  5. If no Shopify tools appear, direct the user to https://claw-link.dev/dashboard?add=shopify.

Execution Workflow

┌─────────────────────────────────────────────────────────────┐
│  READ OPERATIONS (Safe)                                     │
│  list → get → search → count → call                         │
│                                                             │
│  Example: List products → Get product details → Show result │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────┐
│  WRITE OPERATIONS (Require Confirmation)                    │
│  describe → preview → confirm → call                        │
│                                                             │
│  Example: Preview refund → User approves → Process refund    │
└─────────────────────────────────────────────────────────────┘
  1. For unfamiliar tools, ambiguous requests, or any write action, call clawlink_describe_tool first.
  2. Use the returned guidance, schema, whenToUse, askBefore, safeDefaults, examples, and followups to shape the call.
  3. Prefer read, list, search, and get operations before writes when that reduces ambiguity.
  4. For writes or anything marked as requiring confirmation, call clawlink_preview_tool first.
  5. Execute with clawlink_call_tool. Pass confirmation only after the preview matches the user's intent.
  6. If the tool call fails, report the real error. Do not invent results or restate the failure as a missing capability unless the live catalog supports that conclusion.

Notes

  • Products with many variants may require multiple API calls to fetch full variant data.
  • Order cancellation is only possible for orders that are not already paid or fulfilled.
  • Refunds require calculating first (shopify_calculate_refund) to get accurate transaction data.
  • Bulk operations (bulk product creation, bulk metafield deletion) run asynchronously and return a job ID.
  • Webhook subscriptions require a publicly accessible callback URL.
  • Metafield operations require knowing the namespace and key for the target resource.

Error Handling

Status / ErrorMeaning
Tool not foundThe tool name does not exist in the current catalog. Verify with clawlink_list_tools --integration shopify.
Missing connectionShopify is not connected. Direct the user to https://claw-link.dev/dashboard?add=shopify.
product_not_foundThe product ID does not exist or has been deleted.
order_not_foundThe order ID does not exist or has been deleted.
customer_not_foundThe customer ID does not exist.
not_authorisedThe connected account lacks permission for this operation.
fulfillment_not_cancellableThe fulfillment has already been completed or cannot be cancelled.
order_already_cancelledThe order has already been cancelled.
RefundAmountMismatchCalculated refund amounts don't match expected values. Re-calculate first.
Write rejectedUser did not confirm a write action. Always confirm before executing writes.

Troubleshooting: Tools Not Visible

  1. Check that the ClawLink plugin is installed:
    openclaw plugins list
    
  2. If the plugin is installed but tools are missing, tell the user to send /new as a standalone message to reload the catalog.
  3. If a fresh chat does not help, run:
    openclaw config set tools.alsoAllow '["clawlink-plugin"]' --strict-json
    openclaw gateway restart
    
  4. After restart, tell the user to send /new again and retry.

Troubleshooting: Invalid Tool Call

  1. Ensure the integration slug is exactly shopify.
  2. Use clawlink_describe_tool to verify parameter names and types before calling.
  3. For write operations, always call clawlink_preview_tool first.
  4. Confirm the target resource exists before attempting updates or deletions.

Resources


Powered by ClawLink — an integration hub for OpenClaw

ClawLink Logo