E-mail маркетинг на 1С-Битрикс Как сделать рассылку средствами 1С-Битрикс

E-mail маркетинг на 1С-Битрикс Как сделать рассылку средствами 1С-Битрикс
E-mail маркетинг на 1С-Битрикс Как сделать рассылку средствами 1С-Битрикс

При работе над этой задачей мне очень помогла «Документация для разработчиков», а именно ее раздел «Подписка, рассылки» . Также можно ознакомиться с одноименной главой учебного курса «Администратор. Модули» .

В этих документах подробно описан процесс управления автоматической рассылкой: создания, настройки параметров генерации и отправки. Поэтому, я не буду подробно описывать это в статье. Правда, есть один интересный момент, на который нужно обратить внимание: если вы хотите, чтобы при получении выпуска рассылки у адресата в почтовой программе вместо адреса электронной почты было написано, например, название вашей компании, нужно на закладке «Автоматическая генерация» формы создания рассылки ввести адрес в формате:
«НАЗВАНИЕ_КОМПАНИИ <e-mail>».

Теперь можно постепенно начать выполнять поставленную задачу. Сначала добавим новые свойства в тот инфоблок, где хранятся новости. В одном из этих свойств будет отмечаться «принадлежность» новости к рассылке, а в другом может стоять отметка, что новость является «топовой». Тип обоих свойств – «список», по внешнему виду – это будут 2 флажка. Я назвал эти свойства ”add_subscr” (Добавить в рассылку) и “top_item” (Топовая новость). Если у элемента инфоблока (новости) отмечен флажок, значение этого свойства будет равно «Y».

Следует запомнить ID свойства «Добавить в рассылку» после его создания, оно понадобится при программировании скрипта выборки новостей. На рисунке показан скриншот с настройками нового свойства в настройках инфоблока, а также то, как будет выглядеть флажок для добавления новости в рассылку.

После проведения необходимых настроек в инфоблоке, можно перейти к программированию скрипта, который будет осуществлять выборку новостей в соответствии с описанными в задании условиями. Этот скрипт будет находиться в файле с шаблоном рассылки.

Шаблоны рассылки в системе «1С-Битрикс» находятся в папке ‘/bitrix/php_interface/subscribe/имя_шаблона/’. Новый шаблон рассылки удобнее всего делать из стандартного, созданного при установке системы. В стандартном шаблоне рассылки используется компонент “bitrix:subscribe.news”, результаты работы которого заносятся в переменную $SUBSCRIBE_TEMPLATE_RESULT. Так как настройки стандартного компонента мне не подходят, – нужно писать скрипт, который будет выбирать новости так, как мне нужно.

Сначала сохраняем в переменных параметры, с которыми будет работать скрипт:

PHP

<? if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); global $SUBSCRIBE_TEMPLATE_RESULT; global $SUBSCRIBE_TEMPLATE_RUBRIC; $SUBSCRIBE_TEMPLATE_RUBRIC=$arRubric; if(!CModule::IncludeModule("iblock")){ echo "не подключается модуль инфоблоки"; } // Выбираем все значения свойства "раздел для рассылки" $propety_id = ИД_СВОЙСТВА; $IBLOCK_ID = ИД_ИНФОБЛОКА; $property_code = "add_subscr"; // имя свойства добавить в рассылку $property_code2 = "top_item"; // имя свойства «топовая новость» ?>

В этом коде получаем доступ к 2 специальным переменным шаблона рассылки: $SUBSCRIBE_TEMPLATE_RESULT – в нее будут помещаться результаты выборки новостей и $SUBSCRIBE_TEMPLATE_RUBRIC – через нее можно получить доступ к массиву с параметрами рассылки (например, названию рассылки и значению поля с адресом электронной почты, с которого будут приходить выпуски рассылки).

Также скрипту понадобятся ID инфоблока, ID свойства, где хранится отметка о принадлежности к рассылке, о котором я упоминал выше, а также имя этого свойства и свойства для хранения отметки о том, что новость является «топовой».

PHP

<? // выбираем новости за месяц $arItemsFilter = Array( "IBLOCK_ID" => $IBLOCK_ID, ">DATE_CREATE" => array(false, ConvertTimeStamp(time()-(8640030), "FULL")), "PROPERTY_".$property_code."_VALUE" => "Y", ); $arProjElem = CIBlockElement::GetList(array("created_date" => "DESC"),$arItemsFilter,false); while($projResElem = $arProjElem->GetNextElement()) { $arElemFields = $projResElem->GetFields(); $arElemProperties = $projResElem->GetProperties(); $arSelFlds["NAME"] = $arElemFields["NAME"]; $arSelFlds["DATE_CREATE"] = $arElemFields["DATE_CREATE"]; $arSelFlds["PREVIEW_PICTURE"] = CFile::ShowImage($arElemFields["PREVIEW_PICTURE"],70,70,"align=left hspace=5"); $arSelFlds["PREVIEW_TEXT"] = $arElemFields["PREVIEW_TEXT"]; $arSelFlds["DETAIL_PAGE_URL"] = $arElemFields["DETAIL_PAGE_URL"]; $arSelFlds["DETAIL_TEXT_SIZE"] = strlen($arElemFields["DETAIL_TEXT"]); $arSelFlds["IBLOCK_SECTION_ID"] = $arElemFields["IBLOCK_SECTION_ID"]; $arSelFlds[$property_code] = $arElemProperties[$property_code]["VALUE"]; $arSelFlds[$property_code2] = $arElemProperties[$property_code2]["VALUE"]; $ar_result[] = $arSelFlds; } // массив возвращаемый шаблоном $SUBSCRIBE_TEMPLATE_RESULT=$ar_result; ?>

