Magento でグループ化された製品の getFinalPrice の動作を変更するにはどうすればよいですか? 結果計算で特定の属性値を持つ子製品を使用していないグループ化された製品の最終価格を取得したい
1 に答える
数量を指定せずにgetFinalPrice()
グループ化された商品の価格モデル ( )でメソッドを呼び出すと、以前に計算された商品の最終価格が返されます。すなわちMage_Catalog_Model_Product_Type_Grouped_Price
getFinalPrice()
return $product->getCalculatedFinalPrice();
メソッドは基本的に、魔法のゲッターのgetCalculatedFinalPrice()
単なるラッパーです....
return $this->_getData('calculated_final_price');
対応するsetCalculatedFinalPrice
呼び出しは、メソッド内の製品コレクション クラス ( Mage_Catalog_Model_Resource_Product_Collection
) にあり_addFinalPrice()
ます。
メソッドの実装を掘り下げるとcalculatePrice()
、製品独自の価格モデルのメソッドに従っていることがわかります。Mage_Catalog_Model_Product_Type_Grouped_Price
はこのメソッドの実装を提供しないため、親のバージョンがMage_Catalog_Model_Product_Type_Price
使用されます。基本的に、これは基本価格/空間価格、価格ルールなどを処理するためのすべてのロジックをカプセル化します。
これは、数量、オプションなどが指定されていない場合、グループ化された製品を呼び出すgetFinalPrice()
と、グループ化された製品自体の価格が返されるという結論につながります。