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

Демон Collector

Демон Collector — специализированная системная служба, обеспечивающая тесное взаимодействие системы с пользователями, которые находятся на вашем сайте. Collector легко устанавливается на сайт с помощью js-вставок и позволяет:

  1. Инициализация
  2. Подключение формы захвата
  3. Использование кастомизированной формы захвата
  4. Отправка заявки
  5. Примеры

Инициализация

Разместите этот код непосредственно перед закрывающим тегом </head>

<script type="text/javascript">
    (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('create', 'ключ-сайта', {
        'customerId': 'ID-клиента-на-сайте'
    });

    _rc('send', 'pageView');
</script>

В вызове _rc('create'... происходит инициализация контекста. Обязательным параметром для этого вызова является ключ сайта ключ-сайта, которые генерируется при активации сайта в разделе системы Администрирование > Интеграция > Collector.

Если пользователь авторизован на сайте, необходимо передавать внешний идентификатор пользователя в ключе customerId (в качестве значения должен выступать внешний идентификатор клиента). Если же пользователь не авторизован, то ключ customerId указывать не нужно.

Ниже вы можете найти примеры установки счетчика.

Если установка счетчика произведена верно, то вы сможете видеть, кто из ваших клиентов находится в данный момент online.

Помимо индикатора в списке клиентов есть фильтр по статусу Online.

Collector пытается идентифицировать клиента, пришедшего на сайт, по любому из следующих параметров:

Подключение формы захвата

Форма захвата определяет, что пользователь собирается уходить с сайта, и предлагает ему оставить свои контактные данные для получения спецпредложений, новостей и т.д.

Форма представляет из себя подключаемый модуль, для загрузки модуля используется команда require.

_rc('require', 'capture-form');

По умолчанию форма будет показана пользователю один раз независимо от того, оставил он в итоге контакты или просто закрыл форму. В параметре period можно задать (в минутах), через какое время форма будет показана пользователю повторно:

_rc('require', 'capture-form', {
    'period': 60 * 24 * 30 // показать через месяц
});

Важно! Форма не будет показана пользователю, авторизованному на сайте, то есть если в коде вызова _rc('create'... указан параметр customerId.

По умолчанию в форме отображаются поля Имя name, Телефон phone, Email email. Вы можете настроить состав полей:

_rc('require', 'capture-form', {
    'fields': {
        'name': {},
        'phone': { required: true, label: 'Phone' } // телефон обязателен
    }
});

Также можно переопределить вводный текст и надпись на кнопке:

_rc('require', 'capture-form', {
    'fields': {
        'phone': { required: true }
    },
    labelPromo: "Хотите, мы вам перезвоним?",
    labelSend: "Перезвоните мне!"
});

При инициализации или открытии формы вы можете задать следующие параметры:

Значения для пользовательских полей указываются с префиксом custom, после которого нужно указывать код пользовательского поля в camelСase. Например, пользовательское поле bonus_code требуется указывать в виде customBonusCode.

_rc('require', 'capture-form', {
    orderMethod: 'online',
    email: "user@example.net",
    customTransactionId: "acde1625ab7"
});

Вы можете вручную вызвать показ формы:

_rc('capture-form:show', {
    'fields': ['phone']
});

Использование кастомизированной формы захвата

Вы можете полностью заменить форму, которая будет использоваться для взаимодействия с пользователем, для этого вам необходимо передать параметр form при инициализации:

_rc('require', 'capture-form', {
    form: {
        show: function () {
            // код, который покажет пользователю форму, например:
            // $('#my-cool-form').show();
        },
        hide: function () {
            // код, который закроет форму, например:
            // $('#my-cool-form').hide();
        }
   }
});

Отправку данных вам также необходимо реализовать самостоятельно (подробнее см. в Отправка заявки)

Отправка заявки

Демон Collector позволяет отправлять заявки с вашего сайта в систему, не прибегая к взаимодействию с полноценным API системы. Отправка осуществляется с помощью вызова _rc('send', 'order', {...}).

_rc('send', 'order', {
    'name': 'Виктор',
    'email': 'some-email@mail.ru'
});

При отправке можно указывать те же параметры, что и для формы захвата.

Ниже приведен пример отправки формы обратной связи в систему.

Примеры

Пример кода для инициализации отслеживания на landing page

Так будет выглядеть код отслеживания при установке на сайты без пользовательской базы, например, на landing page.

<script type="text/javascript">
    (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('create', 'RC-16632969589');
    _rc('send', 'pageView');
</script>

Пример кода шаблона на php для инициализации отслеживания

Код отслеживания будет похож на данный пример для сайтов с пользовательской базой, например, при установке на страницы интернет-магазина.

<script type="text/javascript">
    (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');

<?php
    $params = array();
    if ($customer->isAuth()) {
        $params['customerId'] = $customer->getId();
    }

    echo sprintf("_rc('create', 'RC-16632969589', %s);\n", json_encode((object) $params));
?>

    _rc('send', 'pageView');
</script>

Пример отправки заявки в систему через js api

Допустим, есть landing page с формой заявки, который подключен к CPA-сети. Нам требуется отправлять форму в систему с указанием ID транзакции CPA-сети в пользовательском поле transaction_id.

1) Заводим пользовательское поле transaction_id. Про работу с пользовательскими полями читайте тут.

2) Подключаем jQuery для удобства работы с формой заявки и jQuery-плагин для получения URL-параметров:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript" src="/jquery.url.js"></script>

3) Добавляем код отслеживания Collector:

<script type="text/javascript">
    (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('create', 'RC-16632969589');
    _rc('send', 'pageView');
</script>

4) Настраиваем отправку формы. При отправке заявки указываем для нее способ оформления «Форма обратной связи» feedback. После отправки уведомляем пользователя о результате отправки формы.

<script type="text/javascript">
$(function() {
    $('#feedback-form').submit(function() {
        _rc('send', 'order', {
            'name': $(this).find('input[name=name]').val(),
            'email': $(this).find('input[name=email]').val(),
            'customTransactionId': url('?transaction_id'),
            'orderMethod': 'feedback',
            'callback': function(success, response) {
                // уведомляем пользователя о результате отправки формы
                // вместо alert() можно вывести более юзер-френдли сообщение
                if (success) {
                    alert('Спасибо, ваша заявка принята! Её номер: ' + response.id); 
                } else {
                    alert('К сожалению, не удалось отправить заявку.');
                }
            }
        });

        return false;
    })
})
</script>

Редакция от 20.12.2016 15:32