Создаем массив, который будет являться фильтром для выборки новостей для рассылки, сохраняем его в переменной $arFilter. Его элементы ограничивают выборку следующим образом: во-первых, по идентификатору инфоблока, где хранятся новости, по времени публикации новостей (1 месяц) и самое главное по значению свойства 'add_subscr', в котором хранится отметка о принадлежности элемента к рассылке. Затем выбираются элементы с помощью метода CIBlockElement::GetList с применением описанного фильтра. При выборке каждого элемента (новости), «достаем» значение его полей и свойств. Сохраняем все это во вспомогательный массив $arSelFlds, который в итоге помещаем в основной массив $ar_result. Элементы сформированного массива $ar_result и будут выводиться в шаблоне нашей рассылки. Помещаем результаты выборки в переменную шаблона $SUBSCRIBE_TEMPLATE_RESULT.

Теперь нужно выбрать из получившегося массива с новостями «топовую» новость, если она есть. Обходим весь массив $ar_result в цикле и проверяем каждый его элемент на наличие свойства с именем 'top_item'. Если такой элемент существует, помещаем его отдельный массив. Этот массив я так и назвал - $top_item. Может получиться так, что редактор или администратор сайта при настройке рассылки отметит не одну новость «топовой», а несколько. В этом не будет ничего страшного – данный шаблон так устроен, что он выведет последнюю отмеченную (т.е. самую «свежую») «топовую» новость.

С основной задачей на данном этапе закончено. Далее в файле шаблона пойдет html-разметка, в которую будут помещаться новости. В этой статье я не буду описывать тонкости html-верстки рассылки, - это тема отдельной статьи. Отмечу только, что при верстке рассылки очень желательно применять макетные таблицы, а css-стили размещать в файле шаблона.

Последний блок кода в шаблоне является самым важным. Именно в нем осуществляется отправка выпуска рассылки.

PHP

<? if($SUBSCRIBE_TEMPLATE_RESULT) return array( "SUBJECT"=>$SUBSCRIBE_TEMPLATE_RUBRIC["NAME"], "BODY_TYPE"=>"html", "CHARSET"=>"Windows-1251", "DIRECT_SEND"=>"Y", "FROM_FIELD"=>$SUBSCRIBE_TEMPLATE_RUBRIC["FROM_FIELD"] ); else return false; ?>

Происходит это следующим образом: производится проверка переменной $SUBSCRIBE_TEMPLATE_RESULT, если в ней содержится массив, выпуск рассылки отправляется. Если значение переменной равно false, то отправка не производится. Шаблон также возвращает массив с параметрами для рассылки, например формат сообщения рассылки, кодировку и значение поля «От» и «Тема письма». Причем два последних параметра берутся из настроек рассылки.

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

Скачать архив с шаблоном

E-mail маркетинг на 1С-Битрикс Как сделать рассылку средствами 1С-Битрикс 47
Рассылка. Как сделать рассылку по группе, в которой свыше 36 адресатов?
E-mail маркетинг на 1С-Битрикс Как сделать рассылку средствами 1С-Битрикс 14
Инструкция по рассылкам битрикс ПроТраффик. РУ - статьи на любой вкус
E-mail маркетинг на 1С-Битрикс Как сделать рассылку средствами 1С-Битрикс 49
Как маркетологу интегрироваться и влиять рассылками на продажи в CRM
E-mail маркетинг на 1С-Битрикс Как сделать рассылку средствами 1С-Битрикс 32
Создание шаблона рассылки на сайте под управлением «1С-Битрикс»
E-mail маркетинг на 1С-Битрикс Как сделать рассылку средствами 1С-Битрикс 20
Битрикс 24: E-Mail Маркетинг Для Пользователя создающего рассылку
E-mail маркетинг на 1С-Битрикс Как сделать рассылку средствами 1С-Битрикс 83
Как лучше организовать рассылку, через Битрикс или сторонний
E-mail маркетинг на 1С-Битрикс Как сделать рассылку средствами 1С-Битрикс 72
Интеграция с Mailigen сделала рассылки из Битрикс24 эффективнее
E-mail маркетинг на 1С-Битрикс Как сделать рассылку средствами 1С-Битрикс 59
Как сделать качественные E-mail-рассылки в CRM системах. - PinALL
E-mail маркетинг на 1С-Битрикс Как сделать рассылку средствами 1С-Битрикс 52
1С-Битрикс - Email-маркетинг - организация работы рассылок
E-mail маркетинг на 1С-Битрикс Как сделать рассылку средствами 1С-Битрикс 38
Битрикс 24: MailChimp рассылка - интеграция с Битрикс24
E-mail маркетинг на 1С-Битрикс Как сделать рассылку средствами 1С-Битрикс 72
E-mail маркетинг на 1С-Битрикс Как сделать рассылку средствами 1С-Битрикс 1
E-mail маркетинг на 1С-Битрикс Как сделать рассылку средствами 1С-Битрикс 66
E-mail маркетинг на 1С-Битрикс Как сделать рассылку средствами 1С-Битрикс 36
E-mail маркетинг на 1С-Битрикс Как сделать рассылку средствами 1С-Битрикс 91
E-mail маркетинг на 1С-Битрикс Как сделать рассылку средствами 1С-Битрикс 22
E-mail маркетинг на 1С-Битрикс Как сделать рассылку средствами 1С-Битрикс 82
E-mail маркетинг на 1С-Битрикс Как сделать рассылку средствами 1С-Битрикс 46