shopify-content
Shopify Admin APIまたはブラウザ自動化を通じて、Shopifyのページ・ブログ投稿・ナビゲーションメニュー・リダイレクト・SEOメタデータの作成と管理を行います。ユーザーがShopifyストアへのページ追加、ブログ記事の執筆、ストアフロントのナビゲーション更新、リダイレクト管理、またはSEOメタデータの調整を希望する際に使用します。
description の原文を見る
Create and manage Shopify pages, blog posts, navigation menus, redirects, and SEO metadata via the Admin API or browser automation. Use whenever the user wants to add a page to a Shopify store, write a Shopify blog post, update the storefront navigation, manage redirects, or tune SEO metadata on a Shopify site.
SKILL.md 本文
Shopify コンテンツ
Shopify ストアのコンテンツ(ページ、ブログ記事、ナビゲーションメニュー、SEO メタデータ)を作成・管理します。Admin API またはブラウザ自動化を通じて、ストア内にライブコンテンツを生成します。
前提条件
read_content、write_contentスコープを持つ Admin API アクセストークン(shopify-setup スキルを使用)- ナビゲーション用:
read_online_store_navigation、write_online_store_navigationスコープ
ワークフロー
ステップ 1:コンテンツタイプを決定
| コンテンツタイプ | API サポート | 方法 |
|---|---|---|
| ページ | フル | GraphQL Admin API |
| ブログ記事 | フル | GraphQL Admin API |
| ナビゲーションメニュー | 限定的 | ブラウザ自動化推奨 |
| リダイレクト | フル | REST Admin API |
| SEO メタデータ | リソースごと | リソース上の GraphQL |
| メタオブジェクト | フル | GraphQL Admin API |
ステップ 2a:ページを作成
curl -s https://{store}/admin/api/2025-01/graphql.json \
-H "Content-Type: application/json" \
-H "X-Shopify-Access-Token: {token}" \
-d '{
"query": "mutation pageCreate($page: PageCreateInput!) { pageCreate(page: $page) { page { id title handle } userErrors { field message } } }",
"variables": {
"page": {
"title": "About Us",
"handle": "about",
"body": "<h2>Our Story</h2><p>Content here...</p>",
"isPublished": true,
"seo": {
"title": "About Us | Store Name",
"description": "Learn about our story and mission."
}
}
}
}'
ページボディ は HTML を受け入れます。セマンティック構造を保つ:
- 見出しには
<h2>から<h6>を使用(ページタイトルは<h1>) - 本文には
<p>、<ul>、<ol>を使用 - リンクには
<a href="...">を使用 - インラインスタイルは避ける — テーマが スタイリングを処理
ステップ 2b:ブログ記事を作成
Shopify ブログは 2 階層構造:ブログ(コンテナ)> 記事(投稿)。
ブログを検索または作成:
{
blogs(first: 10) {
edges {
node { id title handle }
}
}
}
ほとんどのストアには「News」というデフォルトブログがあります。その中に記事を作成:
mutation {
articleCreate(article: {
blogId: "gid://shopify/Blog/123"
title: "New Product Launch"
handle: "new-product-launch"
contentHtml: "<p>We're excited to announce...</p>"
author: { name: "Store Team" }
tags: ["news", "products"]
isPublished: true
publishDate: "2026-02-22T00:00:00Z"
seo: {
title: "New Product Launch | Store Name"
description: "Announcing our latest product range."
}
image: {
src: "https://example.com/blog-image.jpg"
altText: "New product collection"
}
}) {
article { id title handle }
userErrors { field message }
}
}
ステップ 2c:ナビゲーションメニューを更新
ナビゲーションメニューは API サポートが限定的です。ブラウザ自動化を使用:
https://{store}.myshopify.com/admin/menusに移動- 編集するメニュー(通常「Main menu」または「Footer menu」)を選択
- メニュー項目を追加、並び替え、または削除
- 変更を保存
または、API バージョンがサポートしている場合は GraphQL menuUpdate ミューテーションを使用:
mutation menuUpdate($id: ID!, $items: [MenuItemInput!]!) {
menuUpdate(id: $id, items: $items) {
menu { id title }
userErrors { field message }
}
}
ステップ 2d:リダイレクトを作成
URL リダイレクトは REST API を使用:
curl -s https://{store}/admin/api/2025-01/redirects.json \
-H "Content-Type: application/json" \
-H "X-Shopify-Access-Token: {token}" \
-d '{
"redirect": {
"path": "/old-page",
"target": "/new-page"
}
}'
ステップ 2e:SEO メタデータを更新
SEO フィールドは各リソース(商品、ページ、記事)にあります。リソースのミューテーションを通じて更新:
mutation {
pageUpdate(page: {
id: "gid://shopify/Page/123"
seo: {
title: "Updated SEO Title"
description: "Updated meta description under 160 chars."
}
}) {
page { id title }
userErrors { field message }
}
}
ステップ 3:確認
コンテンツを再度クエリして確認:
{
pages(first: 10, reverse: true) {
edges {
node { id title handle isPublished createdAt }
}
}
}
ユーザーが確認できるよう管理 URL とライブ URL を提供:
- 管理:
https://{store}.myshopify.com/admin/pages - ライブ:
https://{store}.myshopify.com/pages/{handle}
重要なパターン
ページ vs メタオブジェクト
シンプルなコンテンツ(About、Contact、FAQ)には ページ を使用します。構造化された繰り返し可能なコンテンツ(チームメンバー、推薦文、拠点)には メタオブジェクト を使用します — これらは型指定されたフィールドを持ち、プログラム的にクエリできます。
ブログ SEO
すべてのブログ記事には以下が必要:
- SEO タイトル:60 字以下、主要キーワード を含む
- メタディスクリプション:160 字以下、説得力のある概要
- ハンドル:キーワード を含むクリーンな URL スラッグ
- 代替テキスト付き画像:ソーシャルシェア及びアクセシビリティ用
コンテンツスケジューリング
記事の publishDate を使用してスケジュール公開します。ページは isPublished: true の場合すぐに公開されます。
一括コンテンツ
多数のページ(例:ロケーションページ、サービスページ)の場合、レート制限を考慮したループを使用:
for page in pages_data:
create_page(page)
sleep(0.5) # Respect rate limits
リファレンスファイル
references/content-types.md— API エンドポイント、メタオブジェクトパターン、ブラウザのみの操作
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- jezweb
- リポジトリ
- jezweb/claude-skills
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/jezweb/claude-skills / ライセンス: MIT
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。