Noxter Опубликовано 9 октября, 2013 Жалоба Поделиться Опубликовано 9 октября, 2013 Все работает, только остается один вопрос, возмлжно ли сделать так чтобы отправитель sms был указан не мой номер, а например название магазина. Заранее благодарен за любую помощь.Да можно. Достаточно в sms.ru подать заявку http://sms.ru/?panel=mass&subpanel=senders&add=1 а также в скрипте api/smssend.php после "to" => $phone, прописать "from" => "Название которое запросили на смс.ру". Цитата Ссылка на сообщение Поделиться на другие сайты
allon925 Опубликовано 9 октября, 2013 Жалоба Поделиться Опубликовано 9 октября, 2013 Спасибо, заявку подал, жду ответа, теперь у меня на телефон приходят сообщения с номером заказа и суммой заказа. Что нужно добавить. чтобы приходил еще и товар, который заказали. Заранее благодарен за любую помощь. Цитата Ссылка на сообщение Поделиться на другие сайты
Gyxman Опубликовано 15 октября, 2013 Жалоба Поделиться Опубликовано 15 октября, 2013 А как сделать, чтобы приходила сумма с учетом доставки? Цитата Ссылка на сообщение Поделиться на другие сайты
Romalibert Опубликовано 17 октября, 2013 Жалоба Поделиться Опубликовано 17 октября, 2013 Может кому пригодится, добавил в админку новое поле трекер 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'); } } Незнаю, насколько решение хорошо, но вроде работает, если есть что дополнить или поправить, с радостью выслушаю. Цитата Ссылка на сообщение Поделиться на другие сайты
Booster Опубликовано 17 октября, 2013 Жалоба Поделиться Опубликовано 17 октября, 2013 Romalibert, теоретически должно работать.Но я себе сделал гораздо проще, просто тупо добавил условие примечания на страницу order.tpl, email_order.tpl и в simpla/OrderAdmin.php для СМС. А на странице админки тупо сменил имя примечание на Трек-номер. Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 17 октября, 2013 Жалоба Поделиться Опубликовано 17 октября, 2013 Может нужно так: $related_product->variant->price? Цитата Ссылка на сообщение Поделиться на другие сайты
Romalibert Опубликовано 17 октября, 2013 Жалоба Поделиться Опубликовано 17 октября, 2013 Так, с почтой вроде решилось, а с ошибкой нет Цитата Ссылка на сообщение Поделиться на другие сайты
Romalibert Опубликовано 17 октября, 2013 Жалоба Поделиться Опубликовано 17 октября, 2013 Может нужно так: $related_product->variant->price?не уверен, там везде эта переменная используется, к тому-же я вроде ничего не правил там foreach($related_products_variants as $related_product_variant) { if(isset($related_products[$related_product_variant->product_id])) { $related_product_variant->price *= (100-$discount)/100; $related_products[$related_product_variant->product_id]->variants[] = $related_product_variant; } } Цитата Ссылка на сообщение Поделиться на другие сайты
Romalibert Опубликовано 19 октября, 2013 Жалоба Поделиться Опубликовано 19 октября, 2013 А еще можно сэкономить на отправке сообщения для себя любимого (тобишь администратору сайту, менеджеру, в общем тому, кто следит за заказами). Делаем так: $sms_msg = 'Заказ на сумму '.$order->total_price.' р. от '.$order->name; if (mb_strlen($sms_msg, 'UTF-8') > 70) $sms_msg = mb_substr($sms_msg, 0, 67, 'UTF-8').'...'; $this->smssend->send($this->settings->notify_from_sms, $sms_msg); Естественно это из CartView.phpSMS.ru позволяет слать на свой номер (указанный при регистрации) смски бесплатно, НО бесплатно до 60 шт. в день и размер смс не должен привышать 1-ну смску. Следовательно мы:1. Формируем текст СМС2. Проверяем его длинну, и если она больше 70 символов (ограничение для смс кириллицей) то урезаем его до 67 символов и добавляем "..." для понимания того, что смс была урезана.3. Далее шлем это смсЯ подобрал, по моему мнению, самый оптимальный текст. Мы имеем информацию о факте нового заказа, о сумме и что останется - это инфа о клиенте. Если вам необходимо смс уведомление только для себя, то смс.ру можно юзать почти бесплатно (ну если у вас заказов менее 60 в день, ну а если уж больше, то можно и не читать этот пост - экономия это низко для вас =)))) Держите, функция транслитерации, можно перекодировать себе письма в латиницу и не париться нсчёь длины сообщения function translit($str) { $tr = array("А"=>"A","Б"=>"B","В"=>"V","Г"=>"G","Д"=>"D","Е"=>"E","Ж"=>"J","З"=>"Z","И"=>"I","Й"=>"Y","К"=>"K","Л"=>"L","М"=>"M","Н"=>"N","О"=>"O","П"=>"P","Р"=>"R","С"=>"S","Т"=>"T","У"=>"U","Ф"=>"F","Х"=>"H","Ц"=>"TS","Ч"=>"CH","Ш"=>"SH","Щ"=>"SCH","Ъ"=>"","Ы"=>"YI","Ь"=>"","Э"=>"E","Ю"=>"YU","Я"=>"YA","а"=>"a","б"=>"b","в"=>"v","г"=>"g","д"=>"d","е"=>"e","ж"=>"j","з"=>"z","и"=>"i","й"=>"y","к"=>"k","л"=>"l","м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r","с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h","ц"=>"ts","ч"=>"ch","ш"=>"sh","щ"=>"sch","ъ"=>"y","ы"=>"yi","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya"); return strtr($str,$tr); } Цитата Ссылка на сообщение Поделиться на другие сайты
allon925 Опубликовано 21 октября, 2013 Жалоба Поделиться Опубликовано 21 октября, 2013 Какой файл отвечает за вывод заказанного товара, хочу чтобы еще в sms приходило, что заказали. Заранее благодарен за любую помощь. Цитата Ссылка на сообщение Поделиться на другие сайты
Gloobus Опубликовано 28 ноября, 2013 Жалоба Поделиться Опубликовано 28 ноября, 2013 Romalibert спасибо конечно, но если бы это делалось именно для себя, то без проблем. Заказчик не хочет транслита, пускай мало, но буквы русские Некоторым удобней так и проще воспринимать информацию! Я сам уже давно отказался от смс транслитом, помню тока в юношеские студенческие голодные годы его использовал.я лучше потрачу 3 смски, но мне так удобней... Цитата Ссылка на сообщение Поделиться на другие сайты
SELECONICS Опубликовано 12 декабря, 2013 Жалоба Поделиться Опубликовано 12 декабря, 2013 странно, все делал по мануалу, но номер заказа и сумма в СМС не приходят Цитата Ссылка на сообщение Поделиться на другие сайты
SELECONICS Опубликовано 12 декабря, 2013 Жалоба Поделиться Опубликовано 12 декабря, 2013 странно, все делал по мануалу, но номер заказа и сумма в СМС не приходятp.s. а нет, все ок, посмотрел как у автора код вставлен, вроде заработало Цитата Ссылка на сообщение Поделиться на другие сайты
Gyxman Опубликовано 21 января, 2014 Жалоба Поделиться Опубликовано 21 января, 2014 Почему-то не хочет работать. раз 5 делал по инструкции и кодировки менял и файлы. Проблема в cartView.php. После нажатия на кнопку: оформить заказ не перенаправляет на страницу /order. Просто белая страница без ошибок (ошибка 500). Тем не менее заказ оформляется (приходит оповещение на почту). На телефон ничего не приходит. Если из строк: // Отправка смс уведомления пользователю если он этого запросил if ($smsnotify == 'send') $this->smssend->send($order->phone, 'Ваш заказ №'.$order->id.' принят. На сумму '.$order->total_price.' руб. Спасибо за покупку!'); // Отправка смс уведомления администратору о поступившем заказе $this->smssend->send('+7999*******', 'На сайт поступил заказ №'.$order->id.' на сумму '.$order->total_price.' руб.');убрать отправку пользователю или администратору, то перекидывать на страницу /order начинает, но смс-ка все равно не приходит... может кто-то сталкивался? Цитата Ссылка на сообщение Поделиться на другие сайты
Gyxman Опубликовано 21 января, 2014 Жалоба Поделиться Опубликовано 21 января, 2014 Помогите разобраться на платной основе - почему не работает. Цитата Ссылка на сообщение Поделиться на другие сайты
Kasha Опубликовано 21 января, 2014 Автор Жалоба Поделиться Опубликовано 21 января, 2014 пиши в лс Цитата Ссылка на сообщение Поделиться на другие сайты
dols4me Опубликовано 4 февраля, 2014 Жалоба Поделиться Опубликовано 4 февраля, 2014 Очевидно только у меня не работает(Все по мануалу.Может версия 2.2.2 не хочет с дополнением дружить?Ругается на CartViewer на ту строку где указан код отправки смс.Подскажите у кого такая же беда Цитата Ссылка на сообщение Поделиться на другие сайты
dols4me Опубликовано 5 февраля, 2014 Жалоба Поделиться Опубликовано 5 февраля, 2014 Работает!!Спасибо Sheeft. Цитата Ссылка на сообщение Поделиться на другие сайты
iodjin Опубликовано 10 февраля, 2014 Жалоба Поделиться Опубликовано 10 февраля, 2014 Подскажите, пожалуйста.Выдает: Notice: Undefined index: captcha_code in /home/rusatri6/public_html/view/CartView.php on line 85 Warning: Cannot modify header information - headers already sent by (output started at /home/rusatri6/public_html/view/CartView.php:85) in /home/rusatri6/public_html/index.php on line 26 При этом форма также пишет:Капча введена неверно Цитата Ссылка на сообщение Поделиться на другие сайты
iodjin Опубликовано 10 февраля, 2014 Жалоба Поделиться Опубликовано 10 февраля, 2014 Версия симплы 2.1.5 Сделал свой файл CartView.php вставив код, теперь при нажатии на "оформить заказ", отдает Notice: Undefined variable: smsnotify in /home/rusatri6/public_html/view/CartView.php on line 135 Warning: include_once(api/smssend.php) [function.include-once]: failed to open stream: No such file or directory in /home/rusatri6/public_html/api/Simpla.php on line 73 Warning: include_once() [function.include]: Failed opening 'api/smssend.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/rusatri6/public_html/api/Simpla.php on line 73 Fatal error: Class 'smssend' not found in /home/rusatri6/public_html/api/Simpla.php on line 76 Цитата Ссылка на сообщение Поделиться на другие сайты
iodjin Опубликовано 10 февраля, 2014 Жалоба Поделиться Опубликовано 10 февраля, 2014 Проблему решил) Теперь проблема с отправкой смс при смене статуса заказа.Мой OrderAdmin.php : <?PHP require_once('api/Simpla.php'); ############################################ # Class Product - edit the static section ############################################ class OrderAdmin extends Simpla { public function fetch() { if($this->request->method('post')) { $order->id = $this->request->post('id', 'integer'); $order->name = $this->request->post('name'); $order->email = $this->request->post('email'); $order->phone = $this->request->post('phone'); $order->address = $this->request->post('address'); $order->comment = $this->request->post('comment'); $order->note = $this->request->post('note'); $order->discount = $this->request->post('discount', 'floatr'); $order->coupon_discount = $this->request->post('coupon_discount', 'floatr'); $order->delivery_id = $this->request->post('delivery_id', 'integer'); $order->delivery_price = $this->request->post('delivery_price', 'float'); $order->payment_method_id = $this->request->post('payment_method_id', 'integer'); $order->paid = $this->request->post('paid', 'integer'); $order->user_id = $this->request->post('user_id', 'integer'); $order->separate_delivery = $this->request->post('separate_delivery', 'integer'); $order->numder_post = $this->request->post('numder_post'); if(empty($order->id)) { $order->id = $this->orders->add_order($order); $this->design->assign('message_success', 'added'); } else { $this->orders->update_order($order->id, $order); $this->design->assign('message_success', 'updated'); } if($order->id) { // Покупки $purchases = array(); if($this->request->post('purchases')) { foreach($this->request->post('purchases') as $n=>$va) foreach($va as $i=>$v) $purchases[$i]->$n = $v; } $posted_purchases_ids = array(); foreach($purchases as $purchase) { $variant = $this->variants->get_variant($purchase->variant_id); if(!empty($purchase->id)) if(!empty($variant)) $this->orders->update_purchase($purchase->id, array('variant_id'=>$purchase->variant_id, 'variant_name'=>$variant->name, 'price'=>$purchase->price, 'amount'=>$purchase->amount)); else $this->orders->update_purchase($purchase->id, array('price'=>$purchase->price, 'amount'=>$purchase->amount)); else $purchase->id = $this->orders->add_purchase(array('order_id'=>$order->id, 'variant_id'=>$purchase->variant_id, 'variant_name'=>$variant->name, 'price'=>$purchase->price, 'amount'=>$purchase->amount)); $posted_purchases_ids[] = $purchase->id; } // Удалить непереданные товары foreach($this->orders->get_purchases(array('order_id'=>$order->id)) as $p) if(!in_array($p->id, $posted_purchases_ids)) $this->orders->delete_purchase($p->id); // Принять? if($this->request->post('status_new')) $new_status = 0; elseif($this->request->post('status_accept')) $new_status = 1; elseif($this->request->post('status_done')) $new_status = 2; elseif($this->request->post('status_deleted')) $new_status = 3; else $new_status = $this->request->post('status', 'string'); if($new_status == 0) { if(!$this->orders->open(intval($order->id))) $this->design->assign('message_error', 'error_open'); else $this->orders->update_order($order->id, array('status'=>0)); } 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.' обработан и принят. Вам придет оповещение о состоянии заказа.'); } } elseif($new_status == 2) { if(!$this->orders->close(intval($order->id))) $this->design->assign('message_error', 'error_closing'); else { $this->orders->update_order($order->id, array('status'=>2)); if($this->request->post('notify_user')) $this->smssend->send($order->phone, 'Ваш заказ №'.$order->id.' Информация отправлена на ваш E-mail. Спасибо за покупку! Мы будем благодарны, если вы оставите отзыв о нашем магазине ;)'); } } elseif($new_status == 3) { if(!$this->orders->open(intval($order->id))) $this->design->assign('message_error', 'error_open'); else $this->orders->update_order($order->id, array('status'=>3)); header('Location: '.$this->request->get('return')); } $order = $this->orders->get_order($order->id); // Отправляем письмо пользователю if($this->request->post('notify_user')) $this->notify->email_order_user($order->id); } } else { $order->id = $this->request->get('id', 'integer'); $order = $this->orders->get_order(intval($order->id)); } $subtotal = 0; $purchases_count = 0; if($order && $purchases = $this->orders->get_purchases(array('order_id'=>$order->id))) { // Покупки $products_ids = array(); $variants_ids = array(); foreach($purchases as $purchase) { $products_ids[] = $purchase->product_id; $variants_ids[] = $purchase->variant_id; } $products = array(); foreach($this->products->get_products(array('id'=>$products_ids)) as $p) $products[$p->id] = $p; $images = $this->products->get_images(array('product_id'=>$products_ids)); foreach($images as $image) $products[$image->product_id]->images[] = $image; $variants = array(); foreach($this->variants->get_variants(array('product_id'=>$products_ids)) as $v) { $variants[$v->id] = $v; $images_ids[] = $v->image_id; } $temp_images = $this->products->get_images(array('id'=>$images_ids)); $images = array(); foreach($temp_images as $image) $images[$image->id] = $image; 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]; if(!empty($purchase->variant->image_id)) $purchase->image = $images[$purchase->variant->image_id]; $subtotal += $purchase->price*$purchase->amount; $purchases_count += $purchase->amount; } } else { $purchases = array(); } $this->design->assign('purchases', $purchases); $this->design->assign('purchases_count', $purchases_count); $this->design->assign('subtotal', $subtotal); $this->design->assign('order', $order); if($order) { // Способ доставки $delivery = $this->delivery->get_delivery($order->delivery_id); $this->design->assign('delivery', $delivery); // Способ оплаты $payment_method = $this->payment->get_payment_method($order->payment_method_id); if(!empty($payment_method)) { $this->design->assign('payment_method', $payment_method); // Валюта оплаты $payment_currency = $this->money->get_currency(intval($payment_method->currency_id)); $this->design->assign('payment_currency', $payment_currency); } // Пользователь if($order->user_id) $this->design->assign('user', $this->users->get_user(intval($order->user_id))); // Соседние заказы $this->design->assign('next_order', $this->orders->get_next_order($order->id, $this->request->get('status', 'string'))); $this->design->assign('prev_order', $this->orders->get_prev_order($order->id, $this->request->get('status', 'string'))); } // Все способы доставки $deliveries = $this->delivery->get_deliveries(); $this->design->assign('deliveries', $deliveries); // Все способы оплаты $payment_methods = $this->payment->get_payment_methods(); $this->design->assign('payment_methods', $payment_methods); if($this->request->get('view') == 'print') return $this->design->fetch('order_print.tpl'); else return $this->design->fetch('order.tpl'); } } Подскажите, пожалуйста, что не так. Цитата Ссылка на сообщение Поделиться на другие сайты
iodjin Опубликовано 12 февраля, 2014 Жалоба Поделиться Опубликовано 12 февраля, 2014 Разобрался.. Цитата Ссылка на сообщение Поделиться на другие сайты
aqaholding Опубликовано 12 февраля, 2014 Жалоба Поделиться Опубликовано 12 февраля, 2014 Разобрался..Что было не так? Цитата Ссылка на сообщение Поделиться на другие сайты
iodjin Опубликовано 12 февраля, 2014 Жалоба Поделиться Опубликовано 12 февраля, 2014 Что было не так?Невнимательно сделал Цитата Ссылка на сообщение Поделиться на другие сайты
dols4me Опубликовано 8 марта, 2014 Жалоба Поделиться Опубликовано 8 марта, 2014 Все конечно работает, но у меня после обновления статуса заказа приходит что заказ принят(отправителю)Как реализовать чтобы при смене статуса заказа и желательно оплачено приходило смс соответсвующего характера.заказ сделан - заказ принят - заказ оплачен - заказ выполненЗаранее спасибо! Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.