b2c-webdav について
b2c-webdavは、b2c CLIでSalesforce B2C CommerceのWebDAVルート上のファイルを管理するエージェントスキルです。impex、cartridges、logsなどのルートでの操作を扱います。
主な機能
- 01WebDAVファイルの一覧表示、アップロード、ダウンロード
- 02複数のWebDAVルートでのファイル管理
- 03ディレクトリの作成とリモートファイルの削除
- 04リモートディレクトリやアーカイブのZIP・解凍
- 05自動検出されたインスタンス認証情報と設定の利用
活用シーン
- 01インポート・エクスポートアーカイブの転送
- 02コードバージョン内のcartridgeファイルの管理
- 03ログやサイト固有の動的ファイルの取得
MCP 対応
個別ファイルの一覧表示、読み取り、転送に使うMCPツールとして、`webdav_list`、`webdav_get`、`webdav_put`を説明しています。再帰転送やmkdir、削除、ZIP、UNZIPなどにはCLIを推奨しています。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ salesforcecommercecloud/ b2c-developer-tooling --skill b2c-webdavインストール後、Claude Code で/b2c-webdavを入力して読み込まれたか確認します。
同梱ファイルevals/trigger-evals.json
詳細
B2C WebDAV スキル
b2c CLI プラグインを使用して、Salesforce B2C Commerce インスタンス上で WebDAV のファイル操作を実行します。これには、異なる WebDAV ルート間でのファイルの一覧表示、アップロード、ダウンロード、管理が含まれます。
ヒント:
b2cがグローバルにインストールされていない場合は、代わりにnpx @salesforce/b2c-cliを使用してください(例:npx @salesforce/b2c-cli webdav ls)。
MCP に相当する機能
1 ディレクトリの一覧表示、テキストの正確な読み取り、単一ファイルの転送には、利用可能な場合は webdav_list、webdav_get、webdav_put を優先してください。webdav_get は HTTP バイト範囲(offset、maxBytes、返される size/nextOffset)を使用します。outputPath を指定するとファイル全体がダウンロードされます。webdav_put は content または sourcePath を受け付けます。親ディレクトリが存在している必要があり、置き換える場合は overwrite: true が必要です。ローカルパスは MCP ホスト上のもので、projectDirectory を基準とします。転送サイズの上限は 64 MiB です。事前にスキルを読み込む必要はありません。
ローカルのカートリッジの選択/マッピングには cartridge_deploy を使用してください。再帰的な転送、mkdir、削除、ZIP/UNZIP、または MCP で公開されていない追加フラグが必要な場合は、CLI を使用してください。
設定と認証
CLI は、SFCC_* 環境変数(プロジェクトの .env を含む)、選択されたプロジェクトローカルまたは共有の dw.json、設定プラグインから、対象インスタンスと認証情報を自動検出します。package.json から提供されるのは、機密情報ではないデフォルト値のみです。--server、--client-id、--client-secret、--username、--password などのフラグは通常不要です。自動検出された値を上書きする場合にのみ指定してください。
サーバーのみが設定されている場合、最初のコマンドはブラウザーを開いて、ユーザーが Account Manager アカウントでサインインするのを待ちます。ユーザーにサインインを完了するよう伝えてください。アクセス権は Business Manager のロールによって決まり、403 が返された場合は、不足している権限(たとえば Cartridges の場合は WebDAV_Manage_Customization)が示されます。
b2c setup inspect を実行すると、解決された設定と各値の取得元を確認できます(スクリプトで使用する場合は --json を指定してください。デフォルトではシークレットはマスクされます)。優先順位のルールやトラブルシューティングについては、b2c-cli:b2c-config スキルを参照してください。
WebDAV ルート
--root フラグで WebDAV ディレクトリを指定します。
impex(デフォルト) - インポート/エクスポートディレクトリtemp- 一時ファイルcartridges- コードカートリッジrealmdata- レルムデータcatalogs- 商品カタログlibraries- コンテンツライブラリstatic- 静的リソースdynamic- Velocity テンプレートを含む、サイト固有のファイルlogs- アプリケーションログsecuritylogs- セキュリティログ
使用例
動的サイトファイル
--root=dynamic と、最初のリモートパスセグメントとしてサイト ID を指定します。たとえば、
MySite/mockData/mock.vm は Sites/Dynamic/MySite/mockData/mock.vm に解決されます。
この場所には、dw.template.Velocity.renderTemplate() が使用する Velocity テンプレートなど、コードのバージョンとは独立したサイト固有のファイルが保存されます。
b2c webdav ls --root=dynamic MySite/
b2c webdav mkdir --root=dynamic MySite/mockData
b2c webdav put --root=dynamic ./mock.vm MySite/mockData/
b2c webdav get --root=dynamic MySite/mockData/mock.vm -o ./mock.vm
同じルートとサイトを先頭に付けたパスは、rm、zip、unzip でも使用できます。
ファイルの一覧表示
# list files in the default IMPEX root
b2c webdav ls
# list files in a specific path
b2c webdav ls src/instance
# list files in the cartridges root
b2c webdav ls --root=cartridges
# list files with JSON output
b2c webdav ls --root=impex --json
ファイルのダウンロード
# download a file from IMPEX (default root)
b2c webdav get src/instance/export.zip
# download to a specific local path
b2c webdav get src/instance/export.zip -o ./downloads/export.zip
# download from a specific root
b2c webdav get customerror.log --root=logs
# output file content to stdout
b2c webdav get src/instance/data.xml -o -
ファイルのアップロード
# upload a file to IMPEX
b2c webdav put ./local-file.zip src/instance/
# upload to a specific root
b2c webdav put ./my-cartridge.zip --root=cartridges
ディレクトリの作成
# create a directory in IMPEX
b2c webdav mkdir src/instance/my-folder
# create a directory in a specific root
b2c webdav mkdir my-folder --root=temp
ファイルの削除
# delete a file
b2c webdav rm src/instance/old-export.zip
# delete from a specific root
b2c webdav rm old-file.txt --root=temp
カートリッジの削除
コードバージョンからカートリッジを削除するには、cartridges ルートと {code-version}/{cartridge-name} 形式のパスを使用します。
# delete a cartridge from a code version
b2c webdav rm v25_1_0/app_mysite --root=cartridges
# delete multiple cartridges
b2c webdav rm v25_1_0/app_mysite --root=cartridges
b2c webdav rm v25_1_0/int_myintegration --root=cartridges
# list cartridges in a code version first
b2c webdav ls v25_1_0 --root=cartridges
重要: パスは /cartridges/{code-version}/... ではなく、{code-version}/{cartridge-name} です。--root=cartridges(または -r cartridges)フラグで WebDAV ルートを設定します。
リモートファイルの ZIP 圧縮/展開
# create a zip archive of a remote directory
b2c webdav zip src/instance/my-folder
# extract a remote zip archive
b2c webdav unzip src/instance/archive.zip
インポートセットの管理状態
ローカルのサイトインポート/エクスポートアーカイブのセットを一度だけ適用する場合、マーカーファイルを手動でスクリプト化しないでください。代わりに、より上位のコマンドを使用します。
b2c job import-set
以前の履歴を削除せずに最初からやり直すには、新しいセット ID を使用し、後続の実行でも同じ ID を使い続けてください。
b2c job import-set --set-id migrations-reset-20260818
既定の履歴をその場でリセットするには、履歴を削除してインポートセットを再実行します。
b2c webdav rm --root=impex b2c-cli/import-sets/migrations
b2c job import-set
カスタムセット ID を使用する場合は、末尾の migrations パスセグメントをその ID に置き換えてください。その場でリセットすると、成功したアーカイブの記録が完全に失われ、現在のすべてのアーカイブが再び保留状態になります。そのため、すべてのアーカイブを安全に再適用できる場合にのみ使用してください。--break-lock は復旧用であり、履歴をリセットするものではありません。
標準的なワークフロー、命名規則、再試行の動作、復旧ルールについては、b2c-cli:b2c-site-import-export スキルの 順序付けされた冪等なインポートセットの適用 セクションを参照してください。
その他のコマンド
webdav トピックで使用できるコマンドとオプションの一覧については、b2c webdav --help を参照してください。
関連スキル
b2c-cli:b2c-logs- ログのフィルタリング取得、検索、リアルタイムのテーリング(ログの調査に推奨)b2c-cli:b2c-code- より上位のコードデプロイ(カートリッジのアップロードに推奨)b2c-cli:b2c-site-import-export- サイトアーカイブと冪等なインポートセットに関する標準的なガイダンスb2c-cli:b2c-job- ジョブの実行と監視