Installer Zonos JS-scriptet
Din tilpassede integration skal inkludere Zonos JavaScript-snippet. Dette script er ansvarligt for at gengive Checkout UI, Zonos Hello, håndtere betalingsbehandling og håndtere besøgendes geo-IP-detektion.
Installer Zonos JS-snippet
Zonos Elements-scriptet er tilgængeligt på følgende URL:
Zonos JS snippet
<script src="https://js.zonos.com/dist/scripts/loadZonos.js" />
Håndtering af browsercache
Vi anbefaler også typisk at tilføje et tidsstempel eller en anden unik identifikator til URL'en for at sikre, at scriptet ikke bliver cachet af browseren. Dette vil sikre, at den nyeste version af scriptet altid bliver indlæst. 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>
Godkend Zonos JS snippet
Når du har indlæst Zonos JS-scriptet, skal du godkende det ved at sende en Zonos API-nøgle og butik ID ind i Zonos.init
funktionen. API-nøglerne, der bruges til at godkende Checkout, er designet til at være offentliggjorte, hvilket betyder, at de sikkert kan bruges i frontend-kode uden at afsløre følsomme oplysninger.
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
});
Indstil tilladte domæner
For at sikre, at Zonos JS-scriptet kun indlæses på tilladte sider, filtrerer vi anmodninger baseret på en liste over "tilladte domæner". Denne liste konfigureres i Dashboard. Uden denne konfiguration vil Zonos JS-scriptet returnere tilladelsesfejl i stedet for at indlæse korrekt.
For at opdatere dine tilladte domæner:
- Gå til Dashboard -> Indstillinger -> Checkout indstillinger.
- Under sektionen Tilladte domæner skal du tilføje det/de domæne(r), hvor du vil integrere Checkout.
- Klik på Gem.
Opsæt Zonos Hello
Når du har opsat Zonos JS-scriptet, skal du konfigurere Hello til at fungere med din side. Hello er ansvarlig for at registrere besøgendes placering, sprog og valuta og vise de relevante oplysninger til dem. Hello er påkrævet, når du bruger Checkout.
Du kan konfigurere alle Hello indstillinger i både Dashboard og Zonos JS-scriptet. Hvis du allerede har konfigureret Hello i Dashboard, vil scriptet indlæse disse indstillinger og bruge dem. Hvis du angiver nogen værdier i helloSettings
egenskaben af Zonos.init
funktionen, vil scriptet bruge disse værdier i stedet.
Konfigurer valutakonvertering
Hello bruger CSS-selektorer til at identificere elementer på din side, der viser valutaoplysninger. Du skal videregive disse selektorer til helloSettings.currencyElementSelector
egenskaben af Zonos.init
funktionen.
Du kan bruge enhver gyldig CSS-selektor her, for eksempel #price, .price
for at vælge flere forskellige elementer.
Zonos JS snippet
Zonos.init({
// ... other fields
helloSettings: {
// ... other fields
currencyElementSelector: '#price, .price', // Replace with your actual selector
},
});
Konfigurer varebegrænsninger
Hello har evnen til at kontrollere for begrænsede varer, mens kunden browser, og forhindre dem i at blive tilføjet til kurven. For at dette kan fungere, skal Hello vide om yderligere vareinformation såsom navn og beskrivelse, samt "tilføj til kurv knappen". Du kan sende CSS-selektorer til Hello for at lade den indsamle disse oplysninger fra siden.
Zonos JS snippet
Zonos.init({
// ... other fields
helloSettings: {
// ... other fields
productAddToCartElementSelector: '.add-to-cart',
productDescriptionElementSelector: '.description',
productPriceElementSelector: '.price',
productTitleElementSelector: '.title',
},
});
Valgfri — Åbn automatisk Hello ved indlæsning af siden
Som standard vil Hello kun åbne, når besøgende klikker på flagknappen. Hvis du ønsker at åbne Hello automatisk, når siden indlæses, kan du kalde funktionen Zonos.openHelloDialog()
efter at Zonos scriptet er indlæst.
Zonos JS snippet
Zonos.init({
// ... other fields
});
Zonos.openHelloDialog();
Opsæt Zonos Checkout
Når Hello er blevet konfigureret, skal du opsætte Checkout til at fungere med din side. Checkout er ansvarlig for at lade kunden indtaste deres forsendelsesoplysninger, beregne landed cost og fuldføre ordren.
Checkout vil dele kontekstuelle data med Hello, såsom besøgendes placering, sprog og valuta. Dette sikrer, at kundens oplevelse er konsistent gennem hele købsprocessen.
Du kan konfigurere alle Checkout indstillinger i både Dashboard og Zonos JS-scriptet. Hvis du allerede har konfigureret Checkout i Dashboard, vil scriptet indlæse disse indstillinger og bruge dem. Hvis du angiver nogen værdier i checkoutSettings
egenskaben af Zonos.init
funktionen, vil scriptet bruge disse værdier i stedet.
Konfigurer 'læg ordre' knappen
Zonos JS-scriptet vil automatisk genkende internationale shoppere og lede dem til Checkout flowet. Du skal dog konfigurere 'læg ordre' knappen på din platform til at åbne Checkout når den klikkes. Dette kan gøres ved at videregive en CSS-selektor til checkoutSettings.placeOrderButtonSelector
egenskaben af Zonos.init
funktionen.
Hvis du har flere knapper, der kan bruges til at lægge en ordre, skal du sørge for at videregive en selektor, der matcher dem alle. 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 kurv visningsbare kurvdetaljer i Checkout
Den buildCartDetail
callback er ansvarlig for at returnere kurvdetaljer i et format, som Checkout-grænsefladen kan forstå og vise. Denne funktion kaldes, så snart kunden ankommer til checkout-siden, hvilket sikrer, at kurvdetaljerne vises korrekt på den første side af Checkout. Bemærk venligst, at dette ikke bruges til beregninger - det håndteres i næste trin.
Zonos JS snippet
Zonos.init({
// ... other fields
checkoutSettings: {
// ... other fields
buildCartDetail: async () => {
// ... Your existing buildCartDetail implementation
// This should return cart details for UI display
},
},
});
Indkøbsvare skema
Funktionen buildCartDetail
skal returnere et array af indkøbsvare. Nedenfor er en tabel, der beskriver strukturen af hver CartItem
objekt:
Felt Navn | Type | Påkrævet | Beskrivelse |
---|---|---|---|
amount | Nummer | Ja | Prisen på varen. |
countryOfOrigin | Streng | Nej | Oprindelseslandet for varen. |
currencyCode | Streng | Ja | Valutakoden for beløbet. |
description | Streng | Nej | Beskrivelse af varen. |
hsCode | Streng | Nej | Harmoniseret systemkode for varen. |
imageUrl | Streng | Nej | URL til varens billede. |
measurements | ItemMeasurement[] | Nej | Array af varemålinger. |
metadata | Objekt (streng/nummer par) | Nej | Yderligere metadata om varen. |
name | Streng | Ja | Navn på varen. |
productId | Streng | Nej | Produkt-ID. |
quantity | Nummer | Ja | Antal af varen i indkøbskurven. |
sku | Streng | Nej | Lagerbeholdningsenhedsidentifikator. |
Sikkert overføre landed cost til Checkout
Funktionen buildLandedCost
håndterer sikkert beregningen af landed cost. Den kaldes efter kunden indtaster deres forsendelsesoplysninger. Denne funktion beregner forsendelsesomkostningerne og andre nødvendige omkostninger, som derefter vises på den efterfølgende side af Checkout.
Det er vigtigt, at du håndterer logikken for beregning af landed cost på serversiden, da dette er den eneste måde at sikre, at indkøbsvareoplysningerne ikke bliver eksponeret for kundens browser. Hvis du bruger en serverløs arkitektur, kan du bruge en serverløs funktion til at håndtere beregningen af landed cost. Funktionen buildLandedCost
skal blot kalde den serverløse funktion/API-endpoint og returnere resultatet.
På serversiden kan du bruge Zonos Checkout API'en til at beregne landed cost ved at bruge følgende POST
anmodning. Du skal angive API-nøglen, du har brugt til Zonos JS-scriptet i credentialToken
headeren.
Anmodnings-URL
https://v1.route.js.zonos.com/api/zonos-elements/calculate-landed-cost
Anmodningskrop
{
"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 integration
Byg en end-to-end Checkout integration til dit tilpassede site.
Denne guide dækker de tekniske aspekter af at gennemføre en fuld integration af Zonos Checkout i dit tilpassede site eller platform. Den er beregnet til udviklere, der er komfortable med at arbejde med JavaScript og har erfaring med frontend-udvikling. Alle trin er nødvendige, medmindre andet er angivet.
Forudsætninger
Denne guide dækker de tekniske aspekter af at gennemføre en fuld integration af Zonos Checkout i dit tilpassede site eller platform. Den er beregnet til udviklere, der er komfortable med at arbejde med JavaScript og har erfaring med frontend-udvikling. Alle trin er nødvendige, medmindre andet er angivet.
Forudsætninger