peddler 1.6.1 → 1.6.2
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/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
|