2010-08-26 5 views
3

Lorsque j'essaie de faire une recherche par nom de catégorie, cela ne me donne rien. Par exemple, j'ai des catégories organiques, uniques, Sprots etc. et dans la recherche, je tape Unique. Mais je n'obtiens aucun résultat.Recherche par nom de catégorie

+0

S'il vous plaît poster le code que vous utilisez pour exécuter ces recherches, et de modifier votre message d'inclure une question. –

Répondre

6

Malheureusement, la fonction de recherche par défaut de Magento est une recherche de produit et est limitée à cette portée. Lorsque vous effectuez une recherche sur "Unique", vous recherchez le nom du produit et peut-être la description en fonction de votre configuration.

Une solution rapide serait d'afficher une liste des catégories correspondantes avec les résultats du produit.

<?php 
    $searchTerm = $this->helper('catalogSearch')->getEscapedQueryText(); 
    $categories = $this->helper('catalog/category')->getStoreCategories(false, true); 
    $count = 0; 
    foreach ($categories as $count_category) { 
     if ($this->helper('catalog/category')->canShow($count_category) && stripos($count_category->getName(), $searchTerm) !== false) 
       $count++; 
    } 

    if ($count > 0): 

    echo "<div class=\"search-term-notice\">"; 
    echo "The following product categories matched your search:"; 

    foreach ($categories as $category) { 
     if ($this->helper('catalog/category')->canShow($category) && stripos($category->getName(), $searchTerm) !== false) 
      echo "<h3> > <a href='".$category->getUrl()."'>".$category->getName()."</a></h3></p>"; 
    } 
    echo "</div>"; 
    endif;?> 

Source: http://www.magentocommerce.com/boards/viewthread/74632/

-1

Vous cherchez peut-être la méthode addAttributeToFilter. par exemple.

$categories = Mage::getModel('catalog/category')->getCollection() 
->addAttributeToSelect('id') 
->addAttributeToSelect('name') 
->addAttributeToFilter('name',$name); 

Vous pouvez ensuite travailler avec la collection renvoyée, par ex.

foreach ($categories as $cat) { 
    echo 'Name: ' . $cat->getName() . "<br />"; 
    echo 'Category ID: ' . $cat->getId() . "<br />"; 
} 

Cela fonctionne dans Magento CE 1.7.0.1, au moins.

0

Vous pouvez effectuer une recherche en utilisant les catégories ci-dessous comme filtre COMME

$categories = Mage::getModel('catalog/category')->getCollection() 
    ->addAttributeToSelect('url') 
    ->addAttributeToSelect('name') 
    ->addAttributeToFilter('name',array(array('like' => '%'. $searchvariable.'%'))); 

Sortie des résultats

foreach ($categories as $cat) { 
    echo '<div><a href="'.$cat->getUrl().'">' . $cat->getName() . '</a></div>'; 
} 
Questions connexes