CRM-формы - инструмент, который многим знаком не понаслышке, в том числе и разработчикам Bitrix24. Порой на сложных сайтах приходится не просто передавать в CRM то, что вобьет в полях формы посетитель, но и различную дополнительную информацию.
Вопросов с тем, как передать в Bitrix24 значения полей, которые не размещены на этой форме, не возникает, это доходчиво описано вот здесь - https://helpdesk.bitrix24.ru/open/6200265/. Непонятно было, как это сделать, если вебформа уже подгружена, а нужные значения вдруг претерпели изменения в процессе действия посетителя сайта.
Конкретный пример на сайте https://dia-box.ru - карточки товаров закрываются без перезагрузки страницы, открываются новые, а форма для передачи заявки на товар, в обязанности которой входит донести до CRM, какой именно товар имеется в виду - уже подгружена.
Осталось скрестить одно с другим - передавать в функцию, которая обновляет параметры для загрузки формы, и пресеты, и значения полей. И вызвать при клике на кнопку.
Итак, функция для переопределения параметров CRM-формы приняла такой вид (добавлены пресеты и значение для полей):
Эти переменные определяются при загрузке карточки товара. По клику на кнопку они передаются в функцию, которая переделывает форму, как в примере выше по ссылке
var reinitForm = function (presets, fields) {
if(!window.Bitrix24FormObject || !window[window.Bitrix24FormObject])
return;
if(!window[window.Bitrix24FormObject].forms)
return;
Bitrix24FormLoader.unload(b24paramsload);
b24paramsload = initForm(presets, fields);
Bitrix24FormLoader.params = b24paramsload;
Bitrix24FormLoader.init();
Bitrix24FormLoader.showPopup(b24paramsload);
}
.......
//тем временем при загрузке карточки
presets = {"izdelie": ''+element.ITEM.NAME};
.......
BX.ready(function () {
BX.bind(
BX('portfolio_detail_form_open'),
'click',
BX.delegate(
function(e){
e.preventDefault();
//console.log(e); //посмотреть на Иван Иваныча
reinitForm(presets, {"values": { "LEAD_COMMENTS" : 'Хочу такое же - ' +presets.izdelie}});
}, this
)
);
});
Настройка CRM-формы и что получаем в результате (со всеми вытекающими):
PS: Еще при работе с crm-формами в целях ознакомления жутко полезно ковырять подключаемую библиотеку https://ВАШ_ПУТЬ_К_Bitrix24/bitrix/js/crm/form_loader.js
У нас клиент заметил это обновление - все кнопки "купить/заказать" стали нерабочими. И документации толком никакой нет, записки блогеров только, ну кнопочку там какую нажать только можно узнать.
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».