Sha256: b112e935220d9f49dbd561935061aaab76a9ef0fb224da0fdb0c9fdcac3c8fbb

Contents?: true

Size: 766 Bytes

Versions: 89

Compression:

Stored size: 766 Bytes

Contents

module Spree
  module PromotionHandler
    # Used for activating promotions with shipping rules
    class FreeShipping
      attr_reader :order, :order_promo_ids
      attr_accessor :error, :success

      def initialize(order)
        @order = order
        @order_promo_ids = order.promotions.pluck(:id)
      end

      def activate
        promotions.each do |promotion|
          next if promotion.code.present? && !order_promo_ids.include?(promotion.id)

          promotion.activate(order: order) if promotion.eligible?(order)
        end
      end

      private

      def promotions
        Spree::Promotion.active.where(
          id: Spree::Promotion::Actions::FreeShipping.pluck(:promotion_id),
          path: nil
        )
      end
    end
  end
end

Version data entries

89 entries across 89 versions & 1 rubygems

Version Path
spree_core-4.0.9 app/models/spree/promotion_handler/free_shipping.rb
spree_core-4.1.15 app/models/spree/promotion_handler/free_shipping.rb
spree_core-4.2.7 app/models/spree/promotion_handler/free_shipping.rb
spree_core-4.2.6 app/models/spree/promotion_handler/free_shipping.rb
spree_core-4.2.5 app/models/spree/promotion_handler/free_shipping.rb
spree_core-4.1.14 app/models/spree/promotion_handler/free_shipping.rb
spree_core-4.0.8 app/models/spree/promotion_handler/free_shipping.rb
spree_core-4.2.4 app/models/spree/promotion_handler/free_shipping.rb
spree_core-3.7.14.1 app/models/spree/promotion_handler/free_shipping.rb
spree_core-4.2.3.1 app/models/spree/promotion_handler/free_shipping.rb
spree_core-4.1.13.1 app/models/spree/promotion_handler/free_shipping.rb
spree_core-4.0.7.1 app/models/spree/promotion_handler/free_shipping.rb
spree_core-4.2.3 app/models/spree/promotion_handler/free_shipping.rb
spree_core-4.2.2 app/models/spree/promotion_handler/free_shipping.rb
spree_core-4.2.1 app/models/spree/promotion_handler/free_shipping.rb
spree_core-4.0.7 app/models/spree/promotion_handler/free_shipping.rb
spree_core-3.7.14 app/models/spree/promotion_handler/free_shipping.rb
spree_core-4.2.0 app/models/spree/promotion_handler/free_shipping.rb
spree_core-4.2.0.rc5 app/models/spree/promotion_handler/free_shipping.rb
spree_core-4.2.0.rc4 app/models/spree/promotion_handler/free_shipping.rb