2010-01-04 9 views
0

제품 카탈로그를 검색해야하는 맞춤 플러그인을 작성하고 있습니다. 이 두 필드 위대한 작품Magento 카탈로그 검색 (ID로 필터)

$searcher = Mage::getSingleton('catalogsearch/advanced') 
    -> addFilters(array('name' => $_REQUEST['name'])) 
    -> addFilters(array('sku' => $_REQUEST['sku'])) 
; 
$products = $searcher->getProductCollection(); 

, 그러나 나는 또한 제품 ID로 검색해야합니다 어디 선가 본 몇 가지 예제 코드 (아마도이 ​​사이트)을 바탕으로,이 프로토 타입 함께했다. 'ENTITY_ID'됩니다에 검색 할 적절한 필드 것 같아,하지만 작동하지 :

$searcher->addFilters(array('entity_id' => $_REQUEST['id'])); 

가 나는 또한 행운과 'PRODUCT_ID'단순히 '아이디'를 사용하려고했습니다. 이 오류가 계속 발생합니다 :

Mage_Core_Exception: You have to specify at least one search term

이 작업을 수행하는 방법에 대한 의견이 있으십니까? 아마도 내 검색을 위해서 다른 수업을 사용해야 할 것 같은가요?

+0

id가 없으면 컬렉션을 가져 오는 대신 제품을로드하려고 시도 할 수 없습니까? –

+1

code/core/Mage/CatalogSearch/controllers/AdvancedController.php 파일에서 검색은 다음과 같이 호출됩니다. Mage :: getSingleton ('catalogsearch/advanced') -> addFilters ($ this-> getRequest() -> getQuery()); 통화 중에 ID를 직접 입력하면 어떻게됩니까? Mage :: getSingleton ('catalogsearch/advanced') -> addFilters ($ id); –

+0

3 필드 중 하나라도 검색이 가능해야합니다. 내가 컨트롤러 밖에서하고 있기 때문에 $ this-> getRequest() -> getQuery()를 사용할 수 없다. 시도 -> addFilters ($ id) 행운을 비네. 하지만 나에게 좋은 아이디어를 제공했습니다. 주어진 ID를 가진 제품이 1 개뿐이므로 해당 제품을로드하면됩니다. 그렇지 않으면 다른 두 필드를 사용하여 검색하십시오. 도움 주셔서 감사합니다. –

답변

0

도움을 주신 Jimmy에게 감사드립니다. 내가 생각하기에 물건을 너무 망가 뜨렸다. 문을 id (제공된 경우)로 간단하게로드하려면 을 구현하고 그렇지 않으면 검색을 수행하십시오.

관련 문제