Как вывести минимальную цену в категории?

Можно ли как-то вывести минимальную цену дочерних товаров в родительской категории? Типа: Телефоны Nokia от *** руб.
Evgeny Epifanov
02 ноября 2013, 08:09
modx.pro
3 674
0

Комментарии: 10

Василий Наумкин
02 ноября 2013, 13:38
2
0
Самый простой вариант — сниппет в чанке оформления категории:
$price = 0;
$q = $modx->newQuery('msProduct', array('parent' => $id));
$q->innerJoin('msProductData', 'Data', 'msProduct.id = Data.id');
$q->sortby('Data.price', 'asc');
$q->select('Data.price');
$q->limit(1);
if ($q->prepare() && $q->stmt->execute()) {
	$price = $q->stmt->fetch(PDO::FETCH_COLUMN);
}
return $price;

При вызове нужно указать id категории:
[[!getMinPrice?id=`[[+id]]`]]
    Evgeny Epifanov
    03 ноября 2013, 01:47
    0
    Василий, спасибо тебе большое.
    Evgeny Epifanov
    05 ноября 2013, 16:15
    0
    Василий, извини за назоливоасть, но сниппет не учитывает отключенные и удаленные товары. Можно это как-то исправить?
      Сергей
      05 ноября 2013, 16:34
      0
      Просто исправьте вторую строчку на:
      $q = $modx->newQuery('msProduct', array('parent' => $id, 'deleted' => 0, 'published' => 1));
        Evgeny Epifanov
        05 ноября 2013, 17:00
        0
        Василий, большое спасибо.
          Василий Наумкин
          05 ноября 2013, 17:14
          0
          Это был Сергей =)
            Evgeny Epifanov
            06 ноября 2013, 13:53
            0
            Мои извинения…
            Сергей, Василий большое ВАМ спасибо.
    Серьёзный
    07 апреля 2015, 17:03
    0
    Обновлю топик.

    Василий, как таким же простым сниппетом вывести минимальную цену на странице категории, если товар привязан к этой категории через ms2_product_categories?

    Решение [[!msProducts? &parents=`[[*id]]` &limit=`1` &tpl=`@INLINE [[+price]]` &sortby=`Data.price`]] сделал. Но, хочется проще…

    Заранее спасибо!
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      10