Несколько цен в товаре
Примеры того как реализовано в шаблонах
Тут чанк tpl.msCart
[[!+modx.user.id:memberof=`UserOpt`:then=`{$product.optprice}`:else=`[[!+modx.user.id:memberof=`UserAut`:then=`{$product.korpprice}`:else=`{$product.price}`]] `]]
Тут чанк tpl.msProducts.row.[[!+modx.user.id:memberof=`UserOpt`:then=`[[+tv.optprice]]`:else=`[[!+modx.user.id:memberof=`UserAut`:then=`[[+tv.korpprice]]`:else=`{$price}`]] `]]
Сниппет msCart фрагмент присвоения TV к группе пользователя
$groups = $modx->user->getUserGroupNames();
$groups = implode(',',$modx->user->getUserGroupNames());
// Получние тв поля
$wherestvopt = array (
'contentid' => $entry['id'], // id ресурса
'tmplvarid' => 3 // id поля
);
$wherestvkor = array (
'contentid' => $entry['id'], // id ресурса
'tmplvarid' => 6 // id поля
);
$tv = $modx->getObject('modTemplateVarResource', $wherestvopt); // получение tv.объекта
if(!$tv) return;
$valopt = $tv->get('value'); // получение значения
$tv = $modx->getObject('modTemplateVarResource', $wherestvkor); // получение tv.объекта
if(!$tv) return;
$valkor = $tv->get('value'); // получение значения
if ($groups == 'UserOpt') {$d = $valopt;}
elseif ($groups == 'UserAut') {$d = $valkor;}
else {$d = $entry['price'];}
$product['cost'] = $miniShop2->formatPrice($entry['count'] * $d);
$total['cost'] += $entry['count'] * $d;
Вопрос таков как быть дальше? Revo пользуюсь впервые.При открытии страницы итоговая цена соответствует TV но при изменении количества все встает на свои места(остается поле «Price»). И как быть с msOrder?
Есть ли альтернативный вариант? И в какую сторону капать
Комментарии: 3
Ну если вы начали использовать fenom, то почему бы это не делать везде)
Яб зделал так:
Если я конечно правильно понял…
P.S. Не тестировал, но работать должно.
Яб зделал так:
{switch $_modx->user.id | ismember}
{case 'group1'}
{$newPrice = $_modx->resource.tvPriceOne}
{case 'group2', 'group3'}
{$newPrice = $_modx->resource.tvPriceTwo}
{case 'group4'}
{$newPrice = $_modx->resource.tvPriceThree}
{case default}
{$newPrice = $price}
{/switch}
Ну а $newPrice соответственно вставить в нужное место.Если я конечно правильно понял…
P.S. Не тестировал, но работать должно.
Кто нибудь проверял? По-моему такая конструкция не работает.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.