2

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

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

4

3 回答 3

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.

于 2011-01-26T13:19:20.217 回答
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();

就是这样:)

于 2012-11-26T08:16:22.047 回答
-1

要更改显示顺序,首先需要将默认排序方式选项设置为位置。这可以从 magento 管理员配置中完成。之后,您需要为所有从值 1 开始的产品设置位置。

我遇到了以下模块,这将使这项任务变得非常容易,只需从管理类别本身拖放产品即可。请检查以下扩展

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

希望这会帮助你

于 2015-05-04T11:49:52.850 回答