From shopify-admin-skills
Audits Shopify products and variants for missing images or fewer than a minimum count using read-only GraphQL queries. Flags issues for merchandising and inventory cleanup.
npx claudepluginhub 40rty-ai/shopify-admin-skills --plugin shopify-admin-skillsThis skill uses the workspace's default tool permissions.
Scans all active products and their variants for missing or insufficient images. Flags products with zero images, variants with no assigned image, and products below a minimum image count threshold. Read-only — no mutations.
Scores Shopify products 0-100 on data completeness across description, images, SEO title/description, variant weight/barcode/cost, and metafields. Ranks lowest-scoring products for data fixes.
Audits Wix store product listings for missing descriptions, images, prices, SKUs, short descriptions; computes catalog health score using REST API curl queries and jq. Useful for quality and SEO improvements.
Creates and manages Shopify products via GraphQL Admin API or CSV imports. Bulk import/update variants, inventory, images, assign to collections.
Share bugs, ideas, or general feedback.
Scans all active products and their variants for missing or insufficient images. Flags products with zero images, variants with no assigned image, and products below a minimum image count threshold. Read-only — no mutations.
shopify store auth --store <domain> --scopes read_productsread_products| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| store | string | yes | — | Store domain (e.g., mystore.myshopify.com) |
| min_images | integer | no | 1 | Flag products with fewer than this many images |
| check_variants | bool | no | true | Also flag variants with no assigned image |
| status_filter | string | no | active | Product status to scan: active, draft, or all |
| format | string | no | human | Output format: human or json |
ℹ️ Read-only skill — no mutations are executed. Safe to run at any time.
OPERATION: products — query
Inputs: query: "status:<status_filter>", first: 250, select images, variants { image }, pagination cursor
Expected output: Products with image counts and variant image assignments; paginate until hasNextPage: false
Flag products: images.count < min_images OR images.count == 0
If check_variants: flag variants where image is null
# products:query — validated against api_version 2025-01
query ProductImageAudit($query: String!, $after: String) {
products(first: 250, after: $after, query: $query) {
edges {
node {
id
title
handle
status
images(first: 10) {
edges {
node {
id
url
altText
}
}
}
variants(first: 50) {
edges {
node {
id
title
sku
image {
id
url
}
}
}
}
}
}
pageInfo {
hasNextPage
endCursor
}
}
}
Claude MUST emit the following output at each stage. This is mandatory.
On start, emit:
╔══════════════════════════════════════════════╗
║ SKILL: Product Image Audit ║
║ Store: <store domain> ║
║ Started: <YYYY-MM-DD HH:MM UTC> ║
╚══════════════════════════════════════════════╝
After each step, emit:
[N/TOTAL] <QUERY|MUTATION> <OperationName>
→ Params: <brief summary of key inputs>
→ Result: <count or outcome>
On completion, emit:
For format: human (default):
══════════════════════════════════════════════
PRODUCT IMAGE AUDIT
Products scanned: <n>
Missing all images: <n>
Below min (<min_images>): <n>
Variants missing image: <n>
Products needing images:
"<title>" — 0 images
"<title>" — 1 image (below min <n>)
Output: image_audit_<date>.csv
══════════════════════════════════════════════
For format: json, emit:
{
"skill": "product-image-audit",
"store": "<domain>",
"min_images": 1,
"products_scanned": 0,
"missing_all_images": 0,
"below_minimum": 0,
"variants_missing_image": 0,
"output_file": "image_audit_<date>.csv"
}
CSV file image_audit_<YYYY-MM-DD>.csv with columns:
product_id, product_title, handle, image_count, issue, variant_id, variant_sku, variant_has_image
| Error | Cause | Recovery |
|---|---|---|
THROTTLED | API rate limit exceeded | Wait 2 seconds, retry up to 3 times |
| No products match filter | Empty catalog or wrong status filter | Exit with 0 results |
min_images: 3 to ensure at least one front, back, and lifestyle shot per product.product-data-completeness-score for a single comprehensive catalog quality report.