Magento:程序化搜索取决于商店

时间:2010-10-07 09:51:12

标签: php search magento

我正在使用Magento的catalogsearch模块。我有2家商店。在第一个搜索“test”时,我得到5个结果。当在第二个上搜索“test”时,我得到3个结果。

当我在第一个商店中搜索时,我想添加第二个商店的结果(只是结果的数量)。

我添加了一个块和一个模板,我需要的是用于检索第二个商店中结果数量的代码,这就是我被困的地方。

我试图获取控制器代码,但它总是返回第一个商店中的结果数量:

  

私人功能   _getStoreQuery($ storeId){

          $query = Mage::helper('catalogSearch')->getQuery();
    $query->setStoreId(7);



          if ($query->getQueryText()) {
        if (Mage::helper('catalogSearch')->isMinQueryLength())
     

{                   $查询 - > SETID(0)                        - > setIsActive(1)                        - > setIsProcessed(1);               }               其他{                   if($ query-> getId()){                       $查询 - > setPopularity($查询 - > getPopularity()+ 1);                   }                   其他{                       $查询 - > setPopularity(1);                   }

            $query->prepare();
        }

        Mage::helper('catalogSearch')->checkNotes();

        if (!Mage::helper('catalogSearch')->isMinQueryLength())
     

{                   $查询 - >保存();               }           }

    var_dump($query);
    return $query;

      }

我之前也试过改变商店的上下文,但没有运气: 法师::应用程序() - > setCurrentStore($ secondStoreId);

你知道吗?感谢

1 个答案:

答案 0 :(得分:1)

第二次尝试返回第一组结果的原因可能是因为您正在重用Mage_Catalogsearch_Model_Query对象。您需要创建一组新结果。这里的集合将创建这些集合,您只需要遍历$collection即可获得它们。

$queryText = Mage::helper('catalogSearch')->getQueryText();
$collection = Mage::getResourceModel('catalogsearch/query_collection')
    ->setStoreId($storeId)
    ->setQueryFilter($queryText);