【问题标题】:Grouped product getFinalPrice behavior in MagentoMagento 中的分组产品 getFinalPrice 行为
【发布时间】:2012-10-24 09:52:36
【问题描述】:

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

【问题讨论】:

    标签: magento


    【解决方案1】:

    如果您在未提供数量的情况下对分组产品的价格模型 (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() 将返回分组产品本身的价格。

    【讨论】:

    • 在没有数量或选项传递给 getFinalPrice() 的情况下,是否考虑目录价格或购物车规则?
    • 看起来确实如此。我还没有真正尝试过确认,但似乎支持特价、等级价格和目录规则。当您只是想为未选择任何选项的分组产品定价时,购物车规则可能不适用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-13
    • 1970-01-01
    • 1970-01-01
    • 2017-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多