DOCS

Индивидуальная интеграция

Индивидуальная интеграция

Создайте полную интеграцию Checkout на своем индивидуальном сайте.

Это руководство охватывает технические аспекты завершения полной интеграции Zonos Checkout на вашем индивидуальном сайте или платформе. Оно предназначено для разработчиков, которые уверенно работают с JavaScript и имеют опыт в разработке фронтенда. Все шаги обязательны, если не указано иное.

Предварительные требования


Это руководство охватывает технические аспекты завершения полной интеграции Zonos Checkout на вашем индивидуальном сайте или платформе. Оно предназначено для разработчиков, которые уверенно работают с JavaScript и имеют опыт в разработке фронтенда. Все шаги обязательны, если не указано иное.

Предварительные требования


Установите JS-скрипт Zonos 

Ваша индивидуальная интеграция должна включать фрагмент JavaScript Zonos. Этот скрипт отвечает за отображение интерфейса Checkout, Zonos Hello, обработку платежей и определение геолокации посетителей.

1

Установите фрагмент JS Zonos

Скрипт Zonos Elements доступен по следующему URL:

Zonos JS фрагмент

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

Обработка кэширования браузера

Мы также обычно рекомендуем добавлять временную метку или другой уникальный идентификатор к URL, чтобы гарантировать, что скрипт не кэшируется браузером. Это обеспечит загрузку последней версии скрипта. Например:

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

Аутентификация Zonos JS фрагмента

После загрузки скрипта Zonos JS, вам необходимо аутентифицировать его, передав Zonos API ключ и идентификатор магазина в функцию Zonos.init. API ключи, используемые для аутентификации Checkout, предназначены для публикации, что означает, что их можно безопасно использовать в коде на стороне клиента, не раскрывая никакой конфиденциальной информации.

Zonos 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

Установите разрешенные домены

Чтобы гарантировать, что JS-скрипт Zonos загружается только на разрешенных сайтах, мы фильтруем запросы на основе списка "разрешенных доменов". Этот список настраивается в Dashboard. Без этой конфигурации JS-скрипт Zonos будет возвращать ошибки разрешения вместо корректной загрузки.

Чтобы обновить ваши разрешенные домены:

  1. Перейдите в Dashboard -> Настройки -> настройки Checkout.
  2. В разделе Разрешенные домены добавьте домен(ы), на которых вы будете интегрировать Checkout.
  3. Нажмите Сохранить.

Настройте Zonos Hello 

После того как вы настроили JS-скрипт Zonos, вам нужно настроить Hello для работы с вашим сайтом. Hello отвечает за определение местоположения, языка и валюты посетителя и отображение соответствующей информации. Hello необходим при использовании Checkout.

Вы можете настроить все параметры Hello как в Dashboard, так и в JS-скрипте Zonos. Если вы уже настроили Hello в Dashboard, скрипт загрузит эти настройки и использует их. Если вы укажете какие-либо значения в свойстве helloSettings функции Zonos.init, скрипт будет использовать эти значения вместо указанных.

1

Настройте конвертацию валюты

Hello использует CSS-селекторы для идентификации элементов на вашем сайте, которые отображают информацию о валюте. Вам нужно будет передать эти селекторы в свойство helloSettings.currencyElementSelector функции Zonos.init.

Вы можете использовать любой действительный CSS-селектор, например #price, .price, чтобы выбрать несколько различных элементов.

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

Необязательно — Автоматически открывать Hello при загрузке страницы

По умолчанию Hello будет открываться только тогда, когда посетитель нажимает на кнопку с флагом. Если вы хотите автоматически открывать Hello при загрузке страницы, вы можете вызвать функцию Zonos.openHelloDialog(), как только скрипт Zonos будет загружен.

Zonos JS snippet

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

Zonos.openHelloDialog();

Настройка Zonos Checkout 

После того как Hello будет настроен, вам нужно настроить Checkout для работы с вашим сайтом. Checkout отвечает за то, чтобы клиент мог ввести свою информацию для доставки, рассчитать landed cost и завершить заказ.

Checkout будет делиться контекстными данными с Hello, такими как местоположение посетителя, язык и валюта. Это гарантирует, что опыт клиента будет последовательным на протяжении всего процесса покупок.

Вы можете настроить все параметры Checkout как в Dashboard, так и в JS-скрипте Zonos. Если вы уже настроили Checkout в Dashboard, скрипт загрузит эти настройки и использует их. Если вы укажете какие-либо значения в свойстве checkoutSettings функции Zonos.init, скрипт будет использовать эти значения вместо них.

1

Настройка кнопки 'разместить заказ'

JS-скрипт Zonos автоматически распознает международных покупателей и направляет их в поток Checkout. Однако вам нужно будет настроить кнопку 'разместить заказ' на вашей платформе, чтобы она открывала Checkout при нажатии. Это можно сделать, передав CSS-селектор в свойство checkoutSettings.placeOrderButtonSelector функции Zonos.init.

Если у вас есть несколько кнопок, которые могут использоваться для размещения заказа, убедитесь, что вы передали селектор, который будет соответствовать всем из них. Например, #placeOrder, .place-order будет соответствовать как #placeOrder, так и .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

Безопасное создание деталей корзины на стороне сервера

Для того чтобы отобразить детали корзины клиенту, вам необходимо создать серверную функцию, которая будет вызывать API Zonos для создания корзины, а затем передавать этот идентификатор корзины обратно на ваш фронтенд. Это обеспечит защиту деталей корзины от манипуляций со стороны клиента.

Ваш вызов API на стороне сервера будет использовать секретный токен GraphQL, который отличается от публичного токена, который вы используете для аутентификации скрипта Zonos JS. Этот токен можно получить из Dashboard и его необходимо передать в заголовке вашего вызова API.

Мутация createCart принимает список товаров, который должен быть отформатирован в соответствии с схемой элемента корзины.

Пример создания корзины на стороне сервера

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
}

Мы предлагаем создать конечную точку API на вашей стороне сервера, а затем вызывать эту конечную точку из вашей интеграции JS на стороне клиента, что подробно описано на следующем шаге.

3

Передайте ID корзины в Checkout через фронтенд

После того как вы создали корзину на стороне сервера, вам нужно передать ID корзины в JS-скрипт Zonos. Это можно сделать, используя обратный вызов createCartId, который является частью функции Zonos.init. Checkout затем безопасно получит детали корзины из Zonos при открытии, предотвращая любое вмешательство в корзину.

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

Была ли эта страница полезной?