mcpField
B
b2c-content

b2c-content

github.com/salesforcecommercecloud数据与数据库5785 次安装今天更新
代码仓库

关于 b2c-content

b2c-content 技能介绍如何用 `b2c` 命令行处理 Salesforce B2C Commerce 内容库中的 Page Designer 内容,适合管理内容库的开发者。它支持定向导出、内容列表和元定义校验。

主要功能

  1. 01导出指定页面和内容块
  2. 02按类型列出库内容
  3. 03校验元定义 JSON
  4. 04发现实例配置与凭据

适用场景

  1. 01为迁移导出页面
  2. 02查找库中的可复用内容块
  3. 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 - 配置和凭据管理

评论

支持 Markdown