No Results
Search Tips:
- Please consider misspellings
- Try different search keywords
È possibile utilizzare Storefront Preview (Anteprima storefront) per vedere come apparirà il sito PWA (Progressive Web App) Kit in base a un contesto specifico, ad esempio il codice sorgente specificato, i gruppi di clienti o una data o un'ora particolari. Ad esempio, questa funzionalità si può usare se si desidera visualizzare in anteprima come apparirà il proprio sito in occasione di una vendita imminente.
Sono in arrivo i saldi del Black Friday/Cyber Monday? È possibile visualizzare in anteprima le modifiche al sito in ambiente Staging. Quindi, prima di distribuire le modifiche all'ambiente Production, assicurarsi che quelle apportate a elementi quali prodotti, prezzi e strategie di marketing funzionino nel modo previsto.
Inoltre, è possibile integrare Storefront Preview con un sistema CMS (Content Management System) di terze parti. Supponiamo, ad esempio, che si abbia un banner di vendite natalizie gestito dal tuo CMS. È possibile consentire al CMS di riconoscere il contesto corrente, ad esempio la data e l'ora effettive, in modo che l'anteprima del sito visualizzi il contenuto corretto, ad esempio il banner dei saldi natalizi per il periodo specificato.
Storefront Preview è disponibile in Runtime Admin. Questa guida spiega come configurare, utilizzare e risolvere i problemi di Storefront Preview.
Per utilizzare Storefront Preview, è necessario innanzitutto:
@salesforce/commerce-sdk-react@1.4.0
o @salesforce/retail-react-app@2.4.0
. Storefront Preview non è disponibile nelle versioni di PWA Kit precedenti alla 2.8.3 o alla 3.2.x. Eseguire l'upgrade del progetto affinché utilizzi PWA Kit 2.8.3 o 3.2.x a seconda della versione principale corrente.https://runtime.commercecloud.com
.Facoltativamente è possibile scrivere una funzione se si desidera integrare Storefront Preview con un CMS di terze parti. Vedere Aggiunta del componente StorefrontPreview al proprio storefront e Integrazione con un CMS di terze parti.
La funzione da scrivere per l'integrazione con un CMS di terze parti deve essere asincrona. In questo modo si eviteranno risultati imprevisti durante l'anteprima del sito.
Note
È possibile utilizzare Storefront Preview con le versioni più recenti di Chrome o Safari. Il proprio browser deve consentire a https://runtime.commercecloud.com
l'accesso ai cookie di terze parti. Storefront Preview non funzionerà se non si abilitano i cookie di terze parti.
Tip
Seguire questi passaggi di configurazione una tantum richiesti per ogni sito che utilizza Storefront Preview:
È necessario creare un client privato SLAS (Shopper Login and API Access Service) con gli ambiti sfcc.shopper-context.rw
e sfcc.ts_ext_on_behalf_of
per le istanze B2C Commerce utilizzate dallo storefront. Storefront Preview utilizza il client privato SLAS per impostare il contesto nello storefront. Il client privato SLAS può essere facilmente creato utilizzando SLAS Admin UI.
Seguire la procedura descritta nella guida Authorization for Shopper APIs (Autorizzazione per le Shopper API) per creare un client privato SLAS per ogni istanza B2C Commerce in cui si desidera utilizzare Storefront Preview:
sfcc.shopper-context.rw sfcc.ts_ext_on_behalf_of
Copiare il segreto client generato automaticamente e visualizzato nella parte superiore della pagina dei risultati e l'ID client in modo da poterli utilizzare al passaggio successivo.
Per creare le variabili di ambiente MRT, richiamare l'endpoint API MRT projects_target_env_var_partial_update.
Sostituire $SLAS_PRIVATE_CLIENT_ID
e $SLAS_PRIVATE_CLIENT_SECRET
con i valori copiati al passaggio 1. Sostituire $CC_SHORT_CODE
con il valore di configurazione di codice breve proveniente da Business Manager. Per gestire le variabili di ambiente è anche possibile usare Runtime Admin. Vedere Variabili di ambiente.
curl "https://cloud.mobify.com/api/projects/$PROJECT/target/$ENVIRONMENT/env-var/" \
--request 'PATCH' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header "Authorization: Bearer $MOBIFY_API_KEY" \
--data "{
\"CC_SHORT_CODE\": {\"value\": \"$CC_SHORT_CODE\"},
\"SLAS_PRIVATE_CLIENT_ID\": {\"value\": \"$SLAS_PRIVATE_CLIENT_ID\"},
\"SLAS_PRIVATE_CLIENT_SECRET\": {\"value\": \"$SLAS_PRIVATE_CLIENT_SECRET\"}
}"
La chiamata a questa API ridistribuisce il bundle attualmente distribuito. È necessario attendere il completamento della ridistribuzione prima di visualizzare l'anteprima del proprio storefront. Una volta completata la ridistribuzione, il bundle appare sotto l'intestazione Deployed Bundle (Bundle distribuito) nella directory del proprio progetto.
Note
Per utilizzare Storefront Preview con uno storefront connesso alla propria istanza B2C Commerce, è necessario disporre di uno dei seguenti ruoli utente Account Manager: Amministratore di Business Manager o Utente di Business Manager. Per verificare se si dispone di uno di questi ruoli, controllare i ruoli in Account Manager.
Se non si dispone di nessuno dei ruoli richiesti, seguire le istruzioni Granting Permissions (Concessione autorizzazioni) per aggiungere istanze a proprio utente Account Manager.
Note
Affinché la comunicazione tra Runtime Admin e il proprio storefront funzioni, occorre stabilire un canale di comunicazione. L'operazione richiede due passaggi:
StorefrontPreview
da PWA Kit React SDK al proprio storefront. Il componente StorefrontPreview
inserisce uno script per stabilire la comunicazione con Runtime Admin. Questo script non influisce sulle prestazioni dello storefront perché viene caricato solo quando lo storefront è in esecuzione in Storefront Preview.StorefrontPreview
, è necessario definire la proprietà getToken
, che deve restituire il token di accesso dell'acquirente corrente.Facoltativamente, se si desidera integrare Storefront Preview con un CMS di terze parti, è possibile aggiungere la prop onContextChange
al componente StorefrontPreview
. Vedere Integrazione con un CMS di terze parti. Negli esempi seguenti, aggiungiamo la prop onContextChange
e facciamo passare una funzione asincrona denominata handleContextChange
. È possibile sostituire l'istruzione console.log
nella funzione con la handleContextChange
propria logica per rispondere alle modifiche di contesto. Personalizzare la funzione handleContextChange
in base alle proprie esigenze specifiche. Il parametro newContext
nella funzione conterrà le informazioni di contesto aggiornate.
Se si dispone della versione 2.8.x di PWA Kit, utilizzare il seguente codice nello storefront per stabilire un canale di comunicazione. Aggiungere il componente StorefrontPreview
intorno al proprio componente IntlProvider
nel file _app/index.jsx
.
// app/component/_app/index.jsx
import StorefrontPreview from 'pwa-kit-react-sdk/storefront-preview'
const App = () => {
// Optionally, include an asynchronous function such as handleContextChange to integrate with a third-party CMS.
const handleContextChange = async (newContext) => {
console.log('Context changed:', newContext)
}
return (
<Box className="sf-app" {...styles.container}>
<StorefrontPreview
getToken={() => window.localStorage.getItem('token')}
// Pass the optional handleContextChange function to the onContextChange prop.
onContextChange={handleContextChange}
>
<IntlProvider>
<CurrencyProvider currency={currency}>...</CurrencyProvider>
</IntlProvider>
</StorefrontPreview>
</Box>
)
}
export default App
Se si dispone della versione 3.2.x di PWA Kit, utilizzare il seguente codice nello storefront per stabilire un canale di comunicazione. Aggiungere il componente StorefrontPreview
intorno al proprio componente IntlProvider
nel file _app/index.jsx
.
// app/component/_app/index.jsx
import {StorefrontPreview} from '@salesforce/commerce-sdk-react/components'
const App = () => {
const {getTokenWhenReady} = useAccessToken()
// Optionally, include an asynchronous function such as handleContextChange to integrate with a third-party CMS.
const handleContextChange = async (newContext) => {
console.log('Context changed:', newContext)
}
return (
<Box className="sf-app" {...styles.container}>
<StorefrontPreview
getToken={getTokenWhenReady}
//Pass the optional handleContextChange function to the onContextChange prop.
onContextChange={handleContextChange}
>
<IntlProvider>
<CurrencyProvider currency={currency}>...</CurrencyProvider>
</IntlProvider>
</StorefrontPreview>
</Box>
)
}
export default App
defaultPwaKitSecurityHeaders
non esiste in tali versioni.Note
Per abilitare il canale di comunicazione, il proprio storefront deve:
Abilitare il canale di comunicazione aggiungendo https://runtime.commercecloud.com
alle direttive CSP (Content Security Policy) frame-ancestors
, connect-src
e script-src
. Per fare in modo che questa operazione venga gestita automaticamente, importare e utilizzare il middleware defaultPwaKitSecurityHeaders
fornito dal pacchetto pwa-kit-runtime
.
// app/ssr.js
// Using PWA Kit version 3.2.1
import {getRuntime} from '@salesforce/pwa-kit-runtime/ssr/server/express'
import {defaultPwaKitSecurityHeaders} from '@salesforce/pwa-kit-runtime/utils/middleware'
// Using PWA Kit version 2.8.1
import {getRuntime} from 'pwa-kit-runtime/ssr/server/express'
import {defaultPwaKitSecurityHeaders} from 'pwa-kit-runtime/utils/middleware'
const runtime = getRuntime()
const {handler} = runtime.createHandler(options, (app) => {
// Set default HTTP security headers required by PWA Kit / Storefront Preview
app.use(defaultPwaKitSecurityHeaders)
// ...
Se è già stato aggiunto il componente StorefrontPreview allo storefront e ora si desidera eseguire l'integrazione con un CMS di terze parti, aggiungere la prop onContextChange
al componente StorefrontPreview
. Vedere Integrazione con un CMS di terze parti.
Negli esempi seguenti aggiungiamo la prop onContextChange
e una funzione asincrona denominata handleContextChange
. Nella funzione handleContextChange
è possibile sostituire l'istruzione console.log
con la propria logica per accomodare le modifiche del contesto. Personalizzare la funzione handleContextChange
in base alle proprie esigenze specifiche. Il parametro newContext
nella funzione conterrà le informazioni di contesto aggiornate.
Se si dispone di PWA Kit versione 2.8.x, utilizzare il codice seguente per aggiungere la prop onContextChange al file _app/index.jsx
.
// app/component/_app/index.jsx
import StorefrontPreview from 'pwa-kit-react-sdk/storefront-preview'
const App = () => {
// Include an asynchronous function such as handleContextChange to integrate with a third-party CMS.
const handleContextChange = async (newContext) => {
console.log('Context changed:', newContext)
}
return (
<Box className="sf-app" {...styles.container}>
<StorefrontPreview
getToken={() => window.localStorage.getItem('token')}
// Pass the handleContextChange function to the onContextChange prop.
onContextChange={handleContextChange}
></StorefrontPreview>
</Box>
)
}
export default App
Se si dispone di PWA Kit versione 3.2.x, utilizzare il codice seguente e aggiungere la prop onContextChange al file _app/index.jsx
.
// app/component/_app/index.jsx
import {StorefrontPreview} from '@salesforce/commerce-sdk-react/components'
const App = () => {
const {getTokenWhenReady} = useAccessToken()
// Include an asynchronous function such as handleContextChange to integrate with a third-party CMS.
const handleContextChange = async (newContext) => {
console.log('Context changed:', newContext)
}
return (
<Box className="sf-app" {...styles.container}>
<StorefrontPreview
getToken={getTokenWhenReady}
// Pass the handleContextChange function to the onContextChange prop.
onContextChange={handleContextChange}
></StorefrontPreview>
</Box>
)
}
export default App
Per utilizzare Storefront Preview, attenersi alla seguente procedura:
Aprire Runtime Admin nel browser e accedere utilizzando le credenziali di Account Manager.
Passare alla pagina degli ambienti del progetto e fare clic su Preview Site (Anteprima sito) accanto all'ambiente nel quale si desidera visualizzare l'anteprima del sito.
Si apre una nuova scheda che mostra lo storefront, con il modulo Storefront Preview nella barra laterale sinistra.
(Facoltativo) Scegliere la data e l'ora effettiva per il contesto di cui visualizzare l'anteprima. La data e l'ora visualizzate si basano sul fuso orario del computer e vengono quindi convertite in ora UTC prima dell'invio della richiesta che imposta il contesto. Se non si specificano una data e un'ora, l'anteprima rifletterà la data e l'ora correnti.
(Facoltativo) Inserire il codice sorgente che attiva la promozione (assegnazione della campagna) e i listini prezzi (assegnati al gruppo di codici sorgente) per il contesto di cui si desidera visualizzare l'anteprima.
(Facoltativo) Inserire gli ID di gruppo clienti impostati in Business Manager. Separare ogni ID con una virgola.
(Facoltativo) Inserire i qualificatori personalizzati che si applicano ai prezzi, alle promozioni o ai prodotti personalizzati impostati in Business Manager. Le chiavi dei qualificatori personalizzati devono essere univoche. È possibile definire fino a 20 qualificatori personalizzati.
Fare clic su Preview (Anteprima).
Ora è possibile navigare nello storefront utilizzando il contesto di cui si richiede l'anteprima.
Per facilitare la condivisione, l'URL nella scheda del browser viene aggiornato per includere i valori di contesto.
A volte è necessario interagire con lo storefront visualizzato in anteprima per visualizzare il comportamento previsto. Ad esempio, è possibile fare clic su una determinata taglia di abbigliamento per visualizzare l'eventuale prezzo scontato applicabile.
Note
In caso di problemi con Storefront Preview è possibile abilitare i registri di Storefront Preview nell'ambiente MRT. In questo modo quando si fa clic sul pulsante Preview vengono stampati dei registri aggiuntivi per facilitare il debug dei problemi.
Per abilitare i registri di Storefront Preview, aggiungere la variabile di ambiente STOREFRONT_PREVIEW_DEBUG=1
all'ambiente MRT.
È possibile utilizzare i registri MRT con comando tail per leggere i log di Storefront Preview.
In questa sezione vengono suggerite soluzioni per gli errori comuni che possono verificarsi durante l'utilizzo di Storefront Preview.
A seconda del browser utilizzato, è possibile che si verifichino comportamenti diversi quando i cookie di terze parti non sono abilitati.
SecurityError
.Causa: Il proprio browser non ammette i cookie di terze parti su https://runtime.commercecloud.com
.
Soluzione suggerita: Aggiornare le impostazioni del browser e le eventuali estensioni che consentono i cookie di terze parti su https://runtime.commercecloud.com
.
Messaggio di errore durante il caricamento di Storefront Preview: "Preview is not enabled on this storefront!"
(Anteprima non abilitata in questo storefront)
Causa: Nello storefront manca il file di script che abilita la comunicazione con Runtime Admin.
Soluzione suggerita: Seguire le istruzioni visualizzate nella finestra del messaggio di errore o completare le configurazioni del passaggio 4.
Messaggio di errore di risposta quando si fa clic sul pulsante Preview:
400 error: Missing required environment variables:
CC_SHORT_CODE,SLAS_PRIVATE_CLIENT_ID,SLAS_PRIVATE_CLIENT_SECRET
Soluzione suggerita: Completare le configurazioni del passaggio 1 e passaggio 2.
A seconda del browser in uso, è possibile che si verifichi un errore quando non si ha la corretta Content Security Policy.
Causa: Lo storefront non consente l'opzione Runtime Admin all'interno della sua Content Security Policy.
Soluzione suggerita: Seguire le istruzioni del passaggio 5 per configurare correttamente la Content Security Policy.
La pagina iniziale caricata da Storefront Preview è il dominio configurato come Nome host esterno per l'ambiente.
Causa: Il nome host esterno non è configurato correttamente nelle impostazioni dell'ambiente.
Soluzione suggerita: Configurare il nome host esterno nella sezione Avanzate delle impostazioni di ambiente in modo che punti al dominio corretto.
Messaggio di errore di risposta visualizzato quando si fa clic sul pulsante Preview :
403 error: You don't have access to the shopper's tenant
Soluzione suggerita: Completare il passaggio 3.
Messaggio di errore di risposta visualizzato quando si fa clic sul pulsante Preview :
400 error: Failed to get trusted system token, check your SLAS private client
Causa: Valori non corretti nelle variabili di ambiente MRT SLAS_PRIVATE_CLIENT_ID
e SLAS_PRIVATE_CLIENT_SECRET
o configurazione errata del client privato SLAS.
Soluzione suggerita: Completare il passaggio 1 e il passaggio 2.
Durante l'anteprima del sito, dopo aver aggiunto la proprietà onContextChange
al componente StorefrontPreview
, è possibile che vengano visualizzati messaggi di errore o risultati imprevisti.
Causa: Potrebbe esserci un problema con la funzione richiamata dalla prop onContextChange
.
Soluzione suggerita: Rimuovere dal componente StorefrontPreview la prop onContextChange
e corrispondente funzione richiamata. Visualizzare quindi l'anteprima del sito e controllare se si verificano gli stessi problemi. Altrimenti, eseguire il debug della funzione per risolvere eventuali errori. Ad esempio, è possibile:
onContextChange
prop e corrispondente funzione richiamata. Vedere Integrazione con un CMS di terze parti.Se ci sono ancora problemi dopo aver rimosso la prop onContextChange
prop e corrispondente funzione richiamata, aprire una richiesta di assistenza.
Durante l'anteprima del sito, il contenuto non viene visualizzato come previsto e non si verifica nessuno degli errori sopra descritti. Ad esempio, i prezzi non cambiano in base ai valori immessi in Storefront Preview.
Causa: È possibile che non siano stati soddisfatti uno o più dei prerequisiti.
Soluzione suggerita: Confermare di aver soddisfatto tutti i prerequisiti. Se i prerequisiti sono soddisfatti e si riscontrano ancora problemi, aprire una richiesta di assistenza.