mcpField
S
shoplazza-shop

shoplazza-shop

github.com/shoplazzaその他1746 回インストール5 日前に更新
リポジトリ

shoplazza-shop について

shoplazza-shopは、Shoplazza CLIのショップ領域を扱うスキルで、設定、コンテンツ、メディア、分析、市場などをカバーします。コマンドへの振り分けと、書き込み操作の安全ルールを示します。

主な機能

  1. 01ショップ情報の取得と更新
  2. 02売上・トラフィック分析の確認
  3. 03メディアファイルとメタフィールドの管理
  4. 04ブログ、ページ、ナビゲーションの管理
  5. 05リダイレクト、市場、言語の管理
  6. 06リアルタイム運賃サービスの設定

活用シーン

  1. 01指定期間の売上レポートの確認
  2. 02メディアのアップロードとタスク進捗の確認
  3. 03ブログ記事やカスタムページの作成
  4. 04ショップの市場、言語、ナビゲーションの管理

インストール

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

$npx skills add https://github.com/shoplazza/shoplazza-cli --skill shoplazza-shop

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

同梱ファイル

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

references/
analytics.md
blogs-articles.md
carrier-services.md
languages.md
markets.md
metafields.md
pages-redirects.md

詳細

shoplazza CLI — shop モジュール

重要 — 何よりも先に、../shoplazza-common/SKILL.md を Read してください。 ここでは、横断的な仕組みをすべて扱います。3 つのアクセス層、出力エンベロープ(.data)、 --dry-run、--jq(「-r を渡さない」ことを含む)、--fields、schema、api rest、認証/ プロファイル、安全性プロトコルが含まれます。このファイルでは shop ドメインのみを扱い、これらの仕組みを繰り返し説明しません。

概要

shop モジュールは、ストアレベルの設定とコンテンツを扱うドメインです。ショップ情報/設定、 販売・トラフィック分析、メディアライブラリ(ファイル)、メタフィールド(3 つすべてのファミリー)、 ブログと記事、カスタムページ、ナビゲーションメニュー、URL リダイレクト、マーケット、ストア言語、 リアルタイムの配送レートキャリアサービスを扱います。広範ですが、各領域は浅く扱います。このファイルはルーターであり、サブ領域ごとの詳細は references/ にあります。

唯一のショートカットは +upload-file です。それ以外はすべて spec リーフ (--params/--data)です。3 つのアクセス層すべてが適用されます(shoplazza-common の tier ルールを参照)。

コマンド一覧

目的 → コマンド。適合度の高い層から順に記載します。正式なフラグ/パラメーターは、この表ではなく shoplazza shop <cmd> --help と shoplazza schema shop.<cmd> を参照してください。

