8 800 500-47-11
8 800 500-47-11
Отдел продаж
База знаний
  • Все решения
  • Интернет-магазины
    • Аспро: Премьер
    • Аспро: Лайтшоп
    • Аспро: Максимум
    • Аспро: Шины и диски 2.0
    • Аспро: Next
    • Аспро: Оптимус
    • Аспро: Шины и диски, интернет-магазин
    • Аспро: Маркет
    • Аспро: Интернет-магазин
    • Аспро: Крутой шоп
  • Корпоративные сайты
    • Аспро: Приорити 2.0
    • Аспро: Корпоративный сайт 3.0
    • Аспро: Корпоративный сайт 2.0
    • Аспро: Стройка 2.0
    • Аспро: Инжиниринг
    • Аспро: Металл
    • Аспро: Digital 2.0
    • Аспро: Детский сад и образовательный центр
    • Аспро: Курорт 2.0
    • Аспро: Ландшафт 2.0
    • Аспро: Автосервис
    • Аспро: Медицинский центр 3.0
    • Аспро: Ландшафт
    • Аспро: Медицинский центр 2.0
    • Аспро: Курорт
    • Аспро: Стройка
    • Аспро: Сайт медицинского центра
    • Аспро: Корпорация
    • Аспро: Корпоративный сайт
    • Аспро: Корпоративный сайт современной компании
    • Аспро: Приорити
    • Аспро: Digital
  • Модули
    • Аспро: Привязка ответственного
    • Аспро: Шинный калькулятор
    • Аспро: Кредитный калькулятор
    • Аспро: Универсальный импорт
  • 1С-Битрикс
    • Общее

Как заменить на сайте вывод попап-форм из решения на формы из Битрикс24

ID статьи: 385 , создана 27 мая 2019
Актуально для:
Необходимо заменить на сайте вывод попап-форм из решения на формы из Битрикс24. 

Решение

Указанный способ реализации доработки гарантирует его стабильную работу даже после обновления модуля решения. Рассмотрим его работу на примере Аспро: Медицинский центр 2.0 для направления «Терапевтия».

Внимание! Эта инструкция актуальна только для тех форм, у которых прописан параметр «data-event="jqm"».

1. Создайте и настройте CRM-форму в Битрикс24. 

2. Скопируйте код формы для вставки на сайт, типа «Клик по кнопке или ссылке».


Перейдите в настройки сайта в административной части. В разделе «Цели и счетчики», нажмите кнопку «Редактировать» и добавьте в файл со счетчиками скопированный код формы.



Вставленный код формы не содержит кнопки/ссылки для клика. Поэтому обязательно после вставленного кода формы (после закрывающего тега </script>) вставьте следующий код ссылки, в котором замените число 109 на id вашей CRM-формы в Битрикс24.

<a class="b24-web-form-popup-btn-109">Мы перезвоним вам</a>

После добавления кода ссылки, нажмите кнопку «Сохранить».



3. Перейдите в публичную часть сайта. Нажмите на кнопку записи на прием. Убедитесь, что в подвале сайта появилась ссылка, клик по которой вызывает появление CRM-формы из Битрикс24.




4. Чтобы скрыть эту ссылку, вернитесь в административную часть, где вы добавляли код формы и добавить «hidden» в класс ссылки.


5. Далее, необходимо внести изменения в файл шаблона сайта, предназначенный для пользовательских скриптов. Путь к нему в оригинальном шаблоне решения /bitrix/templates/aspro-medc2/js/custom.js.

Вставьте код: 


/* bindings forms triggers and B24 forms */
/* use data-param-id attribute or data-name attribute as a key */
/* use B24 form id as a value */
var formBindings = {
	326: 3,
	'callback': 141,
}

/* click button of B24 form */
$(document).on('click', '[data-event=b24]', function(e){
	var $this = $(this);
	var bind = $this.attr('data-bind');
	if(bind > 0){
		e.preventDefault();

		var $link = $('.b24-web-form-popup-btn-' + bind);
		if($link.length){
			$link[0].click();
		}

		/* unset loading state of button */
		setTimeout(function(){
			$this.closest('.loadings').removeClass('loadings');
		}, 1000);
	}
});

/* unbind jqm events */
$(document).ready(function(){
	if(typeof formBindings === 'object'){
		var keys = Object.keys(formBindings);
		for(var i in keys){
			var id = keys[i];
			var $link = $('[data-event=jqm][data-param-id=' + id + ']');
			if(!$link.length){
				$link = $('[data-event=jqm][data-name=' + id + ']');
			}

			if($link.length){
				var bind = 0;

				if(typeof id === 'number' && id > 0){
					var bind = formBindings[id] > 0 ? formBindings[id] : id;
				}
				else if(typeof id === 'string' && id.length > 0){
					var bind = formBindings[id] > 0 ? formBindings[id] : 0;
				}
		
				if(bind > 0){
					$link.unbind();
					$link.data('event', 'b24');
					$link.attr('data-event', 'b24');
					$link.attr('data-bind', bind);
				}
			}
		}
	}
});



