2013-01-14 3 views
6

Ich versuche nur alle Produkte, die zu einem bestimmten category ID in der Position Reihenfolge sind sie im Back-End gesetzt werden.Magento bekommen alle Produkte in einer bestimmten Kategorie bestellt durch die 'Position' Feld

Ich schien jedes Beispiel vergeblich versucht zu haben.

Der Basiscode ich arbeite mit ist wie folgt (externe PHP-Datei, die magento lädt manuell):

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

Wie könnte ich das erreichen?

Antwort

19

Das war, was schließlich arbeitete:

$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

Dies funktioniert immer noch in Magento-1.8 als Referenz. –

+1

Um mit @WilliamIsted fortzufahren, funktioniert dies noch in 1.9. – Leonidas

+0

Als Referenz, es funktioniert für EE 1.13.1 – rramiii

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

Dies sollte eine Reihe von $product_id = $position zurückzukehren.

+0

Warum die down vote? Sicher, meine Formatierung war nicht toll, aber 3 Zeilen zu 1 und die Verwendung des richtigen Modells ist kein besserer Weg zu gehen? Ich nehme an, ich hätte genauer sein können, da das OP das Array in der Reihenfolge der Position wollte, aber das erfordert einfach das Sortieren des Arrays nach Wert an diesem Punkt. – theycallmepepper

Verwandte Themen