mcpField
B
b2c-mrt

b2c-mrt

github.com/salesforcecommercecloud云与 DevOps5786 次安装今天更新
代码仓库

关于 b2c-mrt

面向 PWA Kit 店铺团队的 b2c CLI 使用技能,用于管理 Managed Runtime 项目、环境、Bundle 和部署。它说明认证与配置来源,并介绍 legacy MRT Cloud API 与 SCAPI 后端的选择。

主要功能

  1. 01管理项目和环境
  2. 02部署及查看 Bundle
  3. 03维护环境变量与重定向
  4. 04配置组织成员和证书
  5. 05解析认证及后端配置

适用场景

  1. 01将本地构建部署到测试或生产环境
  2. 02克隆环境并复制配置
  3. 03查看部署历史或下载 Bundle
  4. 04管理环境变量和 URL 重定向

安装

复制下面的命令,在终端中运行。

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

安装后在 Claude Code 中输入/b2c-mrt确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

evals/
trigger-evals.json
references/
BUNDLE-COMMANDS.md
ENVIRONMENT-COMMANDS.md
PROJECT-COMMANDS.md

详细介绍

B2C MRT 技能

使用 b2c CLI 管理 PWA Kit 店面的 Managed Runtime(MRT)项目、环境、Bundle 和部署。

提示: 如果未全局安装 b2c,请改用 npx @salesforce/b2c-cli(例如,npx @salesforce/b2c-cli mrt bundle deploy)。

配置与身份验证

CLI 会从 MRT_API_KEY(或 SFCC_MRT_API_KEY)、dw.json、~/.mobify 或配置插件中解析 MRT API 密钥。项目和环境默认值也可以来自 package.json 中的 b2c(mrtProject、mrtEnvironment)或环境变量。package.json 不能提供 API 密钥或其他机密信息。配置了默认值后,通常不需要使用 --api-key、-p 和 -e 等标志——只有在需要覆盖默认值时才传入。

运行 b2c setup inspect 查看解析后的配置以及每个值的来源(用于脚本时可使用 --json;除非用户明确要求查看,否则应对机密信息进行掩码处理)。有关优先级规则和故障排除,请参阅 b2c-cli:b2c-config 技能。

MRT 后端(旧版与 SCAPI)

大多数 MRT 命令通过 API 密钥访问旧版 MRT Cloud API。部分命令也可以使用 SCAPI MRT 后端:mrt bundle history、mrt bundle list、mrt bundle deploy(本地构建推送和部署现有 <bundleId> 均适用),以及 mrt env var 系列命令(list / set / push / delete)。使用 --mrt-backend 选择后端(也可使用 MRT_BACKEND / SFCC_MRT_BACKEND,或在 dw.json 中设置 mrtBackend):

  • auto(默认)——如果已配置 SCAPI(--short-code + --tenant-id + 客户端凭据或 JWT Bearer 身份验证),则使用 SCAPI;否则使用旧版后端。遇到安全的执行前错误时会回退到旧版后端。每条命令都会请求自身所需的作用域:Bundle 命令使用 sfcc.storefront.deployments[.rw];环境变量命令使用 sfcc.storefront.environments[.rw](读取可接受任一级别,写入则需要 .rw)。
  • legacy——始终使用 MRT Cloud API。
  • scapi——始终使用 SCAPI,不回退;缺少前置条件时会报错。不支持的命令也会报错(除上述 Bundle 和环境变量命令外的所有 MRT 命令)。

注意:

  • 使用 --json 时,这些命令会输出所用后端的原生格式(例如,bundle history 在旧版后端返回 {count, next, previous, deployments},在 SCAPI 后端返回 {limit, offset, total, data};env var list 在旧版后端返回 {count, variables},而在 SCAPI 后端返回原生环境变量映射)。面向用户的表格格式已统一,但 --json 输出未统一。脚本需要稳定格式时,请固定使用 legacy 或 scapi。
  • SCAPI 后端中的环境变量操作使用 Storefront Environments API。set 和 delete 使用合并式 PATCH(仅更改传入的键;delete 会将该键设为 null);两个后端都会始终对值进行掩码处理。push 会根据初次读取结果解析后端,并将所有写入固定到该后端,因此单次 push 不会跨后端操作。
  • SCAPI 处理请求时,会忽略旧版专用标志(并发出警告):--api-key、--cloud-origin / -u、--credentials-file / -c。
  • --storefront(长选项)和 -s(短选项)是 --project / -p 的别名——SCAPI 店面 ID 就是项目 slug,因此在所有 mrt 命令中,这四个选项可以互换。对于 mrt project create,此标志用于设置新项目的 slug(省略时会根据名称自动生成);mrt bundle save 使用 -d 作为 --save-dir,因此 -s 可用于店面别名。

