В этом посте речь пойдет настройках под движок drupal. Если вам интересно более универсальное решение, то смотрите мою новую заметку как настроить sms-рассылку уведомлений с сайтом или без
Нужна ли вам вообще эта заморочка?
Подумайте сами:
- e-mail доходят не всегда
- часть покупателей редко заглядывают в свой e-mail
- всегда есть риск попадания в спам и что ваше письмо не увидят
- ваше письмо могут так же не увидеть в общем потоке корреспонденции или случайно удалить.
Те кто знаком не по наслышке с работой интернет-магазинов сталкивались со всем этим наверняка.

С SMS-сообщениями такого не происходит! Его прочитают всегда и наверняка, а если к отправителю есть доверие, то действия в ответ на SMS будут почти наверняка.
Посредством смс можно информировать о том что товар отправлен, рассылать купоны на скидку, отправлять "ключи" для доступа и т.д. и т.п.
Итого: SMS на сегодня один из самых быстрых способов уведомления и отличный инструмент для маркетологов, т.к. позволяет НАВЕРНЯКА пробиться к вниманию покупателя сквозь массу информационных потоков.
Наверняка, при условии, что мобильный телефон указан добровольно и доставка сообщений на него проверена.
Собственно, последние немаловажные условия учтены в этом руководстве. Рассказываю как все это сделать.
Настройки системы SMS-уведомлений
Вам потребуется: Ubercart +smsframework + uc_ca_sms (лучше пропатченный) + надежный, совместимый и недорогой провайдер для отправки SMS (об этом ниже)
После установки стандартным путем всех модулей необходимо их настроить.
Модуль smsframework это фактически несколько модулей. Для нашего случая нужно обязательно включить подмодуль sms_user, т.к. он позволяет собирать с пользователей добровльно моб. телефоны и, что важно, проверять их через отправку sms с кодом для активации номера.
Делать это можно на этапе регистрации пользователя или позже, в личном кабинете - появится отдельная вкладка для указания телефона и разрешенного времени для отправки сообщений. Затем вы сможете использовать другой подмолуь SMS Blast для массовой рассылки сразу по всем пользователям у кого указан и проверен мобильный.
Пойдем дальше. Про ubercart рассказывать не буду, предполагаю, что вы уже это сделали. Если не сделали - обращайтесь ;)
Сейчас нам нужно создать правило для Conditional actions - это система автоматизации действий магазина по заданным условиям. Пройдя по ссылке httр://vash-site.ru/admin/store/ca ("условные действия") вы попадете на страницу со списком уже настроенных действий, которые добавлены различными модулями.
Добавляем свое действие, кликнув на ссылку httр://vash-site.ru/admin/store/ca/add ("Добавить предикат"). Назовем его, скажем, "отправка sms о статусе". В качестве тригера здесь можно выбрать "Статус заказа обновлен". Остальные поля заполняем по желанию.
Как только вы сохраните новый предикат, вам будет предложено добавить одно или несколько уловий при которых будут выполнены действия. Выберем вариант "Проверить статус заказа" и нажемем "добавить условие". Далее выбираете нужный вам статус и жмете в самом низу "Сохранить изменения".
Теперь можно приступать к созданию действия, кликнув на вкладку "действия" в правом верхнем углу. Выбираем "Send SMS message" и настраиваем как на скриншоте ниже. В качестве получателей нужно указать токен [order-uid], чтобы sms отправлялось покупателю.

Сообщение будет отправлено при условии, что покупатель указал и активировал номер мобильного. Об этом писал выше.
Можно, конечно, брать номер телефона из адреса доставки у заказа, но есть вероятность что номер будет в неверном формате и сообщения доходить не будут.
Сохраняем и проверяем. Для этого создаем заказ от имени покупателя и с администраторскими правами меняем статус заказа на указанный ранее в настройках предиката.
Результаты отправки смотрим в недавних записях в отчетах сайта: httр://vash-site.ru/admin/reports/dblog . В случае возникновения ошибок, они отображаются здесь же.
Настал момент подлючить gateways - провайдера SMS. По умолчанию в настройках smsframework стоит провайдер "Log only", что означает тестовый режим. Все сообщения только сохраняются в отчетах сайта и никуда отправляться не будут.
В поставку с модулем включен один провайдер - clickatell + еще несколько у кого уже готовы модули. Можно подключать любых других. В основном превалируют зарубежные провайдеры, где цена за смс не всегда для нас приемлема, способы оплаты, да и языковой барьер....
В общем-то выбор есть - решать вам. Один из вариантов - использовать возможности сервиса unisendresponder.ru с его весьма привлектальными ценами на sms-рассылки
Установка и использование модуля sms_unisendresponder
После установки данного модуля стандартным путем, вы увидите его в списке gateways в настройках модуля smsframework, см. рисунок ниже (при клике увеличивается).

