Magento将所有产品按“位置”字段排序

时间:2013-01-14 12:33:57

标签: php magento magento-1.7

我只是想让所有属于某个category ID的产品按照Position顺序设置在后端。

我似乎已经尝试过每一个可用的例子都无济于事。

我正在使用的基本代码如下(手动加载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());
}

我怎么能实现这个目标?

2 个答案:

答案 0 :(得分: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() );
}

答案 1 :(得分:2)

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

这应该返回一个$product_id = $position的数组。