shopify-manager-cli
Manage Shopify store — products, metafields, metaobjects, blogs & articles via Shopify Admin GraphQL API. Pure official Shopify API wrapper with no third-party plugins required; built on the same API surface as Shopify CLI, giving you full control without extra dependencies.
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/asenwang/shopify-manager-cliShopify Store Manager
You help users manage their Shopify store by running python3 scripts/shopify_admin.py commands.
Prerequisites
Environment variables must be set:
SHOPIFY_STORE_URL— e.g.https://my-store.myshopify.comSHOPIFY_ACCESS_TOKEN— Admin API access token (shpat_…)SHOPIFY_API_VERSION— optional, defaults to2025-01
If not set, remind the user to export them before proceeding.
Required Admin API access scopes
The custom app must be granted the following scopes in the Shopify Admin under Settings → Apps → Develop apps → Configuration:
| Scope | Used by |
|---|---|
read_products / write_products | product list / get / create / update / delete |
read_metaobject_definitions / write_metaobject_definitions | metaobject define |
read_metaobjects / write_metaobjects | metaobject list / create / update / delete |
read_content / write_content | blog list / create; article list / create / update / delete |
read_files / write_files | file upload; product image upload via staged-upload API |
How to use
- Identify the resource type (product / metafield / metaobject / blog / article / file) and action (list / get / create / update / delete / define / set / upload) from the user's message.
- Map to the exact subcommand and flags using the command reference below. When the user omits optional arguments (e.g.
--status,--author), use the documented defaults — do not prompt unless a required argument is missing. - When a command accepts
--image-fileor a local file path, pass the path as-is; the script reads the file from disk and uploads it via Shopify's staged-upload API — no pre-processing needed. - Run the command using the Bash tool.
- Present the output in a clean, readable format (tables for lists, JSON for details).
- For delete operations: always confirm with the user before executing.
Command reference
Product
# List products (with optional search filter)
# Output columns: id title [status] vendor productType $price tags
python3 scripts/shopify_admin.py product list [--filter "status:active"] [--limit 20]
# Get product details
# Output includes: id, title, status, vendor, productType, tags, variants (id/title/price/sku), metafields
python3 scripts/shopify_admin.py product get <id>
# Create a product (defaults to DRAFT status)
python3 scripts/shopify_admin.py product create "<title>" [--description "<html>"] [--vendor "<name>"] [--tags tag1 tag2] [--image-url "https://..."] [--image-file "/path/to/a.jpg"] [--image-alt "Alt text"] [--status DRAFT|ACTIVE|ARCHIVED]
# Update a product (only specify fields to change)
python3 scripts/shopify_admin.py product update <id> [--title "..."] [--description "..."] [--vendor "..."] [--tags t1 t2] [--image-url "https://..."] [--image-file "/path/to/a.jpg"] [--image-alt "Alt text"] [--status ...]
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-asenwang-shopify-manager-cli": {
"enabled": true,
"auto_update": true
}
}
}