DOCS

Custom integration

/

Intégration personnalisée

Intégrez un processus de paiement Checkout de bout en bout dans votre site personnalisé.

Ce guide couvre les aspects techniques de la réalisation d'une intégration complète de Zonos Checkout dans votre site ou plateforme personnalisé(e). Il est destiné aux développeurs qui sont à l'aise de travailler avec JavaScript et qui ont de l'expérience en développement frontend. Toutes les étapes sont nécessaires sauf indication contraire.

Prérequis


Ce guide couvre les aspects techniques de la réalisation d'une intégration complète de Zonos Checkout dans votre site ou plateforme personnalisé(e). Il est destiné aux développeurs qui sont à l'aise de travailler avec JavaScript et qui ont de l'expérience en développement frontend. Toutes les étapes sont nécessaires sauf indication contraire.

Prérequis


Installer le script JS de Zonos 

Votre intégration personnalisée devra inclure l'extrait de code JavaScript de Zonos. Ce script est responsable du rendu de l'interface utilisateur du Checkout, de Zonos Hello, du traitement des paiements et de la détection de l'adresse IP du visiteur.

1

Installer l'extrait de code JS de Zonos

Le script Zonos Elements est disponible à l'URL suivante :

Zonos JS snippet

1
<script src="https://js.zonos.com/dist/scripts/loadZonos.js" />

Gestion de la mise en cache du navigateur

Nous recommandons également généralement d'ajouter un horodatage ou un autre identifiant unique à l'URL pour garantir que le script ne soit pas mis en cache par le navigateur. Cela garantira que la dernière version du script est toujours chargée. Par exemple:

Zonos Extrait JS

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://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>
2

Authentifier le snippet JS de Zonos

Une fois que vous avez chargé le script JS de Zonos, vous devez l'authentifier en passant une Zonos clé API et l'ID du magasin dans la fonction Zonos.init. Les clés API utilisées pour authentifier Checkout sont conçues pour être publiables, ce qui signifie qu'elles peuvent être utilisées en toute sécurité dans le code frontend sans exposer d'informations sensibles.

Zonos snippet JS

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

Définir les domaines autorisés

Afin de s'assurer que le script JS de Zonos ne soit chargé que sur les sites autorisés, nous filtrons les demandes en fonction d'une liste de "domaines autorisés". Cette liste est configurée dans le Dashboard. Sans cette configuration, le script JS de Zonos renverra des erreurs de permission au lieu de se charger correctement.

Pour mettre à jour vos domaines autorisés :

  1. Allez dans Dashboard -> Paramètres -> Paramètres de Checkout.
  2. Dans la section Domaines autorisés, ajoutez le(s) domaine(s) où vous intégrerez Checkout.
  3. Cliquez sur Enregistrer.

Configurer Zonos Hello 

Une fois que vous avez configuré le script JS de Zonos, vous devez configurer Hello pour qu'il fonctionne avec votre site. Hello est responsable de détecter la localisation, la langue et la devise du visiteur, et d'afficher les informations appropriées. Hello est requis lors de l'utilisation de Checkout.

Vous pouvez configurer tous les paramètres de Hello à la fois dans le Dashboard et dans le script JS de Zonos. Si vous avez déjà configuré Hello dans le Dashboard, le script chargera ces paramètres et les utilisera. Si vous spécifiez des valeurs dans la propriété helloSettings de la fonction Zonos.init, le script utilisera ces valeurs à la place.

1

Configurer la conversion de devise

Hello utilise des sélecteurs CSS pour identifier les éléments de votre site qui affichent des informations sur les devises. Vous devrez passer ces sélecteurs à la propriété helloSettings.currencyElementSelector de la fonction Zonos.init.

Vous pouvez utiliser n'importe quel sélecteur CSS valide ici, par exemple #price, .price pour sélectionner plusieurs éléments différents.

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
  },
});
2

Configurer les restrictions d'article

Hello a la capacité de vérifier les articles restreints lorsque l'acheteur navigue et de les empêcher d'être ajoutés au panier. Pour que cela fonctionne, Hello a besoin de connaître des informations supplémentaires sur l'article telles que le nom et la description, ainsi que le "bouton ajouter au panier". Vous pouvez transmettre des sélecteurs CSS à Hello pour lui permettre de récupérer ces informations de la page.

Zonos extrait de JS

1
2
3
4
5
6
7
8
9
10
Zonos.init({
  // ... other fields
  helloSettings: {
    // ... other fields
    productAddToCartElementSelector: '.add-to-cart',
    productDescriptionElementSelector: '.description',
    productPriceElementSelector: '.price',
    productTitleElementSelector: '.title',
  },
});

Optionnel — Ouvrir automatiquement Hello lors du chargement de la page

Par défaut, Hello ne s'ouvrira que lorsque le visiteur cliquera sur le bouton du drapeau. Si vous souhaitez ouvrir automatiquement Hello lorsque la page se charge, vous pouvez appeler la fonction Zonos.openHelloDialog() une fois que le script Zonos a été chargé.

