Последние темы


СМС оповещение клиентов

  • Добрый день!
    На старом форуме была уже такая тема.
    Возможно ли прикрутить смс оповещение изменений заказа?
    ModX Revo и Shopkeeper 3.

  • @LoGruS Да, возможно. Я правда делал свой плагин связанный с atompark.com

  • @alexinc А мануала нет почитать?
    Нашел SHKsendSMS 0.2.0, но там ни мануала ни рабочего сервиса на который он ссылается.
    Буду весьма признателен за помощь.

  • Мануал к чему? SHKsendSMS? у меня нет его. А плагин epochta (AtomPark) - могу здесь разместить, с инструкцией. Сам SHKsendSMS должен работать с http://sendmsg.ru/ - если они не сменили API.

  • @alexinc я про плагин epochta (AtomPark)

  • Делаем в админской панели плагин - epochta
    далее вставляем туда код:

    <?php
    $sms_url = $scriptProperties['sms_url'];
    $sms_login = $scriptProperties['sms_login']; //Логин
    $sms_secret = $scriptProperties['sms_secret'];
    $phone=$scriptProperties['sms_phone'];
    $phone1=$scriptProperties['sms_phone1'];
    $phone2=$scriptProperties['sms_phone2'];
    $type=$scriptProperties['type_sms'];
    $site_name = $modx->getOption('site_name');
    $site_url = $modx->getOption('site_url');
    $tpl=$scriptProperties['sms_tpl'];
    if ($modx->event->name == 'OnSHKsendOrderMail') {
    
    $order_id = isset($order_id) ? $order_id : '';
    if (isset($phone1)) {
    $src_phone1='<number messageID="msg">'.$phone1.'</number>';
    }
    if (isset($phone2)) {
    $src_phone2='<number messageID="msg">'.$phone2.'</number>';
    }
    
    require_once MODX_CORE_PATH."components/shopkeeper/model/shopkeeper.class.php";
    	require_once MODX_CORE_PATH."components/shopkeeper/model/shk_mgr.class.php";
    	$SHKmanager = new SHKmanager($modx);
    	$SHKmanager->getModConfig(); //Конфигурация Shopkeeper
    	$order = $modx->getObject('SHKorder', $order_id); //Параметры заказа
            $phone_num_client=$order->get('phone');
            $contacts_client=$order->get('contacts');
            $order_data = array();
        $src = '<?xml version="1.0" encoding="UTF-8"?>   
        <SMS>
        <operations> 
        <operation>SEND</operation>
        </operations>
        <authentification>   
        <username>'.$sms_login.'</username>  
        <password>'.$sms_secret.'</password>  
        </authentification>  
        <message>
        <sender>DolceCrema</sender>   
        <text>Поступил новый заказ №'.$order_id.' от '.date("d.m.Y H:i:s").' , проверьте почту.</text>  
        <type>'.$type.'</type>
        </message>   
        <numbers>
        <number messageID="msg11">'.$phone.'</number>
        '.$src_phone1.$src_phone2.'
        </numbers>   
        </SMS>'; 
             
        $Curl = curl_init();   
        $CurlOptions = array(  
        CURLOPT_URL=>$sms_url, 
        CURLOPT_FOLLOWLOCATION=>false,  
        CURLOPT_POST=>true, 
        CURLOPT_HEADER=>false,  
        CURLOPT_RETURNTRANSFER=>true,   
        CURLOPT_CONNECTTIMEOUT=>15, 
        CURLOPT_TIMEOUT=>100,   
        CURLOPT_POSTFIELDS=>array('XML'=>$src),  
        ); 
        curl_setopt_array($Curl, $CurlOptions);
        if(false === ($Result = curl_exec($Curl))) {   
        throw new Exception('Http request failed');
        }  
             
        curl_close($Curl); 
    }
    

    Имеет настройки:
    ['sms_url'] - путь до API epochta
    ['sms_login'] - Логин
    ['sms_secret'] - Пароль (не шифрованный - храниться в прямом виде)
    ['sms_phone'] - Телефон 1 для рассылки
    ['sms_phone1'] - Телефон 2 для рассылки
    ['sms_phone2'] - Телефон 3 для рассылки
    ['type_sms'] - Тип смс прямая (2). кривая (вроде 3)
    ('site_name') - От кого приходит смс - Название. Требуем регистрации в сервисе
    ['site_url'] - ставит ссылку сайта (мы отказались - знаки экономили)
    ['sms_tpl'] - шаблон смс. Не работает. Заделка на будущее.

    Плагин повешен на событие отправки почты на заказ. Можно повесить на изменение статуса заказа.
    Если тяжко разбираться - могу подредактировать, что бы отправляло на телефон заказчика, ибо мы под себя делали и отправляли только менеджерам.
    Плагин писался под версию SHK2. под SHK3, с изменениями, будет через недельку другую.
    Спасибо.

  • @alexinc Это Вам спасибо большое, попробую сам разобраться.

  • Пример плагина для Shopkeeper3:

    <?php
    
    /*
    
    Событие: OnSHKChangeStatus
    
    */
    
    $order_ids = $modx->getOption('order_ids', $scriptProperties, '' ); // Массив ID заказов
    $orderStatus = $modx->getOption('status', $scriptProperties, '1' ); // Статус
    
    require_once $modx->getOption('core_path') . "components/shopkeeper3/model/shopkeeper.class.php";
    $shopCart = new Shopkeeper( $modx );
            
    $config =  $shopCart->getConfig( array( 'statuses' ) ); // Настройки статусов
    
    //Название статуса
    $statusName = '';
    foreach( $config['statuses'] as $st ){
        if( $st['id'] == $orderStatus ){
            $statusName = $st['label'];
            break;
        }
    }
    
    foreach( $order_ids as $order_id ){
        
        $order = $modx->getObject('shk_order', $order_id);
        if( $order ){
            
            //Разбор контактных данных заказа
            $contacts = $order->contacts;
            $contacts = json_decode( $contacts, true );
            if( !is_array( $contacts ) ){
                $contacts = array();
            }
            foreach( $contacts as $contact ){
                $contacts[$contact['name']] = $contact['value'];
            }
            
            // ТУТ ВАШ КОД (заменить)
            var_dump(
                $order->id, // ID заказа
                $orderStatus, // ID статуса
                $statusName, // Название статуса
                $contacts // Массив контактных данных. Пример: $contacts['email']
            );
            
        }
        
    }
    
  • Однажды подключал ByteHand. В техподдержке бесплатно помогли с настройкой и адаптацией под Shopkeeper3 (на тот момент обновленной версии у них не было).
    https://www.bytehand.com/cms#modx3

  • Я пользовался для своих проектов http://www.smsfeedback.ru/smsapi/php.php
    У них есть скрипт на PHP, пришлось немного допилить, но удобно что отправка по всему миру.

 

