2011-02-08 30 views
5

Sadece belirli kategorilerde olan bir satış fiyatı olan ürünlerin listesini almaya çalışıyorum. Şu anda bu verileri almak için bir ürün koleksiyonu kullanmaya çalışıyorum. Sadece belirli kategoriler için koleksiyonu kısıtlamak için nasıl gideceğimi bilmiyorum. İşte ben bugüne kadar ne var:Magento Ürün Koleksiyonu Belirli kategorilerden sadece ürünleri alın

$products = Mage::getModel('catalog/product') 
    ->getCollection() 
    ->addAttributeToSelect('*') 
    ->addAttributeToFilter('status', 1) 
    ->addAttributeToFilter('visibility', 4) 
    ->addAttributeToFilter('special_price', array('neq' => "")) 
    ->addAttributeToFilter('discontinued', array('neq' => 1)) 
    ->setPageSize(10) 
    ->setOrder('price', 'ASC') 
    ; 

durdurulan nitelik kullanmanın bir yolu biz ürünleri görüntülemek değil, aynı zamanda 404.

yok kalmamak kullanmak özel bir öznitelik var mı edilir Ürün modeli ve belirli kategoriler için kısıtlama?

+0

Bir not olarak, 'special_price' sorgunuzla birlikte kullanılamayabilir. Bu soru ve cevap biraz açıkladı: http://stackoverflow.com/questions/12054165/ –

cevap

5

Şekil verilmiş. Kategori ile başlar ve ürün koleksiyonunu kategoriden alırsınız ve ardından oradan daraltın. Kodda şuna benzer:

$products = Mage::getModel('catalog/category')->load(410) 
    ->getProductCollection() 
    ->addAttributeToSelect('*') 
    ->addAttributeToFilter('status', 1) 
    ->addAttributeToFilter('visibility', 4) 
    ->addAttributeToFilter('special_price', array('neq' => "")) 
    ->addAttributeToFilter('discontinued', array('neq' => 1)) 
    ->setOrder('price', 'ASC') 
    ; 
İlgili konular