solidus_me 3.3.0 → 3.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/models/solidus_me/melhor_envio.rb +17 -2
- data/lib/solidus_me/version.rb +1 -1
- metadata +3 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e46025d0a5aab1208b854ce5a0828345a15ac721c3126a41a96d56edfc986755
|
4
|
+
data.tar.gz: b35e2c1b6bc628aacd9b08536ebdaa172dbd5415c9a69a15c6bd9b32b3c09ba1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3b4ee31476a4f747512710d2955510373f0fb8f1592e86ed8510e431de2864d6f7b9d782c4589c8a6835b881dac1e2e2b5869d69ab209f8ab8c077e9970b6dd3
|
7
|
+
data.tar.gz: a57db90a61011078e17f7e1f6934de475fab5c7ee321b6b790eb3afad0b6c03c47e2ae9542927ebadf58c7541814295b304c49fe171cb3412bc75102ef9a1182
|
@@ -40,7 +40,6 @@ module SolidusMe
|
|
40
40
|
|
41
41
|
@me_account.check_token
|
42
42
|
@me_client = MeApi::Client.new(@me_account.access_token)
|
43
|
-
|
44
43
|
melhor_envio_rates = get_rates_from_melhor_envio(package)
|
45
44
|
shipping_rates = melhor_envio_rates.map do |melhor_envio_rate|
|
46
45
|
build_shipping_rate(melhor_envio_rate, package)
|
@@ -54,14 +53,17 @@ module SolidusMe
|
|
54
53
|
def get_rates_from_melhor_envio(package)
|
55
54
|
price = package.contents.map { |content| content.price }.sum
|
56
55
|
weight = package.weight
|
56
|
+
dimensions = estimate_dimensions_from_package(package)
|
57
57
|
|
58
58
|
zipcode = package.order.ship_address.zipcode
|
59
59
|
available_shipping_method_codes = @shipping_methods.pluck(:code)
|
60
|
-
|
61
60
|
rates = @me_client.rates(
|
62
61
|
from: @me_account.postal_code_from,
|
63
62
|
to: zipcode,
|
64
63
|
weight_kg: (weight / 1000.00),
|
64
|
+
width_cm: dimensions[0].to_i.round(2),
|
65
|
+
height_cm: dimensions[1].to_i.round(2),
|
66
|
+
length_cm: dimensions[2].to_i.round(2),
|
65
67
|
contents_value_brl: price
|
66
68
|
)
|
67
69
|
rates.select { |rate| rate.price > 0 && available_shipping_method_codes.include?(self.class.generate_code(rate.id)) }
|
@@ -69,6 +71,19 @@ module SolidusMe
|
|
69
71
|
[]
|
70
72
|
end
|
71
73
|
|
74
|
+
def estimate_dimensions_from_package(package)
|
75
|
+
volume = package.contents.sum { |item| dimensions_from_item(item).reduce(:*) }
|
76
|
+
cube_side = Math.cbrt(volume)
|
77
|
+
[cube_side, cube_side, cube_side]
|
78
|
+
end
|
79
|
+
|
80
|
+
def dimensions_from_item(item)
|
81
|
+
width = item.variant.width || 20
|
82
|
+
height = item.variant.height || 10
|
83
|
+
depth = item.variant.depth || 10
|
84
|
+
[width, height, depth]
|
85
|
+
end
|
86
|
+
|
72
87
|
def build_shipping_rate(melhor_envio_rate, package)
|
73
88
|
return unless melhor_envio_rate.max_delivery_time
|
74
89
|
shipping_method = Spree::ShippingMethod.find_by(code: self.class.generate_code(melhor_envio_rate.id))
|
data/lib/solidus_me/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solidus_me
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.3.
|
4
|
+
version: 3.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hamilton Tumenas Borges
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 2025-07-11 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: me_api
|
@@ -81,7 +80,6 @@ homepage: https://github.com/ulysses-bull/solidus_me#readme
|
|
81
80
|
licenses:
|
82
81
|
- BSD-3-Clause
|
83
82
|
metadata: {}
|
84
|
-
post_install_message:
|
85
83
|
rdoc_options: []
|
86
84
|
require_paths:
|
87
85
|
- lib
|
@@ -96,8 +94,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
96
94
|
- !ruby/object:Gem::Version
|
97
95
|
version: '0'
|
98
96
|
requirements: []
|
99
|
-
rubygems_version: 3.
|
100
|
-
signing_key:
|
97
|
+
rubygems_version: 3.6.2
|
101
98
|
specification_version: 4
|
102
99
|
summary: Gem para integração com a API do Melhor Envio
|
103
100
|
test_files: []
|