вывод по разнице price-old_price в процентах
Привет!
Я учусь и появилась следующая задача:
Вывести товары minisop2 отсортированные по проценту разницы price и old_price
т.е.
Кто-нибудь решал подобную задачу? Гуру, подскажите!
пробовал еще такую конструкцию, но по плейсхолдеру pricevariations – сортировки не происходит
Я учусь и появилась следующая задача:
Вывести товары minisop2 отсортированные по проценту разницы price и old_price
т.е.
[[!pdoPage?
&element=`msProducts`
&tpl=`tpl`
&sortby=`этот_процент`
&sortdir=`DESC`
]]
для получения этого процента в товаре я использую сниппет [[!procent]]<?php
$price2 = str_replace(" ","",$modx->resource->get('price'));
$old_price2 = str_replace(" ","",$modx->resource->get('old_price'));
$pricevariations = $old_price2 - $price2;
if($old_price2 > 0){
echo '<div class="procent"><span>'.number_format(round(($pricevariations / $old_price2) * 100), 0, '.', ' ') .'</span></div>';
}
чтобы этот же процент получить в категории товаров пришлось сниппет немного изменить<?php
$price2 = str_replace(" ","",empty($price) ? 0 : $price);
$old_price2 = str_replace(" ","",empty($old_price) ? 0 : $old_price);
if($old_price2 > 0){
return '<div class="procent"><span>'.number_format(round((($old_price2 - $price2) / $old_price2) * 100), 0, '.', ' ') .'</span></div>';
}
return '';
и его вызов[[!procent_category? &price=`[[+price]]` &old_price=`[[+old_price]]`]]
Это работает. Но теперь нужно сделать вывод товара отсортировнного по возрастанию или убыванию по этому проценту и, например, не показывать товары, где процент меньше 10%.Кто-нибудь решал подобную задачу? Гуру, подскажите!
пробовал еще такую конструкцию, но по плейсхолдеру pricevariations – сортировки не происходит
[[+old_price:isnot=`0`:then=`[[+old_price:replace=` ==`:subtract=`[[+price:replace=` ==`]]`:div=`[[+old_price:replace=` ==`]]`:mpy=`100`:toPlaceholder=`pricevariations`]]`:else=``]]
Комментарии: 3
можно написать плагин на событие сохранения формы чтобы брались значения цен и записывались ваши вычисления либо в TV поле либо в minishop поле и потом по этому полю сортировать, это и быстрее в итоге выйдет
Да, я тоже понимаю, что эти вычисления нужно писать в базу данных, но как это сделать не знаю… А как быть с уже добавленными товарами? Пересохранять?
Вопрос не решен. По-прежнему есть необходимость это сделать. Неужели это ненужная функция? Готов в разумных пределах профинансировать написание плагина!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.