Zonos Extrait JS

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

Zonos.openHelloDialog();

Configurer Zonos Checkout 

Une fois que Hello a été configuré, vous devez configurer Checkout pour qu'il fonctionne avec votre site. Checkout est responsable de permettre au client de saisir ses informations de livraison, de calculer le landed cost, et de finaliser la commande.

Checkout partagera des données contextuelles avec Hello, telles que la localisation du visiteur, la langue et la devise. Cela garantit que l'expérience du client est cohérente tout au long du processus d'achat.

Vous pouvez configurer tous les paramètres de Checkout à la fois dans le Dashboard et dans le script Zonos JS. Si vous avez déjà configuré Checkout dans le Dashboard, le script chargera ces paramètres et les utilisera. Si vous spécifiez des valeurs dans la propriété checkoutSettings de la fonction Zonos.init, le script utilisera ces valeurs à la place.

1

Configurer le bouton 'passer la commande'

Le script Zonos JS reconnaîtra automatiquement les acheteurs internationaux et les dirigera vers le flux de Checkout. Cependant, vous devrez configurer le bouton 'passer la commande' sur votre plateforme pour ouvrir Checkout lorsqu'il est cliqué. Cela peut être fait en passant un sélecteur CSS à la propriété checkoutSettings.placeOrderButtonSelector de la fonction Zonos.init.

Si vous avez plusieurs boutons qui peuvent être utilisés pour passer une commande, assurez-vous de passer un sélecteur qui les correspondra tous. Par exemple, #placeOrder, .place-order correspondra à la fois à #placeOrder et .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

Transmettre les détails du panier en mode affichage uniquement dans Checkout

La fonction buildCartDetail est responsable de renvoyer les détails du panier dans un format que l'interface Checkout peut comprendre et afficher. Cette fonction est appelée dès que le client arrive sur la page de checkout, garantissant que les détails du panier sont affichés correctement sur la première page de Checkout. Veuillez noter que cela n'est pas utilisé pour les calculs - cela est géré à l'étape suivante.

Zonos extrait de code JS

1
2
3
4
5
6
7
8
9
10
Zonos.init({
  // ... other fields
  checkoutSettings: {
    // ... other fields
    buildCartDetail: async () => {
      // ... Your existing buildCartDetail implementation
      // This should return cart details for UI display
    },
  },
});

Schéma de l'article du panier

La fonction buildCartDetail doit retourner un tableau d'articles du panier. Ci-dessous se trouve un tableau détaillant la structure de chaque objet CartItem :

Nom du champTypeRequisDescription
amountNumberOuiLe montant du prix de l'article.
countryOfOriginStringNonLe pays d'origine de l'article.
currencyCodeStringOuiLe code de devise pour le montant.
descriptionStringNonDescription de l'article.
hsCodeStringNonLe code du Système Harmonisé pour l'article.
imageUrlStringNonURL de l'image de l'article.
measurementsItemMeasurement[]NonTableau des mesures de l'article.
metadataObject (paires string/number)NonMétadonnées supplémentaires sur l'article.
nameStringOuiNom de l'article.
productIdStringNonL'ID du produit.
quantityNumberOuiQuantité de l'article dans le panier.
skuStringNonIdentifiant de l'unité de gestion des stocks.
3

Transmettre en toute sécurité le landed cost à Checkout

La fonction buildLandedCost gère le calcul sécurisé du landed cost. Elle est invoquée après que le client a saisi ses informations de livraison. Cette fonction calcule les frais d'expédition et autres coûts nécessaires, qui sont ensuite affichés sur la page suivante de Checkout.

Il est important de gérer la logique de calcul du landed cost côté serveur, car c'est le seul moyen de garantir que les détails du panier ne sont pas exposés au navigateur du client. Si vous utilisez une architecture sans serveur, vous pouvez utiliser une fonction sans serveur pour gérer le calcul du landed cost. La fonction buildLandedCost doit simplement appeler la fonction sans serveur/point de terminaison API et retourner le résultat.

Côté serveur, vous pouvez utiliser l'API Zonos Checkout pour calculer le landed cost en utilisant la requête POST suivante. Vous devrez passer la clé API que vous utilisez pour le script JS de Zonos dans l'en-tête credentialToken.

Request URL

1
https://v1.route.js.zonos.com/api/zonos-elements/calculate-landed-cost

Corps de la requête

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
{
  "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 extrait de code JS

1
2
3
4
5
6
7
8
9
Zonos.init({
  // ... other fields
  checkoutSettings: {
    // ... other fields
    buildLandedCost: async (checkoutSessionId, contact, shippingAddress) => {
      // This should return the landed cost calculation
    },
  },
});

Cette page était-elle utile?


Des questions ?

Contactez-nous.