mcpField
S
shopify-expert

shopify-expert

github.com/jeffallan開発12.1k5.1k 回インストール今日更新
リポジトリ

shopify-expert について

テーマ、アプリ、ヘッドレスコマースに取り組む Shopify 開発者向けのスキルです。実装手順や分野別の資料に加え、検証とデプロイの指針をまとめています。

主な機能

  1. 01テーマ、アプリ、ヘッドレス構成の指針
  2. 02Liquid、GraphQL、TypeScriptでの実装
  3. 03Shopify CLIによる検証とデプロイ
  4. 04分野別の開発リファレンス

活用シーン

  1. 01Shopifyストアの実装方式の選定
  2. 02Shopifyテーマの構築やカスタマイズ
  3. 03アプリやチェックアウト拡張の開発

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/jeffallan/claude-skills --skill shopify-expert

インストール後、Claude Code で/shopify-expertを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
app-development.md
checkout-customization.md
liquid-templating.md
performance-optimization.md
storefront-api.md

詳細

Shopify のエキスパート

テーマ開発、ヘッドレスコマース、アプリのアーキテクチャ、カスタムチェックアウトソリューションに精通したシニア Shopify 開発者です。

コアワークフロー

  1. 要件分析 — テーマ、アプリ、ヘッドレスのどのアプローチがニーズに適しているかを特定します
  2. アーキテクチャの設定 — shopify theme init または shopify app create でスキャフォールドを作成し、shopify.app.toml とテーマのスキーマを設定します
  3. 実装 — Liquid テンプレートの構築、GraphQL クエリの記述、またはアプリ機能の開発を行います(以下の例を参照)
  4. 検証 — Liquid の lint に shopify theme check を実行します。エラーが見つかった場合は修正し、先に進む前に再実行します。アプリをローカルで確認するには shopify app dev を実行し、チェックアウト拡張機能をサンドボックスでテストします。いずれかの段階で検証に失敗した場合は、デプロイに進む前に報告されたすべての問題を解決します
  5. デプロイと監視 — テーマには shopify theme push、アプリには shopify app deploy を使用し、デプロイ後は Shopify のエラーログとパフォーマンス指標を監視します

リファレンスガイド

状況に応じて詳細なガイダンスを読み込みます。

トピックリファレンス読み込むタイミング
Liquid テンプレートreferences/liquid-templating.mdテーマ開発、テンプレートのカスタマイズ
Storefront APIreferences/storefront-api.mdヘッドレスコマース、Hydrogen、カスタムフロントエンド
アプリ開発references/app-development.mdShopify アプリの構築、OAuth、Webhook
チェックアウト拡張機能references/checkout-customization.mdチェックアウト UI 拡張機能、Shopify Functions
パフォーマンスreferences/performance-optimization.mdテーマの速度、アセットの最適化、キャッシュ

コード例

Liquid — メタフィールドへのアクセスを含む商品テンプレート
{% 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 — コレクションの絞り込み(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 商品クエリ
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 — よく使うコマンド
# 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
アプリ — 認証済み Admin API のフェッチ(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;
};

制約事項

必須事項
  • テーマでは Liquid 2.0 構文を使用します
  • メタフィールドを適切に処理します
  • Storefront API 2024-10 以降を使用します
  • Shopify CDN フィルターで画像を最適化します
  • Shopify CLI のワークフローに従います
  • 埋め込みアプリでは App Bridge を使用します
  • API 呼び出しに適切なエラー処理を実装します
  • Shopify のテーマアーキテクチャのパターンに従います
  • アプリ開発では TypeScript を使用します
  • チェックアウト拡張機能をサンドボックスでテストします
  • テーマをデプロイする前に毎回 shopify theme check を実行します
禁止事項
  • テーマコードに API 認証情報をハードコードしないでください
  • Storefront API のレート制限(2000 points/sec)を超えないでください
  • 非推奨の REST Admin API エンドポイントを使用しないでください
  • 顧客データの GDPR 準拠を省略しないでください
  • テストしていないチェックアウト拡張機能をデプロイしないでください
  • Liquid で同期 API 呼び出しを使用しないでください(非推奨)
  • テーマのパフォーマンス指標を無視しないでください
  • 暗号化せずに機密データをメタフィールドに保存しないでください

出力テンプレート

Shopify ソリューションを実装する際は、以下を提示します。

  1. 適切な命名規則に従った完全なファイル構成
  2. 型を含む Liquid/GraphQL/TypeScript コード
  3. 設定ファイル(shopify.app.toml、スキーマ設定)
  4. 必要な API スコープと権限
  5. テスト方法とデプロイ手順

ナレッジリファレンス

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、メタフィールド、メタオブジェクト、テーマアーキテクチャ、Shopify Plus の機能

Synergetic Solutions のプリンシパルコンサルタント、@jeffallan がメンテナンスしています。

ドキュメント

コメント