mcpField
B
b2c-content

b2c-content

github.com/salesforcecommercecloudデータ・データベース5785 回インストール今日更新
リポジトリ

b2c-content について

b2c-contentは、Salesforce B2C CommerceのライブラリにあるPage Designerコンテンツを`b2c`コマンドラインで扱うスキルです。対象を絞ったエクスポートや一覧表示、メタ定義の検証に対応します。

主な機能

  1. 01ページとコンテンツブロックのエクスポート
  2. 02種類別のライブラリコンテンツ一覧
  3. 03メタ定義JSONの検証
  4. 04インスタンス設定と認証情報の検出

活用シーン

  1. 01移行用のページエクスポート
  2. 02ライブラリ内の再利用ブロックの検索
  3. 03Page Designerメタデータファイルの確認

インストール

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

$npx skills add https://github.com/salesforcecommercecloud/b2c-developer-tooling --skill b2c-content

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

同梱ファイルevals/trigger-evals.json

詳細

B2C コンテンツスキル

b2c CLI を使用して、Salesforce B2C Commerce コンテンツライブラリから Page Designer コンテンツをエクスポート、一覧表示、検証します。

ヒント: b2c がグローバルにインストールされていない場合は、代わりに npx @salesforce/b2c-cli を使用してください(例:npx @salesforce/b2c-cli content export homepage)。

設定と認証

CLI は、SFCC_* 環境変数(プロジェクトの .env を含む)、選択されたプロジェクトローカルまたは共有の dw.json、および設定プラグインから、対象インスタンスと認証情報を自動検出します。package.json から取得するのは機密情報以外のデフォルト値のみです。通常、--server、--client-id、--client-secret、--username、--password などのフラグは不要です。自動検出された値を上書きする場合にのみ指定してください。

b2c setup inspect を実行すると、解決された設定と各値の取得元を確認できます(スクリプトで使用する場合は --json を指定してください。デフォルトではシークレットはマスクされます)。優先順位のルールとトラブルシューティングについては、b2c-cli:b2c-config スキルを参照してください。

オンラインでのエクスポート/一覧表示では、システムのエクスポートジョブが開始されます。SCAPI では sfcc.jobs.rw とテナントスコープが使用され、WebDAV ではアーカイブとアセットがダウンロードされます。--api-backend ocapi を指定すると OCAPI が強制されます。auto ではフォールバックが許可されます。エラーに OCAPI についてしか記載されていない場合は、OCAPI の権限が必要だと判断する前に、--api-backend scapi を指定して再試行し、SCAPI のエラーを確認してください。

例

ページをエクスポートする
# export a single page from a shared library
b2c content export homepage --library SharedLibrary

# export multiple pages
b2c content export homepage about-us contact --library SharedLibrary

# export pages matching a regex pattern
b2c content export "hero-.*" --library SharedLibrary --regex

# export to a specific output directory
b2c content export homepage --library SharedLibrary -o ./my-export

# export a specific component by ID
b2c content export hero-banner --library SharedLibrary

# export a content block (reusable fragment) by ID
b2c content export DiscoverContentBlock --library RefArch --site-library

# export from a site-private library
b2c content export homepage --library RefArch --site-library

# preview without downloading (dry run)
b2c content export homepage --library SharedLibrary --dry-run

# export with JSON output
b2c content export homepage --library SharedLibrary --json

# export from a local XML file (offline, no instance needed)
b2c content export homepage --library SharedLibrary --library-file ./library.xml --offline

# filter pages by folder classification
b2c content export homepage --library SharedLibrary --folder seasonal

# custom asset extraction paths
b2c content export homepage --library SharedLibrary -q "image.path" -q "video.url"

# include orphan components in export
b2c content export homepage --library SharedLibrary --keep-orphans
インポートセット移行に直接エクスポートする

コンテンツ専用のエクスポーターは、標準のアーカイブ相対パスである libraries/ またはサイトライブラリのファイルを、--output に渡したディレクトリへ直接書き込みます。b2c job export とは異なり、生成された *_export ラッパーは追加されません。まずプレビューを行い、その後、最終的なタイムスタンプ付き移行ディレクトリを使用して、エクスポートされた XML とアセットをその場で確認してください。

