Class: Spree::Promotion::Rules::Market

Inherits:
Spree::PromotionRule show all
Defined in:
app/models/spree/promotion/rules/market.rb

Instance Method Summary collapse

Methods inherited from Spree::PromotionRule

#actionable?, additional_permitted_attributes, #eligibility_errors, for, human_description, #human_description, human_name, #human_name, #key

Instance Method Details

#applicable?(promotable) ⇒ Boolean

Returns:



17
18
19
# File 'app/models/spree/promotion/rules/market.rb', line 17

def applicable?(promotable)
  promotable.is_a?(Spree::Order)
end

#eligible?(order, _options = {}) ⇒ Boolean

Returns:



27
28
29
30
31
32
33
# File 'app/models/spree/promotion/rules/market.rb', line 27

def eligible?(order, _options = {})
  return false if preferred_market_ids.empty?
  return true if preferred_market_ids.map(&:to_s).include?(order.market_id.to_s)

  eligibility_errors.add(:base, eligibility_error_message(:no_matching_market))
  false
end

#marketsObject



21
22
23
24
25
# File 'app/models/spree/promotion/rules/market.rb', line 21

def markets
  return Spree::Market.none if preferred_market_ids.blank?

  promotion.store.markets.where(id: preferred_market_ids)
end