2013-12-19 69 views
0

我一直在閱讀有關Spree促銷的幾乎所有內容,但我沒有找到爲促銷定義新觸發器的方法。如何爲狂歡節促銷定義新活動?

我只找到如何定義動作和規則,但沒有定義事件。我已經知道它使用ActiveSupport :: Notifications,但我無法找到解決方法。

promotion event trigger select

回答

5

這是一個有點艱難的一個。您需要做的第一件事是在您的情況發生時觸發事件。 fire_event在通用控制器幫助程序中將其委託給ActiveSupport :: Notification。

然後,您需要修飾Spree :: Promotion來添加一個像這樣的新激活器code which adds the coupon code activator

This code訂閱了spree。*事件並將基於激活器觸發適當的事件。它會調用適當類的activate方法,您需要在裝飾性促銷中重寫該方法。 default promotion activate does this,所以您需要擴展該代碼,以便在事件中執行任何您想要的操作。

希望能讓你有個開始的地方。

+0

很酷,想知道如何做到這一點,儘管我沒有急需,你永遠不知道。 –

+0

我現在就試試這個,謝謝@gmacdougall – aanfuso

+0

它工作完美,比我想象的簡單。謝謝! – aanfuso