Impostazione degli eventi in B2C Commerce (progetto pilota)
Utilizzare gli eventi in B2C Commerce per ricevere notifiche quando si verificano determinati dati o eventi di elaborazione nell'ambiente Commerce Cloud. È possibile abilitare i tipi di evento e configurare i connettori in Business Manager; B2C Commerce indirizza gli eventi direttamente ai connettori configurati.
Versioni (Edition) richieste
| Disponibile in: B2C Commerce |
Gli eventi forniscono notifiche quando si verificano modifiche specifiche in B2C Commerce, in modo da poter attivare i processi aziendali in sistemi esterni, ad esempio invalidando la cache all'esterno della piattaforma, sincronizzando i dati con sistemi di ricerca o di ordine esterni o eseguendo flussi di lavoro di gestione degli ordini o di marketing a valle. Aiuta a mantenere gli storefront accurati, riduce il monitoraggio manuale del completamento delle operazioni della piattaforma e separa la logica di business dalle operazioni della piattaforma. Ciò è particolarmente utile per le implementazioni di storefront ibride o headless. Gli eventi sono destinati ai clienti, agli sviluppatori e ai merchandiser che reagiscono agli eventi della piattaforma.
Gli eventi supportano due casi d'uso principali: la notifica ai propri sistemi (o servizi esterni) quando si verificano eventi di dati o elaborazione in B2C Commerce e la notifica ad altri servizi Commerce Cloud. B2C Commerce recapita gli eventi solo alle destinazioni configurate. Per il progetto pilota, non c'è un bus dell'evento separato; B2C Commerce indirizza gli eventi direttamente ai connettori configurati (ad esempio i webhook) dall'interno della piattaforma.
È possibile abilitare i tipi di evento desiderati per il tenant, quindi configurare uno o più connettori, ad esempio l'URL di un webhook, in Business Manager. Quando si verifica un evento abilitato, B2C Commerce lo invia in modo asincrono a ogni connettore configurato. Vengono inviati solo i tipi di evento abilitati e solo ai connettori configurati. Se non si configura alcun connettore per un tipo di evento, non viene inviata alcuna notifica per quel tipo.
Tipi di eventi: il framework supporta gli eventi di dati e gli eventi di elaborazione. Per l'ambito pilota corrente, i tipi di evento iniziali sono eventi di elaborazione della replica. I due tipi di eventi di replica sono disponibili con B2C Commerce release 26.6.
| ID evento | Descrizione | Quando viene sparato |
|---|---|---|
sf.cc.replication.completed |
Replica completata correttamente | Quando un processo di replica raggiunge lo stato COMPLETATO |
sf.cc.replication.failed |
Replica non riuscita | Quando un processo di replica raggiunge lo stato FAILED |
Intestazioni HTTP: tutti gli eventi di replica includono le intestazioni standard della piattaforma Commerce Cloud.
| Intestazione | Descrizione | Esempio |
|---|---|---|
x-sf-cc-timestamp |
Timestamp ISO-8601 quando è stato generato l'evento | 2026-03-11T13:31:13.755934395Z |
x-sf-cc-instance-id |
Identificatore dell'istanza (minuscolo) | zzzz_prd |
x-sf-cc-site-id |
Identificatore del sito (vuoto per le operazioni a livello di organizzazione) | RefArch o "" |
x-sf-cc-correlation-id |
ID di correlazione per il monitoraggio tra sistemi | 550E8400-E29B-41D4-A716-446655440000 |
x-sf-cc-event-id |
Identificatore del tipo di evento | sf.cc.replication.completed |
Struttura del payload JSON: tutti gli eventi di replica includono questi campi comuni.
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
Processid | string | Sì | Identificatore univoco per il processo di replica |
Uuid | string | Sì | UUID del processo di replica |
type | string | Sì | Tipo di processo di replica (vedere Tipi di processo) |
targetSystem | string | Sì | Nome del sistema di destinazione, in genere Development o Production |
Stato | string | Sì | Stato attuale del processo (vedere stati del processo) |
isDataReplication | booleano | Sì | true per la replica dei dati, false per la replica del codice |
Successo | booleano | Sì | true per gli eventi completati, false per gli eventi non riusciti |
description | string | No | Descrizione del processo di replica fornita dall'utente |
codeVersion | string | No | Identificatore di versione del codice per le repliche di codice |
replicationGroups | Matrice | Sì | Elenco dei gruppi di replica inclusi (vedere Gruppi di replica) |
Startdate | string | Sì | Data e ora ISO-8601 all'avvio del processo |
Enddate | string | Sì | Data e ora ISO-8601 al termine del processo |
Campo specifico per l'errore: gli eventi non riusciti (sf.cc.replication.failed) includono errorState, un codice di stato di errore leggibile dal computer.
Tipi di processo: il campo tipo indica l'operazione di replica.
| Valore di replica dei dati | Descrizione |
|---|---|
ReplicationPublication | Trasferimento dei dati e pubblicazione immediata |
Replica | Solo trasferimento dati (replica in due fasi) |
Pubblicazione | Pubblicazione dei dati trasferiti in precedenza |
Annulla | Annullamento di una replica precedente |
| Valore di replica del codice | Descrizione |
|---|---|
CodeReplicationPublication | Trasferimento del codice e pubblicazione immediata |
Replica del codice | Solo trasferimento codice |
Pubblicazione del codice | Pubblicazione del codice trasferito in precedenza |
CodiceAnnulla | Annullamento di una replica di codice precedente |
Stati del processo: il campo stato indica lo stato del processo.
| Valore | Descrizione |
|---|---|
ATTESA | Il processo è stato creato ed è pronto per l'avvio |
INIZIALIZZAZIONE | Il processo si sta preparando per l'esecuzione |
CORSA | Il processo è in corso |
FINALIZZAZIONE | Il processo è in fase di finalizzazione |
COMPLETATO | Processo completato con successo |
FALLITO | Processo non riuscito |
L'istruzione CANCELED è deprecata e non dovrebbe comparire nei nuovi eventi.Gruppi di replica: l'array replicationGroups descrive ciò che è stato replicato.
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
id | string | Sì | Identificatore di gruppo leggibile dal computer |
type | string | Sì | Ambito del gruppo: ORGANIZZAZIONE, SITO o REPOSITORY |
Dominio | string | No | Nome di dominio per i gruppi con ambito repository |
ID di gruppo a livello di organizzazione
| ID | Descrizione |
|---|---|
ORGANIZATION_CATALOG | Tutti i cataloghi |
ORGANIZATION_CATALOG_STATIC | Contenuto statico per tutti i cataloghi |
ORGANIZATION_CSC_SETTINGS | Impostazioni di Customer Service Center |
ORGANIZATION_CSRF_WHITELIST_PIPELINES | Pipeline/nodi iniziali della whitelist CSRF |
ORGANIZATION_CUSTOMERLIST | Tutti gli elenchi clienti |
ORGANIZATION_CUSTOM_OBJECT | Oggetti personalizzati dell'organizzazione |
ORGANIZATION_TYPE_DEFINITION | Tipi di oggetti personalizzati ed estensioni di sistema |
ORGANIZATION_REFERENCE_DATA | Dati di geolocalizzazione |
ORGANIZATION_LIBRARY | Tutte le librerie condivise |
ORGANIZATION_OAUTH_PROVIDERS | Provider OAuth |
IMPOSTAZIONI_OCAPI_ORGANIZZAZIONE | Impostazioni globali OCAPI |
ORGANIZATION_PAGE_META_TAGS | Definizioni metatag di pagina |
ORGANIZATION_PREFERENCE | Preferenze dell'organizzazione |
ORGANIZATION_PREFERENCE_CUSTOM | Solo preferenze personalizzate |
ORGANIZATION_PREFERENCE_SYSTEM | Solo preferenze di sistema |
ORGANIZATION_PRICE_BOOK | Tutti i listini prezzi |
ORGANIZATION_SITE | Tutti i siti |
ORGANIZATION_STATIC_CONTENT | Contenuto statico globale |
ORGANIZATION_WEBDAV_CLIENT_PERMISSIONS | Autorizzazioni client WebDAV |
ORGANIZATION_SORTING | Regole di ordinamento globale |
ORGANIZATION_PAYMENTS_CONFIG | Configurazione dei pagamenti |
ORGANIZATION_ASSIGNMENT | Assegnazioni e qualificatori |
ID di gruppo a livello di sito
| ID | Descrizione |
|---|---|
SITE_ABTEST | Test A/B ed esperienze |
SITE_ABTEST_ONLY | Solo test A/B |
SITE_ACTIVEDATAFEED | Definizioni dei feed di dati attivi |
SITE_CACHE_SETTINGS | Impostazioni della cache |
SITE_CONTENT | Libreria dei contenuti |
SITE_COUPON | Coupon |
SITE_CUSTOMER_GROUP | Gruppi clienti |
SITE_CUSTOM_OBJECT | Oggetti personalizzati specifici del sito |
SITE_DYNAMIC | Contenuto dinamico |
IMPOSTAZIONI_OCAPI_SITO | Impostazioni OCAPI del sito |
SITE_PAYMENT_METHOD | Configurazione del pagamento |
SITE_PREFERENCE | Preferenze del sito |
SITE_PREFERENCE_SYSTEM | Preferenze di sistema del sito |
SITE_PREFERENCE_CUSTOM | Preferenze personalizzate del sito |
SITE_PROMOTION | Campagne e promozioni |
SITE_SEARCH_INDEX | Indici di ricerca |
SITE_SHIPPING_METHOD | Metodi di spedizione |
SITE_SLOT | Slot di contenuto |
SITE_SORTING | Ordinamento specifico per sito |
SITE_SOURCECODE | Codici sorgente |
SITE_STORE | Negozi |
SITE_TAX | Impostazioni di tassazione |
SITE_URL | URL dello storefront |
SITE_URL_CATEGORY | URL catalogo |
SITE_URL_FOLDER | URL di contenuto |
SITE_URL_PIPELINE | URL di pipeline |
SITE_URL_REDIRECT | Reindirizzamenti URL |
ID di gruppo a livello di repository
| ID | Descrizione |
|---|---|
CATALOGO | Catalogo specifico (il dominio contiene il nome del catalogo) |
CATALOG_STATIC | Contenuto statico specifico del catalogo |
SITO | Sito specifico (il dominio contiene il nome del sito) |
LIBRERIA | Libreria specifica (il dominio contiene il nome della libreria) |
PRICE_BOOK | Listino prezzi specifico (il dominio contiene il nome del listino prezzi) |
Stati di errore: gli eventi non riusciti includono valori errorState leggibili dal computer.
| Valore | Descrizione |
|---|---|
ERROR_INITIALIZATION | Impossibile inizializzare il processo di replica |
ERROR_STAGING_PROCESS_CREATION | Impossibile creare il processo di staging |
ErrorInternalLive | Errore interno nel sistema di destinazione |
ErrorInternalEdit | Errore interno nel sistema di origine |
ErrorNonStagedParentSites | Il contenuto selezionato appartiene a siti non ancora replicati |
ErrorConnectLiveSystem | Impossibile connettersi al sistema di destinazione |
ErroreCreazioneLiveStagingErrorCreatingLiveStagingProcess | Impossibile inizializzare il processo nel sistema di destinazione |
ErrorExecutingEditingStagingPipeline | Errore interno nella pipeline del sistema di origine |
ErrorLiveStagingProcessKilled | Processo interrotto nel sistema di destinazione |
ErrorEditingStagingProcessKilled | Processo interrotto nel sistema di origine |
ErrorStagingProcessCancelled | Il processo è stato annullato |
NoStagingProcessCreated | Impossibile inizializzare il processo |
ErrorStagingProcessModeNotSupported | Modalità di processo non supportata |
ErrorTableLocked (Tabella degli errori) | Tabella del database bloccata |
ErrorInitializingStagingProcessors | Impossibile inizializzare i processori |
ErrorCallingLivePipeline (ErroreChiamataLivePipeline) | Connessione al sistema di destinazione non riuscita |
ErrorSynonymState | Stato interno critico non valido sulla destinazione |
ErrorAcquiringEditingLocks | Impossibile acquisire i blocchi nel sistema di origine |
ErrorAcquiringLiveLocks | Impossibile acquisire i blocchi nel sistema di destinazione |
Preparazione dell'errore | Preparazione non riuscita nel sistema di origine |
ErrorRefreshCache (Cache di ErrorRefreshCache) | Aggiornamento della cache non riuscito nel sistema di destinazione |
ErrorReplication | Trasferimento dei dati al sistema di destinazione non riuscito |
Pubblicazione dell'errore | Pubblicazione dei dati trasferiti non riuscita |
Configurazione dei tipi di evento
Dopo aver configurato i connettori, esaminare e abilitare i tipi di evento per il tenant. I payload di esempio seguenti mostrano i dati degli eventi ricevuti dal connettore per gli eventi di replica completata, non riuscita e di codice.
Evento di replica riuscito
{
"eventType": "sf.cc.replication.completed",
"timestamp": "2026-03-11T13:31:13.755934395Z",
"tenantId": "zzzz_stg",
"payload": {
"processId": "12345",
"uuid": "550e8400-e29b-41d4-a716-446655440000",
"tipo": "ReplicationPublication",
"targetSystem": "Produzione",
"stato": "COMPLETED",
"isDataReplication": true,
"success": true,
"description": "Aggiornamento settimanale del catalogo",
"replicationGroups": [
{
"id": "ORGANIZATION_CATALOG",
"tipo": "ORGANIZZAZIONE"
},
{
"id": "CATALOGO",
"tipo": "REPOSITORY",
"domain": "storefront-catalog-m-en"
}
],
"startDate": "2026-03-11T13:31:03Z",
"endDate": "2026-03-11T13:31:13.727Z"
}
}
Evento di replica non riuscito
{
"eventType": "sf.cc.replication.failed",
"timestamp": "2026-03-11T14:22:18.442Z",
"tenantId": "zzzz_prd",
"payload": {
"processId": "12346",
"uuid": "660e8400-e29b-41d4-a716-446655440001",
"tipo": "Replica",
"targetSystem": "Produzione",
"stato": "FAILED",
"isDataReplication": true,
"success": false,
"description": "Aggiornamento di emergenza del contenuto",
"errorState": "ErrorConnectLiveSystem",
"replicationGroups": [
{
"id": "SITE_CONTENT",
"tipo": "SITO"
},
{
"id": "SITO",
"tipo": "REPOSITORY",
"dominio": "RefArch"
}
],
"startDate": "2026-03-11T14:22:15Z",
"endDate": "2026-03-11T14:22:18.442Z"
}
}
Evento di replica del codice
{
"eventType": "sf.cc.replication.completed",
"timestamp": "2026-03-11T15:05:32.118Z",
"tenantId": "zzzz_prd",
"payload": {
"processId": "12347",
"uuid": "770e8400-e29b-41d4-a716-446655440002",
"tipo": "CodeReplicationPublication",
"targetSystem": "Sviluppo",
"stato": "COMPLETED",
"isDataReplication": false,
"success": true,
"codeVersion": "version1",
"replicationGroups": [],
"startDate": "2026-03-11T15:00:00Z",
"endDate": "2026-03-11T15:05:32.118Z"
}
}
Note sull'implementazione
- Tutti i timestamp utilizzano il formato ISO-8601 con indicatore di fuso orario.
- Gli ID di istanza vengono normalizzati in minuscolo.
- L'ID sito è vuoto per le operazioni a livello di organizzazione (i processi di replica sono a livello di organizzazione).
- Il campo
della descrizioneè un testo facoltativo fornito dall'utente. - Una matrice
replicationGroupsvuota indica una replica di solo codice. - Gli stati di errore sono codici leggibili dalla macchina, non testo localizzato.
Connettori: I connettori sono le destinazioni a cui B2C Commerce invia le notifiche degli eventi (ad esempio, un webhook HTTP a un URL fornito dall'utente). La consegna è asincrona tramite un componente interno di invio degli eventi quasi in tempo reale. Per il pilota, la piattaforma garantisce la consegna con il massimo sforzo. Oltre al progetto pilota, Salesforce prevede di aggiungere meccanismi per la ripetizione dei tentativi e una gestione degli errori più efficace. L'autenticazione e i controlli di sicurezza regolano l'accesso agli eventi. Solo i tipi di evento abilitati generano notifiche e gli eventi vengono inviati solo ai connettori configurati. Il progetto corrente utilizza un modello push: B2C Commerce avvia la richiesta HTTP all'endpoint. Verificare che l'endpoint restituisca una risposta corretta (ad esempio, HTTP 200) dopo aver accettato ed elaborato l'evento. Per ulteriori informazioni su B2C Commerce Connector, vedere B2C Commerce Connector.
Per impostare gli eventi, attenersi alla seguente procedura:
-
In Business Manager, aprire l'area degli eventi o delle integrazioni (il percorso può variare in base alla versione).
Aggiungere le informazioni richieste per un connettore (webhook) in cui si desidera che B2C Commerce invii le notifiche degli eventi. Configurare più di un connettore in modo che i diversi eventi vengano inviati a sistemi diversi:
- URL — URL — Inserire l'URL completo dell'endpoint (ad esempio, ). Commerce Cloud richiede l'accesso all'endpoint; configurare le regole del firewall per consentire a Commerce Cloud di richiamare l'URL. Segnaposto: esempio di richiesta HTTP ricevuta dal webhook. Sostituire con il campione effettivo quando disponibile. POST /events HTTP/1.1 Host: your-system.example.com Tipo di contenuto: application/json
- Autenticazione: se l'endpoint richiede l'autenticazione, configurare il metodo (ad esempio chiave API, OAuth o TLS (Transport Layer Security) reciproco) e le credenziali o i token forniti dall'interfaccia utente di Business Manager. Archiviare le credenziali in modo sicuro. Non condividerli.
-
Intestazioni: se l'endpoint prevede intestazioni HTTP specifiche (ad esempio, un'intestazione di chiave API personalizzata), configurarle nelle impostazioni del connettore. La piattaforma può aggiungere automaticamente intestazioni standard (ad esempio,
Content-Type: application/json).
-
Esaminare l'elenco dei tipi di eventi disponibili e le relative descrizioni.

-
Per ogni tipo di evento che si vuole usare, abilitarlo per il tenant.
Solo i tipi di eventi abilitati generano notifiche; I tipi disabilitati non inviano eventi. Abilita o disabilita i tipi di evento in qualsiasi momento. È sufficiente specificare il connettore esistente desiderato (webhook) per il tipo di evento desiderato. Nota: Quando si abilita un tipo di evento, è possibile scegliere solo da un webhook esistente, quindi assicurarsi che il passaggio 1 sia stato completato prima di questo.Salvare le modifiche.
È possibile utilizzare B2C Commerce Log Center per monitorare e diagnosticare i problemi relativi alla consegna o agli endpoint. Vedere Log Center.

