Hello friends,
I need to create a search form that looks for products that DOES NOT CONTAIN the search term.
The idea behind it is a element that says "Find products that you're not allergic to. I'm allergic to: 'search term' ". When the user types something and searches, the search results will show results that does not have that keyword.
Anyone have a clue on how to do it? Googled a bit but havent found anything.
Thanks in advice!
Hi @MatheusConrado,
You'll be using the regultar search and the a second one with the same features but only that want to exclude that key word, right?
Try the below solution. I had used the same kind of scenario in one of my project to disallow search term from the prepared search result.
Go to location /app/code/core/Mage/CatalogSearch/Model/Resource/ and override prepareResult() method in Fulltext.php at line number 334.
In the method, there is the code that splits the query string into words and generates a where condition to prepare search result. You can rewrite the class and method below in your way. Notice this line:
if ($searchType == Mage_CatalogSearch_Model_Fulltext::SEARCH_TYPE_LIKE || $searchType == Mage_CatalogSearch_Model_Fulltext::SEARCH_TYPE_COMBINE ) { $helper = Mage::getResourceHelper('core'); $words = Mage::helper('core/string')->splitWords($queryText, true, $query->getMaxQueryWords()); foreach ($words as $word) { $like[] = $helper->getCILike('s.data_index', $word, array('position' => 'any')); } if ($like) { $likeCond = '(' . join(' OR ', $like) . ')'; } }
Hope this could help you to sort out your problem.
@Ravindra Pratap Solutions works perfect in my case. You saved my googling time. @MatheusConrado thank you for posting this problem.