SMS-уведомления и авторизация
Дополнительные опции
Модуль предназначен для отправки SMS-сообщений о поступивших или оплаченных заказах на сайте. Сообщения отправляются куратору магазина и пользователям сайта.
Для перехода в модуль выберите пункт меню "Инструменты" - "SMS-биллинг".
Поддерживаемые сервисы:
- SMS.RU
- SMSint.ru
- IQSMS.ru
- SMS-Agent.ru
- SMSAero.ru
- SMSc.ru
- RedSMS.ru
Инструкция по подключению:
- SMS.RU
- После установки модуля перейдите на сайт http://sms.ru/
- Пройдите регистрацию в сервисе.
- После авторизации, в личном кабинете, в блоке «Ключ для внешних программ» будет указан api_id. Он необходим для работы модуля.
- В самом модуле, в разделе «Настройки» — «Регистрационные данные» выбираете драйвер "SMS.RU" и указываете api_id, логин и пароль от личного кабинета на sms.ru
- После сохранения регистрационных данных функционал модуля станет доступным.
- SMSint.ru
- После установки модуля перейдите на сайт https://www.smsint.ru/
- Пройдите регистрацию в сервисе.
- В самом модуле, в разделе «Настройки» — «Регистрационные данные» выбираете драйвер "SMSInt.ru" и указываете логин, пароль от личного кабинета на smsint.ru и номер администратора, на который будут приходит сообщения.
- После сохранения регистрационных данных функционал модуля станет доступным.
- IQSMS.ru
- После установки модуля перейдите на сайт https://iqsms.ru/
- Пройдите регистрацию в сервисе.
- В самом модуле, в разделе «Настройки» — «Регистрационные данные» выбираете драйвер "IQSMS.ru" и указываете логин и пароль, которые придут в письме.
- После сохранения регистрационных данных функционал модуля станет доступным.
- SMS-Agent.ru
- После установки модуля перейдите на сайт https://sms-agent.ru/
- Пройдите регистрацию в сервисе и заключите договор.
- Подключите API-аккаунт через менеджера в разделе: https://office.sms-agent.ru/api.html.
- В самом модуле, в разделе «Настройки» — «Регистрационные данные» выбираете драйвер "СМС-Агент" и указываете логин и пароль, которые придут в письме.
- После сохранения регистрационных данных функционал модуля станет доступным.
- SMSAero.ru
- После установки модуля перейдите на сайт https://smsaero.ru/
- Пройдите регистрацию в сервисе.
- В личном кабинете smsaero.ru перейдите в раздел "Настройки" - "API и SMPP" и скопируйте ключ из раздела "API-ключ".
- В самом модуле, в разделе «Настройки» — «Регистрационные данные» выбираете драйвер "SMS Aero" и указываете логин и API-ключ.
- После сохранения регистрационных данных функционал модуля станет доступным.
- SMSc.ru
- После установки модуля перейдите на сайт https://smsc.ru/
- Пройдите регистрацию в сервисе.
- В самом модуле, в разделе «Настройки» — «Регистрационные данные» выбираете драйвер "SMSЦентр" и указываете логин и пароль от личного кабинета.
- После сохранения регистрационных данных функционал модуля станет доступным.
- RedSMS.ru
- После установки модуля перейдите на сайт https://redsms.ru/
- Пройдите регистрацию в сервисе и заключите договор.
- В личном кабинете redsms.ru перейдите в раздел "Настройки" - "HTTP API" и скопируйте ключ из раздела "API ключ".
- В самом модуле, в разделе «Настройки» — «Регистрационные данные» выбираете драйвер "RedSMS" и указываете логин, API-ключ и имя отправителя.
- После сохранения регистрационных данных функционал модуля станет доступным.
Интеграция авторизации по SMS-кодам
Для интеграции необходимо внести изменения в XSL-шаблон личного кабинета.
- Добавление подтверждения телефона
В требуемом месте шаблона добавьте вызов темплейта:
<xsl:if test="sms_auth/node()"> <xsl:apply-templates select="sms_auth"></xsl:apply-templates> </xsl:if>
И сам темплейт:
<xsl:template match="sms_auth"> <xsl:variable name="phone"> <xsl:choose> <xsl:when test="phone/node() and phone != ''"> <xsl:value-of select="phone" /> </xsl:when> <xsl:otherwise> <xsl:value-of select="siteuser_phone" /> </xsl:otherwise> </xsl:choose> </xsl:variable> <div class="sms-auth-wrapper"> <h2 class="social-title sms-auth-title">Подтверждение телефона</h2> <xsl:if test="not(phone/node()) or phone = ''"> <div class="sms-auth-description">На указанный номер будет отправлен SMS-код, который необходимо внести в поле "Код из SMS"</div> </xsl:if> <div class="sms-auth-phone"> <input type="text" id="sms_auth_phone" name="sms_auth_phone" value="{$phone}"> <xsl:if test="phone/node() and phone != ''"> <xsl:attribute name="disabled">disabled</xsl:attribute> <xsl:attribute name="class">confirmed</xsl:attribute> <div class="break-line"></div> <span class="confirmed-text">подтвержден</span> </xsl:if> </input> <xsl:if test="not(phone/node()) or phone = ''"> <div class="break-line"></div> <button class="send-code" onclick="$.smsAuthSendCode($('#sms_auth_phone').val())">Подтвердить</button> </xsl:if> </div> <xsl:if test="not(phone/node()) or phone = ''"> <div class="sms-auth-code hidden"> <input type="text" id="sms_auth_code" name="sms_auth_code" placeholder="Код из SMS"/> <button class="accept-code" onclick="$.smsAuthConfirmCode($('#sms_auth_code').val(), $('#sms_phone').val())">ОК</button> </div> <div class="sms-auth-error hidden"></div> <input type="hidden" id="sms_phone" value=""/> </xsl:if> </div> </xsl:template>
- Авторизация по номеру телефона
В блоке вывода формы авторизации добавьте:
<xsl:if test="sms_auth/node()"> <h1>Войти через SMS</h1> <form action="" method="post" class="form-horizontal"> <div class="sms-auth-login-wrapper"> <div class="form-group sms-auth-phone"> <label for="" class="col-12 col-md-3 control-label">Телефон:</label> <div class="col-12 col-md-9"> <input name="phone" type="text" size="30" placeholder="+7" class="form-control" /> </div> </div> <div class="form-group sms-auth-code hidden"> <label for="" class="col-12 col-md-3 control-label">Код:</label> <div class="col-12 col-md-9"> <input name="code" type="text" size="30" class="form-control" /> </div> </div> <div class="form-group sms-auth-phone-button"> <label for="" class="hidden-xs col-md-3 control-label"></label> <div class="col-12 col-md-9"> <a class="btn btn-secondary" onclick="$.smsAuthSendAuthorizationCode($('.sms-auth-phone input[name=phone]').val())">Получить код</a> </div> </div> <div class="form-group sms-auth-code-button hidden"> <label for="" class="hidden-xs col-md-3 control-label"></label> <div class="col-12 col-md-9"> <a class="btn btn-secondary" onclick="$.smsAuthConfirmAuthorizationCode($('.sms-auth-code input[name=code]').val(), $('.sms-auth-login-wrapper #sms_phone').val())">Войти</a> </div> </div> <div class="sms-auth-error hidden"></div> <input type="hidden" id="sms_phone" value=""/> </div> </form> </xsl:if>
Интеграция подтверждения номера телефона при регистрации:
Для интеграции необходимо внести изменения в типовые динамические страницы регистрации и личного кабинета.
- Типовая динамическая страница регистрации. Перед условием:
// Регистрация нового пользователя if ($bNewUser) { ... }
добавляем строку:Sms_Auth_Controller::deleteOldPhone($oSiteuser);
В блоке:// Регистрация нового пользователя if ($bNewUser) { ... }
Содержимое меняется на:
if (Core::moduleIsActive('sms')) { $phone = Sms_Auth_Controller::getSiteuserPhone($oSiteuser); if (!is_null($phone)) { $result = Sms_Auth_Controller::sendPhoneConfirmationCode($oSiteuser, $phone); if (is_object($result) && $result instanceof Sms_Auth_Phone_Model) { $oSms_Auth_Phone = $result; $Sms_Auth_Controller_Show = new Sms_Auth_Controller_Show( $oSms_Auth_Phone ); $Sms_Auth_Controller_Show->xsl( Core_Entity::factory('Xsl')->getByName('SMSКодПодтверждения') ) ->show(); } elseif ($result !== FALSE) { ?><h1>Ошибка</h1><?php switch ($result) { case 3: $error = 'Номер используется у другого клиента'; break; case 2: $error = 'Номер уже подтвержден'; break; case -2: $error = 'Прошло мало времени с предыдущей отправки'; break; default: $error = 'Неизвестая ошибка!'; } ?><div class="error alert alert-danger"><?php echo $error?></div><?php } } else { ?><h1>Ошибка</h1> <div class="error alert alert-danger">Подтверждение невозможно, так как не указан номер телефона!</div><?php } } else { if ($bQuickRegistration) { // Авторизуем зарегистрированного пользователя $oSiteuser->setCurrent(); // Перенаправляем на страницу, с которой он пришел !is_null(Core_Array::getPost('location')) && $Siteuser_Controller_Show->go( strval(Core_Array::getPost('location')) ); } // Отправка письма $oSite_Alias = $oSiteuser->Site->getCurrentAlias(); $Siteuser_Controller_Show ->setEntity($oSiteuser) ->applyAffiliate(Core_Array::get($_COOKIE, 'affiliate_name')) ->subject( Core::_('Siteuser.confirm_subject', !is_null($oSite_Alias) ? $oSite_Alias->alias_name_without_mask : '') ) ->sendConfirmationMail(Core_Entity::factory('Xsl')->getByName($xsl_letter)); ?> <h1>Спасибо за регистрацию</h1> <p>Для продолжения работы необходимо подтвердить регистрацию Ваших данных. В Ваш адрес отправлено письмо, содержащее ссылку для подтверждения регистрации.</p> <p>Если Ваш браузер поддерживает автоматическое перенаправление через 3 секунды Вы перейдете на страницу <a href="../">авторизации пользователя</a>.</p> <script type="text/javascript">setTimeout(function(){ location = '../' }, 3000);</script> <?php } return;
- Типовая динамическая страница личного кабинета. Перед блоком:
$Siteuser_Controller_Show->xsl( Core_Entity::factory('Xsl')->getByName($xslUserAuthorization) ) ->show();
Добавьте:
// Авторизация по логину и паролю if (Core::moduleIsActive('sms') && Core_Array::getPost('apply') && !$oSiteuser->id) { $oSiteuser = $oSiteuser->Site->Siteusers->getByLoginAndPassword( Core_Array::getPost('login', '', 'str'), Core_Array::getPost('password', '', 'str') ); if (!is_null($oSiteuser) && !$oSiteuser->active) { $phone = Sms_Auth_Controller::getSiteuserPhone($oSiteuser); if (!is_null($phone)) { $result = Sms_Auth_Controller::sendPhoneConfirmationCode($oSiteuser, $phone); if (is_object($result) && $result instanceof Sms_Auth_Phone_Model) { $oSms_Auth_Phone = $result; $Sms_Auth_Controller_Show = new Sms_Auth_Controller_Show( $oSms_Auth_Phone ); $Sms_Auth_Controller_Show->xsl( Core_Entity::factory('Xsl')->getByName('SMSКодПодтверждения') ) ->show(); } elseif ($result !== FALSE) { ?><h1>Ошибка</h1><?php switch ($result) { case 3: $error = 'Номер используется у другого клиента'; break; case 2: $error = 'Номер уже подтвержден'; break; case -2: $error = 'Прошло мало времени с предыдущей отправки'; break; default: $error = 'Неизвестая ошибка!'; } ?><div class="error alert alert-danger"><?php echo $error?></div><?php } return; } } }
Дополнительная информация:
- После установки обновите центр администрирования по Ctrl+F5, модуль будет в разделе «Инструменты».
- Баланс для отправки сообщений пополняется на сайтах сервисов.
Список подстановок:
- {ORDER_ID} — Номер заказа.
- {ORDER_SUM} — Сумма заказа.
- {ORDER_STATUS} — Статус заказа.
- {ORDER_ITEM_SUM} — Сумма товаров в заказе.
- {ORDER_CURRENCY} — Валюта заказа.
- {ORDER_ADDRESS} — Адрес, указанный при заказе.
- {ORDER_PROPERTYxxx} — Значение свойства xxx заказа, например {ORDER_PROPERTY37}.
- {CODE} — код подтверждения телефона;
Информация о разработчике:
- Разработчик: Hostmake LLC
- Вопросы по модулю: support@hostcms.ru
- Поддержка: support@hostcms.ru
Версия | Дата | Описание | Версия от | Версия до |
4.4.2 | 23.11.2023 | Добавлен хук Sms_Auth_Command_Controller.onAfterSmsAuthConfirmCode Добавлен хук Sms_Auth_Command_Controller.onAfterSmsAuthConfirmAuthorizationCode |
7.0.2 | ∞ |
4.4.1 | 25.10.2023 | Подключение скриптов и стилей в клиентской части разделено по сайтам. Подключение будет происходить только для сайтов, у которых были сделаны настройки в модуле. |
7.0.2 | ∞ |
4.4 | 17.10.2023 | Добавлен драйвер Sms Aero Добавлен драйвер SMSЦентр Добавлен драйвер RedSMS |
7.0.2 | ∞ |
4.3.2 | 11.10.2023 | Добавлен показ клиента в списке подтвержденных телефонов. Добавлено удаление подтвержденного номера при изменении клиентом номера телефона. |
7.0.2 | ∞ |
4.3.1 | 05.10.2023 | Общие исправления |
7.0.2 | ∞ |
4.3 | 17.04.2023 | Добавлена возможность прозрачной регистрации клиентов, использую только вход по номеру телефона. |
7.0.2 | ∞ |
4.2 | 16.11.2022 | Добавлено подтверждение номера телефона при регистрации клиента. Доступно для редакции "Бизнес" и "Корпорация". |
7.0.2 | ∞ |
4.1 | 24.08.2022 | Добавлен драйвер sms-agent.ru |
7.0.2 | ∞ |
4.0 | 04.08.2022 | Добавлен драйвер IQSMS.ru Реализована возможность подтверждать номер телефона в личном кабинете и авторизовываться по номеру телефона. Доступно для редакции "Бизнес" и "Корпорация". Общие исправления. |
7.0.2 | ∞ |
3.5 | 07.07.2021 | Обновлен драйвер sms.ru |
6.9.6 | ∞ |
3.4 | 28.10.2020 | Добавлена отправка sms при отправке заказа. |
6.9.6 | ∞ |
3.3 | 01.09.2020 | Общие исправления. |
6.9.0 | ∞ |
3.2 | 07.02.2020 | Добавлена украинская локализация |
6.8.9 | ∞ |
3.1 | 15.10.2019 | Добавлены подстановки значений свойств заказа. |
6.8.9 | ∞ |
3.0 | 20.02.2019 | Добавлен драйвер SmsInt.ru Общие исправления |
6.8.5 | ∞ |
2.5 | 11.07.2018 | Общие исправления |
6.8.1 | ∞ |
2.4 | 08.05.2018 | Общие исправления |
6.7.9 | ∞ |
2.3 | 22.01.2018 | Добавлено управление шаблонами SMS-сообщений из самого модуля. |
6.7.4 | ∞ |
2.2 | 27.02.2017 | Добавлено разделение по сайтам |
6.6.8 | ∞ |
2.1 | 09.11.2016 | Добавлены подстановки для сообщений. |
6.6.2 | 6.6.7 |
2.0 | 19.05.2016 | Переработан модуль. Добавлено оповещение при отмене заказа, при смене статуса заказа. |
6.5.8 | 6.6.1 |
1.0 | 01.12.2015 | Релиз |
6.5.4 | ∞ |
-
Настройка
Не могу настроит. И как проверить
Без темы
Очень содержательно, конечно. Как и указано в описании, вопросы по модулю: support@hostcms.ru
-
Без темы
А о комментариях на сайте тоже может приходить СМС ?
Без темы
К сожалению, нет. Только информирование о заказах (поступление, оплата, отмена, смена статуса).
-
Данные в sms пользователюпри заказе
Как выглядит шаблон сообщения пользователю при заказе? Можно ли его редактировать и какие данные вставляются?
Без темы
> Как выглядит шаблон сообщения пользователю при заказе?
На каждое действие свой шаблон. Вот такого типа:
'paid_admin_mail' => 'Заказ %s на сумму %2$s оплачен',
'paid_user_mail' => 'Ваш заказ %s на сумму %2$s оплачен',
'order_admin_mail' => 'Поступил заказ %1$s на сумму %2$s %3$s',
'order_user_mail' => 'Ваш заказ %1$s на сумму %2$s %3$s получен',
> Можно ли его редактировать и какие данные вставляются?
Конечно. Они вынесены в отдельный конфигурационный файл. По умолчанию передаются номер заказа. его сумма и валюта.

Долями

Доставка PickPoint
Сеть постаматов и пунктов выдачи.

Paygine
Приём платежей банковскими картами с помощью Paygine.

Опции товаров
Модуль "Опции товаров" позволяет добавлять товарам опции

Доставка Boxberry
Обработчик для доставки Boxberry

Брошенные корзины
Модуль брошенных корзин пользователя.
Комментарии