【问题标题】:How to change the product display order in magento如何在magento中更改产品显示顺序
【发布时间】:2011-01-26 05:41:15
【问题描述】:

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

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

【问题讨论】:

    标签: magento magento-1.4


    【解决方案1】:

    您需要扩展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.

    【讨论】:

    • 嗨,对不起,就在昨天,我还能继续工作。我不能像这样将相同的排序条件添加到生产集合查询中,而不是扩展 product_list。 $this->_productCollection = $layer->getProductCollection()->addAttributeToSelect('product_display_order')->addAttributeToSort('product_display_order', 'ASC');但它不起作用,我想单独在特定类别中应用这种排序。
    【解决方案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();
    

    就是这样:)

    【讨论】:

      【解决方案3】:

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

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

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

      希望对你有帮助

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多