製品の最低価格と最高価格を見つけて、それを使用して価格フィルターの範囲を設定できるようにする必要があります。Catalog/Model/Layer/Filter/Price.php で getMaxPriceInt() および getMinPriceInt() メソッドを使用しました。ただし、返される値は「min_price」フィールドに基づいています。
final_price に基づいて、コレクション内の製品の最低価格と最高価格を調べるにはどうすればよいですか? コレクションに4つの製品がある場合です(必要なフィールドのみを登録しています)
prodid min_price final_price
3 5200 5900
44 8347 8900
54 4536 5765
12 7436 7500
getmaxpriceint() と getminpriceint() は、それぞれ 8347 と 4536 を返します。
私の結果は、それぞれ 8900 と 5765 になるはずです。それを達成するために Price.php の既存のメソッドを変更することは可能ですか、それとも他の方法はありますか?
製品をループして配列で最終価格を取得し、最適化されたアプローチではないと感じるようにソートしたくありません。また、コレクションの並べ替え順序に影響を与えるため、 setOrder() を使用して最小価格と最大価格を取得したくありません。
一般的に、製品コレクションからフィールドの最大値と最小値を直接取得するための magento での最良の方法を教えてください。