2010-10-07 4 views
3

Я использую модуль catalogsearch Magento. У меня 2 магазина. При поиске «теста» на первом я получаю 5 результатов. При поиске «теста» на втором я получаю 3 результата.Magento: программный поиск в зависимости от магазина

Я хочу добавить результаты второго магазина (только количество результатов), когда я ищу в первом.

Я добавил блок и шаблон, все, что мне нужно, это код для получения числа результатов во втором магазине, и именно там я застрял.

Я пытался получить код контроллера, но он всегда возвращает мне число результатов в первом магазине:

частная функция _getStoreQuery ($ StoreID) {

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



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

{ $ query-> setId (0) -> setIsActive (1) -> setIsProcessed (1); } else { if ($ query-> getId()) { $ query-> setPopularity ($ query-> getPopularity() + 1); } else { $ query-> setPopularity (1); }

  $query->prepare(); 
     } 

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

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

{ $ query-> Save(); }}

var_dump($query); 
    return $query; 

     } 

Я также пытался, прежде чем изменить контекст магазина, но не повезло: Mage :: приложение() -> setCurrentStore ($ secondStoreId);

У вас есть идея? Спасибо

ответ

1

Возможно, причина, по которой первый набор результатов возвращается во второй попытке, заключается в повторном использовании объекта Mage_Catalogsearch_Model_Query. Вместо этого вам нужно создать новый набор результатов. Здесь коллекция создаст те, вам просто нужно пройти через $collection, чтобы получить их.

+0

Я думаю, что это действительно проблема, но ваш совет не разрешает это. – frinux

+0

Вот содержание коллекции: http://pastebin.com/BwiFEQbi И когда я пытаюсь выполнить итерацию по ней, это приводит к сбою Magento (загрузка стоп-листов): foreach ($ collection as $ col) {var_dump ($ Col); } База данных содержит также только один запрос (тот, который находится в магазине 1) – frinux

+0

Когда я пытаюсь сделать то же самое, я получаю этот http://pastebin.com/nVKQPSky. Если я ищу что-то, чего не существует, коллекция пуста и ничего не сработает. Короче говоря, я не могу воссоздать то, что вы видите. – clockworkgeek

Смежные вопросы