Перейти к содержанию

Интеграция с Platformalp

Для корректной передачи данных из конструктора сайтов Platformlp в сервис R7K12CRM необходимо выполнить следующие действия:

  1. Перейти в редактор страницы и открыть настройки формы, нажав на значок гаечного ключа.

  1. Во вкладке “Действия после отправки” выбрать вариант “Сообщение + Вставка HTML кода”.

  1. Скопировать один из вариантов программного кода в зависимости от количества передаваемых товаров.

Для отправки только одного товара:

<script>
    var KEY = "XXXXXXXXXXXXXXXXXXXXXXXXX";
    function getSessionId() {
        try {
            if (window['r7k12_si']) {
                return window['r7k12_si'];
            }
            let r7k12_si = document.cookie.match(/r7k12_si=([^;$]+)/);
            if (r7k12_si && r7k12_si[1]) {
                return r7k12_si[1];
            }
            r7k12_si = window.localStorage.getItem('r7k12_si');
            if (r7k12_si) {
                return r7k12_si;
            }
            return false;
        }
        catch (e) {
            return false;
        }
    }
    function getXHR() {
        if (XMLHttpRequest) {
            try {
                return new XMLHttpRequest();
            }
            catch (e) {
            }
        }
        else if (ActiveXObject) {
            try {
                return new ActiveXObject('Msxml2.XMLHTTP');
            }
            catch (e) {
            }
            try {
                return new ActiveXObject('Microsoft.XMLHTTP');
            }
            catch (e) {
            }
        }
        return null;
    }
    function SEND(REQUEST) {
        let method = REQUEST.method ? REQUEST.method : 'POST', url = REQUEST.url.replace(/#.*$/, '') + (method === 'GET' && REQUEST.query ? '?' + REQUEST.query : '') + (method === 'POST' && REQUEST.postGET ? '?' + REQUEST.postGET : ''), json = REQUEST.json ? REQUEST.json : false, query = method === 'POST' && REQUEST.query ? REQUEST.query : null, xhr = getXHR();
        xhr.open(method, url, true);
        if (method === 'POST' && json === false) {
            xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        }
        xhr.send(query);
        if (REQUEST.func) {
            xhr.onreadystatechange = function () {
                if (xhr.readyState === 4) {
                    REQUEST.func(xhr);
                }
            };
        }
    }
    function crm(data) {
        if (data === void 0) {
            data = {};
        }
        data.r7k12id = getSessionId();
        data.href = document.location.href;
        if (data.phone && data.phone.match(/^0/)) {
            data.phone = '+38' + data.phone;
        }
        SEND({
            url: 'https://r7k12.com/' + KEY + '/crm/',
            json: true,
            query: JSON.stringify(data)
        });
    }
    var products = [
        {
            'id': '1',
            'name': 'тестовый товар',
            'price': '300',
            'quantity': '1',
        }
    ];
    var revenue = products.map(function(x) {return parseFloat(x.price) * parseFloat(x.quantity)}).reduce(function(a, c) { return a + c}).toFixed(2);
    var CRM = {
        'type': 'Form',
        'comment': 'Название товара',
        'name': '<%= name %>',
        'email': '<%= email %>',
        'phone': '<%= phone %>',
        'fields': {
            'lead': {
                'products': products,
                'revenue': revenue,
            },
            'contact': {
            },
        },
    };
    crm(CRM);

</script>

Для отправки двух товаров:

<script>
    var KEY = "XXXXXXXXXXXXXXXXXXXXXXXXX";
    function getSessionId() {
        try {
            if (window['r7k12_si']) {
                return window['r7k12_si'];
            }
            let r7k12_si = document.cookie.match(/r7k12_si=([^;$]+)/);
            if (r7k12_si && r7k12_si[1]) {
                return r7k12_si[1];
            }
            r7k12_si = window.localStorage.getItem('r7k12_si');
            if (r7k12_si) {
                return r7k12_si;
            }
            return false;
        }
        catch (e) {
            return false;
        }
    }
    function getXHR() {
        if (XMLHttpRequest) {
            try {
                return new XMLHttpRequest();
            }
            catch (e) {
            }
        }
        else if (ActiveXObject) {
            try {
                return new ActiveXObject('Msxml2.XMLHTTP');
            }
            catch (e) {
            }
            try {
                return new ActiveXObject('Microsoft.XMLHTTP');
            }
            catch (e) {
            }
        }
        return null;
    }
    function SEND(REQUEST) {
        let method = REQUEST.method ? REQUEST.method : 'POST', url = REQUEST.url.replace(/#.*$/, '') + (method === 'GET' && REQUEST.query ? '?' + REQUEST.query : '') + (method === 'POST' && REQUEST.postGET ? '?' + REQUEST.postGET : ''), json = REQUEST.json ? REQUEST.json : false, query = method === 'POST' && REQUEST.query ? REQUEST.query : null, xhr = getXHR();
        xhr.open(method, url, true);
        if (method === 'POST' && json === false) {
            xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        }
        xhr.send(query);
        if (REQUEST.func) {
            xhr.onreadystatechange = function () {
                if (xhr.readyState === 4) {
                    REQUEST.func(xhr);
                }
            };
        }
    }
    function crm(data) {
        if (data === void 0) {
            data = {};
        }
        data.r7k12id = getSessionId();
        data.href = document.location.href;
        if (data.phone && data.phone.match(/^0/)) {
            data.phone = '+38' + data.phone;
        }
        SEND({
            url: 'https://r7k12.com/' + KEY + '/crm/',
            json: true,
            query: JSON.stringify(data)
        });
    }
    var products = [
        {
            'id': '1',
            'name': 'тестовый товар',
            'price': '20',
            'quantity': '1',
        },
        {
            'id': '2',
            'name': 'тестовый товар 2',
            'price': '50',
            'quantity': '1',
        }
    ];
    var revenue = products.map(function(x) {return parseFloat(x.price) * parseFloat(x.quantity)}).reduce(function(a, c) { return a + c}).toFixed(2);
    var CRM = {
        'type': 'Form',
        'comment': 'Название товара',
        'name': '<%= name %>',
        'email': '<%= email %>',
        'phone': '<%= phone %>',
        'fields': {
            'lead': {
                'products': products,
                'revenue': revenue,
            },
            'contact': {
            },
        },
    };
    crm(CRM);

</script>
  1. Вернуться на сайт Platformlp и вставить скопированный код в поле “Код для вставки”.

  1. Войти в свой проект на сайте R7K12CRM и открыть меню “Настройки”. Скопировать ключ проекта и заменить им значение переменной KEY в программном коде.

  1. Опубликовать страницу и проверить изменения в Platformlp.