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

Как настроить почтовые уведомления о новых отзывах в карточке товара?

ID статьи: 106 , создана 23 авг 2016 , последнее исправление  14 мар 2019
Необходимо, чтобы администратор получал на почту уведомления о новых отзывах в карточке товара и имел возможность их модерировать (удалять и публиковать).

Решение

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


Шаг 1

В административной части сайта перейдите в настройки списка форумов: Рабочий стол → Сервисы → Форумы → Список форумов. Выберите форум, настроенный на вашем сайте на публикацию и хранение отзывов (скорее всего, он будет в списке единственный) и войдите в режим редактирования через кнопку «гамбургер» и пункт «Изменить». Если у вас не создано ни одного форума для отзывов, создайте его с помощью инструкции.


Переключитесь на вкладку «Настройки». В поле «Модерация» поставьте галочку в пункте «Премодерируемый».


Это позволит публиковать отзывы не напрямую, а после одобрения администратора.


Шаг 2

Создаем для начала новый тип почтового события.

Перейдите в Рабочий стол → Настройки → Настройки продукта → Почтовые события → Типы почтовых событий. Нажмите кнопку «Добавить тип».


Тип почтового события пропишите как NEW_ITEM_REVIEW. В описание вставьте следующий код:

#ITEM_NAME# – товар получивший отзыв
#AUTHOR_NAME# – автор
#POST_DATE# – дата
#POST_MESSAGE# – отзыв
#PATH2ITEM# – относительная ссылка


Теперь создаем новый почтовый шаблон для этого события.

Перейдите в Рабочий стол → Настройки → Настройки продукта → Почтовые события → Почтовые шаблоны. Нажмите кнопку «Добавить шаблон».


В настройках нового шаблона пропишите следующие настройки:

  • Выберите сайт, для которого будет действовать шаблон, если у вас несколько сайтов на одной платформе.

  • Выберите тип почтового события из списка. В нашем случае это новый отзыв к товару (так мы назвали новое почтовое событие) [NEW_ITEM_REVIEW] (этот тип мы присвоили событию).

  • Пропишите в полях «От кого» и «Кому» соответствующие адреса электронной почты или специальные коды:
    от кого: #DEFAULT_EMAIL_FROM#
    кому: #DEFAULT_EMAIL_FROM#.
    В случае с кодами адреса будут генерироваться автоматически в зависимости от настроек сайта и внесенных данных

  • Пропишите с поле «Тема» следующую фразу: #SITE_NAME# и новый отзыв к товару #ITEM_NAME#.
    Вместо кодов в готовом письме пропишутся название сайта и название товара

  • В поле «Сообщение» вставьте следующий текст:
    Информационное сообщение с сайта #SITE_NAME#
    <br>
    <hr>
    Добавлен новый отзыв к товару:
    <br>
    #ITEM_NAME#
    <hr>
    Содержание:
    <br>
    автор: #AUTHOR_NAME#
    <br>
    отзыв: #POST_MESSAGE# 
    <br>
    ссылка на товар: https://#SERVER_NAME##PATH2ITEM# 

Или создайте свой, используя эти метки. 


Запомните ID шаблона (он еще понадобится нам в дальнейшем). В нашем случае он равен 78.


Шаг 3

Отредактируйте файл init.php, добавив в него фрагмент кода. 

Внимание! Файл init.php редактируется только по ftp/ Если его нет, то создайте его также по ftp. Редактирование кода файла через структуру сайта может привести к падению всего сайта.

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


Далее сформируйте код для вставки в файл.

<?function notifyNewItemFeedback($ID, $arFields){
ob_start();
$res = CIBlockElement::GetList(
array(),
array(
'IBLOCK_ID' => id_инфоблока_каталога,
'PROPERTY_FORUM_TOPIC_ID' => $arFields["TOPIC_ID"]
),
false,
false,
array('*', 'IBLOCK_ID', 'ID', 'NAME', 'PROPERTY_FORUM_TOPIC_ID', 'SECTION_ID', 'SECTION', 'SECTIONS')
);
if($ar_res = $res->GetNext()){
var_dump(date('d.m.Y H:i:s'));
echo 'найден товар '.$ar_res['NAME'];
$TYPE_MAIL_EVENT = 'NEW_ITEM_REVIEW';
var_dump($ar_res);
$arMail = array(
'ITEM_NAME' => $ar_res['NAME'],
'AUTHOR_NAME' => $arFields['AUTHOR_NAME'],
'POST_DATE' => date('d.m.Y H:i:s'),
'POST_MESSAGE' => $arFields['POST_MESSAGE'],
'PATH2ITEM' => $ar_res['DETAIL_PAGE_URL'],
);
var_dump($arMail);
$ID_MAIL_EVENT = id_почтового_шаблона;
$ok = CEvent::Send($TYPE_MAIL_EVENT, "id_сайта", $arMail, $ID_MAIL_EVENT);
if ($ok){
echo 'Сообщение отправлено';
}
else{
'Сообщение не отправлено '.$ok;
}
}
else{
echo 'Элемент не найден.';
$dump = ob_get_clean();
if (!empty($ok)){
return true;
}
else{
$filename = dirname(__FILE__).'/dump.txt';
if (!file_exists($filename)){
$f = fopen($filename, 'w+');
fclose($f);
} 
file_put_contents($filename, $dump);
}
}
}
AddEventHandler("forum", "onAfterMessageAdd", "notifyNewItemFeedback"); ?>

