Подключаем смс-уведомления в интернет-магазине
Как мы помним, при оформлении заказа в интернет-магазине мы отправляем соответствующее письмо на почту и клиенту, и администратору магазина. Я подумал, что было бы неплохо еще и отправлять смс с краткой информацией о заказе. Например, скидывать владельцу суммы заказов - пусть бдит и наблюдает.
Загуглив в рамблере, я с некоторой грустью выяснил следующее. Похоже, те благостные времена работы волшебных сервисов отправки смс за 3 копейки ушли и больше не вернутся. Были в свое время народные умельцы, которые отправляли халявные смски через общедоступные формочки на сайтах операторов сотовой связи, но теперь лавочку прикрыли. Чтобы отправить смс через сайт оператора, нужно проделать массу манипуляций в зависимости от паранойи оного оператора: это и в личный кабинет войти, и ввести код подтверждения при отправке смс, полученный через смс же на свой номер. Да еще и ограничения по количеству и/или промежутков времени. В общем, там лось ногу сломит. Впрочем, если у Вас другая, более радостная информация, то поделитесь в комментах, обрадуйте автора :-)
Так вот. Потому как волшебных смс-сервисов не нашлось, то воспользуемся самыми обычными. Выберем более-менее адекватный вариант и прикрутим отправку смс к оформлению заказа в нашем тестовом интернет-магазине
Ищем подходящий сервис
Сервисов отправки смс до фига, но я посмотрел десяток из них и особой разницы не заметил. Главный критерий для меня был - это стоимость отправки одной смс. В среднем выходит 1,5 рубля за штуку. Цена варьируется в зависимости от тарифов, можно купить пачку тысяч эдак из пяти сразу - выйдет дешевле. Но мы люди простые, не юлмарт же у нас - слишком тратиться нам ни к чему.
Из всех вариантов мне больше приглянулся sms.ru. Во-первых, супер-незатейливое название, а во-вторых - 5 бесплатных смс в день на свой номер. Думаю, второй пункт подойдет многим из нас, ведь не у всех магазинов по сотне заказов в день. Если Вы биткойнами поштучно торгуете, то пять заказов в день будет вполне достаточно. Поэтому пусть будет - sms.ru.
Алгоритм интеграции
Очень простой. Впрочем, я другого и не ожидал. Это же не фильтры по характеристикам товаров делать.
Итак, алгоритм по шагам.
— Регистрируемся на sms.ru
— Вбиваем нужные данные, вроде Ваших ФИО, номера и прочего
— Третий шаг финансовый. Я перевел на счет сервиса символическую сумму в 200 рублей. Еще 40 мне добавили за какую-то акцию.
Причем до сих пор еще ни рубля не потратил, так как хватает тех самых 5 бесплатных смс в день.
И теперь за давностью лет не могу вспомнить, обязательным ли был первый взнос или можно было вообще все сделать бесплатно.
В общем, будете пользоваться, проверьте :-)
— Дальше скачиваем php-библиотечку с сайта сервиса
— Пишем несколько строк кода в функции отправки заказа. Ну или где Вам нужно.
php-код в интернет-магазине
Теперь вытаскиваем исходникики интернет-магазина и заставим код отправлять смс в нужное время. Для начала скачайте библиотеку из личного кабинета sms.ru или возьмите в моих исходниках. Создайте в папке scripts папку lib и закиньте в нее эту библиотечку с названием sms.ru.php. Осталось открыть в проекте файл scripts/ordep.php и немного доработать его.
В самом начале файла пишем так
// Подключаем библиотеку sms.ru require_once './lib/sms.ru.php';
Далее напишем функцию отправки смс (взято из примера на сайте сервиса)
// Отправка смс с помощью сервиса sms.ru function sendSms($options) { $smsru = new SMSRU('********-****-****-****-************'); // Ваш api-ключ $data = new stdClass(); $data->to = '7911*******'; // Номер телефона // Текст сообщения $data->text = 'Email: ' . $options['email'] . '. Summa: ' . $options['full_summa'] . ' rub.'; $data->translit = 1; // Экономим на тексте, переводим русские символы в латинские return $smsru->send_one($data); }
api-ключ найдете в Вашем личном кабинете, номер забейте свой, текст по желанию. Я пожелал в смс указать email клиента и сумму заказа. В 140 символов уложился. Параметр translit позволит сэкономить на длине смс, если текст будете отправлять кириллицей. В документации sms.ru есть еще куча параметров, но для простой отправки смс этого кода вполне хватит.
Что еще может sms.ru?
В документации к нему описано еще довольно много всяких прикольных штук.
Например, отправка сообщений в Viber. Но я не стал подробно разбираться в этих модных вещах.
Как говорится, мое дело — стратегия :-)
И напоследок собственно, отправка смс. Ищем функцию sendEmailOrder и в самом конце, после отправки письма добавляем это
// Этот код уже был // Отправляем письмо sendEmailOrder($data); // А этого не было // Отправляем смс sendSms($data);
Вот и все. Один из самых простых уроков про интернет-магазины. Все ссылки на исходники и сопутствующие статьи ниже.
Все об интернет-магазинах
- Демо интернет-магазина
- Корзина интернет-магазина. С чего все началось
- Оформляем заказ на клиенте и сервере
- Добавляем доставку
- Фильтры и сортировки на клиенте и сервере
- Урок 0. Вводный
- Урок 1. Структура базы данных
- Урок 2. Структура проекта и верстка
- Урок 3. Сбор данных на клиенте и отправка на сервер
- Урок 4. Пишем базовый php-код и sql-запросы
- Урок 5. Прием данных с сервера и рендеринг на клиенте
- Урок 6. Заключительный, дорабатываем некоторые штрихи
- Сравнение товаров
- Постраничная навигация по товарам
- Преобразуем каталог, переключаем внешний вид товаров одной кнопкой
- Отправка sms при оформлении заказа
- Админка интернет-магазина на vue.js - серия уроков
- Авторизация на сессиях. Делаем логин в админке
- Docker для начинающих. Докеризуем интернет-магазин
Истории из жизни айти и обсуждение кода.