1

私はこれを試しましたが、部分的に機能します

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

ただし、複数のカテゴリがあるページでは、カテゴリを第 1 レベルとして並べ替えてから、各カテゴリ内の製品を並べ替えます。

したがって、あるカテゴリーの以前の製品は、別のカテゴリーの後の製品よりも前になります。私はそれをしたくありません。カテゴリに関係なく、「位置」(magento 用語) でのみ並べ替えるフラットな並べ替えが必要です。

どうすればそれを達成できますか?

4

3 に答える 3

1

この指示は、同じ問題の製品の並べ替えで機能します。3番目のMagento Sort by Newest Products Solutionを使用しました

于 2014-04-28T10:04:31.153 に答える
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; ?>
于 2012-10-22T15:27:29.787 に答える
0

手順 1: これを実現するには、Toolbar.phpからファイルをコピーしますapp/code/core/Mage/Catalog/Block/Product/List/Toolbar.phpToolbar.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());
  }
}
于 2014-02-01T09:25:01.893 に答える