Sha256: 83c7298dee14ab6a838d477bb30699591cd940fafb7df093cf365f0647deed67

Contents?: true

Size: 511 Bytes

Versions: 6

Compression:

Stored size: 511 Bytes

Contents

module Spree
  class Promotion
    module Rules
      class FirstOrder < PromotionRule
        def eligible?(order, options = {})
          user = order.try(:user) || options[:user]
          if user
            return orders_by_email(user.email) == 0
          elsif order.email
            return orders_by_email(order.email) == 0
          end

          return false
        end

        def orders_by_email(email)
          Spree::Order.where(:email => email).count
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
spree_promo-1.2.4 app/models/spree/promotion/rules/first_order.rb
spree_promo-1.3.2 app/models/spree/promotion/rules/first_order.rb
spree_promo-1.2.3 app/models/spree/promotion/rules/first_order.rb
spree_promo-1.3.1 app/models/spree/promotion/rules/first_order.rb
spree_promo-1.3.0 app/models/spree/promotion/rules/first_order.rb
spree_promo-1.3.0.rc2 app/models/spree/promotion/rules/first_order.rb