我一直在阅读关于Spree促销活动的几乎所有内容,但我没有找到定义促销新触发器的方法。
我只找到如何定义操作和规则,但没有关于定义事件的内容。我已经知道它使用ActiveSupport :: Notifications但我找不到通过它的方法。
答案 0 :(得分:5)
这有点困难。您需要做的第一件事就是在您的病情发生时开始事件。公共控制器助手中的fire_event将其委托给ActiveSupport :: Notification。
然后你需要装饰Spree :: Promotion来添加一个像code which adds the coupon code activator这样的新激活器。
This code订阅了狂欢。*事件,并将基于激活器触发相应的事件。它在适当的类上调用activate方法,您需要在装饰的促销中覆盖它。 default promotion activate does this,因此您需要扩展该代码,以便在您的活动中执行任何操作。
希望能为你提供一个入门的地方。