Class: Spree::PromotionRule
Overview
Base class for all promotion rules
Direct Known Subclasses
Spree::Promotion::Rules::FirstOrder, Spree::Promotion::Rules::FirstRepeatPurchaseSince, Spree::Promotion::Rules::ItemTotal, Spree::Promotion::Rules::MinimumQuantity, Spree::Promotion::Rules::NthOrder, Spree::Promotion::Rules::OneUsePerUser, Spree::Promotion::Rules::OptionValue, Spree::Promotion::Rules::Product, Spree::Promotion::Rules::Store, Spree::Promotion::Rules::Taxon, Spree::Promotion::Rules::User, Spree::Promotion::Rules::UserLoggedIn, Spree::Promotion::Rules::UserRole
Instance Method Summary
collapse
Methods inherited from Base
display_includes
#generate_permalink, #save_permalink
Instance Method Details
#actionable?(_line_item) ⇒ Boolean
This states if a promotion can be applied to the specified line item It is true by default, but can be overridden by promotion rules to provide conditions
31
32
33
|
# File 'app/models/spree/promotion_rule.rb', line 31
def actionable?(_line_item)
true
end
|
#applicable?(_promotable) ⇒ Boolean
21
22
23
|
# File 'app/models/spree/promotion_rule.rb', line 21
def applicable?(_promotable)
raise NotImplementedError, "applicable? should be implemented in a sub-class of Spree::PromotionRule"
end
|
#eligibility_errors ⇒ Object
35
36
37
|
# File 'app/models/spree/promotion_rule.rb', line 35
def eligibility_errors
@eligibility_errors ||= ActiveModel::Errors.new(self)
end
|
#eligible?(_promotable, _options = {}) ⇒ Boolean
25
26
27
|
# File 'app/models/spree/promotion_rule.rb', line 25
def eligible?(_promotable, _options = {})
raise NotImplementedError, "eligible? should be implemented in a sub-class of Spree::PromotionRule"
end
|
#preload_relations ⇒ Object
17
18
19
|
# File 'app/models/spree/promotion_rule.rb', line 17
def preload_relations
[]
end
|
#to_partial_path ⇒ Object
39
40
41
|
# File 'app/models/spree/promotion_rule.rb', line 39
def to_partial_path
"spree/admin/promotions/rules/#{model_name.element}"
end
|