Segui questa checklist completa per configurare il tuo account Zonos Dashboard e integrare Zonos Checkout nel tuo sito o piattaforma personalizzati.
1
Crea un account Zonos
Per iniziare, contatta il nostro team commerciale per creare un account e firmare un accordo. Una volta firmato l'accordo, riceverai due microdepositi sul tuo conto che dovranno essere verificati.
Invia via email questi importi dei microdepositi ad accounting@zonos.com con l'ID negozio Dashboard (in CC al tuo rappresentante commerciale).
Una volta verificati, i dettagli bancari verranno visualizzati in Dashboard -> Settings -> Billing.
2
Configura le impostazioni di Dashboard e Checkout
Dopo aver creato il tuo account Zonos, dovrai configurare le impostazioni in Dashboard per garantire che Checkout funzioni correttamente con il tuo negozio. Questa sezione copre tutte le configurazioni essenziali di Dashboard.
Collega un conto bancario per ricevere pagamenti in uscita tempestivi da Checkout. I pagamenti in uscita vengono elaborati quotidianamente con un ritardo di 2 giorni dal pagamento acquisito. Per farlo, segui questi passaggi:
Lo script Zonos JS richiede un elenco di domini consentiti per motivi di sicurezza. Questo impedisce a siti non autorizzati di caricare lo script e garantisce che venga eseguito solo sui domini approvati. Senza questa configurazione, lo script restituirà errori di autorizzazione.
In URLs, aggiungi il tuo dominio completo e tutti i sottodomini in cui verrà utilizzato Checkout. Ad esempio, se il tuo dominio è example.com, dovresti aggiungere example.com e test.example.com.
Per quotare la spedizione al checkout, dovrai collegare un corriere di spedizione al tuo account Zonos. Questo ti consentirà di abilitare livelli di servizio di spedizione specifici al checkout.
Per collegare un corriere di spedizione, segui questi passaggi:
Il Paese di origine e il codice HS vengono utilizzati per calcolare dazi e imposte accurati.
Se non fornisci un Paese di origine o un codice HS specifico, utilizzeremo i fallback configurati in Dashboard.
Per impostare il Paese di origine e il codice HS di fallback:
Vai a Dashboard -> Settings -> Shipping -> Catalog.
Per il Paese di origine, seleziona il Paese in cui viene prodotto il maggior numero dei tuoi prodotti.
Per il codice HS, inserisci il codice HS del tuo prodotto più comune. Se non hai un codice HS, vai a Classify in Dashboard e inserisci il nome e la descrizione del tuo prodotto per generare un codice HS accurato.
3
Installa lo snippet Zonos JS
Lo snippet Zonos JS è un'integrazione JavaScript lato client che abilita la funzionalità di checkout globale sul tuo sito. Funge da ponte tra la tua piattaforma ecommerce e i servizi Zonos, gestendo:
Esperienza Checkout: Renderizza l'interfaccia utente del checkout ed elabora i pagamenti.
Servizi di localizzazione: Rileva la posizione del visitatore e gestisce la conversione valutaria.
Integrazione carrello: Si collega al tuo sistema carrello e ordini esistente.
Sicurezza: Valida i domini e autentica le richieste API.
Lo snippet viene caricato in modo asincrono per evitare qualsiasi impatto sulle prestazioni del tuo sito. Si inizializza con le credenziali API del tuo negozio e gestisce in modo sicuro tutte le interazioni lato client. L'implementazione è progettata per essere non invasiva, richiedendo modifiche minime al flusso di checkout esistente.
Di seguito è riportato un esempio completo che include caricamento dello script, inizializzazione e gestione degli eventi da consultare durante l'integrazione di Checkout.
Consigliamo di aggiungere un timestamp o un altro identificatore univoco all'URL per garantire che lo script non venga memorizzato nella cache dal browser. Questo garantirà che venga sempre caricata l'ultima versione dello script. Questo è mostrato alla riga 10 dell'esempio completo.
Una volta caricato lo script Zonos JS, devi autenticarlo passando una Zonos Public API key e un ID negozio alla funzione Zonos.init. La Public API key utilizzata per autenticare Checkout è progettata per essere pubblicabile, il che significa che può essere utilizzata in modo sicuro nel codice frontend senza esporre informazioni sensibili.
Per trovare l'ID negozio e la API key, vai a Dashboard -> Settings -> Integrations. Assicurati di non utilizzare una Secret API key, poiché non è progettata per essere utilizzata nel codice frontend. Questo è mostrato alle righe 29 e 30 dell'esempio completo.
1Zonos.init({
2// ... other fields
3zonosApiKey: 'Your API KEY', // Replace with your actual API key (found in Dashboard)
4storeId: 'Your STORE ID', // Replace with your actual store ID (found in Dashboard)
Se il tuo sito imposta una Content Security Policy, aggiungi i domini seguenti alle direttive CSP corrispondenti. Questa policy si applica sia a Checkout sia a Hello — lo snippet Zonos carica script, fogli di stile, font, immagini ed effettua richieste di rete, quindi il blocco di una qualsiasi di queste risorse interromperà il flusso Checkout o la visualizzazione di Hello. L'elenco style-src si applica anche a style-src-elem.
Nota: Salta questo passaggio se il tuo sito non invia un'intestazione CSP. Solo i merchant che applicano una CSP personalizzata sulle proprie pagine devono aggiornarla.
1cdn.jsdelivr.net/npm/@zonos
2cdnjs.cloudflare.com/ajax/libs/zonos-elements
3unpkg.com/@zonos/elements
4js.zonos.com
5*.js.zonos.com
6assets.zonos.com
7zonos-store-assets.s3.amazonaws.com
8js.stripe.com
9a.stripecdn.com
10b.stripecdn.com
11c.stripecdn.com
12checkout.stripe.com
13f.stripecdn.com
14hcaptcha.com
15hooks.stripe.com
16m.stripe.com
17m.stripe.network
18pay.stripe.com
19payments.stripe.com
20q.stripe.com
21r.stripe.com
4
Configura Hello
Hello è obbligatorio quando si utilizza Checkout.
Hello è responsabile del rilevamento della posizione, della lingua e della valuta del visitatore e della visualizzazione delle informazioni appropriate. Puoi configurare tutte le impostazioni Hello in Dashboard o nello script Zonos JS. Se hai già configurato Hello in Dashboard, lo script caricherà tali impostazioni e le utilizzerà. Se specifichi valori nella proprietà helloSettings della funzione Zonos.init, lo script utilizzerà invece tali valori come mostrato di seguito.
Hello utilizza selettori CSS per identificare gli elementi del tuo sito che visualizzano informazioni valutarie. Passa questi selettori alla proprietà helloSettings.currencyElementSelector della funzione Zonos.init in modo che Hello possa rilevare e visualizzare la valuta corretta dell'acquirente internazionale.
Puoi utilizzare qualsiasi selettore CSS valido qui, ad esempio #price, .price per selezionare più elementi diversi. Questo è mostrato alle righe 23 e 24 dell'esempio completo.
1Zonos.init({
2// ... other fields
3helloSettings: {
4currencyElementSelector: '.price', // Replace with your actual selector
Per impostazione predefinita, Hello si aprirà solo quando il visitatore fa clic sul pulsante della bandiera. Se desideri aprire Hello automaticamente al caricamento della pagina, puoi chiamare la funzione Zonos.openHelloDialog() una volta caricato lo script Zonos. Questo è mostrato alle righe 25 e 26 dell'esempio completo.
Controlla quali Paesi acquirente vedono Hello e quali Paesi appaiono nel menu a discesa del selettore Paese da Dashboard. Vai a Dashboard -> Settings -> Hello e trova la sezione Country display rules.
Controlla quali Paesi acquirente vedono il widget Hello. Scegli una delle regole di base, quindi utilizza gli elenchi Always show e Never show per sovrascrivere Paesi specifici.
All countries - Ogni Paese supportato da Hello.
Only shippable countries - Paesi verso cui spedisci dalle impostazioni di spedizione.
Always show - Paesi che appaiono sempre, anche se la regola di base li esclude.
Never show - Paesi che non appaiono mai, anche se la regola di base li include.
Controlla quali Paesi appaiono nel menu a discesa del selettore Paese di Hello, utilizzando le stesse regole di base più le sovrascritture Always show e Never show.
Opzioni JS deprecate
Le proprietà showForCountries e showCountryList su helloSettings sono deprecate. Configura le regole di visualizzazione del Paese in Dashboard — i valori impostati lì verranno caricati automaticamente dallo script Zonos JS.
5
Configura Checkout
Checkout è responsabile di consentire al cliente di inserire le informazioni di spedizione e fatturazione, calcolare il Landed Cost, raccogliere il pagamento e completare l'ordine.
Checkout condividerà dati contestuali con Hello, come la posizione, la lingua e la valuta del visitatore. Questo garantisce che l'esperienza del cliente sia coerente durante l'intero processo di acquisto.
Puoi configurare tutte le impostazioni Checkout sia in Dashboard sia nello script Zonos JS. Se hai già configurato Checkout in Dashboard, lo script caricherà tali impostazioni e le utilizzerà. Se specifichi valori nella proprietà checkoutSettings della funzione Zonos.init, lo script utilizzerà invece tali valori.
Lo script Zonos JS riconoscerà automaticamente gli acquirenti internazionali e li indirizzerà al flusso Checkout. Tuttavia, dovrai configurare il pulsante «place order» sulla tua piattaforma per aprire Checkout quando viene cliccato. Questo può essere fatto passando un selettore CSS alla proprietà checkoutSettings.placeOrderButtonSelector della funzione Zonos.init.
Se hai più pulsanti che possono essere utilizzati per effettuare un ordine, assicurati di passare un selettore per ciascun pulsante. Ad esempio, #placeOrder, .place-order.
Questo è mostrato alla riga 21 dell'esempio completo.
1Zonos.init({
2// ... other fields
3checkoutSettings: {
4// ... other fields
5placeOrderButtonSelector: '#placeOrder', // Replace with your actual selector(s)
Per visualizzare i dettagli del carrello al cliente, devi creare una funzione lato server che chiamerà l'API Zonos per creare un carrello e poi restituirà l'ID carrello al frontend. Questo garantirà che i dettagli del carrello non siano esposti al cliente in un modo che possa essere manipolato.
La chiamata API del backend utilizzerà un token credenziale GraphQL segreto, diverso dal token pubblico utilizzato per autenticare lo script Zonos JS. Questo token può essere recuperato in Dashboard -> Settings -> Integrations. Il token segreto deve essere passato come intestazione nella chiamata API.
Una volta creato un carrello lato server, devi passare l'ID carrello allo script Zonos JS. Questo può essere fatto utilizzando la callback createCartId, che fa parte della funzione Zonos.init. Checkout recupererà quindi in modo sicuro i dettagli del carrello da Zonos quando viene aperto, impedendo qualsiasi manomissione del carrello. Vedi l'esempio di codice di seguito.
Il valore di createCartId non può essere un valore statico, deve essere una funzione.
Se devi mostrare un messaggio breve e dinamico all'interno di Checkout — ad esempio, un'informativa normativa quando un prodotto specifico è nel carrello — puoi restituire un array customMessage dalla callback createCartId. Ogni voce nell'array viene renderizzata su una propria riga di un singolo banner informativo direttamente sotto Order total.
La sintassi dei link Markdown — [link label] seguito da (https://example.com) — viene renderizzata come tag anchor, così gli acquirenti possono fare clic. Anche i semplici URL https:// nel testo vengono collegati automaticamente. Tutto il resto viene renderizzato come testo semplice, quindi l'HTML nelle stringhe viene escapato anziché eseguito.
Viene mostrato un solo banner per Checkout, indipendentemente dal numero di righe passate.
1Zonos.init({
2// ... other fields
3checkoutSettings: {
4createCartId: async () => {
5const response = awaitfetch(
6'https://api.merchant.com/api/get-zonos-cart',
7 {
8method: 'POST',
9headers: {
10'Content-Type': 'application/json',
11 },
12 },
13 );
14const json = await response.json();
15
16return {
17cartId: json.id,
18// Each item is rendered on a new line of the same info banner.
19// Markdown links `[text](url)` become `<a>` tags.
20customMessage: [
21'Some items in your cart are subject to California regulations.',
22'Please review the required notice [here](https://oag.ca.gov/prop65).',
23 ],
24 };
25 },
26 },
27});
Nota: Il testo del messaggio viene renderizzato come testo semplice — i tag HTML nelle stringhe vengono escapati, quindi viene interpretata solo la sintassi dei link Markdown. Decidi se includere customMessage lato server in base al contenuto del carrello, in modo che il banner appaia solo quando è rilevante.
Se hai logica personalizzata e devi attivare Checkout Zonos programmaticamente, puoi utilizzare la funzione Zonos.triggerCheckoutInternational() per aprire la finestra Checkout Zonos dopo l'inizializzazione di Zonos. Questo invocherà la callback createCartId definita in Zonos.init sopra e aprirà la finestra Checkout Zonos.
1// For example: During your domestic checkout flow, trigger Zonos checkout when the user selects a non-domestic country (e.g., not "US")
2const domesticCountry = 'US';
3document.querySelector('.country-select').addEventListener('change', e => {
Se desideri separare il processo di checkout per acquirenti domestici e internazionali, puoi aggiungere un pulsante International checkout al tuo sito. Invece di attivare manualmente Zonos Checkout con Zonos.triggerCheckoutInternational, puoi configurare Zonos.init con il selettore appropriato. Il selettore sarà disabilitato fino all'inizializzazione di Zonos; quando il pulsante viene cliccato, attiverà automaticamente Checkout Zonos. Questo invocherà la callback createCartId definita in Zonos.init e aprirà la finestra Checkout Zonos.
1Zonos.init({
2// ... other fields
3checkoutSettings: {
4// ... other fields
5alwaysTriggerInternationalCheckoutSelector: '#trigger-zonos-checkout', // Replace with your actual selector, button bound to this selector will always trigger Zonos checkout
Zonos Checkout può inoltrare l'intero funnel di checkout ai tuoi strumenti di analytics esistenti. Per ogni passaggio, Zonos emette:
L'evento originale zonos-checkout-... a GA4 (tramite gtag('event', ...)) e a Meta come evento personalizzato (tramite fbq('trackCustom', ...)).
L'evento standard corrispondente a Meta quando ne esiste uno — InitiateCheckout, AddPaymentInfo e Purchase — così l'ottimizzazione integrata e il reporting delle conversioni di Meta funzionano out of the box.
Il modo in cui gli eventi raggiungono i tuoi provider dipende da come Checkout viene renderizzato sul tuo sito. Scegli il percorso che corrisponde alla tua integrazione.
Quando l'elemento personalizzato <zonos-checkout> è montato sulla tua pagina (predefinito per l'integrazione dello script Zonos JS descritta sopra), window.gtag e window.fbq della pagina sono già nello scope. Zonos li chiama direttamente — non è necessario relay o passaggio dell'ID pixel.
Configurazione:
Assicurati che la tua pagina abbia già caricato il tag base GA4 e/o il codice base Meta Pixel (come faresti per qualsiasi altra pagina del tuo sito).
Abilita i provider desiderati nella dashboard Zonos in Checkout settings → Tracking (Google Analytics, Facebook Pixel o entrambi).
È tutto. Nessuno script relay, nessun customHTML, nessun ID extra da passare — Zonos rileva gtag / fbq sulla pagina e invia gli eventi direttamente.
Quando Checkout è ospitato in un iframe su un'origine diversa, non può raggiungere gtag / fbq della tua pagina direttamente. Zonos pubblica un piccolo script relay — analyticsRelayOnInit.js — che ascolta gli eventi postMessage dall'iframe Checkout e li inoltra ai provider presenti sulla tua pagina. Un singolo relay gestisce sia GA4 sia Facebook Pixel contemporaneamente.
Configurazione:
Abilita i provider desiderati nella dashboard Zonos in Checkout settings → Tracking.
Aggiungi il tag base GA4 e/o il codice base Meta Pixel all'<head> della pagina che ospita l'iframe Checkout.
Passa gli ID corrispondenti tramite customHTML di Checkout in modo che il relay sappia quale property/pixel utilizzare:
1
2 window.Zonos.googleAnalyticId = 'G-XXXXXXXXXX';
3 window.Zonos.facebookPixelId = 'YOUR_PIXEL_ID';
4
Per istruzioni passo passo sull'iframe, il riferimento completo degli eventi (inclusa la mappatura del payload purchase / Purchase) e suggerimenti per il debug, consulta:
Sincronizza il tuo numero account nativo con Dashboard. Docs →
orderAddTrackingNumber
Obbligatoria solo se non stampi etichette in Dashboard. Garantisce che il tracking appaia in Dashboard così Zonos può garantire i calcoli del Landed Cost. Docs →
Necessario per inviare gli ordini Checkout alla tua piattaforma nativa. Docs →
ORDER_STATUS_CHANGED
Mantiene il tuo sistema sincronizzato con Zonos quando gli stati degli ordini cambiano (ad es. evaso, annullato). Docs →
7
Testa la tua integrazione
Prima di andare live con l'integrazione Checkout, è importante testare accuratamente tutti gli aspetti dell'integrazione per garantire un'esperienza cliente fluida. Questo include il test del flusso checkout, dell'elaborazione dei pagamenti, della creazione degli ordini e della funzionalità webhook.
Segui la nostra guida ai test per verificare che l'integrazione funzioni correttamente e per identificare e correggere eventuali problemi prima del lancio in produzione.
Domande comuni
Di seguito alcune domande comuni sul processo di integrazione.
Configura l'esperienza post-acquisto in Dashboard -> Settings -> Checkout settings in Success page type. Sono disponibili tre opzioni:
Show Zonos success page (predefinito, consigliato) — Zonos visualizza una pagina di ringraziamento integrata dopo che l'ordine è stato effettuato. La pagina viene sempre mostrata, anche se l'ordine non riesce a essere importato nel tuo sistema, così l'acquirente riceve sempre una conferma.
Redirect to a success page — Zonos attende su una breve schermata «Order complete» fino alla creazione dell'ordine, quindi reindirizza all'URL di successo configurato con zOrderNumber (e orderId per i carrelli legacy) aggiunti come parametri di query.
Close the checkout modal — Zonos chiude la sua modale una volta acquisito il pagamento. Se configuri anche un URL di successo, Zonos reindirizza a tale URL immediatamente dopo che Stripe raccoglie il pagamento — senza attendere la creazione dell'ordine — e aggiunge zonosCheckoutSessionId come parametro di query. Usa questa opzione quando desideri il passaggio più rapido alla tua pagina di successo.
Quando utilizzi Close the checkout modal con un URL di reindirizzamento, l'ordine potrebbe richiedere alcuni secondi per essere associato alla sessione checkout dopo il reindirizzamento. Leggi zonosCheckoutSessionId dall'URL ed esegui il polling della query GraphQL checkoutSession dal tuo server utilizzando il token credenziale segreto fino a quando l'ordine è pronto. Non chiamare mai questa query dal browser — il token credenziale segreto deve rimanere lato server.
1query getCheckoutSession($id: String!)
2checkoutSession )
3order
4id
Invia la query a https://api.zonos.com/graphql con il token credenziale segreto da Dashboard -> Settings -> Integrations passato come intestazione della richiesta credentialToken.
Sì. Se desideri ricevere notifiche quando viene creato un ordine, in Dashboard nella sezione Email di Checkout settings, puoi inserire l'indirizzo email dei membri del team che devono essere notificati quando un ordine viene creato, spedito o annullato.
Integrazione personalizzata
Integrazione personalizzata
Crea un'integrazione Checkout end-to-end nel tuo sito personalizzato.
Checklist di integrazione
Segui questa checklist completa per configurare il tuo account Zonos Dashboard e integrare Zonos Checkout nel tuo sito o piattaforma personalizzati.
Crea un account Zonos
Per iniziare, contatta il nostro team commerciale per creare un account e firmare un accordo. Una volta firmato l'accordo, riceverai due microdepositi sul tuo conto che dovranno essere verificati.
Invia via email questi importi dei microdepositi ad accounting@zonos.com con l'ID negozio Dashboard (in CC al tuo rappresentante commerciale).
Una volta verificati, i dettagli bancari verranno visualizzati in Dashboard -> Settings -> Billing.
Configura le impostazioni di Dashboard e Checkout
Dopo aver creato il tuo account Zonos, dovrai configurare le impostazioni in Dashboard per garantire che Checkout funzioni correttamente con il tuo negozio. Questa sezione copre tutte le configurazioni essenziali di Dashboard.
Configura i pagamenti in uscita
Collega un conto bancario per ricevere pagamenti in uscita tempestivi da Checkout. I pagamenti in uscita vengono elaborati quotidianamente con un ritardo di 2 giorni dal pagamento acquisito. Per farlo, segui questi passaggi:
Configura i domini consentiti
Lo script Zonos JS richiede un elenco di domini consentiti per motivi di sicurezza. Questo impedisce a siti non autorizzati di caricare lo script e garantisce che venga eseguito solo sui domini approvati. Senza questa configurazione, lo script restituirà errori di autorizzazione.
Per configurarlo:
example.com, dovresti aggiungereexample.cometest.example.com.Personalizza le impostazioni del brand
Configura le impostazioni del brand in Dashboard per adattarle all'aspetto del tuo negozio.
Per farlo, segui questi passaggi:
Per maggiori informazioni sulle impostazioni del brand, consulta la nostra documentazione.
Collega un corriere di spedizione
Per quotare la spedizione al checkout, dovrai collegare un corriere di spedizione al tuo account Zonos. Questo ti consentirà di abilitare livelli di servizio di spedizione specifici al checkout.
Per collegare un corriere di spedizione, segui questi passaggi:
Per maggiori dettagli sulla connessione degli account corriere, consulta la nostra documentazione.
Configura le zone di spedizione
Le zone di spedizione ti consentono di configurare quali corrieri e livelli di servizio sono disponibili per diverse regioni del mondo.
Per configurare le zone di spedizione, segui questi passaggi:
Per maggiori dettagli sulle zone di spedizione, consulta la nostra documentazione.
Configura un Paese di origine e un codice HS di fallback
Il Paese di origine e il codice HS vengono utilizzati per calcolare dazi e imposte accurati.
Se non fornisci un Paese di origine o un codice HS specifico, utilizzeremo i fallback configurati in Dashboard.
Per impostare il Paese di origine e il codice HS di fallback:
Installa lo snippet Zonos JS
Lo snippet Zonos JS è un'integrazione JavaScript lato client che abilita la funzionalità di checkout globale sul tuo sito. Funge da ponte tra la tua piattaforma ecommerce e i servizi Zonos, gestendo:
Lo snippet viene caricato in modo asincrono per evitare qualsiasi impatto sulle prestazioni del tuo sito. Si inizializza con le credenziali API del tuo negozio e gestisce in modo sicuro tutte le interazioni lato client. L'implementazione è progettata per essere non invasiva, richiedendo modifiche minime al flusso di checkout esistente.
Di seguito è riportato un esempio completo che include caricamento dello script, inizializzazione e gestione degli eventi da consultare durante l'integrazione di Checkout.
(async function () {const timestamp = new Date().getTime();const zonosScript = document.querySelector(`script[src*="https://cdn.jsdelivr.net/npm/@zonos/elements/dist/scripts/loadZonos.js"]`,);if (!zonosScript) {const script = document.createElement('script');script.src = `https://cdn.jsdelivr.net/npm/@zonos/elements/dist/scripts/loadZonos.js?timestamp=${timestamp}`;script.addEventListener('load', () => {window..({: {: () => {{: ,};},: ,},: {: ,: {.();},},: ,: ,});});..(script);}})();Gestione della cache del browser
Consigliamo di aggiungere un timestamp o un altro identificatore univoco all'URL per garantire che lo script non venga memorizzato nella cache dal browser. Questo garantirà che venga sempre caricata l'ultima versione dello script. Questo è mostrato alla riga 10 dell'esempio completo.
script.src = `https://cdn.jsdelivr.net/npm/@zonos/elements/dist/scripts/loadZonos.js?timestamp=${timestamp}`;Autentica lo snippet Zonos JS
Una volta caricato lo script Zonos JS, devi autenticarlo passando una Zonos Public API key e un ID negozio alla funzione
Zonos.init. La Public API key utilizzata per autenticare Checkout è progettata per essere pubblicabile, il che significa che può essere utilizzata in modo sicuro nel codice frontend senza esporre informazioni sensibili.Per trovare l'ID negozio e la API key, vai a Dashboard -> Settings -> Integrations. Assicurati di non utilizzare una Secret API key, poiché non è progettata per essere utilizzata nel codice frontend. Questo è mostrato alle righe 29 e 30 dell'esempio completo.
Zonos.init({// ... other fieldszonosApiKey: 'Your API KEY', // Replace with your actual API key (found in Dashboard)storeId: 'Your STORE ID', // Replace with your actual store ID (found in Dashboard)// ... other fields});Aggiorna la Content Security Policy (CSP)
Se il tuo sito imposta una Content Security Policy, aggiungi i domini seguenti alle direttive CSP corrispondenti. Questa policy si applica sia a Checkout sia a Hello — lo snippet Zonos carica script, fogli di stile, font, immagini ed effettua richieste di rete, quindi il blocco di una qualsiasi di queste risorse interromperà il flusso Checkout o la visualizzazione di Hello. L'elenco
style-srcsi applica anche astyle-src-elem.cdn.jsdelivr.net/npm/@zonoscdnjs.cloudflare.com/ajax/libs/zonos-elementsunpkg.com/@zonos/elementsjs.zonos.com*.js.zonos.comassets.zonos.comzonos-store-assets.s3.amazonaws.comjs.stripe.coma.stripecdn.comb.stripecdn.comc.stripecdn.comcheckout.stripe.comf.stripecdn.comhcaptcha.comhooks.stripe.comm.stripe.comm.stripe.networkpay.stripe.compayments.stripe.comq.stripe.comr.stripe.comConfigura Hello
Hello è obbligatorio quando si utilizza Checkout.
Hello è responsabile del rilevamento della posizione, della lingua e della valuta del visitatore e della visualizzazione delle informazioni appropriate. Puoi configurare tutte le impostazioni Hello in Dashboard o nello script Zonos JS. Se hai già configurato Hello in Dashboard, lo script caricherà tali impostazioni e le utilizzerà. Se specifichi valori nella proprietà
helloSettingsdella funzioneZonos.init, lo script utilizzerà invece tali valori come mostrato di seguito.Configura la conversione valutaria in Hello nello script JS
Hello utilizza selettori CSS per identificare gli elementi del tuo sito che visualizzano informazioni valutarie. Passa questi selettori alla proprietà
helloSettings.currencyElementSelectordella funzioneZonos.initin modo che Hello possa rilevare e visualizzare la valuta corretta dell'acquirente internazionale.Puoi utilizzare qualsiasi selettore CSS valido qui, ad esempio
#price, .priceper selezionare più elementi diversi. Questo è mostrato alle righe 23 e 24 dell'esempio completo.Zonos.init({// ... other fieldshelloSettings: {currencyElementSelector: '.price', // Replace with your actual selector},// ... other fields});Apri Hello automaticamente al caricamento della pagina
Per impostazione predefinita, Hello si aprirà solo quando il visitatore fa clic sul pulsante della bandiera. Se desideri aprire Hello automaticamente al caricamento della pagina, puoi chiamare la funzione
Zonos.openHelloDialog()una volta caricato lo script Zonos. Questo è mostrato alle righe 25 e 26 dell'esempio completo.Configura le regole di visualizzazione del Paese in Dashboard
Controlla quali Paesi acquirente vedono Hello e quali Paesi appaiono nel menu a discesa del selettore Paese da Dashboard. Vai a Dashboard -> Settings -> Hello e trova la sezione Country display rules.
Visibilità del widget
Controlla quali Paesi acquirente vedono il widget Hello. Scegli una delle regole di base, quindi utilizza gli elenchi Always show e Never show per sovrascrivere Paesi specifici.
Selettore Paese
Controlla quali Paesi appaiono nel menu a discesa del selettore Paese di Hello, utilizzando le stesse regole di base più le sovrascritture Always show e Never show.
Le proprietà
showForCountrieseshowCountryListsuhelloSettingssono deprecate. Configura le regole di visualizzazione del Paese in Dashboard — i valori impostati lì verranno caricati automaticamente dallo script Zonos JS.Configura Checkout
Checkout è responsabile di consentire al cliente di inserire le informazioni di spedizione e fatturazione, calcolare il Landed Cost, raccogliere il pagamento e completare l'ordine.
Checkout condividerà dati contestuali con Hello, come la posizione, la lingua e la valuta del visitatore. Questo garantisce che l'esperienza del cliente sia coerente durante l'intero processo di acquisto.
Puoi configurare tutte le impostazioni Checkout sia in Dashboard sia nello script Zonos JS. Se hai già configurato Checkout in Dashboard, lo script caricherà tali impostazioni e le utilizzerà. Se specifichi valori nella proprietà
checkoutSettingsdella funzioneZonos.init, lo script utilizzerà invece tali valori.Configura il pulsante «place order» nello script JS
Lo script Zonos JS riconoscerà automaticamente gli acquirenti internazionali e li indirizzerà al flusso Checkout. Tuttavia, dovrai configurare il pulsante «place order» sulla tua piattaforma per aprire Checkout quando viene cliccato. Questo può essere fatto passando un selettore CSS alla proprietà
checkoutSettings.placeOrderButtonSelectordella funzioneZonos.init.Se hai più pulsanti che possono essere utilizzati per effettuare un ordine, assicurati di passare un selettore per ciascun pulsante. Ad esempio,
#placeOrder, .place-order.Questo è mostrato alla riga 21 dell'esempio completo.
Zonos.init({// ... other fieldscheckoutSettings: {// ... other fieldsplaceOrderButtonSelector: '#placeOrder', // Replace with your actual selector(s)},});Crea in modo sicuro i dettagli del carrello lato server
Per visualizzare i dettagli del carrello al cliente, devi creare una funzione lato server che chiamerà l'API Zonos per creare un carrello e poi restituirà l'ID carrello al frontend. Questo garantirà che i dettagli del carrello non siano esposti al cliente in un modo che possa essere manipolato.
La chiamata API del backend utilizzerà un token credenziale GraphQL segreto, diverso dal token pubblico utilizzato per autenticare lo script Zonos JS. Questo token può essere recuperato in Dashboard -> Settings -> Integrations. Il token segreto deve essere passato come intestazione nella chiamata API.
La mutation
cartCreateaccetta un elenco di articoli, che devono essere formattati secondo lo schema degli articoli del carrello.// Create new cart from serversideasync function createCart() {/*** Full cart mutation schema: https://zonos.com/developer/mutations/cartCreate* */const graphql = JSON.stringify({query: `mutation cartCreate($input: CartCreateInput!){cartCreate(input: $input) {idadjustments {amountcurrencyCodedescriptionproductIdskutype}items {idnameamountcurrencyCodequantityskudescriptionmetadata {keyvalue}}metadata {keyvalue}}}`,variables: {/*** input for the cartCreate is this schema https://zonos.com/developer/types/CartCreateInput*/input: {/*** Cart adjustment input: https://zonos.com/developer/types/CartAdjustmentInput*/adjustments: [{amount: -10,currencyCode: 'USD',/*** Enum value: https://zonos.com/developer/types/CartAdjustmentType*/type: 'CART_TOTAL',},],/*** Cart item input: https://zonos.com/developer/types/ItemInput*/items: [{name: 'Item 1',amount: 150.99,currencyCode: 'USD',description: 'Item 1 description',quantity: 2,},],/*** Cart metadata input: https://zonos.com/developer/types/CartMetadataInput*/metadata: [{: ,: ,},],},},});response = (, {: ,: {: ,: ,},: graphql,});{ data } = response.();data..;}Consigliamo di creare un endpoint API lato server e poi chiamare tale endpoint dall'integrazione JS frontend, come descritto nel passaggio successivo.
Passa l'ID carrello a Checkout tramite frontend
Una volta creato un carrello lato server, devi passare l'ID carrello allo script Zonos JS. Questo può essere fatto utilizzando la callback
createCartId, che fa parte della funzioneZonos.init. Checkout recupererà quindi in modo sicuro i dettagli del carrello da Zonos quando viene aperto, impedendo qualsiasi manomissione del carrello. Vedi l'esempio di codice di seguito.Il valore di
createCartIdnon può essere un valore statico, deve essere una funzione.Zonos.init({// ... other fieldscheckoutSettings: {// Replace with your actual selector(s)createCartId: async () => {const response = await fetch('https://api.merchant.com/api/get-cart', {method: 'POST',headers: {'Content-Type': 'application/json',},});const json = await response.json();return json.id; // Only need to return the cart ID},},});(Opzionale) Visualizza un avviso sotto Order total
Se devi mostrare un messaggio breve e dinamico all'interno di Checkout — ad esempio, un'informativa normativa quando un prodotto specifico è nel carrello — puoi restituire un array
customMessagedalla callbackcreateCartId. Ogni voce nell'array viene renderizzata su una propria riga di un singolo banner informativo direttamente sotto Order total.La sintassi dei link Markdown —
[link label]seguito da(https://example.com)— viene renderizzata come tag anchor, così gli acquirenti possono fare clic. Anche i semplici URLhttps://nel testo vengono collegati automaticamente. Tutto il resto viene renderizzato come testo semplice, quindi l'HTML nelle stringhe viene escapato anziché eseguito.Viene mostrato un solo banner per Checkout, indipendentemente dal numero di righe passate.
Zonos.init({// ... other fieldscheckoutSettings: {createCartId: async () => {const response = await fetch('https://api.merchant.com/api/get-zonos-cart',{method: 'POST',headers: {'Content-Type': 'application/json',},},);const json = await response.json();return {cartId: json.id,// Each item is rendered on a new line of the same info banner.// Markdown links `[text](url)` become `<a>` tags.customMessage: ['Some items in your cart are subject to California regulations.','Please review the required notice [here](https://oag.ca.gov/prop65).',],};},},});(Opzionale) Attiva Checkout Zonos programmaticamente
Se hai logica personalizzata e devi attivare Checkout Zonos programmaticamente, puoi utilizzare la funzione
Zonos.triggerCheckoutInternational()per aprire la finestra Checkout Zonos dopo l'inizializzazione di Zonos. Questo invocherà la callbackcreateCartIddefinita inZonos.initsopra e aprirà la finestra Checkout Zonos.// For example: During your domestic checkout flow, trigger Zonos checkout when the user selects a non-domestic country (e.g., not "US")const domesticCountry = 'US';document.querySelector('.country-select').addEventListener('change', e => {const country = e.target.value;if (country !== domesticCountry) {Zonos.triggerCheckoutInternational();}});(Opzionale) Selettore per attivare sempre Checkout Zonos
Se desideri separare il processo di checkout per acquirenti domestici e internazionali, puoi aggiungere un pulsante
International checkoutal tuo sito. Invece di attivare manualmente Zonos Checkout conZonos.triggerCheckoutInternational, puoi configurareZonos.initcon il selettore appropriato. Il selettore sarà disabilitato fino all'inizializzazione di Zonos; quando il pulsante viene cliccato, attiverà automaticamente Checkout Zonos. Questo invocherà la callbackcreateCartIddefinita inZonos.inite aprirà la finestra Checkout Zonos.Zonos.init({// ... other fieldscheckoutSettings: {// ... other fieldsalwaysTriggerInternationalCheckoutSelector: '#trigger-zonos-checkout', // Replace with your actual selector, button bound to this selector will always trigger Zonos checkout},});(Opzionale) Traccia il funnel di checkout con GA4 o Facebook Pixel
Zonos Checkout può inoltrare l'intero funnel di checkout ai tuoi strumenti di analytics esistenti. Per ogni passaggio, Zonos emette:
zonos-checkout-...a GA4 (tramitegtag('event', ...)) e a Meta come evento personalizzato (tramitefbq('trackCustom', ...)).InitiateCheckout,AddPaymentInfoePurchase— così l'ottimizzazione integrata e il reporting delle conversioni di Meta funzionano out of the box.Il modo in cui gli eventi raggiungono i tuoi provider dipende da come Checkout viene renderizzato sul tuo sito. Scegli il percorso che corrisponde alla tua integrazione.
Integrazione nativa (Checkout renderizzato direttamente sul tuo sito)
Quando l'elemento personalizzato
<zonos-checkout>è montato sulla tua pagina (predefinito per l'integrazione dello script Zonos JS descritta sopra),window.gtagewindow.fbqdella pagina sono già nello scope. Zonos li chiama direttamente — non è necessario relay o passaggio dell'ID pixel.Configurazione:
È tutto. Nessuno script relay, nessun
customHTML, nessun ID extra da passare — Zonos rilevagtag/fbqsulla pagina e invia gli eventi direttamente.Integrazione iframe (iframe Checkout legacy su
iglobalstores.com)Quando Checkout è ospitato in un iframe su un'origine diversa, non può raggiungere
gtag/fbqdella tua pagina direttamente. Zonos pubblica un piccolo script relay —analyticsRelayOnInit.js— che ascolta gli eventi postMessage dall'iframe Checkout e li inoltra ai provider presenti sulla tua pagina. Un singolo relay gestisce sia GA4 sia Facebook Pixel contemporaneamente.Configurazione:
<head>della pagina che ospita l'iframe Checkout.asyncsrc="https://cdn.jsdelivr.net/npm/@zonos/elements/dist/scripts/analyticsRelayOnInit.js">customHTMLdi Checkout in modo che il relay sappia quale property/pixel utilizzare:window.Zonos.googleAnalyticId = 'G-XXXXXXXXXX';window.Zonos.facebookPixelId = 'YOUR_PIXEL_ID';Per istruzioni passo passo sull'iframe, il riferimento completo degli eventi (inclusa la mappatura del payload
purchase/Purchase) e suggerimenti per il debug, consulta:Sincronizza tracking e stato ordine in Dashboard
Per sincronizzare gli ordini tra il tuo sistema e Zonos Dashboard, implementa queste chiamate API e webhook:
Mutation obbligatorie
orderUpdateAccountOrderNumberorderAddTrackingNumberWebhook obbligatori
ORDER_CREATEDORDER_STATUS_CHANGEDTesta la tua integrazione
Prima di andare live con l'integrazione Checkout, è importante testare accuratamente tutti gli aspetti dell'integrazione per garantire un'esperienza cliente fluida. Questo include il test del flusso checkout, dell'elaborazione dei pagamenti, della creazione degli ordini e della funzionalità webhook.
Segui la nostra guida ai test per verificare che l'integrazione funzioni correttamente e per identificare e correggere eventuali problemi prima del lancio in produzione.
Domande comuni
Di seguito alcune domande comuni sul processo di integrazione.
Come gestisce Zonos la conferma dell'ordine?
Configura l'esperienza post-acquisto in Dashboard -> Settings -> Checkout settings in Success page type. Sono disponibili tre opzioni:
zOrderNumber(eorderIdper i carrelli legacy) aggiunti come parametri di query.zonosCheckoutSessionIdcome parametro di query. Usa questa opzione quando desideri il passaggio più rapido alla tua pagina di successo.Ricerca dell'ordine da
zonosCheckoutSessionIdQuando utilizzi Close the checkout modal con un URL di reindirizzamento, l'ordine potrebbe richiedere alcuni secondi per essere associato alla sessione checkout dopo il reindirizzamento. Leggi
zonosCheckoutSessionIddall'URL ed esegui il polling della query GraphQLcheckoutSessiondal tuo server utilizzando il token credenziale segreto fino a quando l'ordine è pronto. Non chiamare mai questa query dal browser — il token credenziale segreto deve rimanere lato server.query getCheckoutSession($id: String!)checkoutSession )orderidInvia la query a
https://api.zonos.com/graphqlcon il token credenziale segreto da Dashboard -> Settings -> Integrations passato come intestazione della richiestacredentialToken.Posso ricevere una notifica quando viene creato un ordine?
Sì. Se desideri ricevere notifiche quando viene creato un ordine, in Dashboard nella sezione Email di Checkout settings, puoi inserire l'indirizzo email dei membri del team che devono essere notificati quando un ordine viene creato, spedito o annullato.
Questa pagina è stata utile?