PluginBench
Skill
Pass
Audit score 90

shopify-expert

jeffallan/claude-skills

Build and debug Shopify themes, apps, and headless storefronts with Liquid, GraphQL, and Shopify CLI.

What is shopify-expert?

Expert-level Shopify development skill for theme customization, custom app creation, and Storefront API integration. Use when building or modifying Shopify themes, developing Shopify apps with OAuth and webhooks, creating headless storefronts with Hydrogen or React, implementing checkout extensions, or optimizing e-commerce performance.

  • Builds and debugs Shopify themes using Liquid 2.0, theme.json, and sections
  • Develops custom Shopify apps with shopify.app.toml, OAuth, webhooks, and Admin API integration
  • Implements Storefront API integrations for headless commerce and custom frontends
  • Creates and tests checkout UI extensions and Shopify Functions
  • Optimizes theme performance with image CDN filters and caching strategies
  • Scaffolds and deploys projects using Shopify CLI workflows

How to install shopify-expert

npx skills add https://github.com/jeffallan/claude-skills --skill shopify-expert
Prerequisites
  • Shopify CLI 3.x installed and configured
  • Access to a Shopify development store or partner account
  • Node.js for app development
  • Basic knowledge of Liquid templating or GraphQL
Claude Code
Cursor
Windsurf
Cline

How to use shopify-expert

  1. 1.Run `shopify theme init` to scaffold a new theme or `shopify app create` for a new app
  2. 2.Configure `shopify.app.toml` with required API scopes and webhook subscriptions if building an app
  3. 3.Write Liquid templates in `templates/` and `sections/` directories, or GraphQL queries for Storefront API calls
  4. 4.Run `shopify theme check` to lint Liquid for errors and fix any reported issues before proceeding
  5. 5.Execute `shopify theme dev` for live preview with hot reload, or `shopify app dev` for local app testing
  6. 6.Deploy with `shopify theme push` for themes or `shopify app deploy` for apps, then monitor Shopify logs

Use cases

Good for
  • Customize an existing Shopify theme with custom Liquid templates and metafield access
  • Build a headless storefront using Hydrogen or custom React with Storefront API GraphQL queries
  • Develop a Shopify app that syncs inventory or manages orders via Admin API
  • Implement custom checkout UI extensions for payment or upsell functionality
  • Migrate a theme to Online Store 2.0 with section-based architecture
Who it's for
  • Shopify theme developers and designers
  • Shopify app developers and technical partners
  • Headless commerce engineers building custom storefronts
  • E-commerce platform architects
  • Shopify Plus implementation specialists

shopify-expert FAQ

When should I use Storefront API vs Admin API?

Use Storefront API for customer-facing headless storefronts and product queries; use Admin API for backend app logic, order management, and inventory updates. Storefront API is public and rate-limited to 2000 points/sec; Admin API requires OAuth and app installation.

How do I handle metafields in themes and apps?

In Liquid themes, access metafields via `product.metafields.namespace.key.value`. In apps, query metafields through Admin API GraphQL. Always validate and sanitize metafield data; use proper types in schema.json for theme settings.

What's the difference between theme development and app development?

Themes customize the storefront UI with Liquid templates and sections; apps extend Shopify functionality with backend logic, webhooks, and Admin API access. Use `shopify theme` commands for themes and `shopify app` commands for apps.

How do I test checkout extensions before deploying?

Use `shopify app dev` to run your app locally with an ngrok tunnel, then test checkout extensions in a sandbox environment. Never deploy untested extensions to production.

What should I do if `shopify theme check` reports errors?

Review the reported Liquid syntax or performance issues, fix them in your template files, and re-run `shopify theme check` until all errors are resolved before pushing to production.

Full instructions (SKILL.md)

Source of truth, from jeffallan/claude-skills.


name: shopify-expert description: Builds and debugs Shopify themes (.liquid files, theme.json, sections), develops custom Shopify apps (shopify.app.toml, OAuth, webhooks), and implements Storefront API integrations for headless storefronts. Use when building or customizing Shopify themes, creating Hydrogen or custom React storefronts, developing Shopify apps, implementing checkout UI extensions or Shopify Functions, optimizing performance, or integrating third-party services. Invoke for Liquid templating, Storefront API, app development, checkout customization, Shopify Plus features, App Bridge, Polaris, or Shopify CLI workflows. license: MIT metadata: author: https://github.com/Jeffallan version: "1.1.0" domain: platform triggers: Shopify, Liquid, Storefront API, Shopify Plus, Hydrogen, Shopify app, checkout extensions, Shopify Functions, App Bridge, theme development, e-commerce, Polaris role: expert scope: implementation output-format: code related-skills: react-expert, graphql-architect, api-designer

Shopify Expert

Senior Shopify developer with expertise in theme development, headless commerce, app architecture, and custom checkout solutions.

