【发布时间】:2012-10-24 09:52:36
【问题描述】:
如何在 Magento 中更改分组产品的 getFinalPrice 行为?我想获得在结果计算中不使用具有特定属性值的子产品的分组产品的最终价格
【问题讨论】:
标签: magento
如何在 Magento 中更改分组产品的 getFinalPrice 行为?我想获得在结果计算中不使用具有特定属性值的子产品的分组产品的最终价格
【问题讨论】:
标签: magento
如果您在未提供数量的情况下对分组产品的价格模型 (Mage_Catalog_Model_Product_Type_Grouped_Price) 调用 getFinalPrice() 方法,getFinalPrice() 将返回之前计算的产品最终价格。即
return $product->getCalculatedFinalPrice();
getCalculatedFinalPrice() 方法本质上只是魔术 getter 的包装......
return $this->_getData('calculated_final_price');
在产品集合类 (Mage_Catalog_Model_Resource_Product_Collection) 中的 _addFinalPrice() 方法中找到相应的 setCalculatedFinalPrice 调用。
当您深入研究该方法的实现时,您会发现它遵循产品自身价格模型中的calculatePrice() 方法。因为Mage_Catalog_Model_Product_Type_Grouped_Price 没有提供此方法的实现,所以使用来自父Mage_Catalog_Model_Product_Type_Price 的版本。本质上,这封装了处理基本价格/空间价格、价格规则等的所有逻辑。
由此得出的结论是,在未指定任何数量、选项等的情况下,对分组产品调用 getFinalPrice() 将返回分组产品本身的价格。
【讨论】: