solidus_shipstation 1.0.0 → 1.1.0
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/.rubocop.yml +1 -0
- data/CHANGELOG.md +15 -8
- data/app/controllers/spree/shipstation_controller.rb +2 -1
- data/lib/generators/solidus_shipstation/install/templates/initializer.rb +5 -0
- data/lib/solidus_shipstation/api/batch_syncer.rb +2 -0
- data/lib/solidus_shipstation/api/shipment_serializer.rb +10 -9
- data/lib/solidus_shipstation/configuration.rb +3 -0
- data/lib/solidus_shipstation/version.rb +1 -1
- data/solidus_shipstation.gemspec +2 -3
- data/spec/lib/solidus_shipstation/api/client_spec.rb +1 -1
- data/spec/lib/solidus_shipstation/api/shipment_serializer_spec.rb +13 -0
- metadata +6 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a9158fe6f42218427d250e4a5283b0760d0dc486fa3f128861b03ace6f2fd5a5
|
4
|
+
data.tar.gz: 05f08c3a8854d31590ffd945c0096534ce689c94b544015733b46624b4c87d74
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ddda2973c4dc3f11b7dc242f0fa5dcc4818dcdee6d9ec78c062e2a8a2295e0212e2bfb24de4199e6d6eef44401838041320ce81b71029c0ad177b652d0d63fba
|
7
|
+
data.tar.gz: a1ede00a82aedc12f3242857f1c159b8c2e935ad869131890d384b4e817ea2630e1b134792d26fb44a94b3d4d8e62cadc4258d6cbaebd6abf0096784a808395d
|
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,15 +1,22 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
-
## [v1.
|
3
|
+
## [v1.1.0](https://github.com/solidusio-contrib/solidus_shipstation/tree/v1.1.0) (2021-10-26)
|
4
4
|
|
5
|
-
[Full Changelog](https://github.com/solidusio-contrib/solidus_shipstation/compare/
|
5
|
+
[Full Changelog](https://github.com/solidusio-contrib/solidus_shipstation/compare/v1.0.0...v1.1.0)
|
6
6
|
|
7
|
-
**
|
7
|
+
**Implemented enhancements:**
|
8
8
|
|
9
|
-
-
|
9
|
+
- Add support to ruby 3 [\#21](https://github.com/solidusio-contrib/solidus_shipstation/pull/21) ([stefano-sarioli](https://github.com/stefano-sarioli))
|
10
|
+
|
11
|
+
**Fixed bugs:**
|
12
|
+
|
13
|
+
- Handle orders without a billing address [\#20](https://github.com/solidusio-contrib/solidus_shipstation/pull/20) ([aldesantis](https://github.com/aldesantis))
|
10
14
|
|
11
15
|
**Merged pull requests:**
|
12
16
|
|
17
|
+
- Fix Ruby version requirement [\#22](https://github.com/solidusio-contrib/solidus_shipstation/pull/22) ([stefano-sarioli](https://github.com/stefano-sarioli))
|
18
|
+
- Allow ShipmentNotice class to be customized [\#17](https://github.com/solidusio-contrib/solidus_shipstation/pull/17) ([cesartalves](https://github.com/cesartalves))
|
19
|
+
- Address: infer residential attribute from company [\#16](https://github.com/solidusio-contrib/solidus_shipstation/pull/16) ([nerfologist](https://github.com/nerfologist))
|
13
20
|
- Fix pending API sync query returning synced shipments [\#15](https://github.com/solidusio-contrib/solidus_shipstation/pull/15) ([aldesantis](https://github.com/aldesantis))
|
14
21
|
- Swallow errors in `Api::SyncShipmentsJob` [\#14](https://github.com/solidusio-contrib/solidus_shipstation/pull/14) ([aldesantis](https://github.com/aldesantis))
|
15
22
|
- API sync improvements [\#13](https://github.com/solidusio-contrib/solidus_shipstation/pull/13) ([aldesantis](https://github.com/aldesantis))
|
@@ -23,13 +30,13 @@
|
|
23
30
|
- Fix installer [\#2](https://github.com/solidusio-contrib/solidus_shipstation/pull/2) ([kennyadsl](https://github.com/kennyadsl))
|
24
31
|
- Make extension compatible with latest Solidus [\#1](https://github.com/solidusio-contrib/solidus_shipstation/pull/1) ([aldesantis](https://github.com/aldesantis))
|
25
32
|
|
26
|
-
## [
|
33
|
+
## [v1.0.0](https://github.com/solidusio-contrib/solidus_shipstation/tree/v1.0.0) (2021-05-26)
|
27
34
|
|
28
|
-
[Full Changelog](https://github.com/solidusio-contrib/solidus_shipstation/compare/v1.
|
35
|
+
[Full Changelog](https://github.com/solidusio-contrib/solidus_shipstation/compare/077ee0bcdf9faf66121faa4387ec645122892c98...v1.0.0)
|
29
36
|
|
30
|
-
|
37
|
+
**Closed issues:**
|
31
38
|
|
32
|
-
[
|
39
|
+
- Prepare Solidus Shipstation for Solidus 3.0 [\#6](https://github.com/solidusio-contrib/solidus_shipstation/issues/6)
|
33
40
|
|
34
41
|
|
35
42
|
|
@@ -21,7 +21,8 @@ module Spree
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def shipnotify
|
24
|
-
SolidusShipstation
|
24
|
+
shipment_notice_class = SolidusShipstation.configuration.shipment_notice_class.constantize
|
25
|
+
shipment_notice_class.from_payload(params.to_unsafe_h).apply
|
25
26
|
head :ok
|
26
27
|
rescue SolidusShipstation::Error => e
|
27
28
|
head :bad_request
|
@@ -21,6 +21,11 @@ SolidusShipstation.configure do |config|
|
|
21
21
|
# Set this to `true` if you want canceled shipments included in the endpoint.
|
22
22
|
# config.export_canceled_shipments = false
|
23
23
|
|
24
|
+
# You can customize the class used to receive notifications from the POST request
|
25
|
+
# Make sure it has a class method `from_payload` which receives the notification hash
|
26
|
+
# and an instance method `apply`
|
27
|
+
# config.shipment_notice_class = 'SolidusShipstation::ShipmentNotice'
|
28
|
+
|
24
29
|
####### API integration
|
25
30
|
# Only uncomment these lines if you're going to use the API integration.
|
26
31
|
|
@@ -51,15 +51,16 @@ module SolidusShipstation
|
|
51
51
|
|
52
52
|
def serialize_address(address)
|
53
53
|
{
|
54
|
-
name: SolidusSupport.combined_first_and_last_name_in_address? ? address
|
55
|
-
company: address.
|
56
|
-
street1: address.
|
57
|
-
street2: address.
|
58
|
-
city: address.
|
59
|
-
state: address
|
60
|
-
postalCode: address.
|
61
|
-
country: address
|
62
|
-
phone: address.
|
54
|
+
name: (SolidusSupport.combined_first_and_last_name_in_address? ? address&.name : address&.full_name).to_s,
|
55
|
+
company: address&.company.to_s,
|
56
|
+
street1: address&.address1.to_s,
|
57
|
+
street2: address&.address2.to_s,
|
58
|
+
city: address&.city.to_s,
|
59
|
+
state: address&.state&.abbr.to_s,
|
60
|
+
postalCode: address&.zipcode.to_s,
|
61
|
+
country: address&.country&.iso.to_s,
|
62
|
+
phone: address&.phone.to_s,
|
63
|
+
residential: address&.company.blank?
|
63
64
|
}
|
64
65
|
end
|
65
66
|
|
@@ -16,6 +16,7 @@ module SolidusShipstation
|
|
16
16
|
:api_secret,
|
17
17
|
:api_shipment_matcher,
|
18
18
|
:error_handler,
|
19
|
+
:shipment_notice_class
|
19
20
|
)
|
20
21
|
|
21
22
|
def initialize
|
@@ -27,6 +28,8 @@ module SolidusShipstation
|
|
27
28
|
@api_shipment_matcher = proc do |shipstation_order, shipments|
|
28
29
|
shipments.find { |shipment| shipment.number == shipstation_order['orderNumber'] }
|
29
30
|
end
|
31
|
+
|
32
|
+
@shipment_notice_class = 'SolidusShipstation::ShipmentNotice'
|
30
33
|
end
|
31
34
|
end
|
32
35
|
|
data/solidus_shipstation.gemspec
CHANGED
@@ -8,8 +8,7 @@ Gem::Specification.new do |spec|
|
|
8
8
|
spec.authors = ['Stephen Puiszis']
|
9
9
|
spec.email = 'steve@tablexi.com'
|
10
10
|
|
11
|
-
spec.summary = 'Solidus
|
12
|
-
spec.description = 'Integrates ShipStation API with Solidus. Supports exporting shipments and importing tracking numbers'
|
11
|
+
spec.summary = 'A Solidus extension for integrating the ShipStation API.'
|
13
12
|
spec.homepage = 'https://github.com/solidusio-contrib/solidus_shipstation'
|
14
13
|
spec.license = 'BSD-3-Clause'
|
15
14
|
|
@@ -17,7 +16,7 @@ Gem::Specification.new do |spec|
|
|
17
16
|
spec.metadata['source_code_uri'] = 'https://github.com/solidusio-contrib/solidus_shipstation'
|
18
17
|
spec.metadata['changelog_uri'] = 'https://github.com/solidusio-contrib/solidus_shipstation/blob/master/CHANGELOG.md'
|
19
18
|
|
20
|
-
spec.required_ruby_version = Gem::Requirement.new('
|
19
|
+
spec.required_ruby_version = Gem::Requirement.new('>= 2.5')
|
21
20
|
|
22
21
|
# Specify which files should be added to the gem when it is released.
|
23
22
|
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
@@ -95,7 +95,7 @@ RSpec.describe SolidusShipstation::Api::Client do
|
|
95
95
|
private
|
96
96
|
|
97
97
|
def build_client(options = {})
|
98
|
-
described_class.new({
|
98
|
+
described_class.new(**{
|
99
99
|
request_runner: instance_spy('SolidusShipstation::Api::RequestRunner'),
|
100
100
|
error_handler: instance_spy('Proc'),
|
101
101
|
shipment_serializer: stub_shipment_serializer,
|
@@ -8,5 +8,18 @@ RSpec.describe SolidusShipstation::Api::ShipmentSerializer do
|
|
8
8
|
|
9
9
|
expect(result).to be_instance_of(Hash)
|
10
10
|
end
|
11
|
+
|
12
|
+
it 'sets residential = false in address if company is given' do
|
13
|
+
order = create(:order_ready_to_ship,
|
14
|
+
bill_address: build(:address, company: 'ACME Co.'),
|
15
|
+
ship_address: build(:address, company: nil))
|
16
|
+
shipment = order.shipments.first
|
17
|
+
|
18
|
+
serializer = described_class.new(store_id: '12345678')
|
19
|
+
result = serializer.call(shipment)
|
20
|
+
|
21
|
+
expect(result[:billTo][:residential]).to be false
|
22
|
+
expect(result[:shipTo][:residential]).to be true
|
23
|
+
end
|
11
24
|
end
|
12
25
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solidus_shipstation
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stephen Puiszis
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-10-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -114,8 +114,7 @@ dependencies:
|
|
114
114
|
- - ">="
|
115
115
|
- !ruby/object:Gem::Version
|
116
116
|
version: '0'
|
117
|
-
description:
|
118
|
-
and importing tracking numbers
|
117
|
+
description:
|
119
118
|
email: steve@tablexi.com
|
120
119
|
executables: []
|
121
120
|
extensions: []
|
@@ -210,7 +209,7 @@ require_paths:
|
|
210
209
|
- lib
|
211
210
|
required_ruby_version: !ruby/object:Gem::Requirement
|
212
211
|
requirements:
|
213
|
-
- - "
|
212
|
+
- - ">="
|
214
213
|
- !ruby/object:Gem::Version
|
215
214
|
version: '2.5'
|
216
215
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
@@ -219,10 +218,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
219
218
|
- !ruby/object:Gem::Version
|
220
219
|
version: '0'
|
221
220
|
requirements: []
|
222
|
-
rubygems_version: 3.
|
221
|
+
rubygems_version: 3.2.22
|
223
222
|
signing_key:
|
224
223
|
specification_version: 4
|
225
|
-
summary: Solidus
|
224
|
+
summary: A Solidus extension for integrating the ShipStation API.
|
226
225
|
test_files:
|
227
226
|
- spec/controllers/spree/shipstation_controller_spec.rb
|
228
227
|
- spec/fixtures/shipstation_xml_schema.xsd
|