;

Пересчет цены с наценкой и по курсу при сохранении

MODX Revolution

25-01-2023

Простой плагин для пересчета цены minishop2 в MODX Revo при сохранении ресурса

В примере у каждого товара 2 валюты: price - руб, и usdprice = $
2 поля в конфигурации: exchange - курс валюты для пересчета и addtprice - наценка в процентах от стоимости товара

При сохранении товара плагин возьмет начальную цену из TV поля start_price и сохранит в ресурс 2 цены в price и usd_price

event->name;
switch($eventName) {
    case 'OnDocFormSave':
        if ($mode == modSystemEvent::MODE_UPD) {
            $id = $resource->get('id');
            $exchange = $modx->getOption('exchange');
            $addprice = $modx->getOption('additprice');
            $origprice = $resource->getTVValue('start_price');
            $usdprice = round($origprice*(100 + $addprice)/100);
            $rubprice = round($usdprice*$exchange);
            $resource->setTVValue(71, $usdprice);
            $res = $modx->getObject('msProduct', $id);
            $res->set('price', $rubprice);
            $res->save();
            $res->clearCache(); 
        }
        break;
}
return true;