peddler 1.6.1 → 1.6.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/mws/fulfillment_outbound_shipment/client.rb +36 -0
- data/lib/peddler/flat_file_parser.rb +1 -1
- data/lib/peddler/marketplace.rb +2 -1
- data/lib/peddler/version.rb +1 -1
- data/test/unit/mws/test_fulfillment_outbound_shipment_client.rb +46 -0
- data/test/unit/peddler/test_flat_file_parser.rb +8 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 47c52a1b5f75f285052401e6397073ed84c09c9a
|
4
|
+
data.tar.gz: 602df49beef094aacc196ae6f5914404a7a94228
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 53436bf6a4454256ae5673ace40e55dd753d6eaef38e73640f55e5bdf832d6fa267eb30bf8b9205f09d6a94085c849a6935f4eab219fa10aa2ca6244d42b8b4b
|
7
|
+
data.tar.gz: ac510facfb0eebde81447bfa2fcde617a144fc0b50d034bf05d22a8e1e845b098c3f438a9617f4cd104a42aeb017c8ec3dcb0745f08964658b0eb73ac72c29c1
|
@@ -165,6 +165,42 @@ module MWS
|
|
165
165
|
run
|
166
166
|
end
|
167
167
|
|
168
|
+
# Returns a list of return reason codes for a seller SKU in a given marketplace.
|
169
|
+
#
|
170
|
+
# @see http://docs.developer.amazonservices.com/en_US/fba_outbound/FBAOutbound_ListReturnReasonCodes.html
|
171
|
+
# @param [String] seller_sku
|
172
|
+
# @param [Hash] opts
|
173
|
+
# @option opts [String] :marketplace_id
|
174
|
+
# @option opts [String] :seller_fulfillment_order_id
|
175
|
+
# @option opts [String] :language
|
176
|
+
# @return [Peddler::XMLParser]
|
177
|
+
def list_return_reason_codes(seller_sku, opts = {})
|
178
|
+
operation('ListReturnReasonCodes')
|
179
|
+
.add(
|
180
|
+
opts.merge(
|
181
|
+
'SellerSKU' => seller_sku
|
182
|
+
)
|
183
|
+
)
|
184
|
+
.structure!('List', 'member')
|
185
|
+
|
186
|
+
run
|
187
|
+
end
|
188
|
+
|
189
|
+
# Creates a fulfillment return.
|
190
|
+
#
|
191
|
+
# @see http://docs.developer.amazonservices.com/en_US/fba_outbound/FBAOutbound_CreateFulfillmentReturn.html
|
192
|
+
# @param [String] seller_fulfillment_order_id
|
193
|
+
# @param [Array] items
|
194
|
+
# @return [Peddler::XMLParser]
|
195
|
+
def create_fulfillment_return(seller_fulfillment_order_id, items)
|
196
|
+
operation('CreateFulfillmentReturn')
|
197
|
+
.add('SellerFulfillmentOrderId' => seller_fulfillment_order_id)
|
198
|
+
.add('Items' => items)
|
199
|
+
.structure!('Items', 'member')
|
200
|
+
|
201
|
+
run
|
202
|
+
end
|
203
|
+
|
168
204
|
# Gets the operational status of the API
|
169
205
|
#
|
170
206
|
# @see http://docs.developer.amazonservices.com/en_US/fba_outbound/MWS_GetServiceStatus.html
|
data/lib/peddler/marketplace.rb
CHANGED
@@ -12,7 +12,8 @@ module Peddler
|
|
12
12
|
'APJ6JRA9NG5V4' => 'mws-eu.amazonservices.com',
|
13
13
|
'A1VC38T7YXB528' => 'mws.amazonservices.jp',
|
14
14
|
'A1AM78C64UM0Y8' => 'mws.amazonservices.com.mx',
|
15
|
-
'ATVPDKIKX0DER' => 'mws.amazonservices.com'
|
15
|
+
'ATVPDKIKX0DER' => 'mws.amazonservices.com',
|
16
|
+
'A39IBJ37TRP1C6' => 'mws.amazonservices.com.au'
|
16
17
|
}.freeze
|
17
18
|
|
18
19
|
BadId = Class.new(StandardError)
|
data/lib/peddler/version.rb
CHANGED
@@ -137,6 +137,52 @@ class TestMWSFulfillmentOutboundShipmentClient < MiniTest::Test
|
|
137
137
|
assert_equal operation, @client.operation
|
138
138
|
end
|
139
139
|
|
140
|
+
def test_lists_return_reason_codes
|
141
|
+
seller_sku = 'ABC123'
|
142
|
+
seller_fulfillment_order_id = '123ABC'
|
143
|
+
|
144
|
+
operation = {
|
145
|
+
'Action' => 'ListReturnReasonCodes',
|
146
|
+
'SellerSKU' => seller_sku,
|
147
|
+
'SellerFulfillmentOrderId' => seller_fulfillment_order_id
|
148
|
+
}
|
149
|
+
|
150
|
+
@client.stub(:run, nil) do
|
151
|
+
@client.list_return_reason_codes(
|
152
|
+
seller_sku,
|
153
|
+
seller_fulfillment_order_id: seller_fulfillment_order_id
|
154
|
+
)
|
155
|
+
end
|
156
|
+
|
157
|
+
assert_equal operation, @client.operation
|
158
|
+
end
|
159
|
+
|
160
|
+
def test_creates_fulfillment_return
|
161
|
+
seller_fulfillment_order_id = 'ABC123'
|
162
|
+
|
163
|
+
item = { seller_return_item_id: 'ABC123',
|
164
|
+
seller_fulfillment_order_item_id: 'ABC123',
|
165
|
+
amazon_shipment_id: 'ABC123',
|
166
|
+
return_reason_code: 'VALID_RETURN_REASON_CODE',
|
167
|
+
return_comment: 'RETURN COMMENT FROM CLIENT' }
|
168
|
+
|
169
|
+
operation = {
|
170
|
+
'Action' => 'CreateFulfillmentReturn',
|
171
|
+
'SellerFulfillmentOrderId' => seller_fulfillment_order_id,
|
172
|
+
'Items.member.1.SellerReturnItemId' => item[:seller_return_item_id],
|
173
|
+
'Items.member.1.SellerFulfillmentOrderItemId' => item[:seller_fulfillment_order_item_id],
|
174
|
+
'Items.member.1.AmazonShipmentId' => item[:amazon_shipment_id],
|
175
|
+
'Items.member.1.ReturnReasonCode' => item[:return_reason_code],
|
176
|
+
'Items.member.1.ReturnComment' => item[:return_comment]
|
177
|
+
}
|
178
|
+
|
179
|
+
@client.stub(:run, nil) do
|
180
|
+
@client.create_fulfillment_return(seller_fulfillment_order_id, [item])
|
181
|
+
end
|
182
|
+
|
183
|
+
assert_equal operation, @client.operation
|
184
|
+
end
|
185
|
+
|
140
186
|
def test_gets_service_status
|
141
187
|
operation = {
|
142
188
|
'Action' => 'GetServiceStatus'
|
@@ -73,10 +73,16 @@ class TestPeddlerFlatFileParser < MiniTest::Test
|
|
73
73
|
assert_equal '�', parser.parse['Foo'][0]
|
74
74
|
end
|
75
75
|
|
76
|
+
def test_handles_utf8_flat_files
|
77
|
+
body = "Foo\nfür\n"
|
78
|
+
parser = Peddler::FlatFileParser.new(build_mock_response(body, ascii: false), 'CP1252')
|
79
|
+
assert_equal 'für', parser.parse['Foo'][0]
|
80
|
+
end
|
81
|
+
|
76
82
|
private
|
77
83
|
|
78
|
-
def build_mock_response(body)
|
79
|
-
body.force_encoding('ASCII-8BIT')
|
84
|
+
def build_mock_response(body, ascii: true)
|
85
|
+
body.force_encoding('ASCII-8BIT') if ascii
|
80
86
|
headers = {
|
81
87
|
'Content-MD5' => Digest::MD5.base64digest(body)
|
82
88
|
}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: peddler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.6.
|
4
|
+
version: 1.6.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hakan Ensari
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-09-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dig_rb
|
@@ -211,7 +211,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
211
211
|
version: '0'
|
212
212
|
requirements: []
|
213
213
|
rubyforge_project:
|
214
|
-
rubygems_version: 2.6.
|
214
|
+
rubygems_version: 2.6.11
|
215
215
|
signing_key:
|
216
216
|
specification_version: 4
|
217
217
|
summary: Wraps the Amazon MWS APIs
|