如何在Magento中更改分组产品的getFinalPrice行为?我想得到分组产品的最终价格,该产品不使用在结果计算中具有特定属性值的儿童产品
答案 0 :(得分: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()
将返回分组产品本身的价格。