2011-04-12 88 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(),您可以在其中更新價格。