Последние комментарии

  • M

    @Andchir , спасибо. Проблема и правда была в одном из плагинов, который на другом сайте нормально работает

    Читать далее
  • Что нового в Shopkeeper 4.0.3:

    Исправлено некорректное определение языка по умолчанию В настройках в админке скрываются пароли. Добавлена возможность загружать картинки для категорий. shopkeeper.js - добавлена функция updateProductsPrice() для поддержки текстовых полей для цены. Twig-функции contentList() и includeContent() вынесены в отдельный класс. Добавлено событие "order.before_create". Сортировка всех полей типа контента перетаскиванием. Автоматическое сохранение сортировки полей при сохранении типа контента (не нужно нажимать на отдельную кнопку). В интерфейсе админа добавлено поле поиска для списка Composer-пакетов.

    Скачать можно на главной странице https://modx-shopkeeper.ru/

    Читать далее
  • Вот этот плагин:
    0_1550334109280_screenshot_022.png

    Вроде по умолчанию он выключен. Надо включить. Но плагин работает только на редактирование товаров, при удалении он делалать ничего не будет. Только что проверил кнопку, всё работает корректно, фильтры удаляются и добавляются, когда нужно. Но нужно очищать корзину после удаления товаров (возможно баг).

    Читать далее
  • J

    @Andchir Если нажимаю кнопочку "Обновить значения", то в фильтрах появляются как раз те самые удаленные значения фильтра.. Потом приходится Ручками выбирать эти удаленные значения.
    вот так выглядит Управление фильтрами когда удаляешь ручками: https://yadi.sk/i/_zw64CGkZ_sAYg
    А вот так выглядит когда просто нажимаешь "Обновить значения": https://yadi.sk/i/7WFbXC6xV5sQAw (красным выделено, то что приходится постоянно удалять

    Читать далее