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


Цена по акции в 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 '';```
 

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

  • D

    @Andchir
    Исходя из ошибки выше:

    в ваш плагин было бы неплохо добавить проверку на существование выбранного ресурса, что-бы исключить появление данной ошибки вы собираетесь дорабатывать плагин для работы с данными MIGX db, которые не имеют связи с ресурсами, а "живут" в отдельной таблице и редактируются через CMP?

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

    @Andchir
    [23-Aug-2019 16:30:27 Europe/Moscow] PHP Fatal error: Uncaught Error: Call to a member function get() on null in /home/a0139615/domains/new.bistriki.com/public_html/core/components/catalogfill/model/catalogfill.class.php:459
    Stack trace:
    #0 /home/a0139615/domains/new.bistriki.com/public_html/core/components/catalogfill/processors/mgr/export.php(32): Catalogfill->csv_export('web')
    #1 /home/a0139615/domains/new.bistriki.com/public_html/core/model/modx/modprocessor.class.php(361): include('/home/a0139615/...')
    #2 /home/a0139615/domains/new.bistriki.com/public_html/core/model/modx/modprocessor.class.php(177): modDeprecatedProcessor->process()
    #3 /home/a0139615/domains/new.bistriki.com/public_html/core/model/modx/modx.class.php(1764): modProcessor->run()
    #4 /home/a0139615/domains/new.bistriki.com/public_html/core/model/modx/modconnectorresponse.class.php(144): modX->runProcessor('export', Array, Array)
    #5 /home/a0139615/domains/new.bistriki.com/public_html/core/model/modx/modconnectorrequest.class.php(86): modConnectorResponse->outputContent(Array)
    #6 /home/a0139615/ in /home/a0139615/domains/new.bistriki.com/public_html/core/components/catalogfill/model/catalogfill.class.php on line 459

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

    @Dolce подскажите, как решили проблему? у меня тоже самое

    Читать далее
  • @knplabs :

    Удалил - ничего не изменилось. При очистке кэша висит прелоадер 16 секунд. Потом выдает ту же ошибку.

    Попробуйте удалить все папки в папке /var/cache/. У меня такого не было. Советую использовать http://devilbox.org/ вместо xampp. Там и MongoDB есть.

    Читать далее