在 B2C Commerce 中设置事件(试点)
在 B2C Commerce 中使用事件可在 Commerce Cloud 环境中发生某些数据或处理事件时接收通知。您可以在 Business Manager 中启用事件类型并配置连接器;B2C Commerce 将事件直接路由到配置的连接器。
所需的 Edition
| 可用于:B2C Commerce |
当 B2C Commerce 中发生特定更改时,事件会提供通知,以便您可以触发外部系统中的业务流程,例如,使平台外部的缓存失效、将数据同步到外部搜索或订单系统,或者运行下游订单或营销工作流。它有助于保持网店的准确性,减少对平台操作完成时间的手动跟踪,并将业务逻辑与平台操作分离。这对于混合或无头网店实施特别有用。事件适用于对平台事件做出反应的客户开发人员和商家。
事件支持两个主要用例:当 B2C Commerce 中发生数据或处理事件时通知您自己的系统(或外部服务),以及通知其他 Commerce Cloud 服务。B2C Commerce 仅将事件传送到您配置的目标。对于飞行员来说,没有单独的事件总线;B2C Commerce 从平台内将事件直接路由到配置的连接器(如 Webhook)。
启用您为租户关心的事件类型,然后在 Business Manager 中配置一个或多个连接器,例如 Webhook URL。当发生启用事件时,B2C Commerce 会将其异步发送到每个配置的连接器。仅向已启用的事件类型发送,并且仅发送到您设置的连接器。如果未为事件类型配置任何连接器,则不会发送该类型的通知。
事件类型 :框架支持数据事件和处理事件。对于当前的试点范围,初始事件类型是复制处理事件。B2C Commerce 26.6 版提供了这两种复制事件类型。
| 事件 ID | 描述 | 被解雇时 |
|---|---|---|
sf.cc.replication.completed |
复制已成功完成 | 当复制过程达到 COMPLETED 状态时 |
sf.cc.replication.失败 |
复制失败 | 当复制过程达到 FAILED 状态时 |
HTTP 标头 :所有复制事件都包括标准 Commerce Cloud 平台标头。
| 页眉 | 描述 | 示例 |
|---|---|---|
x-sf-cc-时间戳 |
生成事件时的 ISO-8601 时间戳 | 2026-03-11T13:31:13.755934395Z |
x-sf-cc-实例 ID |
实例标识符(小写) | zzzz_prd |
x-sf-cc-站点 ID |
站点标识符(对于组织级操作为空) | RefArch 或 “” |
x-sf-cc-相关 ID |
用于跨系统跟踪的相关 ID | 550e8400-e29b-41d4-a716-446655440000 |
x-sf-cc-事件 ID |
事件类型标识符 | sf.cc.replication.completed |
JSON 有效负载结构 :所有复制事件都包含这些公共字段。
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
进程 ID | string | 是 | 复制过程的唯一标识符 |
Uuid | string | 是 | 复制过程的 UUID |
类型 | string | 是 | 复制流程类型(请参阅流程类型) |
目标系统 | string | 是 | 目标系统名称,通常为“开发”或“生产” |
状态 | string | 是 | 流程的当前状态(请参阅流程状态) |
isDataReplication | 布尔 | 是 | true 表示数据复制, false 表示代码复制 |
成功 | 布尔 | 是 | true 表示已完成事件, false 表示失败事件 |
描述 | string | 否 | 用户提供的复制过程说明 |
codeVersion | string | 否 | 代码复制的代码版本标识符 |
复制组 | 阵 列 | 是 | 包含的复制组列表(请参阅复制组) |
开始日期 | string | 是 | ISO-8601 进程启动时的时间戳 |
结束日期 | string | 是 | ISO-8601 进程结束时的时间戳 |
特定于故障的字段 :失败事件 (sf.cc.replication.failed) 包括 errorState ,这是机器可读的错误状态代码。
流程类型: 类型 字段表示复制操作。
| 数据复制价值 | 描述 |
|---|---|
复制发布 | 数据传输和即时发布 |
复制 | 仅数据传输(两阶段复制) |
出版 | 发布以前传输的数据 |
撤消 | 撤消以前的复制 |
| 代码复制值 | 描述 |
|---|---|
CodeReplicationPublication | 代码传输和即时发布 |
代码复制 | 仅代码传输 |
代码发布 | 发布以前传输的代码 |
代码撤消 | 撤消以前的代码复制 |
进程状态: 状态 字段表示进程状态。
| 值 | 描述 |
|---|---|
等 | 流程已创建并准备开始 |
初始 化 | 进程正在准备运行 |
运行 | 流程正在进行中 |
敲定 | 流程正在完成 |
完成 | 流程成功完成 |
失败 | 进程失败 |
CANCELED 已弃用,不应出现在新事件中。复制组: replicationGroups 数组描述复制的内容。
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
id | string | 是 | 机器可读的组标识符 |
类型 | string | 是 | 组范围:组织、 站点 或 存储库 |
域 | string | 否 | 存储库范围的组的域名 |
组织级组 ID
| ID | 描述 |
|---|---|
ORGANIZATION_CATALOG | 所有目录 |
ORGANIZATION_CATALOG_STATIC | 所有目录的静态内容 |
ORGANIZATION_CSC_SETTINGS | Customer Service Center 设置 |
ORGANIZATION_CSRF_WHITELIST_PIPELINES | CSRF 允许列表 Pipeline /启动节点 |
ORGANIZATION_CUSTOMERLIST | 所有客户列表 |
ORGANIZATION_CUSTOM_OBJECT | 组织自定义对象 |
ORGANIZATION_TYPE_DEFINITION | 自定义对象类型和系统扩展 |
ORGANIZATION_REFERENCE_DATA | 地理定位数据 |
ORGANIZATION_LIBRARY | 所有共享库 |
ORGANIZATION_OAUTH_PROVIDERS | OAuth 供应商 |
组织_OCAPI_设置 | 全局 OCAPI 设置 |
ORGANIZATION_PAGE_META_TAGS | 页面元标记定义 |
ORGANIZATION_PREFERENCE | 组织首选项 |
ORGANIZATION_PREFERENCE_CUSTOM | 仅限自定义首选项 |
ORGANIZATION_PREFERENCE_SYSTEM | 仅限系统首选项 |
ORGANIZATION_PRICE_BOOK | 所有价目表 |
ORGANIZATION_SITE | 所有站点 |
ORGANIZATION_STATIC_CONTENT | 全局静态内容 |
ORGANIZATION_WEBDAV_CLIENT_PERMISSIONS | WebDAV 客户端权限 |
ORGANIZATION_SORTING | 全局排序规则 |
ORGANIZATION_PAYMENTS_CONFIG | 付款配置 |
ORGANIZATION_ASSIGNMENT | 分配和限定项 |
站点级组 ID
| ID | 描述 |
|---|---|
SITE_ABTEST | A/B 测试和体验 |
SITE_ABTEST_ONLY | 仅限 A/B 测试 |
SITE_ACTIVEDATAFEED | 动态数据来源定义 |
SITE_CACHE_SETTINGS | 缓存设置 |
SITE_CONTENT | 内容库 |
SITE_COUPON | 优惠券 |
SITE_CUSTOMER_GROUP | 客户组 |
SITE_CUSTOM_OBJECT | 站点特定的自定义对象 |
SITE_DYNAMIC | 动态内容 |
SITE_OCAPI_SETTINGS | 站点 OCAPI 设置 |
SITE_PAYMENT_METHOD | 付款配置 |
SITE_PREFERENCE | 站点首选项 |
SITE_PREFERENCE_SYSTEM | 站点系统首选项 |
SITE_PREFERENCE_CUSTOM | 站点自定义首选项 |
SITE_PROMOTION | 活动和促销 |
SITE_SEARCH_INDEX | 搜索索引 |
SITE_SHIPPING_METHOD | 送货方式 |
SITE_SLOT | 网页动态内容 |
SITE_SORTING | 站点特定排序 |
SITE_SOURCECODE | 追踪代码 |
SITE_STORE | 实体店 |
SITE_TAX | 税务设置 |
SITE_URL | 网店 URL |
SITE_URL_CATEGORY | 目录 URL |
SITE_URL_FOLDER | 网页内容 URL |
SITE_URL_PIPELINE | Pipeline URL |
SITE_URL_REDIRECT | URL 重定向 |
存储库级组 ID
| ID | 描述 |
|---|---|
目录 | 特定目录(域包含目录名称) |
CATALOG_STATIC | 特定目录静态内容 |
网站 | 特定站点(域包含站点名称) |
图书馆 | 特定库(域包含库名称) |
PRICE_BOOK | 特定价目表(域包含价目表名称) |
错误状态 :失败事件包括机器可读 的 errorState 值。
| 值 | 描述 |
|---|---|
ERROR_INITIALIZATION | 无法初始化复制进程 |
ERROR_STAGING_PROCESS_CREATION | 无法创建准备环境进程 |
ErrorInternalLive | 目标系统中的内部错误 |
错误内部编辑 | 源系统中的内部错误 |
错误NonStagedParentSites | 所选内容属于尚未复制的站点 |
错误连接LiveSystem | 无法连接到目标系统 |
错误创建LiveStagingProcess | 无法初始化目标系统中的进程 |
ErrorExecutingEditingStagingPipeline | 源系统管道中的内部错误 |
ErrorLiveStagingProcessKilled(错误LiveStagingProcessKilled) | 进程在目标系统中中止 |
ErrorEditingStagingProcessKilled(错误编辑暂存过程已杀) | 进程在源系统中中止 |
ErrorStagingProcessCancelled | 流程已取消 |
NoStagingProcessCreated | 进程无法初始化 |
ErrorStagingProcessModeNotSupported | 不支持过程模式 |
错误表锁定 | 锁定的数据库表 |
ErrorInitializingStagingProcessors | 无法初始化处理器 |
错误调用LivePipeline | 与目标系统的连接失败 |
错误SynonymState | 目标上的严重无效内部状态 |
ErrorAcquiringEditingLocks | 无法获取源系统中的锁 |
错误获取LiveLocks | 无法获取目标系统中的锁 |
错误准备 | 在源系统中准备失败 |
错误刷新缓存 | 目标系统中的缓存刷新失败 |
错误复制 | 向目标系统传输数据失败 |
错误发布 | 传输数据发布失败 |
配置事件类型
配置连接器后,查看并启用租户的事件类型。以下示例有效负载显示了连接器接收的已完成、失败和代码复制事件的事件数据。
成功的复制事件
{
“eventType”: “sf.cc.replication.completed”,
“时间戳”:“2026-03-11T13:31:13.755934395Z”,
“tenantId”: “zzzz_stg”,“
有效负载”: {
“processId”:“12345”,“
UUID”:“550e8400-e29b-41d4-a716-446655440000”,
“类型”:“ReplicationPublication”,
“targetSystem”:“生产”,“
状态”:“COMPLETED”,“
isDataReplication”: true,
“success”: true,“
description”:“每周目录更新”,
“replicationGroups”: [
{
“id”:“ORGANIZATION_CATALOG”,“
类型”:“组织”
},
{
“id”:“目录”,“
类型”:“存储库”,
“域”: “storefront-catalog-m-en”
}
],“
startDate”:“2026-03-11T13:31:03Z”,“
结束日期”:“2026-03-11T13:31:13.727Z”
}
}
复制失败事件
{
“eventType”: “sf.cc.replication.failed”,
“时间戳”:“2026-03-11T14:22:18.442Z”,
“tenantId”: “zzzz_prd”,“
有效负载”: {
“processId”:“12346”,“
UUID”:“660e8400-e29b-41d4-a716-446655440001”,“
类型”:“复制”,“
目标系统”:“生产”,“
状态”:“失败”,“
isDataReplication”:true,“
成功”:false,“
描述”:“紧急内容更新”,“
errorState”:“ErrorConnectLiveSystem”,
“replicationGroups”: [
{
“id”:“SITE_CONTENT”,“
类型”:“站点”
},
{
“id”:“SITE”,“
类型”:“存储库”,“
域”:“RefArch”
}
],
“startDate”:“2026-03-11T14:22:15Z”,“
结束日期”:“2026-03-11T14:22:18.442Z”
}
}
代码复制事件
{
“eventType”: “sf.cc.replication.completed”,
“时间戳”:“2026-03-11T15:05:32.118Z”,
“tenantId”: “zzzz_prd”,
“payload”: {
“processId”:“12347”,“
UUID”:“770e8400-e29b-41d4-a716-446655440002”,“
类型”:“CodeReplicationPublication”,
“targetSystem”:“开发”、“
状态”:“COMPLETED”,“
isDataReplication”: false,
“success”: true,
“codeVersion”: “version1”,“
replicationGroups”: [],“
startDate”:“2026-03-11T15:00:00Z”,“
结束日期”:“2026-03-11T15:05:32.118Z”
}
}
实施说明
- 所有时间戳均使用带有时区指示器的 ISO-8601 格式。
- 实例 ID 规范化为小写。
- 对于组织级操作(复制过程为组织级),站点 ID 为空。
描述字段是可选的用户提供的文本。- 空
的 replicationGroups数组表示纯代码复制。 - 错误状态是机器可读的代码,而不是本地化的文本。
连接器:连接器是 B2C Commerce 向其发送事件通知的目标(例如,指向您提供的 URL 的 HTTP Webhook)。通过内部事件调度组件近乎实时地进行异步交付。对于试点来说,该平台保证了尽最大努力交付。除了试点之外,Salesforce还计划增加重试机制和更强大的错误处理机制。身份验证和安全控制控制对事件的访问。只有启用的事件类型才会生成通知,并且事件只会发送到已配置的连接器。当前设计使用推式模型:B2C Commerce 向您的端点发起 HTTP 请求。确认终端节点在接受并处理事件后返回成功响应(例如 HTTP 200)。有关 B2C Commerce 连接器的详细信息,请参阅 B2C Commerce 连接器。
若要设置事件,请执行以下步骤:
-
在 Business Manager 中,打开事件或集成区域(路径可能因版本而异)。
为希望 B2C Commerce 在其中传递事件通知的连接器 (Webhook) 添加所需信息。配置多个连接器,以便将不同的事件发送到不同的系统:
- URL — URL — 输入完整的端点 URL(例如 )。Commerce Cloud 需要访问端点;配置防火墙规则以允许 Commerce Cloud 调用您的 URL。占位符:Webhook 接收的示例 HTTP 请求。如果可用,请替换为实际样品。POST /events HTTP/1.1 主机:your-system.example.com 内容类型:application/json
- 身份验证 — 如果您的端点需要身份验证,请配置 Business Manager UI 提供的方法(例如,API 密钥、OAuth 或相互传输层安全性 (TLS))和凭据或令牌。安全地存储凭据。不要分享它们。
-
标头 — 如果您的终端节点需要特定的 HTTP 标头(例如,自定义 API 密钥标头),请在连接器设置中配置它们。平台可以自动添加标准标头(例如,
Content-Type: application/json)。
-
查看可用事件类型列表及其说明。

-
对于要使用的每个事件类型,请为租户启用它。
只有启用的事件类型才会生成通知;禁用类型不发送事件。随时启用或禁用事件类型。只需为您感兴趣的事件类型指定所需的现有连接器 (Webhook)。注:启用事件类型时,只能从现有 Webhook 中进行选择,因此请确保在此之前已完成步骤 1。保存更改。
使用 B2C Commerce Log Center 监控和诊断交付或端点问题。请参阅 Log Center。

