Интеграция с Platformalp¶
Для корректной передачи данных из конструктора сайтов Platformlp в сервис R7K12CRM необходимо выполнить следующие действия:
- Перейти в редактор страницы и открыть настройки формы, нажав на значок гаечного ключа.

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

- Скопировать один из вариантов программного кода в зависимости от количества передаваемых товаров.
Для отправки только одного товара:
<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>
- Вернуться на сайт Platformlp и вставить скопированный код в поле “Код для вставки”.

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

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