Shopify Runtime
by @ypyf
Use when the user wants direct Shopify runtime access through one configured store: inspect setup status, search Shopify docs, or execute JavaScript against...
clawhub install shopify-runtimeπ About This Skill
name: "shopify-runtime" description: "Use when the user wants direct Shopify runtime access through one configured store: inspect setup status, search Shopify docs, or execute JavaScript against the configured store."
prettier-ignore
metadata: {"openclaw":{"requires":{"env":["SHOPIFY_STORE_DOMAIN","SHOPIFY_CLIENT_ID","SHOPIFY_CLIENT_SECRET"]},"primaryEnv":"SHOPIFY_CLIENT_SECRET"}}Seller Runtime Toolkit
Use this skill when you need direct, scriptable access to one Shopify store from OpenClaw.
This skill complements seller-api-workflow. Keep the existing workflow skill for higher-level business asks. Use this skill when the task is explicitly about Shopify setup status, documentation search, script execution, or troubleshooting those surfaces.
This skill is self-contained. You can copy the entire shopify-runtime/ folder into an OpenClaw workspace/skills/ directory and run it there without the seller-assistant plugin repository beside it.
Quick Start
apiKey in OpenClaw. Because the skill declares primaryEnv: "SHOPIFY_CLIENT_SECRET", OpenClaw injects that value into SHOPIFY_CLIENT_SECRET for each agent run.skills.entries."shopify-runtime".env.SHOPIFY_STORE_DOMAIN to your *.myshopify.com domain.skills.entries."shopify-runtime".env.SHOPIFY_CLIENT_ID to your Shopify app client id.skills.entries."shopify-runtime".env.SHOPIFY_API_VERSION to override the default API version.node.Example OpenClaw config:
{
skills: {
entries: {
"shopify-runtime": {
apiKey: { source: "env", provider: "default", id: "SHOPIFY_CLIENT_SECRET" },
env: {
SHOPIFY_STORE_DOMAIN: "your-store.myshopify.com",
SHOPIFY_CLIENT_ID: "your_shopify_client_id",
SHOPIFY_API_VERSION: "2026-01",
},
},
},
},
}
Auth And Scope Notes
SHOPIFY_CLIENT_ID + SHOPIFY_CLIENT_SECRET for an Admin API access token. It does not use a pre-issued SHOPIFY_ACCESS_TOKEN.read_products, read_inventory, read_orders, or read_customers.write_products, write_inventory, or write_orders.read_all_orders, and protected customer data access may still be required.Capability Boundaries
--mode read blocks local REST writes and GraphQL mutations before the request is sent.--mode write only removes the local read-only guard. Shopify still enforces the app's granted scopes.status confirms local skill readiness, not that Shopify token exchange will succeed.Commands
Inspect current setup
Use this when the user asks whether the skill is ready, which store it is pointed at, or which API version it will use.
node skills/shopify-runtime/scripts/seller-runtime.mjs status
Search provider and official docs
Use this before writing an API script from memory. Prefer provider notes and the narrowest matching official documentation entry.
node skills/shopify-runtime/scripts/seller-runtime.mjs search --query "orders graphql pagination"
Add --limit or --refresh when needed.
Execute JavaScript
Use this after you know the request shape. Default to --mode read. Only use --mode write when the user clearly asked for a write operation and the Shopify token should allow it.
cat <<'EOF' | node skills/shopify-runtime/scripts/seller-runtime.mjs execute --mode read
return await provider.graphql(
query {
shop {
name
}
}
)
EOF
The script body should use provider.graphql(...) or provider.request(...). In this runtime, provider.graphql(...) returns the validated GraphQL data object directly. Prefer piping the script on stdin so you do not need temporary files. --script-file is still supported when a real file is more convenient.
Working Rules
requestSummary, rawResponses, and logs as execution evidence when you explain the outcome.SHOPIFY_STORE_DOMAIN, SHOPIFY_CLIENT_ID, SHOPIFY_CLIENT_SECRET, and optional SHOPIFY_API_VERSION from the environment that OpenClaw injects for the skill run.π‘ Examples
apiKey in OpenClaw. Because the skill declares primaryEnv: "SHOPIFY_CLIENT_SECRET", OpenClaw injects that value into SHOPIFY_CLIENT_SECRET for each agent run.skills.entries."shopify-runtime".env.SHOPIFY_STORE_DOMAIN to your *.myshopify.com domain.skills.entries."shopify-runtime".env.SHOPIFY_CLIENT_ID to your Shopify app client id.skills.entries."shopify-runtime".env.SHOPIFY_API_VERSION to override the default API version.node.Example OpenClaw config:
{
skills: {
entries: {
"shopify-runtime": {
apiKey: { source: "env", provider: "default", id: "SHOPIFY_CLIENT_SECRET" },
env: {
SHOPIFY_STORE_DOMAIN: "your-store.myshopify.com",
SHOPIFY_CLIENT_ID: "your_shopify_client_id",
SHOPIFY_API_VERSION: "2026-01",
},
},
},
},
}