From shopify-design
Work with Shopify Admin API and Storefront API — products, orders, customers, inventory, metafields, GraphQL, webhooks, and REST endpoints. Use when querying Shopify data, syncing products, managing orders programmatically, building custom storefronts, using Shopify GraphQL, or managing metafields. Triggers: "shopify admin api", "storefront api", "shopify graphql", "shopify rest", "shopify orders", "shopify products API", "metafields API".
How this skill is triggered — by the user, by Claude, or both
Slash command
/shopify-design:shopify-apiThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Access Shopify data and functionality through the Admin API (server-side) and Storefront API (client-side/headless).
Access Shopify data and functionality through the Admin API (server-side) and Storefront API (client-side/headless).
export SHOPIFY_STORE="your-store.myshopify.com"
export SHOPIFY_ACCESS_TOKEN="shpat_xxxxx"
curl "https://$SHOPIFY_STORE/admin/api/2025-01/products.json" \
-H "X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN"
export STOREFRONT_TOKEN="your-public-storefront-token"
curl "https://$SHOPIFY_STORE/api/2025-01/graphql.json" \
-H "X-Shopify-Storefront-Access-Token: $STOREFRONT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"query": "{ shop { name } }"}'
# List products
GET /admin/api/2025-01/products.json?limit=250&status=active
# Get single product
GET /admin/api/2025-01/products/{product_id}.json
# Create product
POST /admin/api/2025-01/products.json
{
"product": {
"title": "Keratin Treatment",
"body_html": "<p>Professional keratin treatment</p>",
"product_type": "Hair Treatment",
"status": "active",
"variants": [{"price": "149.99", "sku": "KRT-001"}],
"tags": "treatment, keratin, professional"
}
}
# Update product
PUT /admin/api/2025-01/products/{product_id}.json
# List recent orders
GET /admin/api/2025-01/orders.json?status=any&limit=50&created_at_min=2026-02-01
# Get order with line items
GET /admin/api/2025-01/orders/{order_id}.json
# Update order note
PUT /admin/api/2025-01/orders/{order_id}.json
{"order": {"id": "{order_id}", "note": "VIP customer — priority processing"}}
# Search customers
GET /admin/api/2025-01/customers/search.json?query=email:[email protected]
# Create customer
POST /admin/api/2025-01/customers.json
{
"customer": {
"first_name": "Jane",
"last_name": "Doe",
"email": "[email protected]",
"tags": "vip, salon-client"
}
}
query {
products(first: 10, query: "product_type:Hair Treatment") {
edges {
node {
id
title
priceRange {
minVariantPrice { amount currencyCode }
}
images(first: 1) {
edges { node { url altText } }
}
variants(first: 5) {
edges {
node {
id
title
price { amount }
availableForSale
}
}
}
}
}
}
}
# Create cart
mutation {
cartCreate(input: {
lines: [{quantity: 1, merchandiseId: "gid://shopify/ProductVariant/xxxxx"}]
}) {
cart {
id
checkoutUrl
cost {
totalAmount { amount currencyCode }
}
}
}
}
# Add to cart
mutation cartLinesAdd($cartId: ID!, $lines: [CartLineInput!]!) {
cartLinesAdd(cartId: $cartId, lines: $lines) {
cart { id checkoutUrl }
}
}
# Create metafield on product
POST /admin/api/2025-01/products/{product_id}/metafields.json
{
"metafield": {
"namespace": "custom",
"key": "ingredients",
"value": "[\"Keratin\", \"Argan Oil\", \"Vitamin E\"]",
"type": "list.single_line_text_field"
}
}
# Get all metafields for product
GET /admin/api/2025-01/products/{product_id}/metafields.json
# Register webhook
POST /admin/api/2025-01/webhooks.json
{
"webhook": {
"topic": "orders/create",
"address": "https://your-app.com/webhooks/orders",
"format": "json"
}
}
Available topics: orders/create, orders/updated, orders/paid, products/create, products/update, customers/create, checkouts/create, carts/create
Always specify the version: /admin/api/2025-01/
Shopify releases new versions quarterly. Check deprecation schedule at shopify.dev.
X-Shopify-Shop-Api-Call-Limit header to monitor usagenpx claudepluginhub vincent-laroche/hairsolutionsco-ai-toolkit --plugin shopify-designCreates bite-sized, testable implementation plans from specs or requirements, with file structure and task decomposition. Activates before coding multi-step tasks.