关于 b2c-content
b2c-content 技能介绍如何用 `b2c` 命令行处理 Salesforce B2C Commerce 内容库中的 Page Designer 内容,适合管理内容库的开发者。它支持定向导出、内容列表和元定义校验。
主要功能
- 01导出指定页面和内容块
- 02按类型列出库内容
- 03校验元定义 JSON
- 04发现实例配置与凭据
适用场景
- 01为迁移导出页面
- 02查找库中的可复用内容块
- 03检查 Page 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,请使用 --api-backend scapi 重试,以便查看 SCAPI 错误,再判断是否需要 OCAPI 权限。
示例
导出页面
# 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.* 类型内容(一个定义,可在多处链接)。它们会在树中单独列出为 (CONTENT BLOCK),在导出摘要中单独计数,也可像组件一样按 ID 导出(布局内容块会保留其区域子项)。b2c content list --type fragment 会显示库中所有内容块的去重目录,包括当前未链接到任何页面的内容块。
配置
可以在 dw.json 或 package.json 中配置 --library 标志,这样就不必每次都传入:
// 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 可覆盖检测结果。
更多命令
运行 b2c content --help,查看 content 主题下所有可用命令和选项的完整列表。
故障排除
- “Library is required”——设置
--library标志,或在dw.json中配置content-library。 - 身份验证错误——先检查解析后的配置。SCAPI 需要使用
sfcc.jobs.rw和租户范围进行客户端凭据或 JWT 身份验证;浏览器登录仅适用于 OCAPI/WebDAV。使用b2c-cli:b2c-auth进行设置。--library-file会跳过远程导出作业;添加--offline还可跳过资源下载。 - 找不到库——确认库 ID 完全匹配。对于站点专用库,请添加
--site-library。 - 未找到内容——检查页面/内容 ID 是否存在。使用
b2c content list查找可用 ID。 - 超时错误——大型库可能会超过默认超时时间。使用
--timeout <seconds>延长超时时间。
相关技能
b2c-cli:b2c-import-set-migrations- 基于专注型内容导出的有序、幂等迁移b2c-cli:b2c-site-import-export- 站点归档导入/导出操作b2c-cli:b2c-webdav- 内容库中的底层文件操作b2c-cli:b2c-config- 配置和凭据管理