2013-01-14 68 views
6

我只是試圖獲取屬於某個category ID的所有產品,它們在後臺設置爲PositionMagento獲得'位置'字段排序的某個類別中的所有產品

我似乎已經嘗試過所有可用的例子無濟於事。

我的工作的基本代碼如下(即手動加載Magento的外部php文件):

// 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

僅供參考,適用於EE 1.13.1 – rramiii

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

這應返回的$product_id = $position數組。

+0

爲什麼選擇投票?當然,我的格式不是很好,但3行1,並使用正確的模型是不是一個更好的方式去?我想我可能已經更具體了,因爲OP想要按位置順序排列數組,但這隻需要在此處按值對數組進行排序。 – theycallmepepper

相關問題