我正在写一个Magento扩展,它基于每小时的时间表对产品应用一种新的折扣。我希望折扣在所有其他折扣(层次价、特价等)都应用后适用于最终价格。
产品对象的哪个属性持有这个最终价格?是getFinalPrice()吗?getCalculatedFinalPrice()?还有别的吗?
注:我想“背负”目录价格规则为我的目的,但我意识到这不会工作,因为这些工作在一个每天的时间表,我需要安排每小时。

最佳答案

getFinalPrice()是用户在购物车中看到的价格。如果在产品模型上显式设置了此值,则它将返回该值。否则返回产品价格模型方法getFinalPrice()的结果。
价格模型将检查产品是否设置了计算的最终价格属性。如果没有,它将采用分层定价,然后特殊定价,然后设置产品的最终价格。然后它会派遣一个活动,给你一个机会改变最终价格。最后,它将对产品的自定义选项应用任何价格。
做你想做的事情的最好方法可能是加入产品目录获取最终价格事件,并根据当时的时间设置产品的最终价格。因此,在您的配置中,为catalog_product_get_final_price事件设置一个事件处理程序。您的观察者可以访问$this->getProduct()和$this->getQty(),在这里您可以更新价格。

09-26 22:45
查看更多