Sha256: aad7f316913b149f5cf37ec818a61b1112d8bc4e880de9aa98db25d328f45244

Contents?: true

Size: 906 Bytes

Versions: 12

Compression:

Stored size: 906 Bytes

Contents

# frozen_string_literal: true

module Spree
  class Calculator
    module Shipping
      class FlowIo < ShippingCalculator
        preference :lower_boundary, :decimal, default: 100
        preference :charge_default, :decimal, default: 15

        def self.description
          'FlowIO Calculator'
        end

        def compute_package(package)
          flow_order = flow_order(package)
          return unless flow_order

          flow_order['prices'].find { |x| x['key'] == 'shipping' }['amount'] || 0
        end

        def default_charge(_country)
          preferred_charge_default
        end

        def threshold
          preferred_lower_boundary
        end

        private

        def flow_order(package)
          return @flow_order if defined?(@flow_order)

          @flow_order = package.order.flow_data&.[]('order')
          @flow_order
        end
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
flowcommerce_spree-0.0.16 app/models/spree/calculator/shipping/flow_io.rb
flowcommerce_spree-0.0.15 app/models/spree/calculator/shipping/flow_io.rb
flowcommerce_spree-0.0.14 app/models/spree/calculator/shipping/flow_io.rb
flowcommerce_spree-0.0.13 app/models/spree/calculator/shipping/flow_io.rb
flowcommerce_spree-0.0.12 app/models/spree/calculator/shipping/flow_io.rb
flowcommerce_spree-0.0.11 app/models/spree/calculator/shipping/flow_io.rb
flowcommerce_spree-0.0.10 app/models/spree/calculator/shipping/flow_io.rb
flowcommerce_spree-0.0.9 app/models/spree/calculator/shipping/flow_io.rb
flowcommerce_spree-0.0.8 app/models/spree/calculator/shipping/flow_io.rb
flowcommerce_spree-0.0.7 app/models/spree/calculator/shipping/flow_io.rb
flowcommerce_spree-0.0.6 app/models/spree/calculator/shipping/flow_io.rb
flowcommerce_spree-0.0.5 app/models/spree/calculator/shipping/flow_io.rb