1

如何更改 Magento 中分组产品的 getFinalPrice 行为?我想获得在结果计算中不使用具有特定属性值的儿童产品的分组产品的最终价格

4

1 回答 1

1

如果您在未提供数量的情况下getFinalPrice()对分组产品的价格模型 ( ) 调用该方法,将返回先前计算的产品最终价格。IEMage_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()分组产品将返回分组产品本身的价格。

于 2012-10-24T01:52:36.023 回答