2011-02-08 14 views
5

मैं उन उत्पादों की एक सूची प्राप्त करने का प्रयास कर रहा हूं जिनके पास केवल कुछ श्रेणियों में बिक्री मूल्य है। अभी मैं इस डेटा को प्राप्त करने के लिए एक उत्पाद संग्रह का उपयोग करने की कोशिश कर रहा हूं। मुझे यकीन नहीं है कि मैं केवल विशेष श्रेणियों के लिए संग्रह को प्रतिबंधित करने के बारे में कैसे जाऊंगा। यहाँ मैं अब तक है:Magento उत्पाद संग्रह कुछ श्रेणियों से केवल उत्पाद प्राप्त करें

$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') 
    ; 

बंद विशेषता है कि हम इतनी का उपयोग करें कि उत्पादों का प्रदर्शन नहीं करते, लेकिन यह भी 404.

नहीं है एक कस्टम विशेषता देखते उपयोग करने के लिए एक रास्ता है उत्पाद मॉडल और कुछ श्रेणियों तक सीमित है?

+0

एक नोट के रूप में, 'special_price' आपकी क्वेरी के साथ उपलब्ध नहीं हो सकता है। यह प्रश्न और उत्तर थोड़ा सा विस्तारित करता है: http://stackoverflow.com/questions/12054165/ –

उत्तर

5

इसे समझ लिया। आप श्रेणी से शुरू करते हैं और श्रेणी से उत्पाद संग्रह प्राप्त करते हैं और फिर इसे वहां से परिशोधित करते हैं। कोड में यह इस तरह दिखता है:

$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') 
    ; 
संबंधित मुद्दे