Skip to main content

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

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

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

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

<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 = []

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

  • url: URL товара.
    URL должен быть полным, с указанием префикса протокола (http://, https://) и доменом, а так же должен совпадать с URL этого же товара в YML файле (фиде).
    Типа данных - строка (string)
  • name: Название товара.
    Тип данных - строка (string)
  • price: Стоимость товара.
    Тип данных - число (number)
  • count: Количество купленных экземпляров товара.
    Тип данных - число (number)
  • currency: Код валюты в формате ISO 4217 (https://ru.wikipedia.org/wiki/ISO_4217).
    Тип данных - строка (string)

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

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

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'
  }
]