Как вывести цену со скидкой в карточке товара msDiscount ?
msDiscount выводит в каталоге, корзине всё норм, но в карточке товара не выводит, в доках не нашёл как вывести цену со скидкой в карточке товара
Комментарии: 4
Такой очевидный вопрос, но в доках нет решения
Пока нет ответа со встроенным решением, сделал такой сниппет
[[!getProductDiscountPrice? &price=`[[*price]]`]]
.<?php
// Если не указан &uid=``, то выбираем для текущего юзера
if(empty($price)){
return '';
}
if (empty($uid)) {$uid = $modx->user->id;}
$pdoFetch = $modx->getService('pdoFetch');
$group = $pdoFetch->getObject('msdUserGroup', array('modUser.id' => $uid), array(
'loadModels' => 'msdiscount',
'leftJoin' => array(
'modUserGroupMember' => array('class' => 'modUserGroupMember', 'on' => 'modUserGroupMember.user_group = msdUserGroup.id'),
'modUser' => array('class' => 'modUser', 'on' => 'modUser.id = modUserGroupMember.member AND modUser.id = '.$uid),
),
'groupby' => 'msdUserGroup.id',
'sortby' => 'CAST(`msdUserGroup`.`discount` AS DECIMAL(13,3))',
'sortdir' => 'desc',
'select' => 'discount',
));
if (isset($group['discount'])) {
return (((int)$price * (100 - (int)$group['discount'] )/100));
}
return '';
Как вывести скидку для всех тоже хз
Вывод вообще для всех
<?php
if(empty($price)){
return '';
}
$pdoFetch = $modx->getService('pdoFetch');
$group = $pdoFetch->getObject('msdUserGroup', array(), array(
'loadModels' => 'msdiscount',
'leftJoin' => array(
'modUserGroupMember' => array('class' => 'modUserGroupMember', 'on' => 'modUserGroupMember.user_group = msdUserGroup.id')
),
'groupby' => 'msdUserGroup.id',
'sortby' => 'CAST(`msdUserGroup`.`discount` AS DECIMAL(13,3))',
'sortdir' => 'desc',
'select' => 'discount',
));
if (isset($group['discount'])) {
return (((int)$price * (100 - (int)$group['discount'] )/100));
}
return '';
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.