Core Workflow

  1. Requirements analysis — Identify if theme, app, or headless approach fits needs
  2. Architecture setup — Scaffold with shopify theme init or shopify app create; configure shopify.app.toml and theme schema
  3. Implementation — Build Liquid templates, write GraphQL queries, or develop app features (see examples below)
  4. Validation — Run shopify theme check for Liquid linting; if errors are found, fix them and re-run before proceeding. Run shopify app dev to verify app locally; test checkout extensions in sandbox. If validation fails at any step, resolve all reported issues before moving to deployment
  5. Deploy and monitorshopify theme push for themes; shopify app deploy for apps; watch Shopify error logs and performance metrics post-deploy

Reference Guide

Load detailed guidance based on context:

TopicReferenceLoad When
Liquid Templatingreferences/liquid-templating.mdTheme development, template customization
Storefront APIreferences/storefront-api.mdHeadless commerce, Hydrogen, custom frontends
App Developmentreferences/app-development.mdBuilding Shopify apps, OAuth, webhooks
Checkout Extensionsreferences/checkout-customization.mdCheckout UI extensions, Shopify Functions
Performancereferences/performance-optimization.mdTheme speed, asset optimization, caching

Code Examples

Liquid — Product template with metafield access

{% comment %} templates/product.liquid {% endcomment %}
<h1>{{ product.title }}</h1>
<p>{{ product.metafields.custom.care_instructions.value }}</p>

{% for variant in product.variants %}
  <option
    value="{{ variant.id }}"
    {% unless variant.available %}disabled{% endunless %}
  >
    {{ variant.title }} — {{ variant.price | money }}
  </option>
{% endfor %}

{{ product.description | metafield_tag }}

Liquid — Collection filtering (Online Store 2.0)

{% comment %} sections/collection-filters.liquid {% endcomment %}
{% for filter in collection.filters %}
  <details>
    <summary>{{ filter.label }}</summary>
    {% for value in filter.values %}
      <label>
        <input
          type="checkbox"
          name="{{ value.param_name }}"
          value="{{ value.value }}"
          {% if value.active %}checked{% endif %}
        >
        {{ value.label }} ({{ value.count }})
      </label>
    {% endfor %}
  </details>
{% endfor %}

Storefront API — GraphQL product query

query ProductByHandle($handle: String!) {
  product(handle: $handle) {
    id
    title
    descriptionHtml
    featuredImage {
      url(transform: { maxWidth: 800, preferredContentType: WEBP })
      altText
    }
    variants(first: 10) {
      edges {
        node {
          id
          title
          price { amount currencyCode }
          availableForSale
          selectedOptions { name value }
        }
      }
    }
    metafield(namespace: "custom", key: "care_instructions") {
      value
      type
    }
  }
}

Shopify CLI — Common commands

# Theme development
shopify theme dev --store=your-store.myshopify.com   # Live preview with hot reload
shopify theme check                                   # Lint Liquid for errors/warnings
shopify theme push --only templates/ sections/        # Partial push
shopify theme pull                                    # Sync remote changes locally

# App development
shopify app create node                               # Scaffold Node.js app
shopify app dev                                       # Local dev with ngrok tunnel
shopify app deploy                                    # Submit app version
shopify app generate extension                        # Add checkout UI extension

# GraphQL
shopify app generate graphql                          # Generate typed GraphQL hooks

App — Authenticated Admin API fetch (TypeScript)

import { authenticate } from "../shopify.server";
import type { LoaderFunctionArgs } from "@remix-run/node";

export const loader = async ({ request }: LoaderFunctionArgs) => {
  const { admin } = await authenticate.admin(request);

  const response = await admin.graphql(`
    query {
      shop { name myshopifyDomain plan { displayName } }
    }
  `);

  const { data } = await response.json();
  return data.shop;
};

Constraints

MUST DO

  • Use Liquid 2.0 syntax for themes
  • Implement proper metafield handling
  • Use Storefront API 2024-10 or newer
  • Optimize images with Shopify CDN filters
  • Follow Shopify CLI workflows
  • Use App Bridge for embedded apps
  • Implement proper error handling for API calls
  • Follow Shopify theme architecture patterns
  • Use TypeScript for app development
  • Test checkout extensions in sandbox
  • Run shopify theme check before every theme deployment

MUST NOT DO

  • Hardcode API credentials in theme code
  • Exceed Storefront API rate limits (2000 points/sec)
  • Use deprecated REST Admin API endpoints
  • Skip GDPR compliance for customer data
  • Deploy untested checkout extensions
  • Use synchronous API calls in Liquid (deprecated)
  • Ignore theme performance metrics
  • Store sensitive data in metafields without encryption

Output Templates

When implementing Shopify solutions, provide:

  1. Complete file structure with proper naming
  2. Liquid/GraphQL/TypeScript code with types
  3. Configuration files (shopify.app.toml, schema settings)
  4. API scopes and permissions needed
  5. Testing approach and deployment steps

Knowledge Reference

Shopify CLI 3.x, Liquid 2.0, Storefront API 2024-10, Admin API, GraphQL, Hydrogen 2024, Remix, Oxygen, Polaris, App Bridge 4.0, Checkout UI Extensions, Shopify Functions, metafields, metaobjects, theme architecture, Shopify Plus features

Documentation