solidus_importer 0.1.0 → 0.2.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/.readme/import-products-1.gif +0 -0
- data/.readme/import-products-2.gif +0 -0
- data/README.md +9 -1
- data/Rakefile +4 -0
- data/app/models/solidus_importer/order_updater.rb +6 -0
- data/app/models/solidus_importer/spree_core_importer_order.rb +50 -0
- data/bin/rails-sandbox +1 -1
- data/bin/sandbox +2 -0
- data/lib/solidus_importer.rb +1 -0
- data/lib/solidus_importer/base_importer.rb +9 -2
- data/lib/solidus_importer/configuration.rb +7 -2
- data/lib/solidus_importer/order_importer.rb +39 -0
- data/lib/solidus_importer/process_import.rb +5 -1
- data/lib/solidus_importer/process_row.rb +3 -1
- data/lib/solidus_importer/processors/bill_address.rb +52 -0
- data/lib/solidus_importer/processors/customer.rb +10 -7
- data/lib/solidus_importer/processors/customer_address.rb +44 -0
- data/lib/solidus_importer/processors/line_item.rb +33 -0
- data/lib/solidus_importer/processors/order.rb +41 -12
- data/lib/solidus_importer/processors/payment.rb +56 -0
- data/lib/solidus_importer/processors/ship_address.rb +52 -0
- data/lib/solidus_importer/processors/shipment.rb +86 -0
- data/lib/solidus_importer/version.rb +1 -1
- data/spec/features/solidus_importer/import_spec.rb +68 -4
- data/spec/features/solidus_importer/processors_spec.rb +14 -11
- data/spec/fixtures/solidus_importer/customers.csv +5 -3
- data/spec/fixtures/solidus_importer/orders.csv +2 -2
- data/spec/lib/solidus_importer/base_importer_spec.rb +10 -0
- data/spec/lib/solidus_importer/order_importer_spec.rb +63 -0
- data/spec/lib/solidus_importer/processors/bill_address_spec.rb +33 -0
- data/spec/lib/solidus_importer/processors/customer_address_spec.rb +67 -0
- data/spec/lib/solidus_importer/processors/customer_spec.rb +14 -1
- data/spec/lib/solidus_importer/processors/line_item_spec.rb +22 -0
- data/spec/lib/solidus_importer/processors/order_spec.rb +2 -23
- data/spec/lib/solidus_importer/processors/payment_spec.rb +31 -0
- data/spec/lib/solidus_importer/processors/ship_address_spec.rb +33 -0
- data/spec/lib/solidus_importer/processors/shipment_spec.rb +22 -0
- metadata +31 -9
- data/lib/solidus_importer/processors/address.rb +0 -47
- data/spec/lib/solidus_importer/processors/address_spec.rb +0 -18
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
RSpec.describe SolidusImporter::Processors::BillAddress do
|
6
|
+
describe '#call' do
|
7
|
+
subject(:described_method) { described_class.call(context) }
|
8
|
+
|
9
|
+
let(:context) do
|
10
|
+
{ data: data }
|
11
|
+
end
|
12
|
+
let(:data) do
|
13
|
+
{
|
14
|
+
'Billing First Name' => 'John',
|
15
|
+
'Billing Last Name' => 'Doe',
|
16
|
+
'Billing Address1' => 'An address',
|
17
|
+
'Billing Address2' => '',
|
18
|
+
'Billing City' => 'A Beautyful city',
|
19
|
+
'Billing Company' => 'A Company',
|
20
|
+
'Billing Zip' => '00000',
|
21
|
+
'Billing Phone' => '555-123123123',
|
22
|
+
'Billing Country Code' => 'US',
|
23
|
+
'Billing Province Code' => 'NM'
|
24
|
+
}
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'put bill_address_attributes into order data' do
|
28
|
+
described_method
|
29
|
+
expect(context).to have_key(:order)
|
30
|
+
expect(context[:order][:bill_address_attributes]).not_to be_empty
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
RSpec.describe SolidusImporter::Processors::CustomerAddress do
|
6
|
+
describe '#call' do
|
7
|
+
subject(:described_method) { described_class.call(context) }
|
8
|
+
|
9
|
+
let(:context) { { data: data, user: user } }
|
10
|
+
let(:user) { create(:user) }
|
11
|
+
let!(:state) { create(:state, state_code: 'WA', country_iso: 'US') }
|
12
|
+
let(:country) { state.country }
|
13
|
+
let(:data) do
|
14
|
+
{
|
15
|
+
'First Name' => 'John',
|
16
|
+
'Last Name' => 'Doe',
|
17
|
+
'Address1' => 'My Cool Address, n.1',
|
18
|
+
'Address2' => '',
|
19
|
+
'City' => 'My beautiful City',
|
20
|
+
'Zip' => '12345',
|
21
|
+
'Phone' => '(555)-123123123',
|
22
|
+
'Country Code' => 'US',
|
23
|
+
'Province Code' => 'WA'
|
24
|
+
}
|
25
|
+
end
|
26
|
+
let(:address) { Spree::Address.last }
|
27
|
+
|
28
|
+
context 'when there is a state with the same code attached to another country' do
|
29
|
+
let!(:wrong_state) { create(:state, state_code: 'WA', country_iso: 'IT') }
|
30
|
+
let!(:state) { create(:state, state_code: 'XX', country_iso: 'US') }
|
31
|
+
|
32
|
+
it 'tries to fetch it from the current country' do
|
33
|
+
expect { described_method }.to change(Spree::Address, :count).by(1)
|
34
|
+
expect(Spree::Address.last.state).to be_nil
|
35
|
+
end
|
36
|
+
|
37
|
+
context 'when the country requires a states' do
|
38
|
+
before { country.update states_required: true }
|
39
|
+
|
40
|
+
it 'fails creating the address' do
|
41
|
+
expect { described_method }.not_to change(Spree::Address, :count)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
it 'create an address' do
|
47
|
+
expect { described_method }.to change(Spree::Address, :count).by(1)
|
48
|
+
|
49
|
+
aggregate_failures do
|
50
|
+
expect(address.full_name).to eq("John Doe")
|
51
|
+
expect(address.address1).to eq('My Cool Address, n.1')
|
52
|
+
expect(address.address2).to eq('')
|
53
|
+
expect(address.city).to eq('My beautiful City')
|
54
|
+
expect(address.zipcode).to eq('12345')
|
55
|
+
expect(address.phone).to eq('(555)-123123123')
|
56
|
+
expect(address.country).to eq(country)
|
57
|
+
expect(address.state).to eq(state)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
it 'adds the address in the user addressbook and set it as ship/bill address' do
|
62
|
+
expect { described_method }.to change(user.addresses, :count).by(1)
|
63
|
+
expect(user.bill_address).to eq address
|
64
|
+
expect(user.ship_address).to eq address
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -30,7 +30,20 @@ RSpec.describe SolidusImporter::Processors::Customer do
|
|
30
30
|
|
31
31
|
context 'with a customer row with a file entity' do
|
32
32
|
let(:context) do
|
33
|
-
{ data: build(:solidus_importer_row_customer, :with_import).data }
|
33
|
+
{ data: build(:solidus_importer_row_customer, :with_import).data.merge(customer_address_data) }
|
34
|
+
end
|
35
|
+
let(:customer_address_data) do
|
36
|
+
{
|
37
|
+
'First Name' => 'John',
|
38
|
+
'Last Name' => 'Doe',
|
39
|
+
'Address1' => 'My Cool Address, n.1',
|
40
|
+
'Address2' => '',
|
41
|
+
'City' => 'My beautiful City',
|
42
|
+
'Zip' => '12345',
|
43
|
+
'Phone' => '(555)-123123123',
|
44
|
+
'Country Code' => 'US',
|
45
|
+
'Province Code' => 'WA'
|
46
|
+
}
|
34
47
|
end
|
35
48
|
let(:result) { context.merge(user: Spree::User.last) }
|
36
49
|
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
RSpec.describe SolidusImporter::Processors::LineItem do
|
6
|
+
describe '#call' do
|
7
|
+
subject(:described_method) { described_class.call(context) }
|
8
|
+
|
9
|
+
let(:context) do
|
10
|
+
{ data: data }
|
11
|
+
end
|
12
|
+
let(:data) do
|
13
|
+
{ 'Lineitem sku' => 'a-sku' }
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'put line_items_attributes into order data' do
|
17
|
+
described_method
|
18
|
+
expect(context).to have_key(:order)
|
19
|
+
expect(context[:order][:line_items_attributes]).not_to be_empty
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -23,33 +23,12 @@ RSpec.describe SolidusImporter::Processors::Order do
|
|
23
23
|
{ data: data }
|
24
24
|
end
|
25
25
|
let(:data) { build(:solidus_importer_row_order, :with_import).data }
|
26
|
-
let(:result) { context.merge(order: Spree::Order.last) }
|
27
26
|
|
28
27
|
before { allow(Spree::Store).to receive(:default).and_return(build_stubbed(:store)) }
|
29
28
|
|
30
29
|
it 'creates a new order' do
|
31
|
-
|
32
|
-
expect(
|
33
|
-
end
|
34
|
-
|
35
|
-
context 'with an existing valid order' do
|
36
|
-
let!(:order) { create(:order, number: data['Name'], email: data['Email']) }
|
37
|
-
|
38
|
-
it 'updates the order' do
|
39
|
-
expect { described_method }.not_to(change{ Spree::Order.count })
|
40
|
-
expect(described_method).to eq(result)
|
41
|
-
expect(order.reload.email).to eq('an_email@example.com')
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
context 'with an existing invalid order' do
|
46
|
-
let!(:order) { create(:order, number: data['Name'], email: data['Email']) }
|
47
|
-
|
48
|
-
before { order.update_column(:state, 'an invalid state') }
|
49
|
-
|
50
|
-
it 'raises an exception' do
|
51
|
-
expect { described_method }.to raise_error(ActiveRecord::RecordInvalid, /State is invalid/)
|
52
|
-
end
|
30
|
+
described_method
|
31
|
+
expect(context[:order]).to match(hash_including(number: 'R123456789'))
|
53
32
|
end
|
54
33
|
end
|
55
34
|
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
RSpec.describe SolidusImporter::Processors::Payment do
|
6
|
+
describe '#call' do
|
7
|
+
subject(:described_method) { described_class.call(context) }
|
8
|
+
|
9
|
+
let(:context) do
|
10
|
+
{ data: data }
|
11
|
+
end
|
12
|
+
let(:data) do
|
13
|
+
{
|
14
|
+
'Financial Status' => 'paid',
|
15
|
+
'Lineitem price' => '10.5',
|
16
|
+
'Lineitem quantity' => '2'
|
17
|
+
}
|
18
|
+
end
|
19
|
+
let(:expected_params) do
|
20
|
+
[{ payment_method: payment_method_name, amount: amount }]
|
21
|
+
end
|
22
|
+
let(:payment_method_name) { 'SolidusImporter PaymentMethod' }
|
23
|
+
let(:amount) { 21.0 }
|
24
|
+
|
25
|
+
it 'put payments_attributes into order data' do
|
26
|
+
described_method
|
27
|
+
expect(context).to have_key(:order)
|
28
|
+
expect(context[:order][:payments_attributes]).to eq expected_params
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
RSpec.describe SolidusImporter::Processors::ShipAddress do
|
6
|
+
describe '#call' do
|
7
|
+
subject(:described_method) { described_class.call(context) }
|
8
|
+
|
9
|
+
let(:context) do
|
10
|
+
{ data: data }
|
11
|
+
end
|
12
|
+
let(:data) do
|
13
|
+
{
|
14
|
+
'Shipping First Name' => 'John',
|
15
|
+
'Shipping Last Name' => 'Doe',
|
16
|
+
'Shipping Address1' => 'An address',
|
17
|
+
'Shipping Address2' => '',
|
18
|
+
'Shipping City' => 'A Beautyful city',
|
19
|
+
'Shipping Company' => 'A Company',
|
20
|
+
'Shipping Zip' => '00000',
|
21
|
+
'Shipping Phone' => '555-123123123',
|
22
|
+
'Shipping Country Code' => 'US',
|
23
|
+
'Shipping Province Code' => 'NM'
|
24
|
+
}
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'put ship_address_attributes into order data' do
|
28
|
+
described_method
|
29
|
+
expect(context).to have_key(:order)
|
30
|
+
expect(context[:order][:ship_address_attributes]).not_to be_empty
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
RSpec.describe SolidusImporter::Processors::Shipment do
|
6
|
+
describe '#call' do
|
7
|
+
subject(:described_method) { described_class.call(context) }
|
8
|
+
|
9
|
+
let(:context) do
|
10
|
+
{ data: data }
|
11
|
+
end
|
12
|
+
let(:data) do
|
13
|
+
{ 'Shipping Line Title' => 'ACME Shipping' }
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'put shipments_attributes into order data' do
|
17
|
+
described_method
|
18
|
+
expect(context).to have_key(:order)
|
19
|
+
expect(context[:order][:shipments_attributes]).not_to be_empty
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solidus_importer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mattia Roccoberton
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-01-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: solidus_core
|
@@ -69,6 +69,8 @@ files:
|
|
69
69
|
- ".github/stale.yml"
|
70
70
|
- ".gitignore"
|
71
71
|
- ".hound.yml"
|
72
|
+
- ".readme/import-products-1.gif"
|
73
|
+
- ".readme/import-products-2.gif"
|
72
74
|
- ".rspec"
|
73
75
|
- ".rubocop.yml"
|
74
76
|
- Gemfile
|
@@ -83,7 +85,9 @@ files:
|
|
83
85
|
- app/controllers/spree/admin/solidus_importer/imports_controller.rb
|
84
86
|
- app/jobs/solidus_importer/import_job.rb
|
85
87
|
- app/models/solidus_importer/import.rb
|
88
|
+
- app/models/solidus_importer/order_updater.rb
|
86
89
|
- app/models/solidus_importer/row.rb
|
90
|
+
- app/models/solidus_importer/spree_core_importer_order.rb
|
87
91
|
- app/views/spree/admin/solidus_importer/import_rows/show.html.erb
|
88
92
|
- app/views/spree/admin/solidus_importer/imports/_form.html.erb
|
89
93
|
- app/views/spree/admin/solidus_importer/imports/index.html.erb
|
@@ -110,17 +114,23 @@ files:
|
|
110
114
|
- lib/solidus_importer/engine.rb
|
111
115
|
- lib/solidus_importer/exception.rb
|
112
116
|
- lib/solidus_importer/factories.rb
|
117
|
+
- lib/solidus_importer/order_importer.rb
|
113
118
|
- lib/solidus_importer/process_import.rb
|
114
119
|
- lib/solidus_importer/process_row.rb
|
115
|
-
- lib/solidus_importer/processors/address.rb
|
116
120
|
- lib/solidus_importer/processors/base.rb
|
121
|
+
- lib/solidus_importer/processors/bill_address.rb
|
117
122
|
- lib/solidus_importer/processors/customer.rb
|
123
|
+
- lib/solidus_importer/processors/customer_address.rb
|
124
|
+
- lib/solidus_importer/processors/line_item.rb
|
118
125
|
- lib/solidus_importer/processors/log.rb
|
119
126
|
- lib/solidus_importer/processors/option_types.rb
|
120
127
|
- lib/solidus_importer/processors/option_values.rb
|
121
128
|
- lib/solidus_importer/processors/order.rb
|
129
|
+
- lib/solidus_importer/processors/payment.rb
|
122
130
|
- lib/solidus_importer/processors/product.rb
|
123
131
|
- lib/solidus_importer/processors/product_images.rb
|
132
|
+
- lib/solidus_importer/processors/ship_address.rb
|
133
|
+
- lib/solidus_importer/processors/shipment.rb
|
124
134
|
- lib/solidus_importer/processors/taxon.rb
|
125
135
|
- lib/solidus_importer/processors/variant.rb
|
126
136
|
- lib/solidus_importer/processors/variant_images.rb
|
@@ -143,17 +153,23 @@ files:
|
|
143
153
|
- spec/fixtures/solidus_importer/thinking-cat.jpg
|
144
154
|
- spec/jobs/solidus_importer/import_job_spec.rb
|
145
155
|
- spec/lib/solidus_importer/base_importer_spec.rb
|
156
|
+
- spec/lib/solidus_importer/order_importer_spec.rb
|
146
157
|
- spec/lib/solidus_importer/process_import_spec.rb
|
147
158
|
- spec/lib/solidus_importer/process_row_spec.rb
|
148
|
-
- spec/lib/solidus_importer/processors/address_spec.rb
|
149
159
|
- spec/lib/solidus_importer/processors/base_spec.rb
|
160
|
+
- spec/lib/solidus_importer/processors/bill_address_spec.rb
|
161
|
+
- spec/lib/solidus_importer/processors/customer_address_spec.rb
|
150
162
|
- spec/lib/solidus_importer/processors/customer_spec.rb
|
163
|
+
- spec/lib/solidus_importer/processors/line_item_spec.rb
|
151
164
|
- spec/lib/solidus_importer/processors/log_spec.rb
|
152
165
|
- spec/lib/solidus_importer/processors/option_types_spec.rb
|
153
166
|
- spec/lib/solidus_importer/processors/option_values_spec.rb
|
154
167
|
- spec/lib/solidus_importer/processors/order_spec.rb
|
168
|
+
- spec/lib/solidus_importer/processors/payment_spec.rb
|
155
169
|
- spec/lib/solidus_importer/processors/product_images_spec.rb
|
156
170
|
- spec/lib/solidus_importer/processors/product_spec.rb
|
171
|
+
- spec/lib/solidus_importer/processors/ship_address_spec.rb
|
172
|
+
- spec/lib/solidus_importer/processors/shipment_spec.rb
|
157
173
|
- spec/lib/solidus_importer/processors/taxon_spec.rb
|
158
174
|
- spec/lib/solidus_importer/processors/variant_images_spec.rb
|
159
175
|
- spec/lib/solidus_importer/processors/variant_spec.rb
|
@@ -169,7 +185,7 @@ metadata:
|
|
169
185
|
homepage_uri: https://github.com/nebulab/solidus_importer#readme
|
170
186
|
source_code_uri: https://github.com/nebulab/solidus_importer#readme
|
171
187
|
changelog_uri: https://github.com/nebulab/solidus_importer/releases
|
172
|
-
post_install_message:
|
188
|
+
post_install_message:
|
173
189
|
rdoc_options: []
|
174
190
|
require_paths:
|
175
191
|
- lib
|
@@ -184,8 +200,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
184
200
|
- !ruby/object:Gem::Version
|
185
201
|
version: '0'
|
186
202
|
requirements: []
|
187
|
-
rubygems_version: 3.1.
|
188
|
-
signing_key:
|
203
|
+
rubygems_version: 3.1.4
|
204
|
+
signing_key:
|
189
205
|
specification_version: 4
|
190
206
|
summary: Solidus Importer extension
|
191
207
|
test_files:
|
@@ -206,17 +222,23 @@ test_files:
|
|
206
222
|
- spec/fixtures/solidus_importer/thinking-cat.jpg
|
207
223
|
- spec/jobs/solidus_importer/import_job_spec.rb
|
208
224
|
- spec/lib/solidus_importer/base_importer_spec.rb
|
225
|
+
- spec/lib/solidus_importer/order_importer_spec.rb
|
209
226
|
- spec/lib/solidus_importer/process_import_spec.rb
|
210
227
|
- spec/lib/solidus_importer/process_row_spec.rb
|
211
|
-
- spec/lib/solidus_importer/processors/address_spec.rb
|
212
228
|
- spec/lib/solidus_importer/processors/base_spec.rb
|
229
|
+
- spec/lib/solidus_importer/processors/bill_address_spec.rb
|
230
|
+
- spec/lib/solidus_importer/processors/customer_address_spec.rb
|
213
231
|
- spec/lib/solidus_importer/processors/customer_spec.rb
|
232
|
+
- spec/lib/solidus_importer/processors/line_item_spec.rb
|
214
233
|
- spec/lib/solidus_importer/processors/log_spec.rb
|
215
234
|
- spec/lib/solidus_importer/processors/option_types_spec.rb
|
216
235
|
- spec/lib/solidus_importer/processors/option_values_spec.rb
|
217
236
|
- spec/lib/solidus_importer/processors/order_spec.rb
|
237
|
+
- spec/lib/solidus_importer/processors/payment_spec.rb
|
218
238
|
- spec/lib/solidus_importer/processors/product_images_spec.rb
|
219
239
|
- spec/lib/solidus_importer/processors/product_spec.rb
|
240
|
+
- spec/lib/solidus_importer/processors/ship_address_spec.rb
|
241
|
+
- spec/lib/solidus_importer/processors/shipment_spec.rb
|
220
242
|
- spec/lib/solidus_importer/processors/taxon_spec.rb
|
221
243
|
- spec/lib/solidus_importer/processors/variant_images_spec.rb
|
222
244
|
- spec/lib/solidus_importer/processors/variant_spec.rb
|
@@ -1,47 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module SolidusImporter
|
4
|
-
module Processors
|
5
|
-
class Address < Base
|
6
|
-
def call(context)
|
7
|
-
@data = context.fetch(:data)
|
8
|
-
|
9
|
-
return unless address?
|
10
|
-
|
11
|
-
context.merge!(address: process_address)
|
12
|
-
end
|
13
|
-
|
14
|
-
private
|
15
|
-
|
16
|
-
def process_address
|
17
|
-
prepare_address.tap(&:save)
|
18
|
-
end
|
19
|
-
|
20
|
-
def prepare_address
|
21
|
-
Spree::Address.new(
|
22
|
-
firstname: @data['First Name'],
|
23
|
-
lastname: @data['Last Name'],
|
24
|
-
address1: @data['Address1'],
|
25
|
-
address2: @data['Address2'],
|
26
|
-
city: @data['City'],
|
27
|
-
zipcode: @data['Zip'],
|
28
|
-
phone: @data['Phone'],
|
29
|
-
country: extract_country(@data['Country Code']),
|
30
|
-
state: extract_state(@data['Province Code'])
|
31
|
-
)
|
32
|
-
end
|
33
|
-
|
34
|
-
def extract_country(iso)
|
35
|
-
Spree::Country.find_by(iso: iso)
|
36
|
-
end
|
37
|
-
|
38
|
-
def extract_state(iso)
|
39
|
-
Spree::State.find_by(abbr: iso) || Spree::State.find_by(name: iso)
|
40
|
-
end
|
41
|
-
|
42
|
-
def address?
|
43
|
-
@data['Address1'].present?
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|