cloudflare-api
Hit the Cloudflare REST API directly for operations that wrangler and MCP can't handle well. Bulk DNS, custom hostnames, email…
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
Claude Code
$ npx -y skills add jezweb/claude-skills --skill shopify-products --agent claude-code
Codex
$ npx skills add jezweb/claude-skills --skill shopify-products -a codex -y
Cursor
$ npx skills add jezweb/claude-skills --skill shopify-products -a cursor -y
Gemini CLI
$ npx skills add jezweb/claude-skills --skill shopify-products -a gemini-cli -y
GitHub Copilot
$ npx skills add jezweb/claude-skills --skill shopify-products -a github-copilot -y
OpenCode
$ npx skills add jezweb/claude-skills --skill shopify-products -a opencode -y
Windsurf
$ npx skills add jezweb/claude-skills --skill shopify-products -a windsurf -y
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
Create, update, and bulk-import Shopify products. Produces live products in the store via the GraphQL Admin API or CSV import.
Determine what the user wants to create or update:
Accept data from:
| 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 |
---
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:
{
"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:
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/second).
mutation productUpdate($input: ProductInput!) {
productUpdate(input: $input) {
product { id title }
userErrors { field message }
}
}Variables include `id` (required) plus any fields to update.
mutation productDelete($input: ProductDeleteInput!) {
productDelete(input: $input) {
deletedProductId
userErrors { field message }
}
}Add variants to an existing product:
mutation productVariantsBulkCreate($productId: ID!, $variants: [ProductVariantsBulkInput!]!) {
productVariantsBulkCreate(productId: $productId, variants: $variants) {
productVariants { id title price }
userErrors { field message }
}
}mutation productVariantsBulkUpdate($productId: ID!, $variants: [ProductVariantsBulkInput!]!) {
productVariantsBulkUpdate(productId: $productId, variants: $variants) {
productVariants { id title price }
userErrors { field message }
}
}---
For 20+ products, generate a CSV and import through Shopify admin.
**Required columns:**
| Column | Description | Example | |--------|-------------|---------| | `Handle` | URL slug (unique per product) | `classic-tshirt` | | `Title` | Product name (first row per product) | `Classic T-Shirt` | | `Body (HTML)` | Description in HTML | `<p>Premium cotton</p>` | | `Vendor` | Brand or manufacturer | `My Brand` | | `Product Category` | Shopify standard taxonomy | `Apparel & Accessories > Clothing > Shirts & Tops` | | `Type` | Custom product type | `T-Shirts` | | `Tags` | Comma-separated tags | `summer, cotton, casual` | | `Published` | Whether product is visible | `TRUE` or `FALSE` |
**Variant columns:**
| Column | Description | Example | |--------|-------------|---------| | `Option1 Name` | First option name | `Size` | | `Option1 Value` | First option value | `Medium` | | `Option2 Name` | Second option name | `Colour` | | `Option2 Value` | Second option value | `Black` | | `Option3 Name` | Third option name | `Material` | | `Option3 Value` | Third option value | `Cotton` | | `Variant SKU` | Stock keeping unit | `TSHIRT-M-BLK` | | `Variant Grams` | Weight in grams | `200` | | `Variant Inventory Qty` | Sto
Production workflow skills for Claude Code. Each skill guides Claude through a recipe to produce tangible output — scaffolded projects, generated assets, professional documents, deployed services. Ten plugins of practical, production-oriented skills.
Hit the Cloudflare REST API directly for operations that wrangler and MCP can't handle well. Bulk DNS, custom hostnames, email…
Scaffold and deploy Cloudflare Workers with Hono routing, Vite plugin, and Static Assets. Describe project, scaffold structure,…
Generate Drizzle ORM schemas for Cloudflare D1 databases with correct D1-specific patterns. Produces schema files, migration…
Cloudflare D1 migration workflow: generate with Drizzle, inspect SQL for gotchas, apply to local and remote, fix stuck…
Generate database seed scripts with realistic sample data. Reads Drizzle schemas or SQL migrations, respects foreign key…
Scaffold Hono API routes for Cloudflare Workers. Produces route files, middleware, typed bindings, Zod validation, error…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.