ユーザーの目的コマンド
ストア情報 — ストア情報/ドメイン/通貨/プランを確認shop info get(任意の --params '{"fields":["id","domain"]}')
カスタマーサービスのメールアドレスを変更(編集可能な唯一の項目)shop info get --jq '.data.id' → shop info update --params '{"shop_id":"<id>"}' --data '{"shop":{"customer_email":"…"}}'
分析 — 指定期間の売上/注文数レポートshop analytics overview --data '{"begin_time":"<unix-str>","end_time":"<unix-str>","indicator":["sales","orders"]}' → references/analytics.md
SKU の売上ランキング/売れ筋 SKUshop analytics by-sku --data '{…,"sort_by":"sales_total","sort_direction":"desc"}'
SPU/ランディングページ/UTM の内訳shop analytics by-spu(追加の type が必須)/by-land-page(dimensions が必須)/by-utm
検索キーワード分析/検索結果がなかったキーワード/サイト内検索キーワードshop analytics search-keyword --data '{…,"sort_by":"count","sort_direction":"desc"}'(has_result は文字列 "0"/"1")
トラフィックチャネル/トラフィックソース/チャネル別トラフィックshop analytics traffic-channel(dimensions と metrics が必須)。有効なチャネル名:shop analytics traffic-channel-options
メディアライブラリ — ファイルを素材ライブラリにアップロード(公開 URL のみ)shop +upload-file --source-url <url> [--source-url <url> …] [--folder <name>]
アップロードタスク/アップロード状況を確認shop files task --params '{"task_id":"<id>"}'(ショートカットですでに一度取得します)
メディアライブラリを参照shop files list(フォルダーのデフォルトは all_upload、page_size は 300 以下)
ファイルの詳細/ファイルを削除shop files {get,delete} --params '{"file_uri":"<uri>"}'
メタフィールド — ストアレベルのメタフィールドshop metafields-shop create --data '{"namespace":"…","key":"…","type":"string","value":"…"}' → references/metafields.md
商品/注文/顧客などにメタフィールドを設定(商品にフィールドを追加)shop metafields-resource create --params '{"owner_resource":"product","owner_id":"<id>"}' --data '{"definition_id":"…","namespace":"…","key":"…","type":"…","value":…}'
メタフィールドのスキーマを定義(メタフィールド定義)shop metafields-definition create --params '{"owner_resource":"…"}' --data '{"name":"…","namespace":"…","key":"…","type":"…"}'
ブログコンテンツ — ブログ記事を公開/新しいブログ記事shop articles create --data '{"article":{"title":"…","content":"…","blog_ids":["…"]}}' → references/blogs-articles.md
ブログ(記事の入れ物)を管理shop blogs list / shop blogs create --data '{"blog":{"Title":"…"}}'(タイトルのキーは大文字の Title)
カスタムページ — カスタムページ/会社概要/About Usshop pages create --data '{"page":{"title":"…","content":"…"}}' → references/pages-redirects.md
ナビゲーションメニュー — ナビゲーションメニューを確認/メニューと項目を一覧表示shop menu list(組み込みメニューの ID は header / footer。特定のメニューを 1 つ指定:--params '{"ids":["header"]}')
メニューを新規作成/カスタムメニューを作成shop menu create --data '{"title":"…","children":[…]}'(カスタムメニューのみ)
メニュー名/メニュー項目を変更/メニューを編集shop menu update --params '{"id":"<menu-id>"}' --data '{"title":"…"}' — children を送信すると項目ツリー全体が置き換えられます(「注意点」を参照)
メニューを削除/カスタムメニューを削除shop menu delete --params '{"id":"<menu-id>"}'(組み込みの header / footer は削除できません)
URL リダイレクト — 301 / リダイレクトshop redirects create --data '{"redirect":{"from_url":"…","redirect_url":"…","status":"…"}}'(status は必須。「注意点」を参照)
マーケット — マーケットを作成/特定の国で公開shop markets create --data '{"name":"…","countries":["JP"]}' → references/markets.md
言語 — 言語を追加/多言語化shop languages supported → add → enable → publish → references/languages.md
配送業者サービス — リアルタイム配送料見積もりを提供する配送業者を登録shop carrier-services create --data '{"carrier_service":{"name":"…","callback_url":"…","carrier_code":"…"}}' → references/carrier-services.md

書き込みのルール

設定ドメイン — 完全な確認マトリックスはありませんが、以下の書き込みにはデフォルト値のない必須フィールドがあります。 不足または曖昧な場合は、AskUserQuestion で一度にまとめて確認し、決して捏造しないでください。デフォルト値または任意のフィールドについては確認しないでください。

