如何列出具有特定屬性的產品?例如,如果Size是我的默認屬性集中的一個屬性。那麼我如何列出所有Size = 22的產品呢?通過magento中的屬性過濾產品
我在尋找答案的谷歌,將發佈爲答案,如果我找到任何。
感謝,
巴蘭
如何列出具有特定屬性的產品?例如,如果Size是我的默認屬性集中的一個屬性。那麼我如何列出所有Size = 22的產品呢?通過magento中的屬性過濾產品
我在尋找答案的谷歌,將發佈爲答案,如果我找到任何。
感謝,
巴蘭
例如:
$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);
這對我來說工作正常。
我不認爲目錄產品是爲此製作的。最好的辦法是在靜態表中移動屬性Size(catalog_product_entity)。然後,您將能夠按大小進行搜索,並保持目錄的快速。如果你想在不同的屬性上做這件事,我想你可以把它作爲集合中的參數。但我不確定。
我只是做這個不是很久以前
拿到店裏ID:在
$storeId = Mage::app()->getStore()->getId();
爲了讓所有的產品過濾掉一切,但尺寸
$_productCollection = Mage::getResourceModel('catalog/product_collection')
->addAttributeToSelect('*')
->addAttributeToFilter("Size", "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();
}
}
通過這種方式,您仍然可以在產品清單上做很多工作,而無需嚴格列出產品。因此,如果您願意,您仍然可以添加名稱,價格和更多屬性。希望這有助於!
當我使用此代碼時,我得到錯誤:「致命錯誤:調用成員函數getBackend()在/app/code/core/Mage/Eav/Model/Entity/Abstract.php中的非對象上816行「 – balanv 2012-02-15 11:20:48