命令结构

mrt
├── org                          - Organizations and B2C connections
│   ├── member                   - Organization-level member management
│   └── cert                     - Custom domain certificates
├── project                      - Project management
│   ├── member                   - Team member management
│   └── notification             - Deployment notifications
├── env                          - Environment management (incl. clone)
│   ├── var                      - Environment variables
│   ├── redirect                 - URL redirects
│   └── access-control           - Access control headers
├── bundle                       - Bundle and deployment management (incl. delete)
└── user                         - User profile and settings

快速示例

部署 Bundle
# Push local build to staging
b2c mrt bundle deploy -p my-storefront -e staging

# Push to production with release message
b2c mrt bundle deploy -p my-storefront -e production -m "Release v1.0.0"

# Deploy existing bundle by ID
b2c mrt bundle deploy 12345 -p my-storefront -e production

# Build and upload a v2-format bundle (upload only; deploy the returned ID separately)
b2c mrt bundle upload-v2 -p my-storefront
管理环境
# List environments
b2c mrt env list -p my-storefront

# Create a new environment
b2c mrt env create qa -p my-storefront --name "QA Environment"

# Clone an existing environment (-e is the source; positional arg is the new slug)
b2c mrt env clone qa -p my-storefront -e staging --clone-redirects --clone-env-vars

# Get environment details
b2c mrt env get -p my-storefront -e production

# Invalidate CDN cache
b2c mrt env invalidate -p my-storefront -e production
环境变量
# List variables
b2c mrt env var list -p my-storefront -e production

# Set variables
b2c mrt env var set API_KEY=secret DEBUG=true -p my-storefront -e staging

# Delete a variable
b2c mrt env var delete OLD_VAR -p my-storefront -e production
查看部署历史
# List bundles in project
b2c mrt bundle list -p my-storefront

# View deployment history for environment
b2c mrt bundle history -p my-storefront -e production

# Download a bundle artifact
b2c mrt bundle download 12345 -p my-storefront

# Delete one or more bundles (uses bulk-delete for >1)
b2c mrt bundle delete 12345 -p my-storefront
b2c mrt bundle delete 12345 12346 12347 -p my-storefront --force
组织成员和证书

组织成员不同于项目成员;他们在组织级别拥有角色。自定义域名证书的作用范围是组织级别,并通过 --certificate-id 传递给 b2c mrt env create/update/clone。

# List, add, update, remove organization members
b2c mrt org member list --org my-org
b2c mrt org member add [email protected] --org my-org --role member --view-all-projects
b2c mrt org member update [email protected] --org my-org --no-cert-permission
b2c mrt org member remove [email protected] --org my-org

# Manage custom domain certificates
b2c mrt org cert list --org my-org
b2c mrt org cert create shop.example.com --org my-org   # output includes the DNS validation record
b2c mrt org cert get 123 --org my-org
b2c mrt org cert restart-validation 123 --org my-org
b2c mrt org cert delete 123 --org my-org
项目管理
# List projects
b2c mrt project list

# Get project details
b2c mrt project get -p my-storefront

# List project members
b2c mrt project member list -p my-storefront

# Add a member
b2c mrt project member add [email protected] -p my-storefront --role developer
URL 重定向
# List redirects
b2c mrt env redirect list -p my-storefront -e production

# Create a redirect
b2c mrt env redirect create -p my-storefront -e production \
  --from "/old-path" --to "/new-path"

# Clone redirects between environments
b2c mrt env redirect clone -p my-storefront --source staging --target production

配置

dw.json

在项目的 dw.json 中配置 MRT 设置:

{
  "mrtProject": "my-storefront",
  "mrtEnvironment": "staging"
}
环境变量
export MRT_API_KEY=your-api-key
export MRT_PROJECT=my-storefront
export MRT_ENVIRONMENT=staging
export MRT_BACKEND=auto        # auto (default) | legacy | scapi
~/.mobify 配置

将 API 密钥存储在 ~/.mobify 中:

{
  "api_key": "your-mrt-api-key"
}

详细参考

更多命令

运行 b2c mrt --help,查看可用命令和选项的完整列表。

评论

支持 Markdown