操作不足時に必ず確認暗黙的にデフォルト設定/確認しない
+upload-file公開 URL(ローカルファイルの場合 → 機能を制限して対応:API が取得できるのは公開 URL のみであることを説明し、リンクまたはホストの提示を求める)--folder(デフォルトは all_upload)
pages createtitleurl、meta_*、independent_seo — 省略し、SEO フィールドを決して捏造しない
redirects createfrom_url、redirect_url。文言から status の値が確定しない場合(スキーマに列挙値がないため、Gotchas を参照)—
metafields-shop createnamespace、key、type、valuedescription、definition_id(この場合は任意)
metafields-resource createowner_resource+owner_id、definition_id、namespace、key、valuedescription。type — 確認を求める前に定義から解決する(metafields-definition get)
markets createname、countriesconfirm — 決して暗黙的に true を渡さない(使用中のマーケットが削除されます)
carrier-services createname、callback_url(ユーザー自身のエンドポイント — 決して作り出さない)、carrier_codeactive、logo、short_desc
languages add言語(複数可)。languages supported を使って IETF コードを解決する—
info update新しい customer_emailshop_id — info get で自分で解決し、確認しない
menu createtitle。各項目のタイトルとリンク先(ID は自分で解決する)category(常にカスタム 3)、target、disabled
menu update対象のメニュー(menu list で ID を解決する)、変更内容title / category — 変更しないよう省略する

破壊的な操作(pages batch-delete、markets delete — 取り消し不可、files delete、 redirects delete、metafields-* delete、menu delete、children を伴う menu update)→ まず --dry-run を実行して内容を再提示し、shoplazza-common → Safety protocol に従う。

対応範囲

他のドメインのように見える操作(または他のドメインに見えるショップ操作):

目的実際の担当コマンド
商品/注文にメタフィールドを追加する / 商品のメタフィールドここ — 商品が所有するものも含め、すべてのメタフィールドはショップに属しますshop metafields-resource create --params '{"owner_resource":"product",…}'
商品画像/メイン画像/商品に添付された画像shoplazza-productsproducts images create
ファイルのアップロード/素材ライブラリ/メディアライブラリのアセットここshop +upload-file / shop files …
売上/トラフィック/コンバージョンのレポート / 売上・トラフィック分析ここshop analytics …
注文数の集計/注文検索 / 注文数・検索注文ドメインorders +count / orders +search
リアルタイムの送料見積もりを提供する配送業者 / チェックアウト時に料金を見積もる配送業者ここshop carrier-services …
配送業者の検索/配送伝票の追跡/フルフィルメント追跡の配送業者、配送ゾーン注文ドメインorders tracking-carriers / orders shipping-schemas
カスタムページ/会社概要/ブランドストーリーのページここ(テーマではなくコンテンツ)shop pages create
ナビゲーションメニュー/メニュー項目/メインメニューへのリンク追加ここ(メニューコンテンツ)shop menu list → shop menu update
ヘッダーに表示するメニュー/メニューをヘッダーカードに関連付けるshoplazza-themesthemes +edit(カードの link_list 設定)
テンプレートの変更/ストアのデザイン調整/テーマとテンプレートの編集、カスタムページのレイアウトshoplazza-themesthemes +page / themes +edit / themes template …
ブログ/記事ここ(商品レビューではありません)shop blogs / shop articles
購入者のレビュー/商品レビューshoplazza-productsproducts comments …
クーポンコード/割引/割引コードshoplazza-discountsdiscounts +*

権限 · スコープ

認可はコマンドごとではなく、ドメイン(--domain の単位)ごとに行われます。認可のフローについては shoplazza-common → 認証を参照してください。

操作必要なもの付与方法
読み取り(info get、analytics *、files list/get/task、* list/get/count)shop 読み取りスコープauth login --domain shop
書き込み(+upload-file、* create/update/delete、languages enable/publish、…)shop 書き込みスコープauth login --domain shop

正確なスコープ文字列は shoplazza auth scopes で確認してください。--domain shop はそれらのスコープに展開されます。

注意点

ドメイン固有の注意点のみを記載しています。一般的な注意点(.data プレフィックス、-r を付けない --jq など)は shoplazza-common に記載されています。

