Перейти к содержанию
Официальный форум поддержки Simpla

Модуль SMS оповещения


Рекомендуемые сообщения

Может кому пригодится, добавил в админку новое поле трекер ID, в которое можно записать номер почтового идентификатора, а после смены статуса заказа пользователю отправляется уведомление о новом заказе, итак,вот реализация:

Создадим новое поле в БД, для этого выполним комманду

ALTER TABLE `s_orders` ADD `trackerid` VARCHAR(255) NOT NULL AFTER `note`

Или просто создадим новую колонку по аналогии с полем note или просто скопируем его переименовав(если не дружите с консолью)

 

Далее открываем файл api/Orders.php и в строках 24 и 79 дописываем o.trackerid, должно получиться так:

		$query = $this->db->placehold("SELECT o.id, o.delivery_id, o.delivery_price, o.separate_delivery,o.payment_method_id, o.paid, o.payment_date, o.closed, o.discount, o.coupon_code, o.coupon_discount, o.date, o.user_id, o.name, o.address, o.phone, o.email, o.comment, o.status, o.url, o.total_price, o.note, o.trackerid

После открываем файл simpla/design/html/order.tpl и после строчек

			<div class="view_note" {if !$order->note}style='display:none;'{/if}>
				<label class=property>Ваше примечание (не видно пользователю)</label>
				<div class="note_text">{$order->note|escape}</div>
			</div>
		</li>
	</ul>
	</div>

в 189 строку дописываем:

	<div class='layer'>
	<h2>Трекер ID <a href='#' class="edit_trackerid"><img src='design/images/pencil.png' alt='Редактировать' title='Редактировать'></a></h2>
	<ul class="order_details1">
		<li>
			<div class="edit_trackerid" style='display:none;'>
				<textarea name="trackerid">{$order->trackerid|escape}</textarea>
			</div>
			<div class="view_trackerid" {if !$order->trackerid}style='display:none;'{/if}>
				<div class="trackerid_text">{$order->trackerid|escape}</div>
			</div>
		</li>
	</ul>
	</div>

Далее после строчек

	// Редактировать примечание
	$("div#order_details a.edit_note").click(function() {
		 $("div.view_note").hide();
		 $("div.edit_note").show();
		 return false;
	});

в 514-ю вписываем:

	$("div#order_details a.edit_trackerid").click(function() {
		 $("div.view_trackerid").hide();
		 $("div.edit_trackerid").show();
		 return false;
	}); 

После нужно править файл simpla/OrderAdmin.php, в строку 21 вставляем

$order->trackerid = $this->request->post('trackerid');

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

				if($this->request->post('notify_user')){
				$this->notify->email_order_user($order->id);

меняем на

				if($this->request->post('notify_user')){
				$this->notify->email_order_user($order->id);
		
				if($new_status == 1)					
				{
          $this->smssend->send($order->phone, 'Здравствуйте '.$order->name.'. Ваш заказ N'.$order->id.' подтверждён и принят в обработку. Магазин example.ru');
				}
				elseif($new_status == 2)					
				{
           $this->smssend->send($order->phone, 'Ваш заказ N'.$order->id.' отправлен, идентификатор посылки '.$order->trackerid.'. Подробнее об идентификаторах и отслеживании посылки: www.example.ru/post');
				}
				elseif($new_status == 3)					
				{
          $this->smssend->send($order->phone, 'Ваш заказ N'.$order->id.' отменён. Магазин example.ru');				
        }
        }								

Незнаю, насколько решение хорошо, но вроде работает, если есть что дополнить или поправить, с радостью выслушаю.

 

Было бы очень полезным реализовать отдельную графу (по аналогии с графой Примечание) для заполнения какой либо инфой конкретно для клиента на странице заказа в админ панели(трек номер, просто какое либо сообщение) и кнопочку отправить прикрутить. Чтоб по этой кнопки отправлялось смс и электронная почта клиенту на номер мобильного телефона в заказе. Помогите реализовать. Думаю данная доработка полезна будет многим

Ссылка на сообщение
Поделиться на другие сайты
  • Ответов 238
  • Дата создания
  • Последний ответ

Лучшие авторы в теме

Лучшие авторы в теме

Популярные посты

Предлагаю вашему вниманию бесплатный модуль SMS оповещения от провайдера sms.ru (ссылка реферальная, за переход буду благодарен)   Для установки вам понадобиться:   Шаг 1   Создать файл smssend.php в

Изображения в теме

Было бы очень полезным реализовать отдельную графу (по аналогии с графой Примечание) для заполнения какой либо инфой конкретно для клиента на странице заказа в админ панели(трек номер, просто какое либо сообщение) и кнопочку отправить прикрутить. Чтоб по этой кнопки отправлялось смс и электронная почта клиенту на номер мобильного телефона в заказе. Помогите реализовать. Думаю данная доработка полезна будет многим

Я когда то под заказ для одного магазина вот так реализовал:

Смогу за небольшое вознаграждение сделать и Вам.

Ссылка на сообщение
Поделиться на другие сайты
  • 1 месяц спустя...

Товарищи, подскажите как реализовать отправку смс при таком условии: заказ принят, способ доставки самовывоз.

 

где принят order->status == 1, а доставка Самовывоз у меня delivery_id =2

 

я так понимаю надо дописать условие к статусу 1

 

elseif($new_status == 1)					
				{
					if(!$this->orders->close(intval($order->id)))
						$this->design->assign('message_error', 'error_closing');
					else
					{
						$this->orders->update_order($order->id, array('status'=>1));
					if($this->request->post('notify_user'))
							$this->smssend->send($order->phone, 'Ваш заказ №'.$order->id.' принят менеджером. Вы получите письмо на e-mail, указанный в заказе, с инструкцией по оплате.');
					} 
				}
Изменено пользователем keks
Ссылка на сообщение
Поделиться на другие сайты
  • 2 недели спустя...

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

 

Для установки вам понадобиться:

 

Шаг 1

 

Создать файл smssend.php в папке api cледующего содержания:

<?php
 
require_once('Simpla.php');

class smssend extends Simpla
{
	public function send($phone,$sms)
	{
	
		$ch = curl_init("http://sms.ru/sms/send");
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
		curl_setopt($ch, CURLOPT_TIMEOUT, 30);
		curl_setopt($ch, CURLOPT_POSTFIELDS, array(

		"api_id"		=>	"вводим сюда свой секретный код",
		"to"			=>	$phone,
                "partner_id"            =>    "6583",
		"text"		        =>	$sms
));
$body = curl_exec($ch);
curl_close($ch); 

return false;

	}
}

 

Не забываем заменить 

 

"api_id"        =>    "вводим сюда свой секретный код",

 

на строку со страницы смс.ру, ковычки оставляем, например:

"api_id"        =>    "55553331b-4cdd-de24-b54b-a71e5555555",

Если после отправки смс к вам приходит неразбериха меняем строку

"text"        =>    $sms

на

iconv("windows-1251","utf-8",$sms)

 

 

Шаг 2

 

В файле api/simpla.php вписываем строку

  'smssend'        => 'smssend'

Примерно это выглядит так

class Simpla
{
	private $classes = array(
		'config'     => 'Config',
		'request'    => 'Request',
		'db'         => 'Database',
...
		'notify'     => 'Notify',
		'managers'   => 'Managers',
                'smssend'    => 'smssend'
	);

Не забываем про запятые. В самом конце её нет как видите.

 

Шаг 3

 

Теперь мы можем в любом месте отправить смс-ку выполнив команду

$this->smssend->send(телефон,'сообщение');

Например для уведомления администратора о поступлении нового заказа мы в файле View/CartView.php добавляем следующий код

// Отправка смс уведомления пользователю если он этого запросил
$this->smssend->send($order->phone, 'Ваш заказ №'.$order->id.' принят. На сумму '.$order->total_price.' руб. Спасибо за покупку!');
// Отправка смс уведомления администратору о поступившем заказе 
$this->smssend->send('+79150000000', 'На сайт поступил заказ №'.$order->id.' на сумму '.$order->total_price.' руб.');

Если вы хотите сделать уведомление клиенту о изменении статуса заказа вам в файл

simpla/orderadmin.php

 

Примеры всех вышеуказанных файлов есть в аттаче, смотрите, разбирайтесь, пользуйтесь. Просто скопировать файлы нельзя - работать не будет.

 

Если будут вопросы - пишите в тему или в личку.

 

Кому пригодилось - ставим лайки, говорим спасибо и пересылаем ЯД на кошелёк ;)

Установил модуль, приходит смс, но при оформлении заказа (в корзине) пропал выбор способа оплаты, выбор доставки есть - оплаты нет! В чем проблема, где что сделал не так? подскажите пожалуйста! спасибо! 

Ссылка на сообщение
Поделиться на другие сайты
  • 4 недели спустя...

Попытался прикрутить модуль sms оповещения.
Зарегился на sms.ru получил там id.
По аналогии все вбил на своем ресурсе. 

Но, почему то не работает. При заказе с сайта, открывается пустая страница /cart/, 

если в файле cartview.php убрать команду $this->smssend->send - все работает штатно.

Так же попробовал oneclick прикрутить эту фичу, опять таки по аналогии на ресурсе, быстрый заказа происходит, смс не приходит. 
Подскажите пожалуйста, в чем может быть дело.
версия симплы 2.3.5 на рф домене, сервер исп.

Ссылка на сообщение
Поделиться на другие сайты

Попытался прикрутить модуль sms оповещения.

Зарегился на sms.ru получил там id.

По аналогии все вбил на своем ресурсе.

 

Но, почему то не работает. При заказе с сайта, открывается пустая страница /cart/,

если в файле cartview.php убрать команду $this->smssend->send - все работает штатно.

 

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

Подскажите пожалуйста, в чем может быть дело.

версия симплы 2.3.5 на рф домене, сервер исп.

Попробуйте воспользоваться моей инструкцией http://simpla-addons.org/blog/modules/2xx-modul-sms-opoveschanij
Ссылка на сообщение
Поделиться на другие сайты

Попытался прикрутить модуль sms оповещения.

Зарегился на sms.ru получил там id.

По аналогии все вбил на своем ресурсе. 

 

Но, почему то не работает. При заказе с сайта, открывается пустая страница /cart/, 

если в файле cartview.php убрать команду $this->smssend->send - все работает штатно.

 

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

Подскажите пожалуйста, в чем может быть дело.

версия симплы 2.3.5 на рф домене, сервер исп.

 

 

включите показ ошибок, видимо вы все-таки где-то ошиблись. посмотрите не нуленная у вас симлпа, если да, то там может быть класс не Simpla а Newcms. если вариант сработал - за вами уже едут.

Ссылка на сообщение
Поделиться на другие сайты

Будьте внимательнее, в 99% ошибка в синтаксисе (строчные заглавные, smsend вместо smssend и так далее)

Ссылка на сообщение
Поделиться на другие сайты
  • 2 недели спустя...
  • 2 месяца спустя...

Перестали приходить уведомления с SMS.ru.

Проверил номер, даже сменил, ничего не помогает. Хотя отправка видна в самом сервисе SMS.ru в разделе История. Там видны смс-ки, но статус у них "Не доставлено".

Решил пополнить баланс, думал может из-за этого..но и тут проблемы возникли. При попытки пополнения через Вебмани, страница выдает в итоге ошибку. ((

 

Не знаю теперь, что делать.

С чем это связано, друзья? Подскажите пожалуйста.

 

Спасибо большое!

Ссылка на сообщение
Поделиться на другие сайты

Видимо, надо обращаться в сервис SMS.ru ...

к сожелию техподдержка у них молчеливая. сколько пишешь, бестолку.

Ссылка на сообщение
Поделиться на другие сайты

Решение добавляет чекбоксы на страницу заказа в админке:

 

simpla/design/html/order.tpl

 

после

    <div class="block_save">
    <input type="checkbox" value="1" id="notify_user" name="notify_user">
    <label for="notify_user">Уведомить покупателя о состоянии заказа по e-mail</label><br /> 

 

добавить:

    <input type="checkbox" value="1" id="notify_user1" name="notify_user1">
    <label for="notify_user1">Уведомить приёмке заказа по SMS</label><br />
    <input type="checkbox" value="1" id="notify_user2" name="notify_user2">
    <label for="notify_user2">Уведомить покупателя о завершении сделки по SMS</label><br />
    <input type="checkbox" value="1" id="notify_user3" name="notify_user3">
    <label for="notify_user3">Уведомить покупателя о непорядочности и удалении заказа по SMS</label><br />

 

Вот решение для тех, кому в отправляемом клиенту СМС при нажатой галочке нужно выдать сумму заказа:

 

Simpla/OrderAdmin.php

 

после

elseif($new_status == 1)                    
                {
                    if(!$this->orders->close(intval($order->id)))
                        $this->design->assign('message_error', 'error_closing');
                    else
                    {
                        $this->orders->update_order($order->id, array('status'=>1));
 

добавить:

if($this->request->post('notify_user1'))
                        {
                    foreach($purchases as &$purchase)
                    {
                    if(!empty($products[$purchase->product_id]))
                        $purchase->product = $products[$purchase->product_id];
                    if(!empty($variants[$purchase->variant_id]))
                        $purchase->variant = $variants[$purchase->variant_id];
                    $subtotal += $purchase->price*$purchase->amount;
                    $purchases_count += $purchase->amount;                
                    }            
                if ($order->delivery_price>0)
                $this->smssend->send($order->phone, 'Ваш заказ №'.$order->id.' принят ('.$subtotal.'р. + доставка '.$order->delivery_price.'р.). Спасибо!');
                else
                             $this->smssend->send($order->phone, 'Ваш заказ №'.$order->id.' принят ('.$subtotal.'р.). Благодарим за покупку!');
                        }

Аналогично на другие статусы (2, 3) можно "повесить" оповещение о завершении/удалении покупки, просьбе оставить отзыв или добавить сайт в закладки и т.п.

Ссылка на сообщение
Поделиться на другие сайты

Кто-нибудь в курсе что с данным сервисом?

СМС стоят в очереди с 05.09.2015г.

Тех. поддержка молчит.

у меня уже давненько не работает (( техподдержка тоже молчит.

походу у всех тут работает, кроме нас

Ссылка на сообщение
Поделиться на другие сайты

Если вопрос про sms.ru, то на одном сайте работает постоянно и активно, в будни обычно 5-10 SMS в час, не замечено пока никаких сбоев...

Ссылка на сообщение
Поделиться на другие сайты

у меня уже давненько не работает (( техподдержка тоже молчит.

походу у всех тут работает, кроме нас

Если вдруг что сообщат или выясните, напишите, пожалуйста и я в свою очередь тоже сообщу, как что узнаю

Ссылка на сообщение
Поделиться на другие сайты

Разрешена проблема с доставкой. Смотрите новости на сайте. Протестировал все работает. Тестил где то в 22:30 по Москве.

Ссылка на сообщение
Поделиться на другие сайты

Разрешена проблема с доставкой. Смотрите новости на сайте. Протестировал все работает. Тестил где то в 22:30 по Москве.

Ни как нет (( у меня пишет "Не доставлен"

"Абонент заблокирован, не существует или находился вне зоны действия сети больше суток." - бред какой-то

Ссылка на сообщение
Поделиться на другие сайты

А как сделать, чтобы в самом товаре пользователь мог сразу отправить смс другому пользователю по типу "отправить другу"?

Ссылка на сообщение
Поделиться на другие сайты

Сделать можно индивидуальным программированием.

Но прежде чем такое делать, надо сто раз подумать.

Сейчас многие сайты SMS-провайдеров предлагают отправку SMS, причем бесплатно - 1 сообщение в сутки.

А Вы хотите, чтоб Ваш сайт использовали для бесплатной SMS-рассылки ЗА ВАШ СЧЕТ? Думаю, умельцы найдутся...

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...

×
×
  • Создать...