2011-04-12 91 views
3

我正在写一个Magento扩展,它基于每小时时间表对产品应用一种新的折扣。我希望在所有其他折扣(层级价格,特殊价格等)被应用后,将折扣应用于最终价格。Magento - 哪种类型的价格适用新的折扣?

Product对象的哪个属性拥有这个最终价格?它是getFinalPrice()? getCalculatedFinalPrice()?还有别的吗?

注意:我想到了为我的目的“捎带”目录价格规则,但是我意识到这样做不起作用,因为这些工作按日计划进行,我需要按小时计划。

回答

2

getFinalPrice()是用户在购物车中看到的价格。如果已经在产品型号上明确设置了它,它将返回该值。否则,它返回产品的价格模型方法getFinalPrice()的结果。

价格模型将检查产品是否具有computed_final_price属性集。如果不是,它将应用一级定价,然后特殊定价,然后设置产品的最终价格。然后,它会派发一个活动,让您有机会改变最终价格。最后,它将适用于产品定制选项的任何价格。

做你想做的事情的最好方法可能是挂钩catalog_product_get_final_price事件并根据当时的小时设置产品的最终价格。因此,在您的配置中,为catalog_product_get_final_price事件设置事件处理程序。您的观察员将可以访问$ this-> getProduct()和$ this-> getQty(),您可以在其中更新价格。