b2c-scapi-custom について
b2c-scapi-customは、Salesforce B2C Commerce開発者向けに、SCAPI Custom APIエンドポイントの管理と登録状態の確認を案内するCLIスキルです。設定の解決、状態の絞り込み、問題の診断、B2C MCPでの状態やライブ契約の取得も扱います。
主な機能
- 01Custom APIエンドポイントの登録状態確認
- 02状態・タイプ・サイトによる絞り込みと分類
- 03表示列またはJSON形式の選択
- 04未登録エンドポイントとエラー原因の診断
- 05dw.json、環境変数、インスタンス設定の解決
活用シーン
- 01テナント内のCustom API登録状況の確認
- 02未登録エンドポイントと失敗理由の特定
- 03スクリプト向けにJSON形式で状態を取得
- 04B2C MCPで状態とライブ契約を照会
MCP 対応
B2C MCPが利用できる場合、登録状態にはscapi_custom_apis_get_status、ライブ契約にはscapi_schemas_listを優先します。Admin Custom APIの実行では契約を読み、記載に従ってscapi.requestを呼び出します。Shopperの実行は未対応です。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ salesforcecommercecloud/ b2c-developer-tooling --skill b2c-scapi-customインストール後、Claude Code で/b2c-scapi-customを入力して読み込まれたか確認します。
同梱ファイルevals/trigger-evals.json
詳細
B2C SCAPI カスタム API スキル
b2c CLI プラグインを使って、SCAPI カスタム API エンドポイントを管理し、登録状況を確認します。
B2C MCP を利用できる場合は、登録状況の確認には scapi_custom_apis_get_status、最新のコントラクトの取得には scapi_schemas_list を優先してください。Admin カスタム API の実行については、skill://mcp/b2c-mcp-scapi/SKILL.md を読み、エンドポイントを呼び出す前にプログラム内で scapi.request を使ってコントラクトを取得してください。スキーマの読み取りには sfcc.scapi-schemas が必要です。実行には宣言された c_* スコープが必要です。Shopper の実行はサポートされていません。
ヒント:
b2cがグローバルにインストールされていない場合は、代わりにnpx @salesforce/b2c-cliを使用してください(例:npx @salesforce/b2c-cli scapi custom status)。
設定
tenantId、shortCode、clientId、clientSecret などの値は、dw.json/SFCC_* 環境変数/アクティブなインスタンス/設定プラグインから解決されます。以下の例は最小限の使い方を示しています。設定済みの値を上書きする場合にのみフラグを追加してください。通常、--client-id/--client-secret/--tenant-id/--short-code を渡す必要はありません。必須の値が不足している場合、CLI は該当するフラグ、環境変数、設定キーを示す具体的なエラーを出力します。
b2c setup inspect を実行すると、解決された設定と、各値の取得元を確認できます(スクリプトで使用する場合は --json を指定してください。シークレットはデフォルトでマスクされます)。優先順位のルールとトラブルシューティングについては、b2c-cli:b2c-config スキルを参照してください。
テナント ID と組織 ID
テナント ID は B2C Commerce インスタンスを識別します。組織 ID とは異なります。
- テナント ID:
zzxy_prd(dw.json のtenantIdの値、または--tenant-idによる上書き値) - 組織 ID:
f_ecom_zzxy_prd(SCAPI URL で使用され、f_ecom_プレフィックスが付きます)
ホスト名からテナント ID を導出する
サンドボックスインスタンスの場合、ホスト名のハイフンをアンダースコアに置き換えて、テナント ID を導出します。
| ホスト名 | テナント ID |
|---|---|
zzpq-013.dx.commercecloud.salesforce.com | zzpq_013 |
zzxy-001.dx.commercecloud.salesforce.com | zzxy_001 |
abcd-dev.dx.commercecloud.salesforce.com | abcd_dev |
本番インスタンスの場合は、レルムとインスタンス識別子を使用してください(例:zzxy_prd)。
例
カスタム API エンドポイントのステータスを取得する
# list all Custom API endpoints for the configured tenant
b2c scapi custom status
# list with JSON output
b2c scapi custom status --json
# target a different tenant than the active config
b2c scapi custom status --tenant-id zzxy_prd
ステータスで絞り込む
# list only active endpoints
b2c scapi custom status --status active
# list only endpoints that failed to register
b2c scapi custom status --status not_registered
種類またはサイトでグループ化する
# group endpoints by API type (Admin vs Shopper)
b2c scapi custom status --group-by type
# group endpoints by site
b2c scapi custom status --group-by site
出力列をカスタマイズする
# show extended columns (includes error reasons, sites, etc.)
b2c scapi custom status --extended
# select specific columns to display
b2c scapi custom status --columns type,apiName,status,sites
# available columns: type, apiName, apiVersion, cartridgeName, endpointPath, httpMethod, status, sites, securityScheme, operationId, schemaFile, implementationScript, errorReason, id
登録失敗をデバッグする
# quickly find and diagnose failed Custom API registrations
b2c scapi custom status --status not_registered --columns type,apiName,endpointPath,errorReason
設定の上書き
テナント ID とショートコードは、フラグまたは環境変数で上書きできます。
--tenant-id/SFCC_TENANT_ID/ dw.json のtenantId--short-code/SFCC_SHORTCODE/ dw.json のshortCode
その他のコマンド
利用可能なコマンドとオプションの一覧については、b2c scapi custom --help を参照してください。
OAuth スコープ(手動でのトークン発行)
b2c scapi custom status は、必要なスコープ(ドメインスコープの sfcc.custom-apis とテナントスコープの SALESFORCE_COMMERCE_API:<tenant_id>)を自動的に追加します。このコマンド自体にこれらを渡す必要はありません。
b2c auth token または curl を使って手動でトークンを発行し、カスタム Admin API を直接呼び出す場合、この自動追加は行われません。テナントスコープと使用するスコープをすべて自分で指定する必要があります。b2c auth token は複数のスコープを受け付けます(--auth-scope を繰り返し指定するか、カンマ区切りで指定します)。
# Token for calling a custom Admin API endpoint
b2c auth token \
--auth-scope "SALESFORCE_COMMERCE_API:zzpq_013" \
--auth-scope c_my_admin_scope
テナントスコープがないトークンは 403 を返します。リクエストの完全な例については、b2c:b2c-custom-api-development(テストリファレンス)を参照してください。
関連スキル
b2c:b2c-custom-api-development- カスタム API エンドポイントの作成(スキーマ、スクリプト、マッピング)b2c-cli:b2c-code- コードバージョンのデプロイと有効化(登録をトリガーします)