6. Измените объект formsBindings, в котором перечислены связи триггеров форм (кнопки/ссылки, клик по которым открывает попап-окно) на сайте с CRM-формами в Битрикс24. Запись связей на решениях для корпоративных сайтов немного отличается от записи связи на решениях для интернет-магазинов.

Необходимо указать id инфоблока или формы, зависит от того, какой вид форм используется, на инфоблоках или формах. В корпоративных сайтах все триггеры веб-форм имеют атрибут data-param-id, значение которого численно совпадает с идентификатором инфоблока формы на сайте. Например, инфоблок формы «Запись онлайн» на сайте имеет идентификатор 326, а идентификатор аналогичной CRM-формы в Битрикс24 - 3 .


var formsBindings = {
   326: 3,
}; 

Необходимо указать символьный код формы. В интернет магазинах некоторые триггеры имеют атрибут data-param-id, а некоторые вместо него имеют атрибут data-name. Точно определить, значение какого атрибута использовать в описании связи с CRM-формой помогут «Средства разработчика» (нажатием клавиши F12, или вызовом соответсвующего пункта меню в браузере). Например, ссылка «Заказать звонок» на сайте имеет аттрибут data-name="callback", а идентификатор аналогичной CRM-формы в Битрикс24 - 141 .


var formsBindings = {
   'callback': 141,
};

Для описания связей к нескольким формам нужно просто перечислить их все в объекте через запятую.


var formsBindings = {
   326: 3,
   328: 1,
   'callback': 141,
   'ask': 142,
};


7. Убедитесь, что клик по кнопке открывает CRM-форму в Битрикс24.




Степан
18.03.2023 11:19:21
Здравствуйте. А как добавить кнопку на сайт по клику на которую будет открывать нужный мне тип формы обратной связи?
Владислав Мещеряков
27.03.2023 14:57:19

Здравствуйте, Степан! Благодарим за активность.

Хотим уточнить, на каком решении запущен ваш проект. Например, в Аспро: Максимум на странице возможностей у нас есть пример кнопки вызова формы:

https://max-try.ru/info/more/elements/

В атрибуте data-param-form_id указывается символьный код формы, а на корпоративных сайтах указывается ID формы.

Пожалуйста, обратитесь по этому вопросу в нашу техподдержку:

https://aspro.ru/support/

Специалисты обязательно помогут вам. Будем на связи!
Родитель
Татьяна
03.12.2021 12:59:50
А как назад вернуть шаблонные формы вместо CRM-форм Битрикс24?
Алина Абдулвалеева
03.12.2021 17:03:49

Здравствуйте. Все просто :) Пройдитесь по инструкции в обратном порядке. То есть уберите код из файла custom.js и файла со счетчиками.

Рады быть полезными для вас.

Родитель
Елена Попова
04.03.2020 12:05:31
пробовали поставить на сайт с многосайтовостью, мультирегиональностью и решением CRM+ИМ (ГР Аспро.некст), сначала форма появилась, когда попробовали сделать несколько, то все сломалось. Это связано с особенностями CRM+ИМ? для него такой вариант не подходит?
Алина Абдулвалеева
11.03.2020 11:19:19

Здравствуйте, Елена!

Спасибо за комментарий. Думаем, что причина не в редакции. Пожалуйста, напишите по этому вопросу в нашу техподдержку. Поможем во всем разобраться.
https://aspro.ru/support/
Родитель
Оля
12.08.2019 09:39:44
Здравствуйте.
Все сделала по инструкции.
Но на сайте не открывает CRM-форму в Битрикс24.
Алина Абдулвалеева
12.08.2019 16:19:33
Здравствуйте!

Спасибо за комментарий. Пожалуйста, напишите по этому вопросу в нашу техподдержку. Поможем во всем разобраться: .
Родитель
цйово
06.07.2019 22:18:05
Очень смешно, а где код для custom???
Алина Абдулвалеева
10.07.2019 09:54:58
Здравствуйте!
Спасибо за комментарий. Добавили код в 5 пункт. Если у вас остались вопросы, пишите в нашу техподдержку. Поможем со всем разобраться.
https://aspro.ru/support/
Родитель
Андрей
29.07.2019 13:21:03
Подскажите пожалуйста, как настроить данный функционал для  
Родитель