製品を降順でリストする方法は?


18

これ単純に見えましたが、それ以外の場合は証明されています-私は自分の店のすべての製品を高->低からリストしたいだけです

そうするために、私はに行きました:

Configuration -> Catalog -> Product Listing Sort by -> (I Selected) "Price"

さて、これはからすべての製品をソート高いすべての製品のために-しかし、降順、昇順対を選んだ方法があるようには思えません。

私が見落としている管理領域に何かがありますか、これを行うにはファイルを変更する必要がありますか?


説明を正しく理解できた場合は、price列をもう一度クリックして、製品をからに並べ替えてください。
Mr_Green

このスクリプトの使用によってソート貴社の製品を向上させることができますfmeaddons.com/magento/...を

回答:


42

製品リストのデフォルトの注文方向をconfigurationから変更することはできません

あなたはできますが方向を変えるレイアウトXMLから

以下に、レイアウトXMLファイルに含めることができるいくつかの例を示しますlocal.xml

<?xml version="1.0"?>
<layout version="0.1.0">
    <!-- Change default direction for simple searches -->
    <catalogsearch_result_index>
        <reference name="search_result_list">
            <action method="setDefaultDirection"><dir>desc</dir></action>
        </reference>
    </catalogsearch_result_index>

    <!-- Change default direction for advanced searches -->
    <catalogsearch_advanced_result>
        <reference name="search_result_list">
            <action method="setDefaultDirection"><dir>desc</dir></action>
        </reference>
    </catalogsearch_advanced_result>

    <!-- Change default direction for a category without layered navigation -->
    <catalog_category_default>
        <reference name="product_list">
            <action method="setDefaultDirection"><dir>desc</dir></action>
        </reference>
    </catalog_category_default>

    <!-- Change default direction for a category with layered navigation -->
    <catalog_category_layered>
        <reference name="product_list">
            <action method="setDefaultDirection"><dir>desc</dir></action>
        </reference>
    </catalog_category_layered>

    <!-- Change default direction for category with ID 3 -->
    <CATEGORY_3>
        <reference name="product_list">
            <action method="setDefaultDirection"><dir>desc</dir></action>                                   
        </reference>
    </CATEGORY_3>
</layout>

さらに、バックエンドでカテゴリのカスタムデザインとしてレイアウトXMLを追加できます。この設定は、XMLファイルで設定した内容を上書きします。

カスタムデザインXMLを使用してデフォルトの注文方向を設定する


6

質問にはCE 1.7.0.2というタグが付けられていますが、このソリューションは1.9.1.1のユーザーにとっては便利なので、ここに追加します。

価格で並べ替えたときに最も安い製品を最初に表示する必要があるという逆の問題がありました。OPの最初の懸念については、Magento CE 1.9では既にデフォルトで下降しているため、これは適用されません。これは実際には必要ありません。2番目の懸念は、昇順と降順を選択する方法の場合、XMLファイルまたはカスタムレイアウトの更新によって実現できます。後者はほとんどの場合に推奨されるソリューションであり、ほとんどの人はXMLファイルをアップロードして設定を更新するFTPの手間を回避します。

ここではそれがでどのように見えるかだカタログ>カテゴリの管理> カテゴリー >カスタムデザイン>カスタムレイアウトの更新

最も高価ではなく、最も安い製品を最初に表示します コードは次のとおりです。

<reference name="product_list_toolbar">
    <action method="setDefaultDirection"><string>asc</string></action>
    <action method="setDefaultOrder"><string>price</string></action>
</reference>

昇順と降順を選択するには、単にascdescに変更します。

オプションとして、必要な並べ替えに価格を変更することもできます。これを削除して、デフォルトとして設定されている[商品リストの並べ替え]オプションでデフォルトでascになるようにすることができます。


3

上記のソリューションはCE 1.8との違いをもたらさないようでしたので、code / local /.../ Catalog / Model / Category.phpのカタログモデル機能をオーバーライドすることでこの問題を解決する必要がありました。

/**
 * Override category products collection
 * to sort by price descending
 *
 * @return Varien_Data_Collection_Db
 */
public function getProductCollection()
{  
    $collection = parent::getProductCollection()->setOrder('price', 'DESC');
    return $collection;
}

お役に立てれば。:-)


こんにちは、toolbar.phtmlファイルで現在の並べ替え順序を変更できますか?
ジョーディS Chemparathy

私の場合、1つのカテゴリが新しい製品を最初に示しています。
ジョーディS Chemparathy

3

CE 1.8では、次のxmlが機能しました。

<layout>
    <catalog_category_default>
      <reference name="product_list_toolbar">
          <action method="setDefaultDirection"><string>asc</string></action>
          <action method="setDefaultOrder"><string>price</string></action>
      </reference>
    </catalog_category_default>

    <catalog_category_layered>
      <reference name="product_list_toolbar">
        <action method="setDefaultDirection"><string>asc</string></action>
        <action method="setDefaultOrder"><string>price</string></action>
      </reference>
    </catalog_category_layered>

    <catalogsearch_result_index>
      <reference name="search_result_list">
        <action method="setDefaultDirection"><string>asc</string></action>
        <action method="setDefaultOrder"><string>price</string></action>
      </reference>
    </catalogsearch_result_index>
    <catalogsearch_advanced_result>
      <reference name="search_result_list">
        <action method="setDefaultDirection"><string>asc</string></action>
        <action method="setDefaultOrder"><string>price</string></action>
      </reference>
    </catalogsearch_advanced_result>
</layout>

Magento 1.8(コミュニティ)では、上記の両方のソリューションが機能しなかったため、投稿したいと思いました。

'setDefaultOrder'は、私が思うに任意の属性コードを取ることができ、adminからデフォルトを使用したいだけなら必要ありません。

それが誰かに役立つことを願っています。


1

/ app / code / core / Mage / Catalog / Model / pathに移動し、以下のコードをProduct.phpに追加します

public function getRelatedProductCollection()
    {
$collection = $this->getLinkInstance()->useRelatedLinks()
        ->getProductCollection()
        ->setIsStrongMode();
    $collection->setProduct($this);
    $collection->setOrder('price', 'DESC');
    return $collection;
    }

これは重量にも使用できます。「価格」の代わりに「重量」と書くだけです。昇順の場合は、「DESC」の代わりに「ASC」と書くだけです。


コアファイルを変更しないでください。
-func0der
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.