Создание сайтов и приложений в Минске

разработка сайтов и приложений

Изменить цену в Shopkeeper 2 при добавлении в корзину

Изменить цену в Shopkeeper 2 при добавлении в корзину

Опубликовано: пятница, 6 март 2015
Изменить цену в Shopkeeper 2 при добавлении в корзину

Иногда возникает задача изменить цену у товара в зависимости от определенных условий. При отображении в каталоге, в карточке товара для изменения цены достаточно применить выходной фильтр. Но как потом скормить измененную цену корзине для магазина на 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);

Ярлыки: MODx, MODx Revo, Shopkeeper

Поделиться в соцсетях: