Module: Shoppe::Easypost

Defined in:
lib/shoppe/easypost.rb,
lib/shoppe/easypost/engine.rb,
lib/shoppe/easypost/version.rb

Defined Under Namespace

Classes: Engine

Constant Summary collapse

VERSION =
"0.2.0"

Class Method Summary collapse

Class Method Details

.allowed_shipping_optionsObject



27
28
29
30
31
32
33
34
# File 'lib/shoppe/easypost.rb', line 27

def allowed_shipping_options
  option_codes = []
  Shoppe::DeliveryService.all.each do |ds|
    option_codes << ds.code
  end

  option_codes
end

.api_keyObject



11
12
13
# File 'lib/shoppe/easypost.rb', line 11

def api_key
  Shoppe.settings.easypost_api_key
end

.available_options_and_rates(shipment) ⇒ Object



36
37
38
39
40
41
42
43
44
45
# File 'lib/shoppe/easypost.rb', line 36

def available_options_and_rates(shipment)
  available_rates = []
  shipment.rates.each do |rate|
    if self.allowed_shipping_options.include? rate.service
      available_rates << rate
    end
  end

  available_rates
end

.create_shipment(to_address, from_address, parcel) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
# File 'lib/shoppe/easypost.rb', line 15

def create_shipment(to_address, from_address, parcel)
  EasyPost.api_key = self.api_key

  EasyPost::Shipment.create(
    {
      to_address: to_address,
      from_address: from_address,
      parcel: parcel
    }
  )
end

.setupObject



53
54
55
56
# File 'lib/shoppe/easypost.rb', line 53

def setup
  # Setup configuration with API key. Shipping options separated by commas.
  Shoppe.add_settings_group :easypost, [:easypost_api_key, :handling_cost]
end

.shipping_and_handling_costs(rates) ⇒ Object



47
48
49
50
51
# File 'lib/shoppe/easypost.rb', line 47

def shipping_and_handling_costs(rates)
  rates.each do |rate|
    puts rate.rate.to_f + Shoppe.settings.handling_cost.to_f
  end
end