Magento: программный поиск в зависимости от магазина - PullRequest
3 голосов
/ 07 октября 2010

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

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

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

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

приватная функция _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 :: app () -> setCurrentStore ($ secondStoreId);

Делаете ли выесть идеи?Спасибо

1 Ответ

1 голос
/ 10 октября 2010

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

$queryText = Mage::helper('catalogSearch')->getQueryText();
$collection = Mage::getResourceModel('catalogsearch/query_collection')
    ->setStoreId($storeId)
    ->setQueryFilter($queryText);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...