Magento - 按位置和名称排序?

时间:2010-11-12 17:05:35

标签: magento

是否可以按A排序,然后按字母顺序显示B这些产品。

我有新产品和销售产品进入一个类别,他们首先显示所有新产品和所有销售产品。

但我需要按名称排序。

4 个答案:

答案 0 :(得分:14)

在管理员

转到管理类别,选择类别,然后在其产品标签上为每个人提供一个位置编号。它们将按照该顺序排序。

<强>编程

您可以通过为每个订单调用产品集合的addAttributeToSort方法来执行此操作。

例如,无论您在模板中看到$_category->getProductCollection()还是$_product->getCollection(),都可以在其后立即添加->addAttributeToSort('position')->addAttributeToSort('name')

addAttributeToSort()也会将方向作为第二个参数,因此您可以addAttributeToSort('name', 'asc')addAttributeToSort('name', 'desc')

答案 1 :(得分:3)

在不更改任何核心文件的情况下,最好的方法是复制位于以下位置的Toolbar.php文件:

/app/code/core/Mage/Catalog/Block/Product/List/Toolbar.php

然后在:

下创建一个新的目录路径(如果你还没有创建一个)
/app/code/local/Mage/Catalog/Block/Product/List/Toolbar.php

现在从第232行替换以下内容:

    if ($this->getCurrentOrder()) {
        $this->_collection->setOrder($this->getCurrentOrder(), $this->getCurrentDirection());
    }

if ($this->getCurrentOrder()) {
if(($this->getCurrentOrder())=='position'){ //defines the sort option
//sort by position (ascending) and entity_id (descending)
$this->_collection->addAttributeToSort('position','asc')->addAttributeToSort('entity_id','desc');
} else {
$this->_collection->setOrder($this->getCurrentOrder(),$this->getCurrentDirection());
}
}

最后,重新索引并刷新Magento后端的缓存并准备就绪。如果您需要定义多个排序选项,请复制并粘贴下面的代码} else {

if(($this->getCurrentOrder())=='######'){ //defines the sort option
//sort by ###### (ascending) and ###### (descending)
$this->_collection->addAttributeToSort('######','asc')->addAttributeToSort('######','desc');

答案 2 :(得分:0)

您可以从管理员端进行编码,而不是编码。登录您的管理员 转到系统---&gt;配置,然后从左侧选项卡中选择目录

然后点击右侧的 Fronend 标签。转到产品Lisiting按排序,然后从下拉列表中选择 Name 并保存配置。

使分类相对容易。在magento市场有一个扩展。此扩展程序将帮助您根据我们的愿望将产品拖放到该位置。我提供了下面的扩展链接

http://www.magentocommerce.com/magento-connect/product-sorting-sequence-drag-and-drop.html

答案 3 :(得分:0)

回应clockworkgeek,

产品可以具有多个属性。为每个产品分配一个位置时,它与1个属性相关。此外,您需要确定每种产品的位置。

此处的问题是,产品详情页面上的下拉列表为您提供了选择多个属性之一的机会。例如:

尺寸:S,M,L,XL

当你选择一个属性时,默认是按字母顺序排列那个没有意义的属性(L,M,S,XL)。相反,我想使用属性选项(s = 1,m = 2,l = 3,xl = 4)的相同位置进行排序。

我的印象是,通过在Magento集合中执行连接和排序,可以实现这一点。你知道如何获得这些价值观或者做那样的排序吗?