如何更改magento中的产品显示顺序

时间:2011-01-26 05:41:16

标签: magento magento-1.4

如何通过从后端设置一些首选项来更改前端(网格或列表)中的产品显示顺序?我想它应该是默认Magento显示顺序属性中的最佳值和名称。

我尝试创建一个名为display_order的新属性,每个产品都根据产品在前端显示的值保存一个值。但是,它不起作用。请帮我解决这个问题。

3 个答案:

答案 0 :(得分:5)

您需要扩展Mage_Catalog_Block_Product_List块,以便为getProductCollection()方法提供自己的功能。可能有以下几点:

class ... extends Mage_Catalog_Block_Product_List {
    function getProductCollection() {
        parent::getProductCollection()->addAttributeToSort('display_order', 'ASC')
    }
}

然后,当然,您必须在您的(可能是自定义控制器)上更新布局xml文件(除非您希望所有产品列表屏幕都像这样)才能使用新块而不是Magento默认值catalog/product_list

答案 1 :(得分:2)

为什么不使用Magento排序?

在您的类别中,在类别产品下,您可以在最后一列中选择排序顺序。要通过php完成,只需创建一个您需要启动一次的自定义脚本。

$collection = 'Your product collection';
$result = array();
foreach ($collection as $product) {
   $sort = 'Your way of calculating the desired sorting';
   $result[$product->getId()]=$sort;
}
Mage::getModel('catalog/category')->load('your category id')->setPostedProducts($result)->save();

就是这样:))

答案 2 :(得分:-1)

要更改显示顺序,首先需要将默认排序选项设置为position。这可以通过magento admin配置来完成。之后,您需要为从值1开始的所有产品设置位置。 / p>

我遇到了以下模块,只需通过拖放管理类别本身的产品即可轻松完成此任务。请检查以下扩展程序

http://www.blackqubers.com/extensions/product-sorting-drag-and-drop.html

希望这会对你有所帮助