Как получить значения атрибутов min & max из базы данных, чтобы ссылаться на слайдер цены

magento.stackexchange https://magento.stackexchange.com/questions/5710

Вопрос

Я реализовал это Слайдер jQuery в моей форме расширенного поиска.

В настоящее время у меня есть произвольные значения MIN и MAX.

Как я бы установил значение MIN как минимальное значение моей базы данных и наоборот для максимума?

var slider = {
   $: jQuery,
   initSpace: function (el) {
       slider.el = slider.$(el);
       slider.el.children().hide();
       slider.el.append('<span class="search-min">Start</span>' +
           '&nbsp; to &nbsp; <span class="search-max">End</span>' +
           '<br><div class="slider"></div>').width('400px');
   },
   initSlider: function () {
       var params = {
           range: true,
           min: 11,  //--------------arbitrary
           max: 240,  //---------------arbitrary
           values: [11, 240],
           slide: function (event, ui) {
               slider.el.find('.search-min').html(Math.floor(ui.values[0] / 12) + '\' ' + (ui.values[0] - (12 * Math.floor(ui.values[0] / 12))) + '"');
               slider.el.find('.search-max').html(Math.floor(ui.values[1] / 12) + '\' ' + (ui.values[1] - (12 * Math.floor(ui.values[1] / 12))) + '"');

               slider.$(slider.el.children('input')[0]).val(ui.values[0]);
               slider.$(slider.el.children('input')[1]).val(ui.values[1]);
           }
       };
       slider.$('.slider').slider(params);
   }
};
Это было полезно?

Решение

Вы можете получить минимум максимальную цену, как это:

$minCollection = Mage::getModel('catalog/product')->getCollection()
    ->addMinimalPrice()
    ->addFinalPrice()
    ->setPage(1,1)
    ->addAttributeToSort('price', 'asc');
Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($minCollection);
Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($minCollection);
$minPrice = $minCollection->getFirstItem()->getFinalPrice();


$maxCollection = Mage::getModel('catalog/product')->getCollection()
    ->addMinimalPrice()
    ->addFinalPrice()
    ->setPage(1,1)
    ->addAttributeToSort('price', 'desc');
Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($maxCollection);
Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($maxCollection);
$maxPrice = $maxCollection->getFirstItem()->getFinalPrice();

Я рекомендую вместо минимальной цены использовать 0 (ноль). Выглядит лучше для клиентов. А для максимального значения не используйте то, что вы получаете из своей базы данных (примерно 455,95). Завершите его, по крайней мере, из 10 из 10 (так что это может быть 460,00 вместо 455,95). Снова для маркетинговых целей.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top