Magento:如何对产品进行最新的排序“无视类别”?

时间:2012-10-22 14:58:46

标签: magento sorting categories

我已经尝试了这个并且部分有效

http://www.dconstructing.com/2011/04/07/sort-magento-catalog-by-date-added/

但是在具有多个类别的网页上,它会将类别排序为第一级,然后才会对每个类别中的产品进行排序。

因此,某个类别中的早期产品会出现在另一个类别的后续产品中。我不希望这样。我想要一个平面排序,只按“位置”(magento术语)排序,无论其类别如何。

我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:1)

此说明适用于我同样的问题产品排序。我使用了第三个Magento Sort by Newest Products Solution

答案 1 :(得分:0)

除了Guerra的答案,在toolbar.phtml中你可以使用:

<?php if($this->getCurrentDirection() == 'desc') : ?>
    <?php $this->addOrderToAvailableOrders('created_at','Newest') ?>
<?php else : ?>
    <?php $this->addOrderToAvailableOrders('created_at','Oldest') ?>
<?php endif; ?>

答案 2 :(得分:0)

第1步:要从Toolbar.php复制文件app/code/core/Mage/Catalog/Block/Product/List/Toolbar.php。在本地创建目录结构并粘贴Toolbar.php,如下所示app/code/local/Mage/Catalog/Block/Product/List/Toolbar.php

第2步:在第232行附近,您应该在setCollection()函数

中看到以下代码
if ($this->getCurrentOrder()) {
  $this->_collection->setOrder($this->getCurrentOrder(), $this->getCurrentDirection());
}

将上述代码替换为下面给出的新代码

if ($this->getCurrentOrder()) {
  if(($this->getCurrentOrder())=='position'){
      $this->_collection->setOrder('entity_id','desc');
  }
  else {
   $this->_collection->setOrder($this->getCurrentOrder(),$this->getCurrentDirection());
  }
}