Иногда возникает задача изменить цену у товара в зависимости от определенных условий. При отображении в каталоге, в карточке товара для изменения цены достаточно применить выходной фильтр. Но как потом скормить измененную цену корзине для магазина на Shopkeeper 2? Для этих целей предусмотрено специальное событие, которое регистрируется при установке пакета Shopkeeper. Нам остается только написать плагин и повесить его на это событие. Давайте рассмотрим модификацию цены товара на примере импортных товаров. Допустим, у нас есть товары, которые поступают на склад в валюте. Стоит задача отобразить цены на сайте по заданному курсу.
Создаём плагин для изменения цены. На вкладке "Системные события" отмечаем OnSHKgetProductPrice. И используем следующий код.
$output = 0; $price_tv_name = 'price';//Имя TV цены $p_id = isset($purchaseArray['shk-id']) && is_numeric($purchaseArray['shk-id']) ? $purchaseArray['shk-id'] : 0; if($p_id){ $price_tv = $modx->getObject('modTemplateVar',array('name'=>$price_tv_name)); $output = $price_tv->renderOutput($p_id); $kurs = $modx->getOption('kurs', '', 1); //Параметр в настройках системы со значением курса $output = ceil (floatval($output)*$kurs); } $modx->event->_output = ''; $modx->event->output($output);
Количество просмотров: 1 735