Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Search Product by name in magento and get array of product ids

I want to search product of a particular store in magento and want to get all product ids in the array programmatically. like the below method which takes $searchstring as parameter and return $ids array which has product ids of all those products where the name of product has contain the search string.

function getProductIdsBySearch($searchstring, $storeId) {
     $ids = array();
     //
     // Code to Search Product by $searchstring and get Product IDs
     //
     return $ids;
}

Like :- If we have following Products on Catalog

ID      Product Name  
1        Temp   
2        ProductTemp   
3        ProductTempData  
4        ABCTEMPXYZ  
5        ABCXYZ  
6        Tempdata  

and search string is temp then it should return 1,2,3,4,6 not 5 because temp not matched with name of product which has id = 5.

like image 740
Shashi Avatar asked Oct 09 '13 11:10

Shashi


1 Answers

You can always use filter query with 'like'.

Give it a try...

function getProductIdsBySearch($searchstring, $storeId = '') {
     $ids = array();     

     // Code to Search Product by $searchstring and get Product IDs
     $product_collection = Mage::getResourceModel('catalog/product_collection')
                  ->addAttributeToSelect('*')
                  ->addAttributeToFilter('name', array('like' => '%'.$searchstring.'%'))
                  ->load();

     foreach ($product_collection as $product) {
         $ids[] = $product->getId();
     }
    //return array of product ids
    return $ids;
}
like image 60
dashbh Avatar answered Nov 15 '22 12:11

dashbh