
Shopify Products
Create, update, or bulk-import Shopify catalog rows via Admin GraphQL or CSV when a solo builder is standing up or refreshing an online store.
Install
npx skills add https://github.com/jezweb/claude-skills --skill shopify-productsWhat is this skill?
- Four-step workflow: gather data, choose GraphQL vs CSV, execute, verify live products
- Covers variants, inventory, images, SEO fields, collections, tags, and vendor metadata
- Requires Admin API token and shopify.config.json or .dev.vars store context
- Pairs with shopify-setup when credentials are not configured
- Marked claude-code-only in skill compatibility metadata
Adoption & trust: 973 installs on skills.sh; 841 GitHub stars; 2/3 security scanners passed (skills.sh audits).
Recommended Skills
Entra App Registrationmicrosoft/azure-skills
Azure Aigatewaymicrosoft/azure-skills
Lark Openapi Explorerlarksuite/cli
Supabasesupabase/agent-skills
Firebase Auth Basicsfirebase/agent-skills
Firebase Data Connectfirebase/agent-skills
Journey fit
Primary fit
Primary shelf is build/integrations because the skill executes against Shopify Admin APIs and CSV import as product infrastructure work. Integrations subphase matches third-party commerce platform wiring rather than storefront theme polish alone.
Common Questions / FAQ
Is Shopify Products safe to install?
skills.sh reports 2 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.
SKILL.md
READMESKILL.md - Shopify Products
Handle,Title,Body (HTML),Vendor,Product Category,Type,Tags,Published,Option1 Name,Option1 Value,Option2 Name,Option2 Value,Option3 Name,Option3 Value,Variant SKU,Variant Grams,Variant Inventory Qty,Variant Price,Variant Compare At Price,Variant Requires Shipping,Variant Taxable,Image Src,Image Position,Image Alt Text,SEO Title,SEO Description --- name: shopify-products description: "Create and manage Shopify products via the Admin GraphQL API or CSV import. Workflow: gather data, choose method, execute, verify. Use whenever the user wants to add products to Shopify, bulk-import a catalog from CSV/spreadsheet/URL, update variants or prices, manage inventory quantities, upload product images, or assign products to collections." compatibility: claude-code-only --- # Shopify Products Create, update, and bulk-import Shopify products. Produces live products in the store via the GraphQL Admin API or CSV import. ## Prerequisites - Admin API access token (use the **shopify-setup** skill if not configured) - Store URL and API version from `shopify.config.json` or `.dev.vars` ## Workflow ### Step 1: Gather Product Data Determine what the user wants to create or update: - **Product basics**: title, description (HTML), product type, vendor, tags - **Variants**: options (size, colour, material), prices, SKUs, inventory quantities - **Images**: URLs to upload, or local files - **SEO**: page title, meta description, URL handle - **Organisation**: collections, product type, tags Accept data from: - Direct conversation (user describes products) - Spreadsheet/CSV file (user provides a file) - Website scraping (user provides a URL to extract from) ### Step 2: Choose Method | Scenario | Method | |----------|--------| | 1-5 products | GraphQL mutations | | 6-20 products | GraphQL with batching | | 20+ products | CSV import via admin | | Updates to existing | GraphQL mutations | | Inventory adjustments | `inventorySetQuantities` mutation | --- ### Step 3a: Create via GraphQL (Recommended) #### productCreate ```graphql mutation productCreate($product: ProductCreateInput!) { productCreate(product: $product) { product { id title handle status variants(first: 100) { edges { node { id title price sku inventoryQuantity } } } } userErrors { field message } } } ``` Variables: ```json { "product": { "title": "Example T-Shirt", "descriptionHtml": "<p>Premium cotton tee</p>", "vendor": "My Brand", "productType": "T-Shirts", "tags": ["summer", "cotton"], "status": "DRAFT", "options": ["Size", "Colour"], "variants": [ { "optionValues": [ {"optionName": "Size", "name": "S"}, {"optionName": "Colour", "name": "Black"} ], "price": "29.95", "sku": "TSHIRT-S-BLK", "inventoryPolicy": "DENY", "inventoryItem": { "tracked": true } }, { "optionValues": [ {"optionName": "Size", "name": "M"}, {"optionName": "Colour", "name": "Black"} ], "price": "29.95", "sku": "TSHIRT-M-BLK" }, { "optionValues": [ {"optionName": "Size", "name": "L"}, {"optionName": "Colour", "name": "Black"} ], "price": "29.95", "sku": "TSHIRT-L-BLK" } ], "seo": { "title": "Example T-Shirt | My Brand", "description": "Premium cotton tee in multiple sizes" } } } ``` Curl example: ```bash curl -s https://{store}/admin/api/2025-01/graphql.json \ -H "Content-Type: application/json" \ -H "X-Shopify-Access-Token: {token}" \ -d '{"query": "mutation productCreate($product: ProductCreateInput!) { productCreate(product: $product) { product { id title } userErrors { field message } } }", "variables": { ... }}' ``` **Batching multiple products**: Create products sequentially with a short delay between each to respect rate limits (1,000 cost points/seco