valken-shipping 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3a7479a62094f25d2a3bed078783fa64e87d1df2589126a5428139389d16a584
|
4
|
+
data.tar.gz: 62dbd43d9ecc4df5474ef1dd9a3e544885c72704f10c5d4611ed526ac1a5ebf7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2d6e57218303abfe50301f1c1d4d000f890af7f15293ed93c6ec735e16f57682c2a2b80a4d46eff1218d69f7632bc1782d7d7585faa566da097592be761c411f
|
7
|
+
data.tar.gz: bb00c7c168791983e2ab1d557de2d296b37a32bf5edf6ca0cfa5d8ca9ff5b78bbaf80a0fabdb51646af1a6d612d4209c215694863628735408003c689f4153f2
|
@@ -13,8 +13,11 @@ module Workarea
|
|
13
13
|
|
14
14
|
def shipping_option
|
15
15
|
carrier_data = collect_carrier_data(selected_carrier)
|
16
|
-
|
17
|
-
|
16
|
+
if Workarea.config.gateways.ups_carrier.class != ActiveShipping::Workarea
|
17
|
+
carrier_data.push(get_ltl_shipping)
|
18
|
+
carrier_data.push(get_free_shipping)
|
19
|
+
end
|
20
|
+
carrier_data
|
18
21
|
end
|
19
22
|
|
20
23
|
def selected_carrier
|
@@ -34,16 +37,17 @@ module Workarea
|
|
34
37
|
end
|
35
38
|
|
36
39
|
def get_ups_data
|
37
|
-
ups_options = get_options(
|
40
|
+
ups_options = get_options(Workarea.config.gateways.ups_carrier, Workarea.config.ups_options)
|
38
41
|
end
|
39
42
|
|
40
43
|
def get_fedex_data
|
41
|
-
fedex_response = get_options(
|
44
|
+
fedex_response = get_options(Workarea.config.gateways.fedex_carrier, Workarea.config.fedex_options)
|
42
45
|
end
|
43
46
|
|
44
47
|
def get_none_data
|
45
48
|
ups = get_ups_data.first
|
46
49
|
fedex = get_fedex_data.first
|
50
|
+
return [] unless ups || fedex
|
47
51
|
if ups.price > fedex.price
|
48
52
|
return get_fedex_data
|
49
53
|
else
|
@@ -108,13 +112,19 @@ module Workarea
|
|
108
112
|
packaging.packages
|
109
113
|
)
|
110
114
|
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
+
if carrier.class == ActiveShipping::Workarea
|
116
|
+
response.rates.sort_by(&:price).map do |rate|
|
117
|
+
ShippingOption.from_rate_estimate(rate)
|
118
|
+
end
|
119
|
+
else
|
120
|
+
filtered_options = []
|
121
|
+
response.rates.sort_by(&:price).each do |rate|
|
122
|
+
if service_code[rate.service_code].present?
|
123
|
+
filtered_options.push(create_shipping_options(rate, service_code))
|
124
|
+
end
|
115
125
|
end
|
126
|
+
filtered_options
|
116
127
|
end
|
117
|
-
filtered_options
|
118
128
|
end
|
119
129
|
|
120
130
|
def create_shipping_options(rate, service_code)
|
@@ -10,7 +10,21 @@ module Workarea
|
|
10
10
|
def find_sku_weight(sku)
|
11
11
|
sku_data = Catalog::Product.find_by_sku(sku).variants
|
12
12
|
sku = sku_data.detect {|variant| variant.sku == sku }
|
13
|
-
sku
|
13
|
+
if is_pounds(sku)
|
14
|
+
convert_to_lb(sku.weight || 0)
|
15
|
+
else
|
16
|
+
sku.weight || 0
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def convert_to_lb(weight)
|
21
|
+
unit = Measured::Weight.new(weight, :lb)
|
22
|
+
unit.convert_to(:oz)
|
23
|
+
unit.value
|
24
|
+
end
|
25
|
+
|
26
|
+
def is_pounds(sku)
|
27
|
+
sku.weight_unit == "lb"
|
14
28
|
end
|
15
29
|
end
|
16
30
|
end
|
@@ -1,6 +1,9 @@
|
|
1
|
-
Workarea.configure do |config|
|
1
|
+
Workarea.configure do |config|
|
2
|
+
ActiveShipping::Carriers.register :UPS, 'active_shipping/carriers/ups'
|
3
|
+
|
2
4
|
config.weight_table = {"2": 5, "15": 15, "200": 1, "2500": 200}
|
3
5
|
|
4
6
|
config.ups_options = {"01"=> "3 Day", "03"=> "Overnight", "02"=> "2 Day"}
|
5
7
|
config.fedex_options = {"STANDARD_OVERNIGHT"=> "Overnight", "FEDEX_2_DAY"=> "2 Day", "GROUND_HOME_DELIVERY"=> "3 Day"}
|
6
8
|
end
|
9
|
+
Valken::Shipping.auto_initialize_gateway
|
data/lib/valken/shipping.rb
CHANGED
@@ -1,7 +1,42 @@
|
|
1
|
+
require 'workarea'
|
2
|
+
require 'workarea/storefront'
|
3
|
+
require 'workarea/admin'
|
1
4
|
require "valken/shipping/engine"
|
2
5
|
|
3
6
|
module Valken
|
4
7
|
module Shipping
|
5
|
-
|
8
|
+
|
9
|
+
def self.ups_credentials
|
10
|
+
return {} unless Rails.application.secrets.ups_carrier.present?
|
11
|
+
Rails.application.secrets.ups_carrier.symbolize_keys
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.fedex_credentials
|
15
|
+
return {} unless Rails.application.secrets.fedex_carrier.present?
|
16
|
+
Rails.application.secrets.fedex_carrier.symbolize_keys
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.ups_gateway=(gateway)
|
20
|
+
Workarea.config.gateways.ups_carrier = gateway
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.fedex_gateway=(gateway)
|
24
|
+
Workarea.config.gateways.fedex_carrier = gateway
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.auto_initialize_gateway
|
28
|
+
if ups_credentials.present? && fedex_credentials.present?
|
29
|
+
if Rails.env.test?
|
30
|
+
self.ups_gateway = ActiveShipping::Workarea.new
|
31
|
+
self.fedex_gateway = ActiveShipping::Workarea.new
|
32
|
+
else
|
33
|
+
self.ups_gateway = ActiveShipping::UPS.new ups_credentials
|
34
|
+
self.fedex_gateway = ActiveShipping::FedEx.new fedex_credentials
|
35
|
+
end
|
36
|
+
else
|
37
|
+
self.ups_gateway = ActiveShipping::Workarea.new
|
38
|
+
self.fedex_gateway = ActiveShipping::Workarea.new
|
39
|
+
end
|
40
|
+
end
|
6
41
|
end
|
7
|
-
end
|
42
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: valken-shipping
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- sushmitha02
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-07-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|