저는 상점 루트 카테고리별로 제품 컬렉션을 필터링하기 위해 몇 달 동안 노력해 왔습니다. 여러 가지 방법 (Magento - addStoreFilter not working?, Magento ->addCategoryFilter - filtering product collection by root category, Magento - Loading root collection loads all products)을 시도했지만 여전히 작동하는 것을 찾지 못했습니다.컬렉션의 제품에 store_id를 추가하는 Magento - joinField() 쿼리
그래서 컬렉션의 제품에 store_id를 추가하려고합니다. 나는 다음을 사용하여 컬렉션을 호출 할 수 있습니다,하지만 난 STORE_ID 추가하기 위해 일부 필드에 가입해야합니다 :
$_testproductCollection = Mage::getResourceModel('catalog/product_collection');
$_testproductCollection->getSelect()->distinct(true);
$_testproductCollection->addAttributeToSelect('*')->load();
내가 필요로하는 joinField (위 링크 된 게시물에 주어진) 다음과 같은 뭔가입니다 만 store_id = 1 부분은 모든 제품 store_id를 1로 변경합니다. 원하지 않는 항목은 지정된 상점을 추가하여 원하는 항목으로 필터링 할 수 있습니다.
$_testproductCollection->joinField('store_id', 'catalog_category_product_index', 'store_id', 'product_id=entity_id', '{{table}}.store_id = 1', 'left');
누구나 올바른 방향으로 나를 가리킬 수 있습니까? 건배! 핵심 코드에
필터링 : 당신은 그를 사용하여 필터링 먼저, 당신의 상점 루트 카테고리 ID를 얻을 당신이 "CATEGORY_ID"제품에 액세스 할 수 있도록 일부 필드에 가입해야 원래 질문에서). –
다음 질문에 "올바르게"정의해야합니다 또는 코드 수준 또는 SQL 수준에서 필터링 할 필요가 –
내가 게시 한 링크는 모든 것을 말하고, 모든 점을 다시 반복하지 않습니다. 기본적으로 필자는 phtml 템플릿으로 콜렉션을 호출하고 위의 콜렉션 호출에 상점 필터를 추가하고 싶지만 먼저 각 제품의 store_id에 액세스 할 수 있도록 필드에 가입해야합니다. –