Плагин мультивалютности



  • При создании магазина на Shopkeeper 3.2.6 и двумя валютами. Цена всегда задается в одной валюте и выводиться в другой. Но пересчет происходит не зразу, а курс меняется бывает очень часто и это влияет на цену.
    Из этого вопрос, как можно принудительно сделать пересчет цены на всем сайте (так чтобы для всех кто на сайте показывалась новая цена)?



  • Тут ветка про это целая была, но так и не решили вопрос я так понял. Поэтому рекомендую отключить мультивалютность и сделать так:

    Иногда возникает задача изменить цену у товара в зависимости от определенных условий. При отображении в каталоге, в карточке товара для изменения цены достаточно применить выходной фильтр :

    [[+num:incr=`[[*price]]`:mpy=`[[++kurs]]`]]
    

    Но как потом скормить измененную цену корзине для магазина на Shopkeeper 3? Для этих целей предусмотрено специальное событие, которое регистрируется при установке пакета Shopkeeper. Нам остается только написать плагин и повесить его на это событие. Давайте рассмотрим модификацию цены товара на примере импортных товаров. Допустим, у нас есть товары, которые поступают на склад в валюте. Стоит задача отобразить цены на сайте по заданному курсу.

    Создаём плагин для изменения цены. На вкладке "Системные события" отмечаем OnSHKgetProductPrice. И используем следующий код.

    <?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);//Параметр в настройках системы со значением курса (справа вверху шестеренка, системные настройки, создаем поле kurs)
    $output = $price_usd*$rate;
    }
    $modx->event->_output = '';
    $modx->event->output($output);
    return '';
    

    Особо примечательно что это уже поправленый плагин и точно работает с 3.2.5 Будет зразу пересчитывать


  • Администраторы

    Из этого вопрос, как можно принудительно сделать пересчет цены на всем сайте

    Уменьшить время жизни сессии. Параметр "session_cookie_lifetime" в настройках системы.



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

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