DOCS

Anpassad integration

Anpassad integration

Bygg en end-to-end Checkout integration i din anpassade webbplats.

Denna guide täcker de tekniska aspekterna av att slutföra en fullständig integration av Zonos Checkout i din anpassade webbplats eller plattform. Den är avsedd för utvecklare som är bekväma med att arbeta med JavaScript och har erfarenhet av frontend-utveckling. Alla steg är obligatoriska om inget annat anges.

Förutsättningar


Denna guide täcker de tekniska aspekterna av att slutföra en fullständig integration av Zonos Checkout i din anpassade webbplats eller plattform. Den är avsedd för utvecklare som är bekväma med att arbeta med JavaScript och har erfarenhet av frontend-utveckling. Alla steg är obligatoriska om inget annat anges.

Förutsättningar


Installera Zonos JS-skriptet 

Din anpassade integration behöver inkludera Zonos JavaScript-snippetet. Detta skript ansvarar för att rendera Checkout UI, Zonos Hello, hantera betalningsbehandling och hantera besökares geo-IP-detektering.

1

Installera Zonos JS-snippetet

Zonos Elements-skriptet finns tillgängligt på följande URL:

Zonos JS-snippet

1
<script src="https://cdn.jsdelivr.net/npm/@zonos/elements/dist/scripts/loadZonos.js" />

Hantera webbläsarcaching

Vi rekommenderar också vanligtvis att lägga till en tidsstämpel eller annan unik identifierare till URL:en för att säkerställa att skriptet inte cachas av webbläsaren. Detta kommer att säkerställa att den senaste versionen av skriptet alltid laddas. Till exempel:

Zonos JS snippet

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<script>
  (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',
        () => {
          // Initialize the script here (instructions in next section)
        },
        false,
      );
      document.head.appendChild(script);
    }
  })();
</script>
2

Autentisera Zonos JS-snippet

När du har laddat Zonos JS-skriptet, behöver du autentisera det genom att skicka en Zonos API-nyckel och butikens ID till Zonos.init funktionen. API-nycklarna som används för att autentisera Checkout är utformade för att vara publicerbara, vilket innebär att de kan användas säkert i frontend-kod utan att avslöja någon känslig information.

Zonos JS-snippet

1
2
3
4
5
6
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
});
3

Ställ in tillåtna domäner

För att säkerställa att Zonos JS-skriptet endast laddas på tillåtna webbplatser, filtrerar vi förfrågningar baserat på en lista över "tillåtna domäner". Denna lista konfigureras i Dashboard. Utan denna konfiguration kommer Zonos JS-skriptet att returnera behörighetsfel istället för att laddas korrekt.

För att uppdatera dina tillåtna domäner:

  1. Gå till Dashboard -> Inställningar -> Checkout inställningar.
  2. Under avsnittet Tillåtna domäner, lägg till domän(er) där du kommer att integrera Checkout.
  3. Klicka på Spara.

Ställ in Zonos Hello 

När du har ställt in Zonos JS-skriptet, behöver du konfigurera Hello för att fungera med din webbplats. Hello är ansvarig för att upptäcka besökarens plats, språk och valuta, och visa lämplig information för dem. Hello krävs när du använder Checkout.

Du kan konfigurera alla Hello inställningar både i Dashboard och i Zonos JS-skriptet. Om du redan har konfigurerat Hello i Dashboard, kommer skriptet att ladda dessa inställningar och använda dem. Om du anger några värden i helloSettings-egenskapen av Zonos.init-funktionen, kommer skriptet att använda dessa värden istället.

1

Konfigurera valutakonvertering

Hello använder CSS-selektorer för att identifiera element på din webbplats som visar valutainformation. Du behöver skicka dessa selektorer till helloSettings.currencyElementSelector-egenskapen av Zonos.init-funktionen.

Du kan använda vilken giltig CSS-selektor som helst här, till exempel #price, .price för att välja flera olika element.

Zonos JS snippet

1
2
3
4
5
6
7
Zonos.init({
  // ... other fields
  helloSettings: {
    // ... other fields
    currencyElementSelector: '#price, .price', // Replace with your actual selector
  },
});

Valfritt — Öppna automatiskt Hello vid sidladdning

