2013-01-14 15 views
6

Sto semplicemente cercando di ottenere tutti i prodotti che appartengono a un certo category ID nell'ordine Position che sono impostati nel back-end.Magento ottiene tutti i prodotti in una determinata categoria ordinata dal campo "Posizione"

Mi sembrava di aver provato ogni esempio disponibile senza risultato.

Il codice di base con cui sto lavorando è la seguente (file php esterno che carica Magento manualmente):

// 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()); 
} 

Come potrei raggiungere questo obiettivo?

risposta

19

questo era quello che alla fine ha funzionato:

$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

Questo funziona ancora in Magento-1.8 come riferimento. –

+1

Per continuare con @WilliamIsted, questo funziona ancora nel 1.9. – Leonidas

+0

Per riferimento, funziona con EE 1.13.1 – rramiii

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

Questo dovrebbe restituire un array di $product_id = $position.

+0

Perché il voto negativo? Certo, la mia formattazione non era eccezionale, ma 3 righe su 1 e l'utilizzo del modello corretto non è un modo migliore per andare? Suppongo che avrei potuto essere più specifico dato che l'OP voleva l'array in ordine di posizione ma che semplicemente richiede l'ordinamento dell'array per valore a questo punto. – theycallmepepper

Problemi correlati