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
이 작업을 수행하는 방법에 대한 의견이 있으십니까? 아마도 내 검색을 위해서 다른 수업을 사용해야 할 것 같은가요?
id가 없으면 컬렉션을 가져 오는 대신 제품을로드하려고 시도 할 수 없습니까? –
code/core/Mage/CatalogSearch/controllers/AdvancedController.php 파일에서 검색은 다음과 같이 호출됩니다. Mage :: getSingleton ('catalogsearch/advanced') -> addFilters ($ this-> getRequest() -> getQuery()); 통화 중에 ID를 직접 입력하면 어떻게됩니까? Mage :: getSingleton ('catalogsearch/advanced') -> addFilters ($ id); –
3 필드 중 하나라도 검색이 가능해야합니다. 내가 컨트롤러 밖에서하고 있기 때문에 $ this-> getRequest() -> getQuery()를 사용할 수 없다. 시도 -> addFilters ($ id) 행운을 비네. 하지만 나에게 좋은 아이디어를 제공했습니다. 주어진 ID를 가진 제품이 1 개뿐이므로 해당 제품을로드하면됩니다. 그렇지 않으면 다른 두 필드를 사용하여 검색하십시오. 도움 주셔서 감사합니다. –