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

Добрый день!
На старом форуме была уже такая тема.
Возможно ли прикрутить смс оповещение изменений заказа?
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, пришлось немного допилить, но удобно что отправка по всему миру.

Похоже, подключение к Форум | MODX Shopkeeper было разорвано, подождите, пока мы пытаемся восстановить соединение.