Как сделать так, чтобы расширенный поиск Magento показывал все продукты, если не указан критерий поиска? - PullRequest
0 голосов
/ 16 сентября 2011

Может кто-нибудь помочь мне с этой проблемой, пожалуйста?

Я использую расширенный поиск в magento, и он работает хорошо, но когда я нажимаю «Поиск» без ввода каких-либо условий поиска, выдает ошибку или примечание: «Пожалуйста, укажите хотя бы один термин поиска».

Я бы хотел, чтобы все мои продукты отображались во всех категориях, когда я нажимаю «поиск», не вводя никаких терминов поиска, как это возможно?

Спасибо заранее. Ваша помощь очень ценится:))

Привет

P.S. Я использую версию сообщества magento 1.5

Ответы [ 2 ]

0 голосов
/ 24 июня 2014

Это старый пост, но так как я недавно столкнулся с той же проблемой, вот как я решил ее. Код, запрещающий вам выполнять поиск без каких-либо параметров, находится в файле

app/code/core/Mage/CatalogSearch/Model/Advanced.php

в функции addFilters () в строке 208 (Magento v1.8.1):

if ($allConditions) {
        $this->getProductCollection()->addFieldsToFilter($allConditions);
    } else if (!$hasConditions) {
        Mage::throwException(Mage::helper('catalogsearch')->__('Please specify at least one search term.'));
    }

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

Внутри вашего модуля создайте файл

app/code/local/Yournamespace/Yourmodule/Models/Catalogsearch/Advanced.php


class Yournamespace_Yourmodel_Model_Catalogsearch_Advanced extends Mage_CatalogSearch_Model_Advanced {

/**
 * call original addFilters but catch Exception
 * so search WITHOUT search parameters is allowed.
 * 
 * @param array $values
 * @return \Yournamespace_Yourmodel_Model_Catalogsearch_Advanced
 */
public function addFilters($values) {

    try {
        return parent::addFilters($values);
    } catch (Mage_Core_Exception $ex) {

        return $this;
    }

}

}

и переписать оригинальную модель расширенного поиска на новую:

app/code/local/Yournamespace/Yourmodule/etc/config.xml

...
<global>
    <models>
        <catalogsearch>
            <rewrite>
                <advanced>Yournamespace_Yourmodel_Model_Catalogsearch_Advanced</advanced>
            </rewrite>
        </catalogsearch>
    </models>
</global>
...

Это должно сработать.

0 голосов
/ 16 сентября 2011

В разделе Система -> Конфигурация -> Каталог -> Поиск по каталогу

Измените "Минимальная длина запроса" на 0 и повторите поиск.

Я хотел бы отметить, что поиск по шаблону можетбыть очень обременительным в зависимости от количества атрибутов, которые вы ищете, а также количества продуктов.Это также может зависеть от LIKE vs FULLTEXT.

Что касается второго вопроса, то это может касаться многоуровневой навигации в том же месте в админке выше.Я бы установил число для «Применить многоуровневую навигацию, если результаты поиска меньше, чем», равное количеству продуктов, которые у вас есть в вашей основной видимости.Категории являются частью многоуровневой навигации по умолчанию.

...