"Задать вопрос о товаре" для Битрикс

Довольно часто приходится сталкиваться с задачей создания формы "Задать вопрос о товаре" в интернет-магазинах. Решить данную задачу можно разными способами, сегодня рассмотрим простейший - модернизацию стандартного компонента "обратной связи" под наши нужды.

Инструкция по созданию формы "Задать Вопрос о товаре"

1. На первом этапе нужно определить где именно мы будем выводить нашу форму. В примере мы вставим ее просто в самый низ карточки товара. Для этого идем в:

\bitrix\templates\НАШ_ШАБЛОН\components\bitrix\catalog\.default\bitrix\catalog.element\.default\component_epilog.php

и вставляем в самый низ код вызова нашего компонента

<?$APPLICATION->IncludeComponent("sms:main.feedback", ".default", array(
"USE_CAPTCHA" => "Y",
"OK_TEXT" => "Спасибо, Ваш вопрос получен.",
"EMAIL_TO" => "hash@mail",
"REQUIRED_FIELDS" => array( ),
"PRODUCT_NAME" => $arResult["NAME"],
"EVENT_MESSAGE_ID" => array( 0 => "7",) ),
false
);?>

Обратите внимание, в примере:
"sms:main.feedback" - подключен компонент рассматриваемый в п.2 данного руководства
"EVENT_MESSAGE_ID" - ID почтового шаблона, который отправляет письма. id=7 шаблон по умолчанию в 1С-Битрикс.
"EMAIL_TO” - email на который будем получать вопросы с нашей формы

2. Т.к мы будем править стандартный компонент bitrix:main.feedback, скопируем его на наше пространство имен в текущем шаблоне, например sms/ Для этого копируем папку

\bitrix\components\bitrix\main.feedback\
в
\bitrix\components\sms\main.feedback\

3. Открываем

\bitrix\components\sms\main.feedback\templates\.default\template.php
и после открытия формы
<form action="<?=$APPLICATION->GetCurPage()?>" method="POST">
вставим
<input type="hidden" name="product_name" value="<?=$arParams["PRODUCT_NAME"]?>">

4. Открываем

\bitrix\components\myshop\main.feedback\component.php
после
"TEXT" => $_POST["MESSAGE"],
дописываем:
"PRODUCT_NAME" => $_POST["product_name"]

5. Осталось пройти в админ панели в
Рабочий стол -> Настройки -> Настройки продукта -> Почтовые события -> Почтовые шаблоны ->Отправка сообщения через форму обратной связи и вставить

Товар: #PRODUCT_NAME#

Готово


Возврат к списку