Вывод минимальной и максимальной цены в категории

Правила раздела: faq.php?mode=okay
Модератор: Модераторы

Julius123 M
Julius123 M
Репутация: 20
Сообщения: 225
Зарегистрирован: 05.02.2017
С нами: 7 лет 1 месяц

Сообщение #1 Julius123 » 13.05.2018, 09:10

Подскажите, возможно как-то вывести минимальную и максимальную цену товаров в категории и количество товаров в категории? Например как это сделано в фильтре цены. Необходимо для микроразметки категорий.

korshunov
korshunov
Репутация: 146
Сообщения: 1854
Зарегистрирован: 03.12.2015
С нами: 8 лет 3 месяца
Skype

Сообщение #2 korshunov » 13.05.2018, 10:43

1. Количество товаров.
Если это надо на странице отдельной категории для одной текущей категории, то в шаблоне можно использовать {$total_products_num}.

Если же требуется для каждой категории в списке категорий, то намного сложнее. Для этого случая в Simpla в файле api/Categories.php представлено (закомментированное) решение с замечанием "Может тормозить при большом количестве товаров". Другие предлагавшиеся (для Simpla) решения тоже, как правило, неоправданно сильно нагружают базу. Решение из стандартного дистрибутива, кроме того, неверно считает количество в сложных ситуациях, когда один товар относится к нескольким категориям.

2. Минимальная и максимальная цена.
Вопрос этот существенно сложнее. Простое решение вряд ли найдете, особенно если надо вычислять для ВСЕХ категорий сразу...

Julius123 M
Julius123 M
Репутация: 20
Сообщения: 225
Зарегистрирован: 05.02.2017
С нами: 7 лет 1 месяц

Сообщение #3 Julius123 » 13.05.2018, 13:27

korshunov писал(а):1. Количество товаров.
Если это надо на странице отдельной категории для одной текущей категории, то в шаблоне можно использовать {$total_products_num}.
За это спасибо.

korshunov писал(а):2. Минимальная и максимальная цена.
Вопрос этот существенно сложнее. Простое решение вряд ли найдете, особенно если надо вычислять для ВСЕХ категорий сразу...
Нет, все сразу вычислять не нужно. Просто нужно в каждой категории под товарами выводить минимальную стоимость и максимальную в текущей категории.

Добавлено спустя 35 минут 43 секунды:

Нашел вот такой вариант как раз для симплы, но он под карточку товара, пока не совсем могу понять как переделать для всей категории, уже перепробовал разные варианты цикла

Код: Выделить всё

{$price_min = $product->variant->price}
{$price_max = $product->variant->price}
{foreach $product->variants as $v}
   {if $price_min > $v->price && $v->price != 0}{$price_min = $v->price}{/if}
   {if $price_max < $v->price && $v->price != 0}{$price_max = $v->price}{/if}
{/foreach}

korshunov
korshunov
Репутация: 146
Сообщения: 1854
Зарегистрирован: 03.12.2015
С нами: 8 лет 3 месяца
Skype

Сообщение #4 korshunov » 13.05.2018, 14:50

Так не выйдет в принципе, потому что в шаблоне НЕТ данных о всех товарах категории. Надо по полной программе честно работать, затрагивая и API и SQL-запрос свой...


Название раздела: Вопросы по работе с OkayCMS
Правила раздела: faq.php?mode=okay

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения

   

Вернуться в «Вопросы по работе с OkayCMS»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 30 гостей