B2C Commerce에서 이벤트 설정(파일럿)
B2C Commerce의 이벤트를 사용하여 Commerce Cloud 환경에서 특정 데이터 또는 처리 이벤트가 발생할 때 알림을 받을 수 있습니다. Business Manager에서 이벤트 유형을 활성화하고 커넥터를 구성합니다. B2C Commerce는 이벤트를 구성된 커넥터로 직접 라우팅합니다.
필수 Edition
| 다음에서 사용 가능: B2C Commerce |
Eventing은 B2C Commerce에서 특정 변경 사항이 발생할 때 알림을 제공하므로 플랫폼 외부의 캐시 무효화, 외부 검색 또는 주문 시스템에 데이터 동기화, 다운스트림 주문 또는 마케팅 워크플로 실행 등의 외부 시스템에서 비즈니스 프로세스를 트리거할 수 있습니다. 이를 통해 스토어프런트의 정확성을 유지하고, 플랫폼 운영이 완료되는 시점에 대한 수동 추적을 줄이고, 플랫폼 운영에서 비즈니스 로직을 분리할 수 있습니다. 이는 하이브리드 또는 헤드리스 스토어프런트 구현에 특히 유용합니다. Eventing은 플랫폼 이벤트에 반응하는 고객 개발자 및 머천다이저를 위한 것입니다.
Eventing은 B2C Commerce에서 데이터 또는 처리 이벤트가 발생할 때 자체 시스템(또는 외부 서비스)에 알리는 것과 다른 Commerce Cloud 서비스에 알리는 두 가지 주요 사용 사례를 지원합니다. B2C Commerce는 사용자가 구성한 대상에만 이벤트를 전달합니다. 파일럿의 경우 별도의 이벤트 버스가 없습니다. B2C Commerce는 플랫폼 내에서 구성된 커넥터(예: Webhook)로 이벤트를 직접 라우팅합니다.
테넌트에 대해 관심 있는 이벤트 유형을 활성화한 다음, Business Manager에서 하나 이상의 커넥터(예: 웹후크 URL)를 구성합니다. 활성화된 이벤트가 발생하면 B2C Commerce는 이 이벤트를 구성된 각 커넥터에 비동기적으로 전송합니다. 사용하도록 설정된 이벤트 유형만 사용자가 설정한 커넥터에만 전송됩니다. 이벤트 유형에 대해 커넥터를 구성하지 않으면 해당 유형에 대한 알림이 전송되지 않습니다.
이벤트 유형 : 프레임워크는 데이터 이벤트와 처리 이벤트를 지원합니다. 현재 파일럿 범위의 경우 초기 이벤트 유형은 복제 처리 이벤트입니다. 두 가지 복제 이벤트 유형은 B2C Commerce 릴리스 26.6에서 사용할 수 있습니다.
| 이벤트 ID | 설명 | 발사 시 |
|---|---|---|
sf.cc.복제.완료 |
복제가 성공적으로 완료되었습니다. | 복제 프로세스가COMPLETED상태에 도달하는 경우 |
sf.cc.복제.실패 |
복제 실패 | 복제 프로세스가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.복제.완료 |
JSON 페이로드 구조 : 모든 복제 이벤트에는 이러한 공통 필드가 포함됩니다.
| 필드 | 유형 | 필수 | 설명 |
|---|---|---|---|
프로세스 ID | string | 예 | 복제 프로세스의 고유 식별자 |
Uuid | string | 예 | 복제 프로세스의 UUID |
type | string | 예 | 복제 프로세스 유형(프로세스 유형 참조) |
대상 시스템 | string | 예 | 대상 시스템 이름(일반적으로 개발 또는 프로덕션)입니다 |
상태 | string | 예 | 프로세스의 현재 상태(프로세스 상태 참조) |
isDataReplication (영문) | 부울 | 예 | 데이터 복제의 경우true , 코드 복제의 경우false |
성공 | 부울 | 예 | 완료된 이벤트의 경우true , 실패한 이벤트의 경우false |
description | string | 아니요 | 복제 프로세스에 대한 사용자 제공 설명 |
코드버전 | string | 아니요 | 코드 복제를 위한 코드 버전 식별자 |
복제 그룹 | 배열 | 예 | 포함된 복제 그룹 목록(복제 그룹 참조) |
Startdate | string | 예 | 프로세스가 시작된 ISO-8601 타임스탬프 |
Enddate | string | 예 | 프로세스가 종료된 ISO-8601 타임스탬프 |
실패별 필드 : 실패한 이벤트( sf.cc.replication.failed )에는 컴퓨터가 읽을 수 있는 오류 상태 코드인errorState가 포함됩니다.
프로세스 유형 : 유형필드는 복제 작업을 나타냅니다.
| 데이터 복제 값 | 설명 |
|---|---|
복제 게시 | 데이터 전송 및 즉시 게시 |
복제 | 데이터 전송만(2단계 복제) |
게시 | 이전에 전송한 데이터 게시 |
취소 | 이전 복제 실행 취소하기 |
| 코드 복제 값 | 설명 |
|---|---|
CodeReplicationPublication (코드복제 게시) | 코드 전송 및 즉시 게시 |
코드 복제 | 코드 전송만 가능 |
코드출판 | 이전에 전송된 코드 게시 |
코드실행 취소 | 이전 코드 복제 실행 취소 |
프로세스 상태 : 상태필드는 프로세스 상태를 나타냅니다.
| 값 | 설명 |
|---|---|
기다리고 | 프로세스가 생성되고 시작할 준비가 되었습니다. |
초기화 | 프로세스를 실행할 준비를 하고 있습니다. |
실행 | 프로세스가 진행 중입니다. |
마무리 | 프로세스가 마무리 중입니다. |
완료 | 프로세스가 성공적으로 완료되었습니다. |
실패 | 프로세스 실패 |
CANCELED는 더 이상 사용되지 않으며 새 이벤트에 표시되지 않아야 합니다.복제 그룹 : replicationGroups배열은 복제된 항목을 설명합니다.
| 필드 | 유형 | 필수 | 설명 |
|---|---|---|---|
id | string | 예 | 기계가 읽을 수 있는 그룹 식별자 |
type | string | 예 | 그룹 범위: 조직 , 사이트또는저장소 |
도메인 | string | 아니요 | 리포지토리 범위 그룹의 도메인 이름 |
조직 수준 그룹 ID
| ID | 설명 |
|---|---|
ORGANIZATION_CATALOG | 모든 카탈로그 |
ORGANIZATION_CATALOG_STATIC | 모든 카탈로그에 대한 정적 컨텐츠 |
ORGANIZATION_CSC_SETTINGS | Customer Service Center 설정 |
ORGANIZATION_CSRF_WHITELIST_PIPELINES | CSRF 허용 목록 파이프라인/시작 노드 |
ORGANIZATION_CUSTOMERLIST | 모든 고객 목록 |
ORGANIZATION_CUSTOM_OBJECT | 조직 맞춤형 오브젝트 |
ORGANIZATION_TYPE_DEFINITION | 맞춤형 오브젝트 유형 및 시스템 확장 |
ORGANIZATION_REFERENCE_DATA | 위치 정보 데이터 |
ORGANIZATION_LIBRARY | 모든 공유 라이브러리 |
ORGANIZATION_OAUTH_PROVIDERS | OAuth 제공자 |
ORGANIZATION_OCAPI_설정 | 글로벌 OCAPI 설정 |
ORGANIZATION_PAGE_META_TAGS | 페이지 메타 태그 정의 |
ORGANIZATION_PREFERENCE | 조직 기본 설정 |
ORGANIZATION_PREFERENCE_CUSTOM | 맞춤 설정만 |
ORGANIZATION_PREFERENCE_SYSTEM | 시스템 환경설정만 |
ORGANIZATION_PRICE_BOOK | 모든 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_설정 | 사이트 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 | 파이프라인 URL |
SITE_URL_REDIRECT | URL 리디렉션 |
리포지토리 수준 그룹 ID
| ID | 설명 |
|---|---|
카탈로그 | 특정 카탈로그(도메인에 카탈로그 이름이 포함됨) |
CATALOG_STATIC | 특정 카탈로그 정적 컨텐츠 |
사이트 | 특정 사이트(도메인에 사이트 이름이 포함됨) |
라이브러리 | 특정 라이브러리(도메인에 라이브러리 이름이 포함됨) |
PRICE_BOOK | 특정 Price Book(도메인에 Price Book 이름이 포함됨) |
오류 상태 : 실패한 이벤트에는 컴퓨터가 읽을 수 있는errorState값이 포함됩니다.
| 값 | 설명 |
|---|---|
ERROR_INITIALIZATION | 복제 프로세스를 초기화할 수 없습니다. |
ERROR_STAGING_PROCESS_CREATION | 준비 프로세스를 만들 수 없습니다. |
오류 내부 라이브 | 대상 시스템의 내부 오류 |
오류 내부 편집 | 원본 시스템의 내부 오류 |
오류NonStagedParentSites | 선택한 컨텐츠가 아직 복제되지 않은 사이트에 속합니다. |
오류 연결 라이브 시스템 | 대상 시스템에 연결할 수 없습니다. |
오류CreatingLiveStagingProcess | 대상 시스템에서 프로세스를 초기화하지 못했습니다. |
오류실행편집스테이징파이프라인 | 소스 시스템 파이프라인의 내부 오류 |
ErrorLiveStagingProcessKilled(라이브 스테이징 프로세스 사망) | 대상 시스템에서 프로세스가 중단되었습니다. |
ErrorEditingStagingProcessKilled(오류 편집스테이징 프로세스 사망) | 원본 시스템에서 프로세스가 중단되었습니다. |
ErrorStagingProcessCancelled (오류 스테이징 처리 취소) | 프로세스가 취소되었습니다. |
NoStagingProcessCreated (스테이징 프로세스 생성됨) | 프로세스를 초기화할 수 없습니다. |
오류 스테이징 처리 모드NotSupported | 프로세스 모드가 지원되지 않음 |
오류 테이블 잠김 | 잠긴 데이터베이스 테이블 |
ErrorInitializingStagingProcessors (오류 초기화 스테이징 프로세서) | 프로세서를 초기화할 수 없습니다. |
ErrorCallingLivePipeline (영문) | 대상 시스템에 연결하지 못했습니다. |
ErrorSynonymState (영문) | 대상의 치명적이고 잘못된 내부 상태 |
ErrorAcquiringEditingLocks | 원본 시스템에서 잠금을 획득할 수 없습니다. |
ErrorAcquiringLiveLocks (영문) | 대상 시스템에서 잠금을 획득할 수 없습니다. |
오류 준비 | 원본 시스템에서 준비하지 못했습니다. |
오류 새로 고침 캐시 | 대상 시스템에서 캐시 새로 고침에 실패했습니다. |
오류 복제 | 대상 시스템으로의 데이터 전송 실패 |
오류 게시 | 전송된 데이터를 게시하지 못했습니다. |
이벤트 유형 구성
커넥터를 구성한 후 테넌트에 대한 이벤트 유형을 검토하고 사용하도록 설정합니다. 다음 샘플 페이로드는 커넥터가 완료, 실패 및 코드 복제 이벤트에 대해 수신하는 이벤트 데이터를 보여줍니다.
성공적인 복제 이벤트
{
"이벤트 유형": "sf.cc.replication.completed",
"타임스탬프": "2026-03-11T13:31:13.755934395Z",
"tenantId": "zzzz_stg",
"페이로드": {
"프로세스 ID": "12345",
"uuid": "550e8400-e29b-41d4-a716-446655440000",
"유형": "ReplicationPublication",
"targetSystem": "프로덕션",
"상태": "완료됨",
"isDataReplication": 참,
"성공": 참,
"설명": "주간 카탈로그 업데이트",
"replicationGroups": [
{
"id": "ORGANIZATION_CATALOG",
"유형": "조직"
},
{
"id": "카탈로그",
"유형": "REPOSITORY",
"domain": "storefront-catalog-m-en"
}
],
"startDate": "2026-03-11T13:31:03Z",
"종료일": "2026-03-11T13:31:13.727Z"
}
}
실패한 복제 이벤트
{
"이벤트 유형": "sf.cc.replication.failed",
"타임스탬프": "2026-03-11T14:22:18.442Z",
"tenantId": "zzzz_prd",
"페이로드": {
"프로세스 ID": "12346",
"uuid": "660e8400-e29b-41d4-a716-446655440001",
"유형": "복제",
"targetSystem": "프로덕션",
"상태": "실패",
"isDataReplication": 참,
"성공": 거짓,
"설명": "긴급 콘텐츠 업데이트",
"errorState": "ErrorConnectLiveSystem",
"replicationGroups": [
{
"아이디": "SITE_CONTENT",
"유형": "SITE"
},
{
"id": "SITE",
"유형": "저장소",
"도메인": "RefArch"
}
],
"startDate": "2026-03-11T14:22:15Z",
"종료일": "2026-03-11T14:22:18.442Z"
}
}
코드 복제 이벤트
{
"이벤트 유형": "sf.cc.replication.completed",
"타임스탬프": "2026-03-11T15:05:32.118Z",
"tenantId": "zzzz_prd",
"페이로드": {
"프로세스 ID": "12347",
"uuid": "770e8400-e29b-41d4-a716-446655440002",
"유형": "CodeReplicationPublication",
"targetSystem": "개발",
"상태": "COMPLETED",
"isDataReplication": 거짓,
"성공": 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에서 이벤트 알림을 전달할 커넥터(웹후크)에 필요한 정보를 추가합니다. 서로 다른 이벤트가 서로 다른 시스템으로 전송되도록 둘 이상의 커넥터를 구성합니다.
- URL— URL — 전체 엔드포인트 URL(예: )을 입력합니다. Commerce Cloud는 엔드포인트에 액세스해야 합니다. Commerce Cloud에서 URL을 호출하도록 방화벽 규칙을 구성합니다. 자리 표시자: 웹후크가 수신하는 HTTP 요청의 예입니다. 가능한 경우 실제 샘플로 교체하십시오. POST / events HTTP / 1.1 호스트 : your-system.example.com Content-Type : application / json
- 인증 - 엔드포인트에 인증이 필요한 경우 Business Manager UI에서 제공하는 대로 방법(예: API 키, OAuth 또는 상호 TLS(전송 계층 보안))과 자격 증명 또는 토큰을 구성합니다. 자격 증명을 안전하게 저장합니다. 공유하지 마십시오.
-
헤더 - 엔드포인트에 특정 HTTP 헤더(예: 사용자 지정 API 키 헤더)가 필요한 경우 커넥터 설정에서 구성합니다. 플랫폼은 표준 헤더(예:
Content-Type: application/json)를 자동으로 추가할 수 있습니다.
-
사용 가능한 이벤트 유형 목록과 해당 설명을 검토합니다.

-
사용하려는 각 이벤트 유형에 대해 테넌트에 대해 사용하도록 설정합니다.
활성화된 이벤트 유형만 알림을 생성합니다. 비활성화된 형식은 이벤트를 보내지 않습니다. 언제든지 이벤트 유형을 활성화하거나 비활성화할 수 있습니다. 관심 있는 이벤트 유형에 대해 원하는 기존 커넥터(웹후크)를 지정하기만 하면 됩니다. 참고: 이벤트 유형을 활성화할 때 기존 웹후크에서만 선택할 수 있으므로 그 전에 1단계를 완료해야 합니다.변경 사항을 저장합니다.
B2C Commerce Log Center를 사용하여 배달 또는 엔드포인트 문제를 모니터링하고 진단할 수 있습니다. Log Center를 참조하십시오.

