plugins/shopify-developer/skills/shopify-developer/SKILL.md
Complete Shopify development reference for Liquid templating, theme development (OS 2.0), GraphQL Admin API, Storefront API, custom app development, Shopify Functions, Hydrogen, performance optimisation, and debugging. Use when working with .liquid files, creating theme sections and blocks, writing GraphQL queries or mutations for Shopify, building Shopify apps with CLI and Polaris, implementing cart operations via Ajax API, optimising Core Web Vitals for Shopify stores, debugging Liquid or API errors, configuring settings_schema.json, accessing Shopify objects (product, collection, cart, customer), using Liquid filters, creating app extensions, working with webhooks, migrating from Scripts to Functions, or building headless storefronts with Hydrogen and React Router 7. Covers API version 2026-01. Do NOT use for WooCommerce, Magento, BigCommerce, or other non-Shopify e-commerce platforms.
npx skillsauth add henkisdabro/wookstar-claude-plugins shopify-developerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Comprehensive reference for professional Shopify development - API version 2026-01.
| Item | Value |
|------|-------|
| API version | 2026-01 (stable) |
| GraphQL Admin | POST https://{store}.myshopify.com/admin/api/2026-01/graphql.json |
| Storefront API | POST https://{store}.myshopify.com/api/2026-01/graphql.json |
| Ajax API (theme) | /cart.js, /cart/add.js, /cart/change.js |
| CLI install | npm install -g @shopify/cli |
| Theme dev | shopify theme dev --store {store}.myshopify.com |
| App dev | shopify app dev |
| Deploy | shopify app deploy |
| Docs | shopify.dev |
Read the reference file(s) that match your task:
Liquid templating - writing or debugging .liquid files:
Theme development - building or customising themes:
API integration - fetching or modifying data programmatically:
App development - building Shopify apps:
Serverless logic - custom business rules:
Headless commerce - custom storefronts:
Optimisation and troubleshooting:
| Deprecated | Replacement | Deadline | |------------|-------------|----------| | Shopify Scripts | Shopify Functions | August 2025 (migration), sundown TBD | | checkout.liquid | Checkout Extensibility | August 2024 (Plus), done | | REST Admin API | GraphQL Admin API | Active deprecation (no removal date yet) | | Legacy custom apps | New auth model | January 2025 (done) | | Polaris React | Polaris Web Components | Active migration | | Remix (app framework) | React Router 7 | Hydrogen 2025.5.0+ |
Three syntax types:
{{ product.title | upcase }} {# Output with filter #}
{% if product.available %}In stock{% endif %} {# Logic tag #}
{% assign sale = product.price | times: 0.8 %} {# Assignment #}
{%- if condition -%}Stripped whitespace{%- endif -%}
Key patterns:
{% for product in collection.products limit: 5 %}
{% render 'product-card', product: product %}
{% endfor %}
{% paginate collection.products by 12 %}
{% for product in paginate.collection.products %}...{% endfor %}
{{ paginate | default_pagination }}
{% endpaginate %}
// GraphQL Admin - always use GraphQL over REST
const response = await fetch(
`https://${store}.myshopify.com/admin/api/2026-01/graphql.json`,
{
method: 'POST',
headers: {
'X-Shopify-Access-Token': accessToken,
'Content-Type': 'application/json',
},
body: JSON.stringify({ query, variables }),
}
);
const { data, errors } = await response.json();
if (errors) throw new Error(errors[0].message);
// Ajax API (theme-only cart operations)
fetch('/cart/add.js', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ id: variantId, quantity: 1 }),
});
| File | Lines | Coverage | |------|-------|----------| | liquid-syntax.md | ~600 | Tags, control flow, iteration, variables, whitespace, LiquidDoc | | liquid-filters.md | ~870 | String, numeric, array, Shopify-specific, date, URL, colour filters | | liquid-objects.md | ~695 | All Shopify objects: product, variant, collection, cart, customer, order, etc. | | theme-development.md | ~1200 | File structure, JSON templates, sections, blocks, settings schema, layout | | api-admin.md | ~595 | GraphQL queries/mutations, REST (legacy), OAuth, webhooks, rate limiting | | api-storefront.md | ~235 | Storefront API, Ajax API, cart operations, Customer Account API | | app-development.md | ~760 | CLI, app architecture, extensions, Polaris Web Components, deployment | | functions.md | ~300 | Function types, Rust/JS targets, CLI workflow, Scripts migration | | hydrogen.md | ~375 | Setup, routing, data loading, Storefront API, deployment | | performance.md | ~605 | Images, JS, CSS, fonts, Liquid, third-party scripts, Core Web Vitals | | debugging.md | ~650 | Liquid, JavaScript, API, cart, webhook, theme editor troubleshooting |
testing
Identifies and removes AI writing patterns to make text sound natural and human-written. Use when user says "humanise this", "make this sound less AI", "this reads like a robot wrote it", "de-AI this text", "remove AI patterns", "make this more natural", "clean up this AI-generated text". Detects and fixes 29 patterns based on Wikipedia's "Signs of AI writing" guide - inflated language, promotional tone, AI vocabulary, em dash overuse, filler phrases, sycophantic tone, placeholder text, formulaic structure, thematic breaks. Do NOT use for grammar-only proofreading, spell checking, or rewriting text that is already clearly human-written.
tools
Fast, zero-AI text extraction from PDFs that have a text layer (digitally created PDFs from Word, Typst, WeasyPrint, wkhtmltopdf, LaTeX, etc). Uses pymupdf (fitz) - instant and deterministic. Use when you need to quickly pull raw text from a known text-layer PDF, e.g. "extract text from this PDF", "read this PDF", "get the content of", "what does this PDF say", "quickly read this PDF". Do NOT use for scanned/image PDFs or when you need structured output (tables, headings, OCR, AI analysis) - use the pdf-processing-pro skill in this plugin for those cases.
tools
Get current time in any timezone and convert times between timezones. Use when working with time, dates, timezones, scheduling across regions, "what time is it in X", "convert 3pm Sydney to London", DST checks, or when the user mentions specific cities/regions for time queries. Supports IANA timezone names. Do NOT use for date arithmetic (adding days/months), recurring event scheduling, business-day calculations, or full calendar/booking logic - those need a dedicated date library or scheduling tool.
tools
Comprehensive React and Next.js performance optimisation guide with 40+ rules for eliminating waterfalls, optimising bundles, and improving rendering. Use when optimising React or Next.js apps, reviewing performance, refactoring components, hunting wasteful re-renders, reducing bundle size, debugging client/server data-fetching, or tightening rendering paths. Do NOT use for non-React frameworks (Vue, Svelte, Solid, Angular), React Native, or general JavaScript performance unrelated to React.