症状原因修正方法
アナリティクスの呼び出しが拒否される/結果が空になるすべての analytics レポートは POST です(traffic-channel-options のみ GET です)。フィルターは --params ではなく --data に指定します。begin_time/end_time は UNIX 秒のタイムスタンプを文字列として渡す必要があります("1782864000")タイムスタンプを計算し、文字列として引用符で囲んで --data で送信します
traffic-channel が 400 cannot unmarshal object … filters of type string を返すfilters は JSON オブジェクトを文字列としてエンコードしたものです。search-keyword の has_result も文字列です"filters":"{\"last_referrer_first_show\":{\"operator\":\"in\",\"value\":[\"Social\"]}}"、"has_result":"0" を指定します。references/analytics.md を参照してください
menu update 後にメニュー項目が消えたchildren は項目ツリー全体を置き換えます。含めなかった項目は削除され、[] を指定するとメニューがクリアされますまずメニューを読み込み、ツリー全体を編集して、すべてを送り返します(既存の各項目の id は維持してください)。タイトルだけを変更する場合は children を省略します
ネストされたメニュー項目がフラットな状態で返された/ネストが失われたmenu list は項目をフラットな形式で返します。サブ項目は pid で親を参照します。書き込み時はネストされた children のみで階層を指定し(pid フィールドはありません)children を送信する前に、pid からツリーを再構築します
メニュー項目の url_obj に何を指定すればよいかわからないリンクの type の値はスキーマに列挙されていませんmenu list で同じ種類の既存項目から url_obj(type + source_id + url)をコピーします。type や source_id を推測で作成しないでください
ショップ名/住所を更新しようとしたinfo update で編集できるフィールドは shop.customer_email の1つだけですそれ以外はこのエンドポイントでは更新できないことを伝えます
info update に必要な shop_id がユーザーにわからないshop_id は必須のパスパラメーターです先に shop info get --jq '.data.id' で取得します
ローカルファイルのアップロードを依頼された+upload-file が受け取るのは公開 URL であり、ローカルファイルではありません(ヘルプに明記されています)。API が URL からファイルを取得します対応を見送ります。書き込みは行わず、公開リンクを依頼するか、先にホスティングする方法を提案します
アップロードが「完了」したのにファイルがないアップロードは非同期タスクです。POST は task_id を返し、ショートカットはタスクを一度だけ自動取得しますshop files task --params '{"task_id":"…"}' で再確認し、status/success_list が確定するまで繰り返します
blogs create でタイトルが無視される/拒否されるブログタイトルのキーは小文字の title ではなく、大文字で始まる Title です(必須、1~100 文字)shop blogs create --data '{"blog":{"Title":"…"}}' を実行します。フィールドは schema shop.blogs.create で確認してください
redirects の status に指定できる値は?status は必須ですが、スキーマに列挙値は記載されていません。値を推測で作成しないでくださいschema shop.redirects.create を確認するか、既存ルールを調べます(shop redirects list --jq '.data.redirects[].status')。または OpenAPI ドキュメントを確認します。それでも不明な場合はユーザーに確認してください
metafields-resource create は拒否されるが、metafields-shop create は成功する相違点があります。リソースレベルでは definition_id が必須ですが、ショップレベルでは任意です。タイプの列挙値も異なります(ショップ:JSON/string、リソース:single_line_text_field、integer など)references/metafields.md を参照してください
言語を公開したら市場との関連付けが消えたlanguages publish は完全な置き換えです。market_ids: [] を指定すると、すべての関連付けが削除されます常に対象となるリスト全体を送信してください
言語を追加したが、ストアフロントに反映されない追加された言語はデフォルトで無効です。未対応のコードは通知なく除外されますadd の後に languages enable を実行します。languages supported でコードを確認してください
confirm: true を指定して markets create/update を実行したら、他の市場が削除された1つの国が所属できる市場は1つだけです。confirm: true を指定すると、重複する市場が自動的に削除されますmarkets preview と --dry-run で事前に確認し、削除される内容を改めて伝えて、明示的な同意を得てください
metafields-definition get で、パスに ID を指定しても 404 になるid はパスセグメントではなくクエリパラメーターですshop metafields-definition get --params '{"id":123456}'

