Jump to content

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


Recommended Posts

Может кому пригодится, добавил в админку новое поле трекер 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');				
        }
        }								

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

 

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

Link to post
Share on other sites
  • Replies 237
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

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

Posted Images

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

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

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

Link to post
Share on other sites
  • 1 month later...

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

 

где принят 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, указанный в заказе, с инструкцией по оплате.');
					} 
				}
Edited by keks
Link to post
Share on other sites
  • 2 weeks later...

Предлагаю вашему вниманию бесплатный модуль 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

 

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

 

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

 

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

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

Link to post
Share on other sites
  • 4 weeks later...

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

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

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

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

Link to post
Share on other sites

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

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

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

 

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

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

 

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

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

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

Попробуйте воспользоваться моей инструкцией http://simpla-addons.org/blog/modules/2xx-modul-sms-opoveschanij
Link to post
Share on other sites

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

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

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

 

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

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

 

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

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

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

 

 

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

Link to post
Share on other sites

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

Link to post
Share on other sites
  • 2 weeks later...
  • 2 months later...

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

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

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

 

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

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

 

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

Link to post
Share on other sites

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

 

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) можно "повесить" оповещение о завершении/удалении покупки, просьбе оставить отзыв или добавить сайт в закладки и т.п.

Link to post
Share on other sites

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

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

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

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

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

Link to post
Share on other sites

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

Link to post
Share on other sites

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

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

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

Link to post
Share on other sites

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

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

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

Link to post
Share on other sites

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

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

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

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

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...