CRM формы Битрикс24 – отличный инструмент сбора заявок с сайта: быстрая настройка, простая интеграция с сайтом, адекватные возможности кастомизации.
Но если нужно разместить несколько CRM форм на одной странице, это может вызвать ряд неудобств. Например, на странице списка товаров может потребоваться несколько форм заказа напротив каждого товара.
Можно, разместить одну типовую форму (Имя, Контактный телефон), но тогда в CRM не будет попадать информация о том какой именно товар был заказан.
Другой вариант: добавить на форму поле выбора товара, но тогда покупателю придется выбирать товар из огромного списка (или что еще хуже – вписывать наименование вручную).
Есть способ решить эту проблему, хотя без вмешательства в код не обойдется.
1. Настраиваем форму
Пусть в нашем случае это будет название товара. Хотя можно передавать сразу несколько параметров. Например, наименование, артикул, ссылку на товар и т.д.
Назовем его item_name.
Берем готовую CRM форму и заходим в редактирование. Нас интересует пункт «Значение полей по умолчанию». Ставим галочку «заполнять поля CRM автоматически при отправке формы», из выпадающего списка выбираем поле, куда хотим передавать наше значение, например, комментарий, и жмем на «добавить поле».
В появившейся строке вписываем нашу переменную таким образом: %item_name%.
Дальше копируем код вставки CRM формы, для нас подходит вариант с кнопкой.
2. Размещение кнопки на странице
Находим в коде сайта место, где должна быть кнопка и вставляем код туда.
Я рекомендую вынести JS код формы в отдельный файл. Для сайта на битриксе это будет script.js. В data-атрибут data-item-name подставляем нужное значение. Если их несколько, то вставляем все по аналогии: data-item-number, data-item-link и т.д.
3. JavaScript
Я воспользовался jQuery и накинул событие на нажатие кнопки.
Дальше получаем data-атрибуты передаем их в вызов функции b24form в presets:
b24form({ "id":"12", "lang":"ru", "sec":"8qdj8b", "type":"button", "click":"", "presets": { "item-name": itemName } });
Готово. Если все сделано правильно, после заполнения формы параметры передадутся в CRM: