Magento でグループ化された製品の getFinalPrice の動作を変更するにはどうすればよいですか? 結果計算で特定の属性値を持つ子製品を使用していないグループ化された製品の最終価格を取得したい
1 に答える
数量を指定せずにgetFinalPrice()グループ化された商品の価格モデル ( )でメソッドを呼び出すと、以前に計算された商品の最終価格が返されます。すなわちMage_Catalog_Model_Product_Type_Grouped_PricegetFinalPrice()
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()と、グループ化された製品自体の価格が返されるという結論につながります。