Jok 08 марта 2015 0 5
Здравствуйте.
Пытаюсь в каталоге на shopmodx сделать фильтр с выборкой по цене. И совсем не понимаю как получить минимальную и максимальную цену.

5 комментариев
Fi1osof1
Fi1osof 08 марта 2015г в 22:20 #
Здравствуйте.
Очень хороший вопрос! Тут просто так не сделать, много подводных камней :) К тому же важно учитывать условия поиска товаров и прочее, чтобы не дублировать код.
Вот вам процессор готовый: gist.github.com/Fi1osof/3dd7659fb9afd42d491f
Расширьте им базовый процессор получения товаров и вызывайте его. На выходе получите ответ типа
Array
(
    [success] => 1
    [message] => 
    [count] => 1
    [total] => 13
    [limit] => 1
    [page] => 0
    [object] => Array
        (
            [object_id] => 
            [min_price] => 23500
            [max_price] => 23500
            [tvs] => Array
                (
                )

        )

)

В ответе total будет содержать количество всех найденных товаров, цены которых учитываются.
Данный процессор не все моменты учитывает (особенно он потребует доработки в случае если у вас мультивалютный каталог), но на стандартном каталоге его будет более чем достаточно и даже будут учитываться передаваемые фильтры поиска.

Думаю, доработанный процессор можно было бы и в ядро запилить…
J
Jok 09 марта 2015г в 00:11 #
Николай, спасибо за ответ!
Но есть проблема, процессор выводит одну и туже неизменную цифру 23500 как и у вас в примере.
Fi1osof1
Fi1osof 09 марта 2015г в 02:22 #
Да, действительно, я проперся с добавлением current => true :) Хотел, чтобы ответ был не многоуровневым массивом, а сразу данные цен, а current добавляет условие limit => 1. Переделал. Процессор актуализировал. Проверяйте.
J
Jok 09 марта 2015г в 03:23 #
Спасибо, работает.
Fi1osof1
Fi1osof 09 марта 2015г в 03:26 #
Ну и замечательно :)
Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.