b2c content export homepage --library SharedLibrary --dry-run --show-tree
b2c content export homepage \
  --library SharedLibrary \
  --output migrations/20260815T120000-update-homepage

サイト専用ライブラリの場合は、--site-library を設定するか、指定してください。一時ディレクトリとコピーの手順は不要です。既存または適用済みの移行先には、絶対に書き込まないでください。アーカイブの識別、トリミング、デプロイルールについては、b2c-cli:b2c-import-set-migrations を参照してください。

コンテンツを一覧表示する
# list all content in a library
b2c content list --library SharedLibrary

# list only pages
b2c content list --library SharedLibrary --type page

# list content blocks (reusable fragments; includes unlinked blocks)
b2c content list --library SharedLibrary --type fragment

# list including components
b2c content list --library SharedLibrary --components

# show tree structure
b2c content list --library SharedLibrary --tree

# list from a site-private library
b2c content list --library RefArch --site-library

# list from a local XML file
b2c content list --library SharedLibrary --library-file ./library.xml

# JSON output
b2c content list --library SharedLibrary --json
コンテンツブロック

コンテンツブロックは Page Designer の「コンテンツブロック」です。複数のページで共有される、再利用可能な fragment.* 型のコンテンツです(定義は1つで、複数の場所からリンクされます)。ツリーでは (CONTENT BLOCK) として区別して表示され、エクスポートの概要では個別に集計され、コンポーネントと同様に ID を指定してエクスポートできます(Layout コンテンツブロックでは、リージョンの子要素も保持されます)。b2c content list --type fragment を実行すると、現在どのページにもリンクされていないブロックも含め、ライブラリ内のすべてのコンテンツブロックを重複を除いて一覧表示できます。

設定

--library フラグは dw.json または package.json で設定できるため、毎回指定する必要はありません。

// dw.json
{
  "hostname": "my-sandbox.demandware.net",
  "content-library": "SharedLibrary"
}
// package.json
{
  "b2c": {
    "contentLibrary": "SharedLibrary"
  }
}

ライブラリを設定すると、コマンドを短くできます。

b2c content export homepage
b2c content list --type page
メタ定義を検証する
# validate a single metadefinition file
b2c content validate cartridge/experience/pages/storePage.json

# validate all metadefinitions in a directory recursively
b2c content validate cartridge/experience/

# validate with a glob pattern
b2c content validate 'cartridge/experience/**/*.json'

# explicitly specify the schema type
b2c content validate --type componenttype mycomponent.json

# JSON output for CI/scripting
b2c content validate cartridge/experience/ --json

スキーマ型は、ファイルパス(experience/pages/ → pagetype、experience/components/ → componenttype)と JSON コンテンツから自動検出されます。上書きするには --type を使用してください。

その他のコマンド

content トピックで使用できるコマンドとオプションの全一覧は、b2c content --help を参照してください。

トラブルシューティング

  • 「Library is required」 -- --library フラグを設定するか、dw.json で content-library を設定してください。
  • 認証エラー -- まず解決された設定を確認してください。SCAPI には、sfcc.jobs.rw とテナントスコープを含むクライアントクレデンシャルまたは JWT 認証が必要です。ブラウザーログインは OCAPI/WebDAV のみで使用できます。セットアップについては b2c-cli:b2c-config を参照してください。--library-file を指定するとリモートエクスポートジョブがスキップされます。アセットのダウンロードもスキップするには、--offline を追加してください。
  • ライブラリが見つからない -- ライブラリ ID が完全に一致していることを確認してください。サイト専用ライブラリの場合は、--site-library を追加してください。
  • コンテンツが見つからない -- ページ/コンテンツ ID が存在することを確認してください。使用可能な ID を調べるには、b2c content list を使用してください。
  • タイムアウトエラー -- 大規模なライブラリでは、デフォルトのタイムアウトを超える場合があります。タイムアウトを延長するには、--timeout <seconds> を使用してください。

関連スキル

  • b2c-cli:b2c-import-set-migrations - 焦点を絞ったコンテンツエクスポートから構築する、順序付きの冪等なマイグレーション
  • b2c-cli:b2c-site-import-export - サイトアーカイブのインポート/エクスポート操作
  • b2c-cli:b2c-webdav - コンテンツライブラリに対する低レベルのファイル操作
  • b2c-cli:b2c-config - 設定と認証情報の管理

コメント