Som standard kommer Hello endast att öppnas när besökaren klickar på flaggknappen. Om du vill öppna Hello automatiskt när sidan laddas, kan du anropa funktionen Zonos.openHelloDialog() när Zonos-scriptet har laddats.

Zonos JS-snippet

1
2
3
4
5
Zonos.init({
  // ... other fields
});

Zonos.openHelloDialog();

Ställ in Zonos Checkout 

När Hello har konfigurerats, behöver du ställa in Checkout för att fungera med din webbplats. Checkout ansvarar för att låta kunden ange sin fraktinformation, beräkna landed cost och slutföra beställningen.

Checkout kommer att dela kontextuell data med Hello, såsom besökarens plats, språk och valuta. Detta säkerställer att kundens upplevelse är konsekvent genom hela shoppingprocessen.

Du kan konfigurera alla Checkout inställningar både i Dashboard och i Zonos JS-skriptet. Om du redan har konfigurerat Checkout i Dashboard, kommer skriptet att ladda dessa inställningar och använda dem. Om du anger några värden i checkoutSettings egenskapen av Zonos.init funktionen, kommer skriptet att använda dessa värden istället.

1

Konfigurera 'lägg beställning' knappen

Zonos JS-skriptet kommer automatiskt att känna igen internationella shoppare och dirigera dem till Checkout flödet. Du behöver dock konfigurera 'lägg beställning' knappen på din plattform för att öppna Checkout när den klickas. Detta kan göras genom att skicka en CSS-väljare till checkoutSettings.placeOrderButtonSelector egenskapen av Zonos.init funktionen.

Om du har flera knappar som kan användas för att lägga en beställning, se till att skicka in en väljare som matchar alla av dem. Till exempel, #placeOrder, .place-order kommer att matcha både #placeOrder och .place-order.

Zonos JS snippet

1
2
3
4
5
6
7
Zonos.init({
  // ... other fields
  checkoutSettings: {
    // ... other fields
    placeOrderButtonSelector: '#placeOrder', // Replace with your actual selector(s)
  },
});
2

Skapa säkert kundvagnsdetaljer på serversidan

För att visa kundvagnsdetaljer för kunden måste du skapa en serverside-funktion som kommer att anropa Zonos API:et för att skapa en kundvagn, och sedan skicka tillbaka det kundvagns-ID:t till din frontend. Detta kommer att säkerställa att kundvagnsdetaljer inte exponeras för kunden på ett sätt som kan manipuleras.

Ditt backend API-anrop kommer att använda en hemlig GraphQL-credential-token, som är annorlunda än den offentliga token som du använder för att autentisera Zonos JS-skriptet. Denna token kan hämtas från Dashboard och måste skickas som en header i ditt API-anrop.

Mutation createCart accepterar en lista med artiklar, som bör formateras enligt kundvagnsartikel-schema.

Exempel på skapande av kundvagn på serversidan

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// Example cart creation with Node.js
async function createCart(someCartDetails) {
  const response = await fetch('https://api.zonos.com/graphql', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      credentialToken: 'credential_live_xxxxxxxxxx', // Replace with your actual credential token (found in Dashboard)
    },
    body: `
      mutation {
        createCart(input: {
          cart: {
            items: ${JSON.stringify(someCartDetails)}
          }
        }) {
          id
        }
      }
    `,
  });

  const data = await response.json();
  return data.createCart.id; // Return the cart ID to your frontend
}

Vi föreslår att du skapar en API-slutpunkt på din server-sida och sedan anropar den slutpunkten från din frontend JS-integration, vilket beskrivs i nästa steg.

3

Skicka varukorgs-ID till Checkout via frontend

När du har skapat en varukorg på din server-sida, behöver du skicka varukorgs-ID:t till Zonos JS-skriptet. Detta kan göras genom att använda createCartId callbacken som är en del av Zonos.init funktionen. Checkout kommer då säkert att hämta varukorgens detaljer från Zonos när den öppnas, vilket förhindrar att varukorgen manipuleras.

Zonos JS-snippet

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Zonos.init({
  // ... other fields
  checkoutSettings: {
    // ... other fields
    placeOrderButtonSelector: '#placeOrder', // 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
    },
  },
});

Var den här sidan hjälpsam?