Integratiechecklist
Volg deze uitgebreide checklist om uw Zonos Dashboard-account in te stellen en Zonos Checkout te integreren in uw aangepaste site of platform.
Maak een Zonos-account
Om te beginnen, neem contact op met ons salesteam om een account aan te maken en een overeenkomst te ondertekenen. Zodra een overeenkomst is ondertekend, ontvangt u twee microstortingen op uw account die moeten worden geverifieerd.
E-mail deze microstortingsbedragen naar accounting@zonos.com met uw Dashboard store ID (CC uw sales rep).
Na verificatie worden uw bankgegevens weergegeven in Dashboard -> Settings -> Billing.
Configureer Dashboard- en Checkout-instellingen
Na het aanmaken van uw Zonos-account moet u instellingen in Dashboard configureren om ervoor te zorgen dat Checkout correct werkt met uw winkel. Dit gedeelte behandelt alle essentiële Dashboard-configuraties.
Uitbetalingen instellen
Koppel een bankrekening om tijdige uitbetalingen van Checkout te ontvangen. Uitbetalingen worden dagelijks verwerkt met een vertraging van 2 dagen na geïnde betaling. Volg hiervoor deze stappen:
- Navigate to Dashboard -> Settings -> Checkout settings .
- Click Add bank account
- You will be taken to a Stripe portal to complete set up and provide the following information:
- Bankrekeninggegevens.
- Company EIN.
- Social Security Number van een bedrijfseigenaar met 25% aandeel. Voor meer details waarom dit vereist is, zie Stripe's documentatie.
Opmerking: Als u uw uitbetalingsschema moet bijwerken, neem contact op met support@zonos.com
Toegestane domeinen instellen
Het Zonos JS-script vereist een lijst met toegestane domeinen voor beveiligingsdoeleinden. Dit voorkomt dat ongeautoriseerde sites het script laden en zorgt ervoor dat het alleen op uw goedgekeurde domeinen draait. Zonder deze configuratie retourneert het script permission errors.
Stel dit als volgt in:
- Navigate to Dashboard -> Settings -> Checkout settings
- Under URLs, add your full domain and any subdomains where Checkout will be used. For example, if your domain is
example.com, you should addexample.comandtest.example.com.
Branding-instellingen aanpassen
Configureer uw branding-instellingen in Dashboard zodat ze passen bij de look and feel van uw winkel.
Volg hiervoor deze stappen:
- Navigate to Dashboard -> Settings -> Checkout settings -> Branding
- Configure the following settings:
- Logo.
- Brand and accent color.
- Theme, Style, and Font.
Voor meer informatie over branding-instellingen, zie onze documentatie.
Een shipping carrier koppelen
Om verzending bij checkout te offreren, moet u een shipping carrier koppelen aan uw Zonos-account. Hiermee kunt u specifieke shipping service levels bij checkout inschakelen.
Volg hiervoor deze stappen om een shipping carrier te koppelen:
- Navigate to Dashboard -> Settings -> Shipping -> Rates
- Click Add carrier
- Volg de carrier setup-instructies.
Voor meer details over het koppelen van carrier accounts, zie onze documentatie.
Shipping zones instellen
Shipping zones stellen u in staat te configureren welke shipping carriers en service levels beschikbaar zijn voor verschillende regio's van de wereld.
Volg hiervoor deze stappen om shipping zones in te stellen:
- Navigate to Dashboard -> Settings -> Shipping -> Locations
- Click New zone
- Enter a zone name and select the countries you want to ship to.
- Select the carrier and service level you want to offer.
Voor meer details over shipping zones, zie onze documentatie.
Fallback country of origin en HS code instellen
Country of origin en HS code worden gebruikt om nauwkeurige invoerrechten en belastingen te berekenen.
Als u geen specifieke country of origin of HS code opgeeft, gebruiken we de fallbacks die in Dashboard zijn ingesteld.
Om uw fallback Country of Origin en HS code in te stellen:
- Navigate to Dashboard -> Settings -> Shipping -> Catalog.
- Selecteer voor country of origin het land waar de meerderheid van uw producten wordt vervaardigd.
- Voer voor de HS code de HS code in van uw meest voorkomende product. Als u geen HS code hebt, ga naar Classify in Dashboard en voer de naam en beschrijving van uw product in om een nauwkeurige HS code te genereren.
Installeer het Zonos JS-snippet
Het Zonos JS-snippet is een client-side JavaScript-integratie die global checkout-functionaliteit op uw site inschakelt. Het fungeert als brug tussen uw ecommerceplatform en Zonos-services en regelt:
- Checkout Experience: Rendert de checkout UI en verwerkt betalingen.
- Location Services: Detecteert bezoekerslocatie en beheert valutaconversie.
- Cart Integration: Verbindt met uw bestaande cart- en ordersysteem.
- Security: Valideert domeinen en authenticeert API-requests.
Het snippet wordt asynchroon geladen om impact op de prestaties van uw site te voorkomen. Het initialiseert met de API-credentials van uw winkel en handelt alle client-side interacties veilig af. De implementatie is ontworpen om niet-opdringerig te zijn en vereist minimale wijzigingen aan uw bestaande checkout flow.
Hieronder staat een volledig voorbeeld met script loading, initialisatie en event handling als referentie bij het integreren van 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.Zonos.init({ : { : () => { { : , }; }, : , }, : { : , : { .(); }, }, : , : , }); }); ..(script); } })();Opmerking: Vervang de placeholder-waarden (storeId, zonosApiKey, selectors, enz.) door uw werkelijke waarden uit uw Zonos Dashboard.
Browser caching afhandelen
We raden aan een timestamp of andere unieke identifier aan de URL toe te voegen om te zorgen dat het script niet door de browser wordt gecached. Dit zorgt ervoor dat altijd de nieuwste versie van het script wordt geladen. Dit wordt getoond in regel 10 van het volledige voorbeeld.
script.src = `https://cdn.jsdelivr.net/npm/@zonos/elements/dist/scripts/loadZonos.js?timestamp=${timestamp}`;Authenticeer het Zonos JS-snippet
Zodra u het Zonos JS-script hebt geladen, moet u het authenticeren door een public Zonos API key en store ID door te geven aan de Zonos.init-functie. De public API key die wordt gebruikt om Checkout te authenticeren is ontworpen om publiceerbaar te zijn, wat betekent dat deze veilig in frontend code kan worden gebruikt zonder gevoelige informatie bloot te stellen.
Om uw store ID en API key te vinden, ga naar Dashboard -> Settings -> Integrations. Gebruik geen Secret API key, omdat deze niet is ontworpen voor frontend code. Dit wordt getoond in regel 29 en 30 van het volledige voorbeeld.
Zonos.init({ // ... other fields zonosApiKey: '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});Werk uw Content Security Policy (CSP) bij
Als uw site een Content Security Policy instelt, voeg de onderstaande domeinen toe aan de bijbehorende CSP-directives. Dit beleid geldt voor zowel Checkout als Hello — het Zonos-snippet laadt scripts, stylesheets, fonts, afbeeldingen en doet netwerkrequests, dus het blokkeren van een van deze resources breekt de Checkout flow of de Hello-weergave. De style-src-lijst geldt ook voor style-src-elem.
Opmerking: Sla deze stap over als uw site geen CSP header stuurt. Alleen merchants die een aangepaste CSP op hun pagina's afdwingen, moeten deze bijwerken.
cdn.jsdelivr.net/npm/@zonoscdnjs.cloudflare.com/ajax/libs/zonos-elementsunpkg.com/@zonos/elementsjs.zonos.com*.js.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.comHello instellen
Hello is vereist bij gebruik van Checkout.
Hello is verantwoordelijk voor het detecteren van de locatie, taal en valuta van de bezoeker en het tonen van de juiste informatie. U kunt alle Hello settings configureren in Dashboard of in het Zonos JS-script. Als u Hello al in Dashboard hebt geconfigureerd, laadt het script die instellingen en gebruikt ze. Als u waarden opgeeft in de helloSettings-property van de Zonos.init-functie, gebruikt het script die waarden in plaats daarvan, zoals hieronder getoond.
Valutaconversie configureren in Hello in JS Script
Hello gebruikt CSS-selectors om elementen op uw site te identificeren die valutainformatie weergeven. Geef deze selectors door aan de helloSettings.currencyElementSelector-property van de Zonos.init-functie zodat Hello de juiste valuta van de internationale shopper kan detecteren en weergeven.
U kunt hier elke valid CSS selector gebruiken, bijvoorbeeld #price, .price om meerdere elementen te selecteren. Dit wordt getoond in regel 23 en 24 van het volledige voorbeeld.
Zonos.init({ // ... other fields helloSettings: { currencyElementSelector: '.price', // Replace with your actual selector }, // ... other fields});Hello automatisch openen bij paginalading
Standaard opent Hello alleen wanneer de bezoeker op de vlagknop klikt. Als u Hello automatisch wilt openen wanneer de pagina laadt, kunt u de Zonos.openHelloDialog()-functie aanroepen zodra het Zonos-script is geladen. Dit wordt getoond in regel 25 en 26 van het volledige voorbeeld.
Zonos.init({ : { : { .(); }, },});Country display rules configureren in Dashboard
Bepaal vanuit Dashboard welke koperslanden Hello zien en welke landen in de country selector dropdown verschijnen. Ga naar Dashboard -> Settings -> Hello en zoek het gedeelte Country display rules.
Widget visibility
Bepaal welke koperslanden de Hello widget zien. Kies een van de baseregels en gebruik vervolgens de lijsten Always show en Never show om specifieke landen te overschrijven.
- All countries - Elk land dat Hello ondersteunt.
- Only shippable countries - Landen waarnaar u verzendt vanuit uw shipping settings.
- Always show - Landen die altijd verschijnen, zelfs als de baseregel ze uitsluit.
- Never show - Landen die nooit verschijnen, zelfs als de baseregel ze omvat.

Country selector
Bepaal welke landen in de Hello country selector dropdown verschijnen, met dezelfde baseregels plus Always show en Never show overrides.

Checkout instellen
Checkout is verantwoordelijk voor het laten invoeren van verzend- en facturatiegegevens door de klant, het berekenen van landed cost, het innen van betaling en het voltooien van de bestelling.
Checkout deelt contextuele gegevens met Hello, zoals de locatie, taal en valuta van de bezoeker. Dit zorgt voor een consistente klantervaring gedurende het hele winkelproces.
U kunt alle Checkout-instellingen configureren in zowel Dashboard als het Zonos JS-script. Als u Checkout al in Dashboard hebt geconfigureerd, laadt het script die instellingen en gebruikt ze. Als u waarden opgeeft in de checkoutSettings-property van de Zonos.init-functie, gebruikt het script die waarden in plaats daarvan.
Configureer de 'place order'-knop in JS Script
Het Zonos JS-script herkent automatisch internationale shoppers en stuurt ze naar de Checkout flow. U moet echter de 'place order'-knop op uw platform configureren om Checkout te openen wanneer erop wordt geklikt. Dit kan door een CSS-selector door te geven aan de checkoutSettings.placeOrderButtonSelector-property van de Zonos.init-functie.
Als u meerdere knoppen hebt om een bestelling te plaatsen, geef dan een selector door voor elke knop. Bijvoorbeeld #placeOrder, .place-order.
Dit wordt getoond in regel 21 van het volledige voorbeeld.
Zonos.init({ // ... other fields checkoutSettings: { // ... other fields placeOrderButtonSelector: '#placeOrder', // Replace with your actual selector(s) },});Maak cart details veilig server-side aan
Om cart details aan de klant te tonen, moet u een server-side functie maken die de Zonos API aanroept om een cart aan te maken en vervolgens die cart ID teruggeeft aan uw frontend. Dit zorgt ervoor dat cart details niet aan de klant worden blootgesteld op een manier die kan worden gemanipuleerd.
Uw backend API call gebruikt een secret GraphQL credential token, anders dan de public token die u gebruikt om het Zonos JS-script te authenticeren. Deze token is op te halen in Dashboard -> Settings -> Integrations. De secret token moet als header in uw API call worden doorgegeven.
De cartCreate-mutation accepteert een lijst met items, die moeten worden geformatteerd volgens het cart item schema.
// 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) { id adjustments { amount currencyCode description productId sku type } items { id name amount currencyCode quantity sku description metadata { key value } } metadata { key value } }}`, 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..; }We raden aan een API-endpoint server-side aan te maken en dat endpoint aan te roepen vanuit uw frontend JS-integratie, wat in de volgende stap wordt beschreven.
Geef cart ID door aan Checkout via frontend
Zodra u server-side een cart hebt aangemaakt, moet u de cart ID doorgeven aan het Zonos JS-script. Dit kan met de createCartId-callback die deel uitmaakt van de Zonos.init-functie. Checkout haalt vervolgens veilig de cart details op bij Zonos wanneer het wordt geopend, wat manipulatie van de cart voorkomt. Zie het codevoorbeeld hieronder.
De waarde van createCartId kan geen statische waarde zijn; het moet een functie zijn.
Zonos.init({ // ... other fields checkoutSettings: { // 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 }, },});(Optioneel) Toon een melding onder Order total
Als u een korte, dynamische boodschap in Checkout wilt tonen — bijvoorbeeld een regelgevingsdisclaimer wanneer een specifiek product in de cart zit — kunt u een customMessage-array retourneren vanuit de createCartId-callback. Elke entry in de array wordt weergegeven op een eigen regel van een enkele info banner direct onder Order total.
Markdown link syntax — [link label] gevolgd door (https://example.com) — wordt gerenderd als anchor tag, zodat shoppers kunnen doorklikken. Gewone https://-URL's in de tekst worden ook automatisch gelinkt. Al het andere wordt als plain text gerenderd, dus HTML in de strings wordt geëscaped in plaats van uitgevoerd.
Er wordt slechts één banner per Checkout getoond, ongeacht hoeveel regels u doorgeeft.
Zonos.init({ // ... other fields checkoutSettings: { 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).', ], }; }, },});Opmerking: De berichttekst wordt als plain text gerenderd — HTML-tags in de strings worden geëscaped, dus alleen de Markdown link syntax wordt geïnterpreteerd. Bepaal server-side of u
customMessageopneemt op basis van de cart-inhoud, zodat de banner alleen verschijnt wanneer dat relevant is.
(Optioneel) Zonos checkout programmatisch triggeren
Als u aangepaste logica hebt en Zonos checkout programmatisch moet triggeren, kunt u de Zonos.triggerCheckoutInternational()-functie gebruiken om het Zonos checkout-venster te openen nadat Zonos is geïnitialiseerd. Dit roept de createCartId-callback aan die hierboven in Zonos.init is gedefinieerd en opent het Zonos checkout-venster.
// 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(); }});(Optioneel) Always trigger Zonos checkout selector
Als u het checkoutproces voor binnenlandse en internationale shoppers wilt scheiden, kunt u een International checkout-knop aan uw site toevoegen. In plaats van Zonos Checkout handmatig te triggeren met Zonos.triggerCheckoutInternational, kunt u Zonos.init configureren met de juiste selector. De selector is uitgeschakeld totdat Zonos is geïnitialiseerd; wanneer op de knop wordt geklikt, triggert deze automatisch Zonos checkout. Dit roept de createCartId-callback aan die in Zonos.init is gedefinieerd en opent het Zonos checkout-venster.
Zonos.init({ // ... other fields checkoutSettings: { // ... other fields alwaysTriggerInternationalCheckoutSelector: '#trigger-zonos-checkout', // Replace with your actual selector, button bound to this selector will always trigger Zonos checkout },});(Optioneel) Volg de checkout funnel met GA4 of Facebook Pixel
Zonos Checkout kan de volledige checkout funnel doorsturen naar uw bestaande analytics tools. Voor elke stap zendt Zonos uit:
- Het originele
zonos-checkout-...-event naar GA4 (viagtag('event', ...)) en naar Meta als custom event (viafbq('trackCustom', ...)). - Het bijbehorende standaard event naar Meta wanneer dat bestaat —
InitiateCheckout,AddPaymentInfoenPurchase— zodat Meta's ingebouwde optimalisatie en conversion reporting out of the box werken.
Hoe events bij uw providers komen, hangt af van hoe Checkout op uw site wordt gerenderd. Kies het pad dat bij uw integratie past.
Native integration (Checkout rendert direct op uw site)
Wanneer het <zonos-checkout> custom element op uw eigen pagina is gemount (de standaard voor de Zonos JS script-integratie hierboven beschreven), zijn de eigen window.gtag en window.fbq van de pagina al in scope. Zonos roept ze direct aan — geen relay of pixel ID-overdracht nodig.
Setup:
- Zorg dat uw pagina al de GA4 base tag en/of Meta Pixel base code geladen heeft (op dezelfde manier als u elke andere pagina op uw site volgt).
- Schakel de gewenste providers in het Zonos dashboard in onder Checkout settings → Tracking (Google Analytics, Facebook Pixel, of beide).
Dat is alles. Geen relay script, geen customHTML, geen extra ID's om door te geven — Zonos detecteert gtag / fbq op de pagina en vuurt events direct af.
Iframe integration (legacy Checkout iframe op iglobalstores.com)
Wanneer Checkout in een iframe op een andere origin wordt gehost, kan het de gtag / fbq van uw pagina niet direct bereiken. Zonos publiceert een klein relay script — analyticsRelayOnInit.js — dat luistert naar postMessage events van het Checkout iframe en ze doorstuurt naar de providers die u op uw pagina hebt. Eén relay handelt zowel GA4 als Facebook Pixel tegelijk af.
Setup:
- Schakel de gewenste providers in het Zonos dashboard in onder Checkout settings → Tracking.
- Voeg de GA4 base tag en/of Meta Pixel base code toe aan de
<head>van de pagina die het Checkout iframe host. - Voeg het relay script toe na de provider tags:
async src="https://cdn.jsdelivr.net/npm/@zonos/elements/dist/scripts/analyticsRelayOnInit.js">- Geef de bijbehorende ID's door via uw Checkout
customHTMLzodat de relay weet tegen welke property/pixel te firen:
window.Zonos.googleAnalyticId = 'G-XXXXXXXXXX'; window.Zonos.facebookPixelId = 'YOUR_PIXEL_ID';Voor stapsgewijze iframe-instructies, de volledige event reference (inclusief de purchase / Purchase payload mapping) en debugging tips, zie:
Synchroniseer order tracking en status naar Dashboard
Om bestellingen te synchroniseren tussen uw systeem en Zonos Dashboard, implementeert u deze API calls en webhooks:
Required Mutations
| Mutation↕ | Description↕ |
|---|---|
orderUpdateAccountOrderNumber | Synchroniseert uw native account number met Dashboard. Docs → |
orderAddTrackingNumber | Alleen vereist als u geen labels afdrukt in Dashboard. Zorgt dat tracking in Dashboard verschijnt zodat Zonos uw landed cost-berekeningen kan garanderen. Docs → |
Required Webhooks
Test uw integratie
Voordat u live gaat met uw Checkout-integratie, is het belangrijk alle aspecten grondig te testen om een soepele klantervaring te garanderen. Dit omvat het testen van de checkout flow, betalingsverwerking, ordercreatie en webhook-functionaliteit.
Volg onze testgids om te verifiëren dat uw integratie correct werkt en om problemen te identificeren en op te lossen voordat u naar productie gaat.
Veelgestelde vragen
Hieronder staan enkele veelgestelde vragen over het integratieproces.
Hoe handelt Zonos orderbevestiging af?
Configureer de post-purchase ervaring in Dashboard -> Settings -> Checkout settings onder Success page type. Drie opties zijn beschikbaar:
- Show Zonos success page (default, recommended) — Zonos toont een ingebouwde bedankpagina nadat de bestelling is geplaatst. De pagina wordt altijd getoond, zelfs als import van de bestelling naar uw systeem mislukt, zodat de shopper altijd een bevestiging krijgt.
- Redirect to a success page — Zonos wacht op een kort „Order complete"-scherm totdat de bestelling is aangemaakt en stuurt dan door naar uw geconfigureerde success URL met
zOrderNumber(enorderIdvoor legacy carts) als query params. - Close the checkout modal — Zonos sluit zijn modal zodra betaling is geïnd. Als u ook een success URL configureert, stuurt Zonos onmiddellijk na Stripe-betaling door naar die URL — zonder te wachten tot de bestelling is aangemaakt — en voegt
zonosCheckoutSessionIdtoe als query param. Gebruik deze optie wanneer u de snelste overdracht terug naar uw eigen success page wilt.
De bestelling opzoeken via zonosCheckoutSessionId
Wanneer u Close the checkout modal met een redirect URL gebruikt, kan het enkele seconden duren voordat de bestelling aan de checkout session is gekoppeld na de redirect. Lees zonosCheckoutSessionId uit de URL en poll de checkoutSession GraphQL query vanaf uw server met uw secret credential token totdat de bestelling klaar is. Roep dit nooit aan vanuit de browser — de secret credential token moet server-side blijven.
query getCheckoutSession($id: String!) { checkoutSession( ) order idStuur de query naar https://api.zonos.com/graphql met uw secret credential token uit Dashboard -> Settings -> Integrations als credentialToken request header.
Kan ik een melding ontvangen wanneer een bestelling is aangemaakt?
Ja. Als u meldingen wilt ontvangen wanneer een bestelling is aangemaakt, kunt u in Dashboard onder het gedeelte Email van Checkout settings het e-mailadres invoeren van teamleden die moeten worden geïnformeerd wanneer een bestelling is aangemaakt, verzonden of geannuleerd.
Custom integration
Bouw een end-to-end Checkout-integratie in uw aangepaste site.