<< $c->innerJoin('ShopmodxProduct', 'Product'); Это не требуется, так как web/catalog/category/products/getdata расширяет web/catalog/products/getdata, в котором уже добавлено условие на таблицу. if($this->getProperty('sm_price')){ $params = $this->getProperty('sm_price'); Это тоже лучше упростить до if($params = $this->getProperty('sm_price')){ Итоговый код (без лишних else): if($params = $this->getProperty('sm_price')){ $q = array(); foreach($params as $key=>$p){ $q[] = 'Product.sm_price '.$key.' '.$p; } $query->where($q);
} Но это если рассматривать именно ваш код. А вообще правильней просто добавить $where еще перед вызовом процессора. {$params.where[] = «sm_price between {$prices.0} and {$prices.1}»}