2013-01-14 34 views
6

द्वारा आदेशित किसी निश्चित श्रेणी में सभी उत्पाद प्राप्त करते हैं, मैं क्रम में सभी category ID से संबंधित सभी उत्पादों को प्राप्त करने का प्रयास कर रहा हूं, जो वे पिछली छोर पर सेट हैं।Magento 'स्थिति' फ़ील्ड

मुझे लगता है कि कोई फायदा नहीं हुआ हर उदाहरण की कोशिश की गई है।

बुनियादी कोड के साथ मैं काम कर रहा हूँ के रूप में इस प्रकार है (बाहरी php फ़ाइल को मैन्युअल रूप से Magento लोड करता है) है:

// Load Magento 
require_once $_SERVER['DOCUMENT_ROOT'] . "/app/Mage.php"; 
umask(0); 
Mage::app(); 
// set Store ID 
$store_id = Mage::app()->getStore()->getStoreId(); 
// set Cat ID 
$cat_id = 345; 


$cat = Mage::getModel('catalog/product')->setId(345); 

$products = Mage::getModel('catalog/product') 
    ->getCollection() 
    ->addCategoryFilter($cat) 
    ->addAttributeToSelect("*") 
    ->setOrder('name','asc') 
    ->load(); 

foreach($products as $p) { 
    var_dump($p->getName()); 
} 

मैं यह कैसे प्राप्त कर सकते हैं?

उत्तर

19

यह वही अंत में काम किया था:

$cat_id = 345; 

$category = Mage::getModel('catalog/category')->load($cat_id); 
$collection = $category->getProductCollection()->addAttributeToSort('position'); 
Mage::getModel('catalog/layer')->prepareProductCollection($collection); 

foreach ($collection as $product) { 
    var_dump($product->getName()); 
} 
+4

यह अभी भी संदर्भ के लिए Magento-1.8 में काम कर रहा है। –

+1

@WilliamIsted के साथ जारी रखने के लिए, यह अभी भी 1.9 में काम कर रहा है। – Leonidas

+0

संदर्भ के लिए, यह ईई 1.13.1 – rramiii

2
$product_position_array = Mage::getModel('catalog/category')->load($CategoryID)->getProductsPosition(); 

यह $product_id = $position की एक सरणी वापस आ जाएगी।

+0

नीचे वोट क्यों? निश्चित रूप से मेरा स्वरूपण बहुत अच्छा नहीं था लेकिन 3 लाइनों से 1 और सही मॉडल का उपयोग करना बेहतर तरीका नहीं है? मुझे लगता है कि मैं अधिक विशिष्ट हो सकता था क्योंकि ओपी स्थिति के क्रम में सरणी चाहता था लेकिन उसे इस बिंदु पर मूल्य से सरणी को क्रमबद्ध करने की आवश्यकता होती है। – theycallmepepper