Обновление цены в minishop2 по курсу валюты

Цена в minishop2 по курсу валюты

Создал, как написано, TV usd_price:
Тип: чекбокс;
возможные значения: Да==1||Нет==0;
Значение по умолчанию: Да==1.
Создал системную настройку: ms2_usd_value, значение — 26 (нынешний курс валюты)
Создал 2 плагина на событие msOnGetProductPrice и msOnBeforeAddToCart

if ($modx->event->name == 'msOnGetProductPrice') {
    $tv = $modx->getObject('modTemplateVar', array('name' => 'usd_price'));
    $modx->log(xPDO::LOG_LEVEL_ERROR, $tv->getValue($product->get('id'))); // для дебага
    $modx->log(xPDO::LOG_LEVEL_ERROR, $modx->getOption('ms2_usd_value')); // для дебага
    if($tv->getValue($product->get('id')) != 0){
        $newPrice = (int)$modx->getOption('ms2_usd_value') * (int)$product->get('price');
        $product->set('price', $newPrice);
    }
}
Все работает, но цена товара отображается по курсу только после обновления страницы.
В чем проблема?
Вячеслав
17 марта 2016, 15:24
modx.pro
2
2 172
0

Комментарии: 1

Игорь Терентьев
18 марта 2016, 07:43
0
modstore.pro/packages/other/currencyrate

Я еще давным-давно делал так: создавал дополнительные колонки в таблице rur_price и usd_price и сниппетом по крону пересчитывал стоимость и перезаписывал поле price.

Вот по этому мануалу: modx.pro/solutions/2779-the-price-in-rubles-at-the-exchange-rate-of-the-dollar-in-minishop2/
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1