レシピ

# 1. Store's primary domain and currency
shop info get --jq '{domain: .data.domain, currency: .data.currency}'

# 2. Change the customer-service email (only editable field; two steps)
SHOP_ID=$(shop info get --jq '.data.id')
shop info update --params "{\"shop_id\":\"$SHOP_ID\"}" --data '{"shop":{"customer_email":"[email protected]"}}'

# 3. Sales + order count, 2026-07-01 .. 2026-07-15 (unix seconds as STRINGS)
shop analytics overview --data '{"begin_time":"1782864000","end_time":"1784159999","indicator":["sales","orders"]}'

# 4. Best-selling SKU over a window (sort desc by sales metric)
shop analytics by-sku --data '{"begin_time":"1782864000","end_time":"1784159999","sort_by":"sales_total","sort_direction":"desc","page_size":10}'

# 5. Upload a public image to the media library (async task; folder defaults to all_upload)
shop +upload-file --source-url https://example.com/banner.png

# 6. Create an "About Us" custom page
shop pages create --data '{"page":{"title":"关于我们","content":"我们是一家来自杭州的 DTC 品牌"}}'

# 7. Permanent URL redirect (status REQUIRED — pin the value via schema/existing rules first)
shop redirects list --jq '.data.redirects[].status'   # see what values live rules use
shop redirects create --data '{"redirect":{"from_url":"/old-sale","redirect_url":"/new-sale","status":"<verified-value>"}}'

# 8. Shop-level metafield (no definition_id needed at shop level)
shop metafields-shop create --data '{"namespace":"global","key":"support_phone","type":"string","value":"400-800-1234"}'

# 9. Product-level metafield (owner in --params, definition_id REQUIRED in --data)
shop metafields-resource create --params '{"owner_resource":"product","owner_id":"66880"}' \
  --data '{"definition_id":"D8899","namespace":"specs","key":"material","type":"single_line_text_field","value":"cotton"}'

# 10. Launch Japanese and publish it to the Japan market
shop languages supported --jq '.data.languages'   # find the exact IETF code
shop languages add --data '{"codes":["ja-JP"]}'
shop languages enable --params '{"language_code":"ja-JP"}'
MARKET_ID=$(shop markets list --jq '.data.markets[] | select(.name=="Japan") | .id')
shop languages publish --params '{"language_code":"ja-JP"}' --data "{\"market_ids\":[\"$MARKET_ID\"]}"

# 11. Rename a custom menu without touching its items (no children = items kept)
shop menu list --jq '[.data.menus[] | {id, title, category}]'   # category 3 = custom
shop menu update --params '{"id":"<menu-id>"}' --data '{"title":"Footer links"}'

リファレンス

  • references/analytics.md — 7 つの POST レポートとチャネルオプションの検索、指標/ディメンション、並べ替えの列挙値、タイムスタンプのルール
  • references/metafields.md — 定義、リソース、ショップのメタフィールド、owner_resource の列挙値、タイプの列挙値
  • references/blogs-articles.md — ブログ(コンテナ)と記事(投稿)の違い。ブログのタイトルキーは大文字の Title
  • references/pages-redirects.md — カスタムページの CRUD/一括処理、リダイレクトと、ドキュメントに記載されていないステータスの列挙値
  • references/markets.md — マーケットのライフサイクル、国の占有/確認、価格/税/ドメイン/言語
  • references/languages.md — 追加 → 有効化 → 公開の流れ、全置換のセマンティクス
  • references/carrier-services.md — 料金見積もりを行う配送業者の登録
  • コマンドごとのフラグ:shoplazza shop <cmd> --help
  • 仕様の詳細パラメーター/本文/レスポンス:shoplazza schema shop.<cmd>(ネストされたコマンド:schema shop.metafields-resource.create)
  • 複数の機能に共通する仕組み(認証/ティア/エンベロープ/--dry-run/--jq/安全性):../shoplazza-common/SKILL.md

コメント