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.
Step 1: InstallStep 2: Pair AccountStep 3: Connect Shopify
_App-specific connection GIF coming soon_Run the install command in OpenClawSign in and approve the deviceOpen the dashboard and connect Shopify
text
┌─────────────────┐ ┌──────────────┐ ┌──────────────────┐
│ 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 the verified ClawLink plugin from ClawHub. After the user confirms, complete the full setup so ClawLink tools are visible in the next OpenClaw chat.
bash
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."
bash
# 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"}'
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.
clawlink_begin_pairing if it is not configured yet.clawlink_list_integrations to verify the connection is active.bash
clawlink_list_integrations
Response: Returns all connected integrations. Look for shopify in the list.
bash
clawlink_list_tools --integration shopify
Response: Returns the live tool catalog for Shopify.
If Shopify tools are missing or the connection shows an error:
clawlink_list_integrations to verifyclawlink_list_tools --integration shopifyToolDescriptionModeshopify_list_productsList all products in the store with pagination and filtersReadshopify_get_productGet a single product by ID with variants, images, and metafieldsReadshopify_search_productsSearch products by title, vendor, product type, or tagReadshopify_count_productsGet total product count with optional filtersReadshopify_create_productCreate a new product with variants, options, and imagesWriteshopify_update_productUpdate an existing product's title, description, or statusWriteshopify_delete_productPermanently delete a product from the storeWriteshopify_create_product_variantAdd a new variant to an existing productWriteshopify_update_product_variantUpdate a product variant's price, SKU, or inventoryWriteshopify_get_product_imagesList all images for a productReadshopify_create_product_imageUpload a new image to a productWriteshopify_create metafieldCreate a metafield on a product for custom metadataWriteshopify_bulk_create_productsCreate many products (20-50+) via bulk GraphQL mutationWrite
ToolDescriptionModeshopify_list_inventory_levelsList inventory levels across locationsReadshopify_adjust_inventory_levelIncrease or decrease stock at a specific locationWriteshopify_connect_inventory_levelConnect an inventory item to a locationWriteshopify_list_locationsList all warehouse and retail locationsReadshopify_count_locationsGet the number of configured locationsRead
ToolDescriptionModeshopify_list_ordersList orders with status and date filtersReadshopify_get_orderGet a single order with line items and fulfillment dataReadshopify_search_ordersSearch orders by name, email, or tagReadshopify_count_ordersGet order count filtered by statusReadshopify_create_orderCreate a new committed orderWriteshopify_update_orderUpdate an order's status or metadataWriteshopify_cancel_orderCancel an unpaid or unfulfilled orderWriteshopify_close_orderClose an order (all items fulfilled/cancelled)Writeshopify_calculate_refundPreview accurate refund amounts before processingReadshopify_create_refundProcess a full or partial refund for an orderWriteshopify_create_fulfillmentMark items as shipped and create fulfillmentWriteshopify_cancel_fulfillmentCancel an existing fulfillmentWrite
ToolDescriptionModeshopify_list_customersList all customers with paginationReadshopify_get_customerGet a customer by ID with addresses and ordersReadshopify_search_customersSearch customers by email, name, or tagReadshopify_count_customersGet total customer countReadshopify_create_customerCreate a new customer recordWriteshopify_update_customerUpdate customer information or addressesWriteshopify_delete_customerDelete a customer with no existing ordersWriteshopify_create_customer_addressAdd a new address to a customerWriteshopify_delete_customer_addressRemove an address from a customerWriteshopify_bulk_delete_customer_addressesRemove multiple addresses at onceWrite
ToolDescriptionModeshopify_list_custom_collectionsList all custom (manually curated) collectionsReadshopify_get_custom_collectionGet a collection by IDReadshopify_create_custom_collectionCreate a new custom collectionWriteshopify_update_custom_collectionUpdate collection title, description, or imageWriteshopify_delete_custom_collectionDelete a custom collectionWriteshopify_add_product_to_custom_collectionAdd a product to a custom collectionWriteshopify_remove_product_from_custom_collectionRemove a product from a custom collectionWriteshopify_count_custom_collectionsGet custom collection countReadshopify_create_smart_collectionCreate an automated smart collectionWrite
ToolDescriptionModeshopify_list_fulfillment_ordersList fulfillment orders for an orderReadshopify_get_fulfillment_orderGet details of a specific fulfillment orderReadshopify_apply_fulfillment_holdPause a fulfillment order due to issuesWriteshopify_cancel_fulfillment_orderCancel a fulfillment order and create a replacementWriteshopify_create_fulfillment_eventAdd a tracking event to a shipmentWrite
ToolDescriptionModeshopify_create_price_ruleCreate a discount price rule (defines the discount logic)Writeshopify_list_price_rulesList all price rulesReadshopify_create_discount_codeCreate a customer-facing discount codeWriteshopify_create_discount_code_batchCreate up to 100 discount codes at onceWriteshopify_count_price_rulesGet price rule countReadshopify_create_couponCreate a discount coupon with percentage or fixed amountWrite
ToolDescriptionModeshopify_list_articlesList blog articles across all blogsReadshopify_create_articleCreate a new blog articleWriteshopify_update_articleUpdate an existing blog articleWriteshopify_delete_articlePermanently delete a blog articleWriteshopify_list_pagesList static store pagesReadshopify_create_pageCreate a new static pageWriteshopify_list_blogsList all blogsReadshopify_create_blogCreate a new blogWrite
ToolDescriptionModeshopify_list_webhooksList all webhook subscriptionsReadshopify_create_webhookSubscribe to a store event via webhookWriteshopify_delete_webhookRemove a webhook subscriptionWriteshopify_count_webhooksGet webhook countReadshopify_list_eventsList store activity eventsReadshopify_count_eventsGet event count with filtersRead
ToolDescriptionModeshopify_create_app_subscriptionCreate a recurring billing chargeWriteshopify_cancel_app_subscriptionCancel an active app subscriptionWriteshopify_create_one_time_application_chargeCreate a one-time billing chargeWrite
bash
clawlink_call_tool --tool "shopify_list_products" \
--params '{
"limit": 10,
"status": "active"
}'
bash
clawlink_call_tool --tool "shopify_get_order" \
--params '{
"order_id": "ORDER_ID"
}'
bash
clawlink_call_tool --tool "shopify_create_customer" \
--params '{
"first_name": "Jane",
"last_name": "Doe",
"email": "jane.doe@example.com",
"phone": "+15551234567"
}'
bash
clawlink_call_tool --tool "shopify_search_customers" \
--params '{
"query": "jane.doe@example.com"
}'
bash
clawlink_call_tool --tool "shopify_adjust_inventory_level" \
--params '{
"inventory_item_id": "INVENTORY_ITEM_ID",
"location_id": "LOCATION_ID",
"available_adjustment": -5
}'
bash
clawlink_call_tool --tool "shopify_create_price_rule" \
--params '{
"title": "SUMMER_SALE",
"value_type": "percentage",
"value": "-20",
"customer_selection": "all"
}'
clawlink_list_integrations to confirm Shopify is connected.clawlink_list_tools --integration shopify to see the live catalog.clawlink_search_tools with a short query and integration shopify.text
┌─────────────────────────────────────────────────────────────┐
│ 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 │
└─────────────────────────────────────────────────────────────┘
clawlink_describe_tool first.whenToUse, askBefore, safeDefaults, examples, and followups to shape the call.clawlink_preview_tool first.clawlink_call_tool. Pass confirmation only after the preview matches the user's intent.shopify_calculate_refund) to get accurate transaction data.Status / ErrorMeaningTool 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.
Check that the ClawLink plugin is installed: bash
openclaw plugins list
If the plugin is installed but tools are missing, tell the user to send /new as a standalone message to reload the catalog.
If a fresh chat does not help, run: bash
openclaw config set tools.alsoAllow '["clawlink-plugin"]' --strict-json
openclaw gateway restart
After restart, tell the user to send /new again and retry.
shopify.clawlink_describe_tool to verify parameter names and types before calling.clawlink_preview_tool first.Powered by ClawLink — an integration hub for OpenClaw
