Интеграция сервиса [бета версия]

Добавление кода на сайт

Добавление кода на сайт

Установка счетчика

Счетчик необходимо добавить на каждую страницу сайта.

При установке счетчика в HTML-код сайта, разместите код как можно ближе к началу страницы, в пределах тегов <head></head> или <body></body>.

Пример кода счетчика:

<script type="text/javascript" language="javascript">
  var _lh_params = {
    "popup": false
  };
  lh_clid = "5c8a1ff073efc3407f9e4603";
  (function() {
    var lh = document.createElement('script');
    lh.type = 'text/javascript';
    lh.async = true;
    lh.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'track.leadhit.io/track.js?ver=' + Math.floor(Date.now() / 100000).toString();
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(lh, s);
  })(); /* "PLEASE DO NOT MAKE ANY CHANGES IN THIS JS-CODE!"*/
</script>
Добавление кода на сайт

Установка кода заказа

Код заказа необходимо разместить на финальную страницу заказа, где пользователя информируют об успешном оформлении заказа.

В код нужно передать данные о номере заказа, сумме и товарах.

Пример кода заказа:

<script type="text/javascript">
  (function () {
    function readCookie(name) {
      if (document.cookie.length > 0) {
        let offset = document.cookie.indexOf(name + "=");
        if (offset != -1) {
          offset = offset + name.length + 1;
          let tail = document.cookie.indexOf(";", offset);
          if (tail == -1) tail = document.cookie.length;
          return unescape(document.cookie.substring(offset, tail));
        }
      }
      return null;
    }
    function genUID() {
      return 'xxxxxxxxxxxxxxxxxxxxxxxx'.replace(/x/g, function () {
        var rand;
        try {
          rand = crypto.getRandomValues((new Uint8Array(1)))[0] % 16;
        } catch (e) {
          rand = Math.floor(Math.random() * 16);
        }
        return rand.toString(16);
      });
    }

    var order_id = 'ORDER_ID_HERE'; // String
    var cart_sum = 'CART_SUM_HERE'; // String
    var order_offers = []; // Offers list here

    var site_id = '5e8727c3ffce38858fd1bbc7';
    var lead_id = readCookie('_lhtm_u');
    var url = window.location.href;
    var form_id = genUID();
    var form_fields = {
        'orderid': order_id,
        'cart_sum': cart_sum
    };

    var request_body_form = {
      'site_id': site_id,
      'lead_id': lead_id,
      'form_id': form_id,
      'url': url,
      'referrer': 'direct',
      'action': 'lh_orderid',
      'form_fields': form_fields
    };
    var xhr_form = new XMLHttpRequest();
    xhr_form.open('POST', 'https://track-api.leadhit.io/save/lead/form', true);
    xhr_form.setRequestHeader('Content-type', 'application/json; charset=utf-8');
    xhr_form.send(JSON.stringify(request_body_form));

    if (Array.isArray(order_offers) && order_offers.length > 0) {
      var request_body_order = {
        'site_id': site_id,
        'lead_id': lead_id,
        'order_id': order_id,
        'cart_sum': cart_sum,
        'items': order_offers
      };
      var xhr_order = new XMLHttpRequest();
      xhr_order.open('POST', 'https://track-api.leadhit.io/save/lead/order', true);
      xhr_order.setRequestHeader('Content-type', 'application/json; charset=utf-8');
      xhr_order.onreadystatechange = function () {
        if (this.readyState != 4) return;
        console.log('order sended');
      };
      xhr_order.send(JSON.stringify(request_body_order));
    }
  })();
</script>

Номер заказа

Номер заказа укажите в переменной order_id, тип данных - string (строка)
var order_id = 'ORDER_ID_HERE'

Сумма заказа

Сумму заказа укажите в переменной cart_sum, тип данных - string (строка)
var cart_sum = 'CART_SUM_HERE'

Формат суммы должен быть 200.00 - разделитель точка и 2 знака после точки. В случае несоблюдения этого правила, суммы заказа будут сохраняться некорректно, что приведет к ошибкам в данных.

Товары

Товары укажите в переменной order_offers
var order_offers = []

Товары представляют из себя массив объектов. Каждый объект товара содержит следующие атрибуты:

Все атрибуты обязательны к заполнению.

Пример массива с товарами:

var order_offers = [
  {
    'url': 'https://medieval-shop.io/offers/broken_sword',
    'name': 'Сломанный меч',
    'price': 500,
    'count': 1,
    'currency': 'RUB'
  },
  {
    'url': 'https://medieval-shop.io/offers/excellent_helmet',
    'name': 'Превосходный шлем',
    'price': 2000,
    'count': 3,
    'currency': 'USD'
  }
]

Импорт товаров интернет-магазина

Импорт товаров интернет-магазина

Подготовка фида (файла с товарами интернет-магазина)

Для товаров магазина мы используем файл формата xml по стандарту Яндекс.Маркета (YML), при создании файла следуйте документации Яндекса.

Не все элементы фида из стандарта YML используются в нашей системе, а так же присутствуют и те, которых нет в стандарте.

Список используемых системой и доступных к использованию в шаблонизаторе писем элементов:

Элемент Описание
offer_id идентификатор товара
picture ссылка на изображение товара
name название товара
price текущая цена товара
oldprice старая цена товара
economy экономия (разница между текущей и старой ценой)
economy_percent экономия в процентах
url ссылка на товар
description описание товара
type_prefix тип / категория товара
vendor производитель
model модель
category_id идентификатор категории товара
curr валюта
available доступность товара / наличие

Корректность формата файла можно проверить через валидатор XML-фидов, во вкладке “Маркет”.

API

API

Использование API

Документация

Документацию можно найти на сайте https://cp-documentation.leadhit.io
Логин и пароль для авторизации в документации можно получить у аккаунт-менеджера.

Авторизация и аутентификация

Чтобы использовать API личного кабинета вам необходимо получить токен авторизации.
Страница в документации: Получение токена авторизации.

Токен долгоживущий, можно получить его один раз и использовать до тех пор, пока не получите в ответе код 401 Unauthorized, после этого нужно получить новый токен.

Использование токена для аутентификации производится путем его передачи в заголовке.
Страница в документации: Авторизация/аутентификация.

Помимо токена вам также необходимо передавать в заголовке ваш site id. Его вы можете получить у аккаунт-менеджера или через API в методе получения информации о пользователе.
Страница в документации: Получить информацию о пользователе.

Предостережение

Пожалуйста, не используйте ваш токен на фронтенде в открытом виде.
Делайте все запросы через бэкэнд, чтобы никто не мог завладеть вашим токеном или логином и паролем от ЛК Leadhit и использовать его в своих целях.