2012-02-15 8 views
1

특정 속성이있는 제품을 어떻게 나열합니까? 예를 들어 Size가 기본 속성 세트의 속성 인 경우입니다. 그러면 Size = 22 인 모든 제품을 어떻게 나열합니까?magento의 속성으로 제품 필터링

Google에서 답변을 검색하고 있으며 답변을 찾을 경우 답변으로 게시합니다.

감사합니다,

발안 예를 들어

답변

0

:

이 잘 작동 나를 위해
$storeId = Mage::app()->getStore()->getId(); 
    $products = Mage::getResourceModel('catalog/product_collection');  

    $products->addAttributeToFilter(array(
        array('attribute' => 'attribute_code', 'eq' => 22))) 
        ->addAttributeToSelect('*') 
           ->setStoreId($storeId) 
           ->addStoreFilter($storeId) 
        ->setOrder('name', 'desc'); 

     Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($products); 
    Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($products); 
$this->setProductCollection($products); 

.

+0

내가 오류를 얻을 /app/code/core/Mage/Eav/Model/Entity/Abstract.php에서 비 객체에() 멤버 함수의 getBackend에 전화 라인 816 " – balanv

0

카탈로그 제품이이 용도로만 만들어진 것은 아닙니다. 정적 테이블 (Catalog_product_entity)에서 속성 크기를 이동하는 것이 가장 좋습니다. 그러면 카탈로그를 빠르게 유지하면서 크기별로 검색 할 수 있습니다. 이후에 다른 속성에서이 작업을 수행하려는 경우 컬렉션의 매개 변수로 지정할 수 있습니다. 그러나 나는 그것에 대해 확신하지 못한다. A의 단순

$_productCollection = Mage::getResourceModel('catalog/product_collection') 
    ->addAttributeToSelect('*') 
    ->addAttributeToFilter("Size", "1"); 

그런

$storeId = Mage::app()->getStore()->getId(); 

모든 제품은 크기를 제외한 모든 것을 필터링 얻으려면 : 난 그냥 상점 ID를 얻으려면 너무 오래 전에

을 이런 짓을

1

foreach 루프는 다음을 추가합니다 (배열 $ _productCollection을 통해 루프합니다)

foreach($_productCollection as $_product) 
{ 
    $attr = Mage::getResourceModel('catalog/product')->getAttributeRawValue($_product->getId(), 'Size', $storeId); 
    if($attr == '22') 
    { 
     //Echo names of the products 
     echo $_product->getName(); 
    } 
} 

이렇게하면 엄격한 제품 목록 없이도 제품 목록을 많이 볼 수 있습니다. 원하는 경우 이름, 가격 및 기타 속성을 추가 할 수 있습니다. 희망이 도움이! "치명적인 오류 :이 코드를 사용할 때

관련 문제