Installer Zonos JS-skriptet
Din tilpassede integrasjon må inkludere Zonos JavaScript-snippet. Dette skriptet er ansvarlig for å gjengi Checkout UI, Zonos Hello, håndtere betalingsbehandling og håndtere besøkendes geo-IP-detektering.
Installer Zonos JS-snippet
Zonos Elements-skriptet er tilgjengelig på følgende URL:
Zonos JS-snippet
<script src="https://js.zonos.com/dist/scripts/loadZonos.js" />
Håndtering av nettleserbuffer
Vi anbefaler også vanligvis å legge til et tidsstempel eller en annen unik identifikator til URL-en for å sikre at skriptet ikke blir bufret av nettleseren. Dette vil sikre at den nyeste versjonen av skriptet alltid lastes inn. For eksempel:
Zonos JS snippet
<script>
(async function () {
const timestamp = new Date().getTime();
const zonosScript = document.querySelector(
`script[src*="https://js.zonos.com/dist/scripts/loadZonos.js"]`,
);
if (!zonosScript) {
const script = document.createElement('script');
script.src = `https://js.zonos.com/dist/scripts/loadZonos.js?timestamp=${timestamp}`;
script.addEventListener(
'load',
() => {
// Initialize the script here (instructions in next section)
},
false,
);
document.head.appendChild(script);
}
})();
</script>
Autentiser Zonos JS-snippetet
Når du har lastet inn Zonos JS-skriptet, må du autentisere det ved å sende en Zonos API-nøkkel og butikk-ID inn i Zonos.init
funksjonen. API-nøklene som brukes til å autentisere Checkout er designet for å være publiserbare, noe som betyr at de trygt kan brukes i frontend-kode uten å eksponere sensitiv informasjon.
Zonos JS-snippet
Zonos.init({
// ... other fields
zonosApiKey: 'API KEY', // Replace with your actual API key (found in Dashboard)
storeId: 'STORE ID', // Replace with your actual store ID (found in Dashboard)
// ... other fields
});
Angi tillatte domener
For å sikre at Zonos JS-skriptet kun lastes inn på tillatte nettsteder, filtrerer vi forespørslene basert på en liste over "tillatte domener". Denne listen konfigureres i Dashboard. Uten denne konfigurasjonen vil Zonos JS-skriptet returnere tillatelsesfeil i stedet for å lastes inn riktig.
For å oppdatere dine tillatte domener:
- Gå til Dashboard -> Innstillinger -> Checkout innstillinger.
- Under Tillatte domener-seksjonen, legg til domenet/domenene der du vil integrere Checkout.
- Klikk Lagre.
Sett opp Zonos Hello
Når du har satt opp Zonos JS-skriptet, må du konfigurere Hello for å fungere med nettstedet ditt. Hello er ansvarlig for å oppdage besøkendes plassering, språk og valuta, og vise den passende informasjonen til dem. Hello er nødvendig når du bruker Checkout.
Du kan konfigurere alle Hello-innstillinger både i Dashboard og i Zonos JS-skriptet. Hvis du allerede har konfigurert Hello i Dashboard, vil skriptet laste inn disse innstillingene og bruke dem. Hvis du spesifiserer noen verdier i helloSettings
-egenskapen til Zonos.init
-funksjonen, vil skriptet bruke disse verdiene i stedet.
Konfigurer valutakonvertering
Hello bruker CSS-selektorer for å identifisere elementer på nettstedet ditt som viser valutainformasjon. Du må sende disse selektorene til helloSettings.currencyElementSelector
-egenskapen til Zonos.init
-funksjonen.
Du kan bruke hvilken som helst gyldig CSS-selektor her, for eksempel #price, .price
for å velge flere forskjellige elementer.
Zonos JS snippet
Zonos.init({
// ... other fields
helloSettings: {
// ... other fields
currencyElementSelector: '#price, .price', // Replace with your actual selector
},
});
Konfigurer varebegrensninger
Hello har muligheten til å sjekke for begrensede varer mens kunden blar gjennom og forhindre dem fra å bli lagt til i handlekurven. For at dette skal fungere, må Hello vite om tilleggsinformasjon om varen, som navn og beskrivelse, samt "legg til i handlekurv-knappen". Du kan sende CSS-selektorer til Hello for å la den hente denne informasjonen fra siden.
Zonos JS-snippet
Zonos.init({
// ... other fields
helloSettings: {
// ... other fields
productAddToCartElementSelector: '.add-to-cart',
productDescriptionElementSelector: '.description',
productPriceElementSelector: '.price',
productTitleElementSelector: '.title',
},
});
Valgfritt — Åpne automatisk Hello ved sideinnlasting
Som standard vil Hello kun åpne når besøkende klikker på flaggknappen. Hvis du ønsker å åpne Hello automatisk når siden lastes, kan du kalle Zonos.openHelloDialog()
-funksjonen når Zonos-skriptet har lastet inn.
Zonos JS-snutt
Zonos.init({
// ... other fields
});
Zonos.openHelloDialog();
Sett opp Zonos Checkout
Når Hello er konfigurert, må du sette opp Checkout for å fungere med nettstedet ditt. Checkout er ansvarlig for å la kunden angi sin fraktinformasjon, beregne landed cost, og fullføre bestillingen.
Checkout vil dele kontekstuell data med Hello, som for eksempel besøkendes plassering, språk og valuta. Dette sikrer at kundens opplevelse er konsistent gjennom hele handleprosessen.
Du kan konfigurere alle Checkout-innstillinger både i Dashboard og i Zonos JS-skriptet. Hvis du allerede har konfigurert Checkout i Dashboard, vil skriptet laste disse innstillingene og bruke dem. Hvis du spesifiserer noen verdier i checkoutSettings
-egenskapen til Zonos.init
-funksjonen, vil skriptet bruke disse verdiene i stedet.
Konfigurer 'plasser ordre'-knappen
Zonos JS-skriptet vil automatisk gjenkjenne internasjonale kunder og lede dem til Checkout-flyten. Du må imidlertid konfigurere 'plasser ordre'-knappen på plattformen din for å åpne Checkout når den klikkes. Dette kan gjøres ved å sende en CSS-velger til checkoutSettings.placeOrderButtonSelector
-egenskapen til Zonos.init
-funksjonen.
Hvis du har flere knapper som kan brukes til å plassere en ordre, må du sørge for å sende inn en velger som vil matche alle sammen. For eksempel, #placeOrder, .place-order
vil matche både #placeOrder
og .place-order
.
Zonos JS snippet
Zonos.init({
// ... other fields
checkoutSettings: {
// ... other fields
placeOrderButtonSelector: '#placeOrder', // Replace with your actual selector(s)
},
});
Send handlebare handlekurvdetaljer i Checkout
Den buildCartDetail
tilbakeringingsfunksjonen er ansvarlig for å returnere handlekurvdetaljer i et format som Checkout-grensesnittet kan forstå og vise. Denne funksjonen kalles så snart kunden ankommer checkout-siden, og sikrer at handlekurvdetaljene vises nøyaktig på den første siden av Checkout. Vennligst merk at dette ikke brukes til beregninger - det håndteres i neste steg.
Zonos JS-snutt
Zonos.init({
// ... other fields
checkoutSettings: {
// ... other fields
buildCartDetail: async () => {
// ... Your existing buildCartDetail implementation
// This should return cart details for UI display
},
},
});
Handle for kurvobjekt
Funksjonen buildCartDetail
skal returnere en matrise av kurvobjekter. Nedenfor er en tabell som beskriver strukturen til hvert CartItem
-objekt:
Felt Navn | Type | Påkrevd | Beskrivelse |
---|---|---|---|
amount | Nummer | Ja | Prisen på objektet. |
countryOfOrigin | Streng | Nei | Opprinnelseslandet for objektet. |
currencyCode | Streng | Ja | Valutakoden for beløpet. |
description | Streng | Nei | Beskrivelse av objektet. |
hsCode | Streng | Nei | Harmonized System-koden for objektet. |
imageUrl | Streng | Nei | URL til bildet av objektet. |
measurements | ItemMeasurement[] | Nei | Matrise av objektmål. |
metadata | Objekt (streng/nummer par) | Nei | Tilleggsmetadata om objektet. |
name | Streng | Ja | Navn på objektet. |
productId | Streng | Nei | Produkt-ID. |
quantity | Nummer | Ja | Antall av objektet i kurven. |
sku | Streng | Nei | Identifikator for lagerbeholdning. |
Sikkert overføre landed cost til Checkout
Funksjonen buildLandedCost
håndterer sikker beregning av landed cost. Den blir kalt etter at kunden har oppgitt sin fraktinformasjon. Denne funksjonen beregner fraktkostnader og andre nødvendige kostnader, som deretter vises på den påfølgende siden av Checkout.
Det er viktig at du håndterer logikken for beregning av landed cost på serversiden, da dette er den eneste måten å sikre at kurvdetaljene ikke blir eksponert for kundens nettleser. Hvis du bruker en serverløs arkitektur, kan du bruke en serverløs funksjon for å håndtere beregningen av landed cost. Funksjonen buildLandedCost
skal ganske enkelt kalle den serverløse funksjonen/API-endepunktet og returnere resultatet.
På serversiden kan du bruke Zonos Checkout API for å beregne landed cost ved å bruke følgende POST
-forespørsel. Du må sende API-nøkkelen du har brukt for Zonos JS-skriptet i credentialToken
-headeren.
Forespørsel URL
https://v1.route.js.zonos.com/api/zonos-elements/calculate-landed-cost
Forespørsel kropp
{
"billingAddress": {
"addressLine1": "789 King Street",
"city": "London",
"country": "GB",
"postalCode": "SW1A 1AA",
"state": "England"
},
"billingContact": {
"firstName": "John",
"lastName": "Doe",
"phone": "+44-20-7946-0958"
},
"checkoutSessionId": "xyz789",
"contact": {
"firstName": "John",
"lastName": "Doe",
"phone": "+44-20-7946-0958"
},
"items": [
{
"amount": 150,
"currencyCode": "USD",
"name": "Product Name",
"quantity": 2
}
],
"shippingAddress": {
"addressLine1": "789 King Street",
"city": "London",
"country": "GB",
"postalCode": "SW1A 1AA",
"state": "England"
}
}
Zonos JS-snippet
Zonos.init({
// ... other fields
checkoutSettings: {
// ... other fields
buildLandedCost: async (checkoutSessionId, contact, shippingAddress) => {
// This should return the landed cost calculation
},
},
});
Tilpasset integrasjon
Bygg en ende-til-ende Checkout integrasjon inn i ditt tilpassede nettsted.
Denne guiden dekker de tekniske aspektene ved å fullføre en full integrasjon av Zonos Checkout inn i ditt tilpassede nettsted eller plattform. Den er ment for utviklere som er komfortable med å jobbe med JavaScript og har erfaring med frontend-utvikling. Alle trinn er nødvendige med mindre annet er notert.
Forutsetninger
Denne guiden dekker de tekniske aspektene ved å fullføre en full integrasjon av Zonos Checkout inn i ditt tilpassede nettsted eller plattform. Den er ment for utviklere som er komfortable med å jobbe med JavaScript og har erfaring med frontend-utvikling. Alle trinn er nødvendige med mindre annet er notert.
Forutsetninger