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

Для передачи информации о брошенных корзинах через Daemon Collector необходимо выполнить несколько шагов.

Примечание

ICML каталог должен быть синхронизирован с товарным каталогом в InSales.


Важно, чтобы клиент был зарегистрирован в CRM с externalId как ID клиента в InSales, так как поиск клиента происходит по externalId и корзины передаются только для зарегистрированных клиентов.

Сгенерируйте ключ-сайта для работы Daemon Collector в системе по пути НастройкиИнтеграцияCollector.

Внесите изменения в шаблонах InSales:

  • Перейдите в административную панель сайта, слева внизу будет пункт СайтДизайн, нажмите Редактировать шаблон. Вас перенаправит в редактор шаблонов.

  • Далее опуститесь в самый низ сайта и найдите футер (подвал) вашего сайта. Нажмите Редактировать.

  • В зависимости от ваших настроек справа или слева откроется дополнительное окно с редактором виджетов, вам необходимо нажать Код виджета.

  • В открывшемся окне перейдите на вкладку «JS».

  • Если вы редактируете виджет впервые, тогда появится окно с предупреждением, нажмите Продолжить.

  • Вставьте код, привденный ниже, в окно для ввода.

Важно!

Данный код необходимо размещать в конструкции $(function() {});.

Скопировать код
$(function() {
(function(_, r, e, t, a, i, l) {
_['retailCRMObject'] = a;
_[a] = _[a] || function() {
(_[a].q = _[a].q || []).push(arguments)
};
_[a].l = 1 * new Date();
l = r.getElementsByTagName(e)[0];
i = r.createElement(e);
i.async = !0;
i.src = t;
l.parentNode.insertBefore(i, l)
})(window, document, 'script', 'https://collector.retailcrm.pro/w.js', '_rc');
_rc('require', 'cart');

ajaxAPI.shop.client.get()
.done(function(clientData) {
_rc('create', 'КЛЮЧ КОЛЛЕКТОРА', {
customer: {
externalId: clientData.id
}
});

EventBus.subscribe('add_items:insales:cart', function(data) {
setCart(data.order_lines)
})

EventBus.subscribe('set_items:insales:cart', function(data) {
setCart(data.order_lines)
})

EventBus.subscribe('delete_items:insales:cart', function(data) {
setCart(data.order_lines)
})

// Оформили заказ, очищаем корзину и связываем ее с заказом.
if (window.location.href.includes('/orders')) {
clearCartOnSuccessCheckout();
}

function setCart(orderLines) {
if (Array.isArray(orderLines) && orderLines.length === 0) {
_rc('cart:clear')

return;
}

_rc('cart:set', {
customer: {
email: clientData.email,
},
items: getCartItems(orderLines),
createdAt: new Date(),
link: window.location.origin + '/cart_items'
})
}

function getCartItems(inputArray) {
const items = [];

inputArray.forEach(item => {
items.push({
externalId: item.product_id + '-' + item.id,
// xmlId: item.sku,
quantity: item.quantity,
price: item.sale_price,
});
});

return items;
}

function clearCartOnSuccessCheckout() {
let iframe = $('iframe').get(0);

if (iframe) {
let iframeContent = iframe.contentDocument || iframe.contentWindow.document;
let externalId = $(iframeContent).find('#retailcrm_external_id').text().trim();

if (externalId) {
_rc('cart:clear', {
customer: {
email: clientData.email,
},
order: {
externalId: externalId,
}
})
}
}
}
})
});

В данном коде, вам необходимо установить сгенерированный на первом шаге ключ-сайта в методе create. Также если вы используете сторонний каталог, в методе getCartItems необходимо раскомментировать xmlId: item.sku и закомментировать externalId: item.product_id + '-' + item.id.

  • Нажмите Сохранить изменения.
  • Далее необходимо добавить код для очистки корзины при успешном оформлении заказа. Также данный код позволяет привязать корзину к созданному заказу.
  • Вернитесь в административную панель сайта, перейдите по пути «Сайт» → «Счетчики и коды».
  • Найдите окно для ввода «HTML-разметка для вывода на iframe-странице после оформления заказа».
  • Скопируйте и вставьте приведенный ниже код в окно для ввода и сохраните настройки.
Скопировать код
<span id="retailcrm_external_id" style="display: none;">{{ order.id }}</span>

Важно!

Передача, обновление данных и очистка корзины в системе происходит с задержкой.

Благодарим за отзыв.
Была ли статья полезна?
Нет
  • Рекомендации не помогли
  • Нет ответа на мой вопрос
  • Текст трудно понять
  • Не нравится описанный функционал
Да
Предыдущая статья
Синхронизация данных корпоративных клиентов
Для настройки работы корпоративных клиентов необходимо зайти в настройки приложения InSales и включить обработку корпоративных клиентов. Рассмотрим в статье ключевые моменты данного процесса.
Следующая статья
Как выгрузить архив заказов и клиентов из InSales
В настройках интеграции присутствует возможность выгрузки архивных заказов и клиентов из InSales в систему тогда, когда это необходимо.