Цена по акции в shopkeeper3

Здравствуйте, коллеги. На сайте есть цена поле price и цена по акции: action_price. Если стоит флаг акционная цена, то вывожу цену по акции в каталоге, если нет, то цену price.
Но в корзину не попадает action_price, там выводится цена price, соответственно неверный расчет идет. Как сделать, чтобы цена по акции выводилась в корзине и участвовала в расчете общей стоимости?

попадает TV поле price (по умолчанию). Вариантов два:

  • или писать плагин
  • или заменить ТВ на "цена" и "цена без акции" и
если (цена без акции пустая) выводим цену

если  (цена без акции не пустая), то выводим цену и выводим или лейбл "акция" или зачеркнутую цену без акции

Есть вот такой плагин, он пересчитывал цену на shopkeeper2, по заданному курсу. Сейчас перешел на 3 версию, по курсу цену пересчитываю с помощью стандартного плагина shk_multicurrency, а этот код немного поменять, чтобы он брал цену акционную цену, если она есть.

<?php
$rate = 1; //тут курс
$output = 0;
$price_tv_name = 'price'; //Имя TV цены
$action_price_tv_name = 'action_price'; //Имя акционной TV цены

    $p_id = isset($purchaseArray['shk-id']) && is_numeric($purchaseArray['shk-id']) ? $purchaseArray['shk-id'] : 0;
    if($p_id){
	$action_tv = $modx->getObject('modTemplateVar',array('name'=>'action'));
	$action = $action_tv->renderOutput($p_id);
        if (!empty ($action)) {
            $action_price_tv = $modx->getObject('modTemplateVar',array('name'=>$action_price_tv_name));
            $price_usd = $action_price_tv->renderOutput($p_id);
        } else {
            $price_tv = $modx->getObject('modTemplateVar',array('name'=>$price_tv_name));
            $price_usd = $price_tv->renderOutput($p_id);
        }
        $summ = $price_usd * $rate;
        $output = number_format ($summ, 0, ',', ' ');
    }
$modx->event->_output = '';
$modx->event->output($output);

return '';```

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