Shopkeper3 не работает плагин

Здравствуйте!
Не могу заставить работать этот плагин на shopkeeper 3.2.5.
Создаю, вешаю на OnSHKgetProductPrice, а в ответ тишина. При включении плагина в корзине всегда 0 руб.
Подскажите что нужно исправить? Спасибо.

$rate = 63; //тут курс
$output = 0;
$price_tv_name = 'price'; //Имя TV цены
   $p_id = isset($purchaseArray['shk-id']) && is_numeric($purchaseArray['shk-id']) ? $purchaseArray['shk-id'] : 0;
   if($p_id){
       $price_tv = $modx->getObject('modTemplateVar',array('name'=>$price_tv_name));
       $price_usd = $price_tv->renderOutput($p_id);
$output = $price_usd*$rate;
   }
$modx->event->_output = '';
$modx->event->output($output);

return '';

А если $purchaseArray['shk-id'] заменить на $purchaseArray['id'] ?

Но лучше ID товара брать так:

$p_id = $modx->getOption( 'id', $scriptProperties, 0 );

@Andchir Фантастика, оно работает в таком виде! Спасибо, очень выручили.

 <?php
$output->name == "OnSHKgetProductPrice";
$rate = 60; //тут курс
$output = 0;
$price_tv_name = 'price'; //Имя TV цены
$p_id = $modx->getOption( 'id', $scriptProperties, 0 );
if($p_id){
$price_tv = $modx->getObject('modTemplateVar',array('name'=>$price_tv_name));
$price_usd = $price_tv->renderOutput($p_id);
$output = $price_usd*$rate;
}
$modx->event->_output = '';
$modx->event->output($output);
return '';

Кстати это решение для тех кто вносит цену товара в валюте и делает пересчет по курсу. Потому что плагин мультивалютности получается привязан к сессии и пересчет по курсу происходит не скоро, а укоротить сессию не вариант, слишком часто выкидывает из админки и быстро слетает товар в корзине. Во фронте не стал заморачиваться, сделал на phx. Единственное конечно не хватает мозгов доделать это:

 <?php
$output->name == "OnSHKgetProductPrice";
$rate = (Здесь присвоить значение из TV поля kurs ресурса с ID №41 например) ; //тут курс
$output = 0;
$price_tv_name = 'price'; //Имя TV цены

Как можно забрать значение? Я так понимаю можно также:

$price_tv = $modx->getObject('modTemplateVar',array('name'=>$price_tv_name));

Но как забрать из конкретного ресурса?

Пока получилось забирать только из системных настроек, но хотелось бы из TV

<?php
$output->name == "OnSHKgetProductPrice";
$output = 0;
$price_tv_name = 'price'; //Имя TV цены
$p_id = $modx->getOption( 'id', $scriptProperties, 0 );
if($p_id){
$price_tv = $modx->getObject('modTemplateVar',array('name'=>$price_tv_name));
$price_usd = $price_tv->renderOutput($p_id);
$rate = $modx->getOption('kurs', '', 1);//Параметр в настройках системы со значением курса
$output = $price_usd*$rate;
}
$modx->event->_output = '';
$modx->event->output($output);
return '';

Попробую прикрутить его к плагину CurrencyRate

Ну а вот мой кривенький, но рабочий плагин, родившийся наконец-то. Позволяет задавать цену товара в двух валютах (соответственно в карточке товара создаем 2 разных TV для цен, один из них заполняем. Если заполняется валютное поле, то пересчитает по курсу). Лишен инерционного эффекта плагина мультивалютности. Может кому пригодицца. Огромная благодарность @Andchir за помощь.

<?php
$output->name == "OnSHKgetProductPrice";
$output = 0;
$price_tv_name = 'price'; //Имя TV цены в долларах или евро
$price_tv_namex = 'price2'; //Имя TV цены в рублях
$p_id = $modx->getOption( 'id', $scriptProperties, 0 );
if($p_id){
$price_tv = $modx->getObject('modTemplateVar',array('name'=>$price_tv_name));
$price_tvx = $modx->getObject('modTemplateVar',array('name'=>$price_tv_namex));
$price_usdx = $price_tvx->renderOutput($p_id);
$price_usd = $price_tv->renderOutput($p_id);
$rate = $modx->getOption('kurs', '', 1);//Параметр в настройках системы со значением курса там где шестеренка справа сверху
if($price_usd > 1){$output = $price_usd*$rate;}//Если заполнено поле Цена в евро то кидает в корзину по курсу
else {
$output = $price_usdx;//Если поле TV евро не заполнено то возьмет и выведет цену из TV цены в рублях
}
}

$modx->event->_output = '';
$modx->event->output($output);
return '';

Во фронте вывод реализуйте как хотите, я использовал PHX модификаторы modx

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