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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 67eaf235ef7a480092aac742313cb9f1746a56329e9a406b307768aef24f4422
4
- data.tar.gz: fd2becf059939f163cb8337a0df9ff89a623f219bd1383a28ebd679ac2453d2c
3
+ metadata.gz: e46025d0a5aab1208b854ce5a0828345a15ac721c3126a41a96d56edfc986755
4
+ data.tar.gz: b35e2c1b6bc628aacd9b08536ebdaa172dbd5415c9a69a15c6bd9b32b3c09ba1
5
5
  SHA512:
6
- metadata.gz: dc32f4f9aff29da78361eb4fedca2103c7fe96c6766cd142a9ba0cc83a4a5887404186c23a96ddbb5f2316164d9114d9e267778010624af8333b14bea74aaef8
7
- data.tar.gz: 9167dc1d2b02eb20ede01003a079e40fdafeec9f554547baa0896ce734bd3ea40d0ee6f1e4160fff952090e4ec2b41255fda1c9a3a8bdaf74a4756d519542905
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))
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SolidusMe
4
- VERSION = "3.3.0"
4
+ VERSION = "3.3.1"
5
5
  end
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.0
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: 2024-12-18 00:00:00.000000000 Z
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.5.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: []