СМС рассылка Joomla + VirtueMart
Цель интегрировать СМС оповещения в свой интернет-магазин, работающий на бесплатной связке Joomla + VirtueMart. Задача была следующая – чтобы сразу после заказа клиенту приходила одобряющая СМСка, что его заказ принят и скоро будет обработан, а администратору магазина сигнализировать о новом заказе.
Итак, что для этого нужно сделать:
- Качаем наш PHP-класс, реализующий транспортный протокол для отправки СМС-сообщений. (для работы нашего PHP-класса требуется PHP 5 и расширение curl)
- Создаем в корне вашего сайта папку smsapi
- Распаковываем содержимое загруженного архива в только что созданную папку smsapi
- Открываем файл config.php и проводим необходимые настройки: HTTPS_LOGIN - ваш логин для работы через транспорт, HTTPS_PASSWORD – ваш пароль (обычно совпадают с теми, что вы указали при регистрации на нашем сайте. Можно изменить их в настройках личного кабинета). HTTPS_CHARSET – если скрипты на вашем сайте сохранены в кодировке utf-8, не меняем значение HTTPS_CHARSET, если же они сохранены в кодировке Windows-1251, ставим cp1251. Если ваш сервер не поддерживает HTTPS-запросы, поставьте значение флажка USE_HTTPS = 0.
- Теперь требуется модифицировать файл VirtueMart, чтобы он теперь отправлял не только E-mail уведомления, но и СМС. Для этого откройте для редактирования файл, находящийся по адресу administrator/components/com_virtuemart/classes/ps_checkout.php
- Находим функцию email_receipt($order_id).
- После объявления глобальных переменных global $sess, $ps_product, $VM_LANG … ; вставим наш код, для отправки СМС сообщений:
require_once($_SERVER['DOCUMENT_ROOT'] ."/smsapi/transport.php");
$api = new Transport();
//Отправляем СМС администрации ресурса
$administrationPhone = "89231113344"; //Ваш номер телефона!
$params = array("text" => "Поступил новый заказ.");
$phones = array($administrationPhone);
$send = $api->send($params,$phones);
//Отправляем СМС клиенту
$dbu = new ps_DB;
$q = "SELECT * FROM #__{vm}_order_user_info WHERE order_id='$order_id'";
$dbu->query($q);
$dbu->next_record();
$params_shopper = array("text" => "Ваш заказ поступил в обработку. В скором времени наши
менеджеры с вами свяжутся!");
$phones_shopper = array($dbu->f("phone_1"));
$send_shopper = $api->send($params_shopper,$phones_shopper);
Вот и все Сохраняем и пробуем!
Чтобы вставить СМС оповещение при смене статуса заказа.
Для этого вставьте вот такой код в файлик /administrator/components/com_virtuemart/classes/ps_order.php , в функцию order_status_update
if ($d['order_status'] == 'R'){
$path = "путь/до/transport.php";
if (file_exists($path)) {
require_once($path);
$api = new Transport();
$dbu = new ps_DB;
$q = "SELECT * FROM #__{vm}_order_user_info WHERE order_id='".$d['order_id']."'";
$dbu->query($q);
$dbu->next_record();
$params_send = array("text" => "Заказ #".$d['order_id']." оплачен!");
$adminPhone = "Номер админа";
$phones = array($adminPhone, $dbu->f("phone_1"));
$send = $api->send($params_send,$phones);
}
}
Вопрос: Как отправить СМС при смене статуса Заказа?
____________
Ответ: Нужно найти файл "ps_order.php" (/administrator/components/com_virtuemart/classes/ps_order.php) и добавить следующий код в функцию notify_customer прямо перед строчкой "/* Send the email */":
/* Отправляем смс о смене статуса заказа */
require_once($_SERVER['DOCUMENT_ROOT'] ."/smsapi/transport.php");
$api = new Transport();
$dbu = new ps_DB;
$adminPhone = "номер администратора";
$q = "SELECT * FROM #__{vm}_order_user_info WHERE order_id='".$d['order_id']."'";
$dbu->query($q);
$dbu->next_record();
/* Отправка смс покупателю */
$params_send = array("text" => $db->f("first_name").", статус Вашего заказа №".$d['order_id']." изменен
на«".$db->f("order_status_name")."».");
$phones = array($dbu->f("phone_1"));
$send = $api->send($params_send,$phones);
/* Оправка смс администратору */
$params_send = array("text" => "Статус заказа №".$d['order_id']." изменен на «".$db->
f("order_status_name")."».");
$phones = array($adminPhone);
$send = $api->send($params_send,$phones);
/*}
/* Конец отправки смс*/
p.s. Не забудьте указать номер администратора (например, +79121112233) и путь до "transport.php" (есть Вы создали папку "smsapi" в корневом каталоге и положили в нее "transport.php", то этот путь будет выглядеть так: "../smsapi/transport.php" - актуально для файла "ps_order.php", для других файлов этот путь может отличаться).
VirtueMart 2.0 + Joomla 2.5 - СМС оповещение о новом заказе администратора магазина и СМС информирование клиента о смене статуса заказа.
Плагин для отправки СМС на Virtuemart 2 после установки, включения и настройки, позволяет отправлять СМС уведомления покупателю и продавцу об оформлении заказа в интернет-магазине на Virtuemart 2. Все настройки указываются в менеджере плагинов Вашего интернет магазина на Virtuemart 2.0.
При формировании нового заказа в интернет-магазине и после подтверждения оплаты отправляется СМС уведомление покупателю при условии, что он указал свой номер мобильного телефона. А также отправляется СМС администратору интернет-магазина, о новом заказе. Также плагин позволяет информировать покупателя о смене статуса заказа.
В менеджере плагинов (тип плагина vmpayment) рекомендуется отключить все неиспользуемые плагины оплаты.
Скачать плагин для VirtueMart 2.0
Также для организации СМС информирования администратора интернет магазина и Ваших клиентов, вы можете воспользоваться нашим Email обработчиком. Пример настройки находится здесь