Где:

  • id_инфоблока – id действующего инфоблока каталога
  •  id_шаблона – id нашего нового почтового шаблона, созданного на предыдущем этапе (шаг 2)
  •  id_сайта – номер сайта для которого вы настраиваете почтовые уведомления о новых отзывах. 

    Посмотреть id сайта можно в настройках списка сайтов: Настройки → Настройки продукта → Сайты → Список сайтов. В нашем случае id сайта равняется s1. 


Чтобы узнать ID инфоблока каталога, перейдите в Рабочий стол → Контент → Инфоблоки → Типы инфоблоков → Каталог. На вкладке «Инфоблок» вы найдете значение ID. Это значение и нужно вставить в код. В нашем случае ID = 13.


ID почтового шаблона, как мы выяснили ранее, равен 78.  

Новый код примет следующий вид:

<? function notifyNewItemFeedback($ID, $arFields){
ob_start();
$res = CIBlockElement::GetList(
array(),
array(
'IBLOCK_ID' => 13,
'PROPERTY_FORUM_TOPIC_ID' => $arFields["TOPIC_ID"]
),
false,
false,
array('*', 'IBLOCK_ID', 'ID', 'NAME', 'PROPERTY_FORUM_TOPIC_ID', 'SECTION_ID', 'SECTION', 'SECTIONS')
);
if($ar_res = $res->GetNext()){
var_dump(date('d.m.Y H:i:s'));
echo 'найден товар '.$ar_res['NAME'];
$TYPE_MAIL_EVENT = 'NEW_ITEM_REVIEW';
var_dump($ar_res);
$arMail = array(
'ITEM_NAME' => $ar_res['NAME'],
'AUTHOR_NAME' => $arFields['AUTHOR_NAME'],
'POST_DATE' => date('d.m.Y H:i:s'),
'POST_MESSAGE' => $arFields['POST_MESSAGE'],
'PATH2ITEM' => $ar_res['DETAIL_PAGE_URL'],
);
var_dump($arMail);
$ID_MAIL_EVENT = 78;
$ok = CEvent::Send($TYPE_MAIL_EVENT, "s1", $arMail, $ID_MAIL_EVENT);
if ($ok){
echo 'Сообщение отправлено';
}
else{
'Сообщение не отправлено '.$ok;
}
}
else
echo 'Элемент не найден.';
$dump = ob_get_clean();
if (!empty($ok)){
return true;
}
else{
$filename = dirname(__FILE__).'/dump.txt';
if (!file_exists($filename)){
$f = fopen($filename, 'w+');
fclose($f);
} file_put_contents($filename, $dump);
}
}
AddEventHandler("forum", "onAfterMessageAdd", "notifyNewItemFeedback"); ?>

Теперь код необходимо скопировать и вставить в файл init.php. Для этого

перейдите в Рабочий стол → Контент → Структура сайта → Файлы и папки → bitrix → php_interface. Найдите файл init.php,нажмите кнопку «гамбургер» рядом с ним и выберите пункт «Редактировать как PHP».



В открывшееся поле вставьте получившийся код. Отредактировав файл, сохраните изменения и проверьте результат: при добавлении нового отзыва на товар администратор получит на указанный в почтовом шаблоне email вот такое письмо:




  • Комментарии
Загрузка комментариев...

Тэги

1С-Битрикс cdn custom.css element.php Google Fonts google maps lazyload marketmixer SEO sku template.php title автокомпозит авторизация адаптивная верстка активация 1С-Битрикс акции баннеры бета-версия блог бренды быстрый заказ валюта видео вкладки водяной знак главная страница добавить поле заголовки изменение текста в блоке изменить заголовки изображения Интернет-магазин каптча капча карта карточка товара карточка услуги кастом каталог товаров кеш классы стилей код решения кодировка количество товара конвертация валюты контакты корзина левое меню личный кабинет логотип магазины маска телефона мегаменю медиабиблиотека меню местоположения много многосайтовость модули модуль настроек название сайта наличие товара настройка валют настройка веб-форм настройка инфоблоков настройка компонентов настройка свойств настройки доступа настройки инфоблока настройки магазина настройки модулей настройки раздела нет в наличии новости номера обновление платформы обновление решения Обновление решения обратный звонок ограничения основной баннер отзывы отзывы о товаре отображение свойств отображение товаров отсутствующие товары оформление заказа переиндексация переустановка решения персональные рекомендации платежные системы подписка на товар поиск покупка в 1 клик пользовательские свойства пользовательские скрипты поля похожие товары почта почтовые уведомления почтовые шаблоны привязать товары проекты разделы каталога разработчикам региональность регистрация резервное копирование рейтинг свойства заказа свойства инфоблока свойства товара связанные товары связи символьный код скидки скидки на товар скорость загрузки сайта скриншоты скрыть товары в поиске сортировка социальные сервисы список пользователей способы доставки сравнение товаров ссылка структура сайта текст в корзине тизеры типы цен товары в регионах товары на складах торговые предложения умный фильтр услуги установка решения файлы и папки фильтр на главной фильтр по годам формы формы на инфоблоках формы обратной связи форум хлебные крошки цен цены чпу элементы