Далее кликнув на ссылку "Настроить" вы сможете указать ваши данные для доступа к unisendresponder.ru и тут же проверить правильность настроек отправив тестовое сообщение. См. рисунок ниже.

API-ключ вы найдете в своем личном кабинете unisendresponder.ru
Во и все. Должно работать. Разве что еще упомяну, что вы сможете использовать сервис наиболее эффективно при условии что номера собраны на добровольной основе и имя отправителя хорошо известно получателям.
А имя отправителя вы можете указать в настройках модуля. Используйте до 11 латинских букв и цифр.
Вот теперь вроде совсем все. Пользуйтесь :) Ссылка на загрузку модуля ниже. Там же в комплекте модуль для e-mail рассылок.
СКАЧАТЬ МОДУЛЬ SMS и e-mail рассылок
P.S. Для корректной работы модуля на сервере должен быть обязательно установлен php-модуль JASON. Начиная с версии php5 он, как правило установлен по умолчанию, но бывает хостеры его отключают. В таком случае обращайтесь к ним с просьбой включить.

Уважаемый автор к Вам вопрос, что необходимо указывать вместо [order-uid] в действия триггера, если необходимо смс направлять хозяину магазина. Заранее благодарю за ответ.
Смотрите дополнительную форму ввода (ниже), тем можно указать номер телефона. Еще, как вариант, можете подставить номер пользователя хозяина магазина без скобок вместо токена [order-uid]. Во втором случае, у пользователя должен быть активированный номер мобильного в аккаунте.
Спасибо за подробную инструкцию, сделал все как в ней написано и заработало.
Спасибо за рекомендованного вами SMS провайдера, действительно цены очень низкие, качество услуг на высочайшем уровне.
Информацию о новых заказах кед c http://allconverse.ru поступают почти мгновенно. Не надо теперь все время сидеть у компьютера и проверять почту.
Еще раз спасибо!
Подскажите плз, как в SMS сообщение затолкать информацию о заказанном товаре (артикул, название и атрибуты)? подходящих переменных для этого в подстановочных шаблонах не обнаружил.
Спасибо.
Разве что создавать свои токены (token), отдельным модулем. Или посмотреть среди готовых модулей, может что-то подойдет.
Буквально на днях возник глюк. вместо нормального текста стали приходить сообщения вот такого содержания: "ARRAY (0х8042dc3a0)" или "ARRAY (0х8042d43c0)". Во общем последние цифры разные. Какие точно обновления делал на этой неделе делал не помню. Но мне кажется что проблема не на стороне Drupal. Так как в зависимости от длины сообщения которое должно прийти на телефон, снимается разная сумма денег. Если сообщение влезает в одно SMS то это стоит 49 копеек если в два то 98. Т.Е. в билинге видно что на отправку уходят сообщения разной длины. А вот на телефон приходят "ARRAY (0х8042dХХХХ)". А да и если сообщения в лог отправлять, то тоже нормальная информация записывается.
Похоже на проблемы на стороне провайдера отправляющего SMS. Свяжитесь с тех. поддержкой - отвечают быстро, решают оперативно.
К модулю данная ошибка отношения не имеет.
Хотел уже написать провайдеру, точнее уже написал, но решил еще по тестировать и вот что выяснил - такая фигня происходит только если пытаешься отправить в сообщении token [order-shipping-address]. Но влоги адрес доставки пишет нормально.
хотя вот такое вот сообщение проходит "Converse New order [order-id], [order-first-name], [order-shipping-phone], [order-total], [order-comments]"
Вот и думаю может это просто именно проблема с конкретным token?
Сейчас перепроверил. Оказалось, что проблема возникает при большом объеме текста в сообщении. Токены здесь ни причем.
Попробуйте написать любой произвольный текст кириллицей в объеме 2-3 смс.
В общем без помощи провайдера не обойтись. Сейчас тоже напишу им в тех. поддержку.
Поспешил с выводом, пардон :) Оказалось дело в наличии в тексте html-кода.
В данном случае в [order-shipping-address] есть <br />
В общем нужно в модуль добавить чистку от тегов или пока не использовать данный токен.
С другой стороны, получается что спецсимволы нельзя передевать в смс. Как-то "не айс". При отправке обычных смс они передаются. Свяжусь таки с тех. поддержкой
Ага, я тоже это обнаружил, написал в тех поддержку, но пока тишина. Убрал этот токен, все заработало, но раньше все и так работало. В моем случае это не критично, главное что я знаю что пришел новый заказ на кеды converse из моего интернет магазина, а детали я и на сайте могу посмотреть. Тем более я токены сам писать не умею и как впихнуть информацию о заказанных кедах я не знаю, и получается что в SMS все равно не достаточно иформации для звонка клиенту.
Спасибо за поддержку ;)
А вообще чистка тегов не плохая идея, т.к. сложно предстваить ситуацию когда они были бы нужны в СМС. Хотя какие-то исключения могут и возникнуть, но мало вероятно. И это будет точно лучше чем если в сообщении придет "ARRAY (0х8042dХХХХ)" )))
На самом деле спецсимволы вполне могут потребоваться в sms. Скажем знаки </> (меньше/больше). А возможно какие-то другие тоже не проходят. Надо проверять.
Традиционно, при написании обычных смс через мобильник возможно в текст включать самые разные знаки и даже смайлики. Поэтому считаю это не доработкой со стороны провайдера.
Не критично, но все же связался с тех. поддержкой для прояснения этого вопроса.
Как можно сделать в блоке дополнительное поле "Номер телефона" чтобы оно привязывалось тоже к сервису unisendresponder.ru ? вот сейчас сделали на сайте usbcinvestments.com в блоке внизу подписку с помощью модуля unisendresponder, но хотелось бы еще и это поле добавить, но чтобы оно было не обязательным. Спасибо!
Дополнительные поля пока только в планах. Если умеете программировать, то добавьте в код модуля сами.
Если бы умел, то добавил бы сам ;) а так мне ответили в службе поддержки, что нужно добавить и все. Но я сказал что использую модуль drupal.
Ответ: "модуль для Drupal сделан сторонним разработчиком, и за техподдержкой по нему обращайтесь к нему же: http://www.tochka-starta.ru/node/45"
Так что замкнутый круг. Может подскажите в какой строчке прописать это? я думаю там 2 минуты делов, просто нужно знать где.
Одной строчкой там не обойдешься и времени не 2 минуты :)) надо будет еще тестировать, отлаживать.
Как временный вариант, если вам требуется только в блоке разместить форму подписки, создайте новый блок вручную. Код подписки возьмите тот что генерируется в сервисе.
А там, глядишь, и у меня руки дойдут до расширения функционала модуля.
Не получится. Там сессии есть в результатах генерации.
Попробуйте так сделать форму поиска, ничего не получится и поиск не сработает, уже проходили этот урок ))
Так форму брать нужно не из блока на вашем сайте, а из личного кабинета в сервисе.
А блок сгенерированный модулем снять с публикации.
У меня возникла проблема с модулями и их установкой. Я установил все модули, указанные вами, но не могу их включить, так как все они зависят от модуля SMS. В описаниях модулей так и написано: "Зависит от модуля: Sms (отсутствует)". Помогите пожалуйста.
А модуль smsframework установили?
Да, установил, там шесть модулей, но ни один не могу включить, так как требует какой-то другой модуль смс.
Вот скрин того, что мне показывает drupal.
судя по скрину, либо вы не все файлы модуля smsframework скопировали, либо что-то с правами доступа - система не видит файлов основного модуля, а видит только подмодули.
Весь архив (!) модуля smsframework нужно распаковать в папку модулей сайта - all/modules.
Сам архив smsframework-6.x-*.tar.gz состоит из файлов основного модуля (sms.module, sms.info и т.д.) и папки с подмодулями - modules.
Я пытаюсь это сделать на своём домашнем компе с denwerом.
И всё вроде правильно скопировал.
Все установил, прекрасно встало. на unisendresponder.ru у меня тарифный план "Редко". настроил модуль, как указано. Далее в коде в нужном месте вызываю метод sms_send, передаю параметры. пишет, что отправилось, а также указывает MEssage id = test_0123456789. Вот это меня и смущает. не понимаю, почему тест? сообщение не приходит, и деньги со счета не снимаются.. я что-то делаю не так?
лоханулся - на самом деле в личном кабинете нужно включить Доступ к API из "Тестовый" во "Включён" =)
Я не добавляла предикаты, поскольку посчитала, что нужно просто отправлять информационную рассылку по базе телефонов, собранных при регистрации, безотносительно к каким-либо событиям (может я в жтом не права?).
Все остальное делалось строго по инструкции. И в общем не получается отправить тестовое сообшение в форме: Управление | SMS Framework | Gateway configuration. Вместо отправки сообщения появляется вот это:
* The SMS gateway does not accept these account settings.
* The following error occured: error code - AK100310-03 [api mode is off]
Не подскажете, в чем может быть проблема?
Заранее - спасибо.
Причина ошибки найдена: на сайте провайдера нужно было выставить настройку "доступ к API включен".
Если доступ к API включен, то по идее не должно быть такой ошибки.
Попробуйте проверить правильность введенного вами ключа доступа к API, что указывается в настройках модуля.
Если не получится то обращайтесь в тех. поддержку сервиса.
Скажите пожалуйста - мне выдает что надо пополнить счет в личном кабинете. То есть протестировать работу ресурса без пополнения никак?
Что вам мешает пополнить счет на 10-20 рублей и проверить сервис?
А перед тем как проверять в боевом режиме, вы можете потестировать модуль в режиме отладки. Сообщения будут отправляться в логи движка.
Отправить комментарий