peddler 2.0.0 → 2.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +7 -6
- data/lib/mws/feeds/client.rb +1 -0
- data/lib/mws/fulfillment_inbound_shipment/client.rb +3 -0
- data/lib/peddler/errors/builder.rb +0 -2
- data/lib/peddler/flat_file_parser.rb +3 -2
- data/lib/peddler/marketplace.rb +3 -4
- data/lib/peddler/operation.rb +7 -6
- data/lib/peddler/parser.rb +4 -5
- data/lib/peddler/version.rb +1 -1
- data/test/integration/test_orders.rb +2 -2
- data/test/integration/test_reports.rb +1 -1
- data/test/integration_helper.rb +2 -2
- data/test/unit/mws/test_fulfillment_inbound_shipment_client.rb +40 -3
- data/test/unit/peddler/test_flat_file_parser.rb +7 -0
- data/test/unit/peddler/test_operation.rb +7 -4
- data/test/vcr_cassettes/CartInformation.yml +9 -9
- data/test/vcr_cassettes/CustomerInformation.yml +9 -9
- data/test/vcr_cassettes/Errors.yml +18 -18
- data/test/vcr_cassettes/Feeds.yml +108 -108
- data/test/vcr_cassettes/FulfillmentInboundShipment.yml +27 -27
- data/test/vcr_cassettes/FulfillmentInventory.yml +18 -18
- data/test/vcr_cassettes/FulfillmentOutboundShipment.yml +9 -9
- data/test/vcr_cassettes/MWSHeaders.yml +9 -9
- data/test/vcr_cassettes/MerchantFulfillment.yml +9 -9
- data/test/vcr_cassettes/MultibyteQueries.yml +9 -9
- data/test/vcr_cassettes/OffAmazonPayments.yml +9 -9
- data/test/vcr_cassettes/Orders.yml +27 -27
- data/test/vcr_cassettes/Products.yml +81 -81
- data/test/vcr_cassettes/Recommendations.yml +18 -18
- data/test/vcr_cassettes/Reports.yml +189 -189
- data/test/vcr_cassettes/Sellers.yml +9 -9
- data/test/vcr_cassettes/Subscriptions.yml +27 -27
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ab8bcb8e672611aae106acc48115ea0bc464386bfd132d9e63a9f79ec65a98e2
|
4
|
+
data.tar.gz: e9f7a329ded38e2ef63d3a339a925dbaf7696e2d58e7d59851f66fbb1aa7326e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: afdecb6f6a1b920e030588a184e28dee532676a3f42946f68eb87ba0798008ea642836d2e14b328d599e1d580cdae1919a2c5f6e1e5d5cacc19a9c2b322a1a9d
|
7
|
+
data.tar.gz: 846746905c8b96848a56dbfa69af5cfa8430e9d0d7d5df77796a760af087d48a30d332ca5e3391e38da45328c4fdda72568786814376fcf0d0b474c320ae8582
|
data/README.md
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
**Peddler** is a Ruby interface to the [Amazon MWS API](https://developer.amazonservices.com/), a collection of web services that help Amazon sellers programmatically exchange data on their listings, orders, payments, reports, and more.
|
8
8
|
|
9
|
-
To use Amazon MWS, you must have an eligible seller account and
|
9
|
+
To use Amazon MWS, you must have an eligible seller account and register as an [application developer](https://docs.developer.amazonservices.com/en_US/dev_guide/DG_Registering.html#DG_Registering__RegisteringAsADeveloper).
|
10
10
|
|
11
11
|
Amazon has [multiple regions](https://docs.developer.amazonservices.com/en_US/dev_guide/DG_Endpoints.html). Each region requires application developers to register individually.
|
12
12
|
|
@@ -48,9 +48,9 @@ MWS.orders(marketplace: "US",
|
|
48
48
|
If you are creating a [client for another seller](https://developer.amazonservices.com/gp/mws/faq.html#developForSeller), pass an MWS Auth Token as well.
|
49
49
|
|
50
50
|
```ruby
|
51
|
-
|
52
|
-
|
53
|
-
|
51
|
+
MWS.orders(marketplace: "ATVPDKIKX0DER",
|
52
|
+
merchant_id: "123",
|
53
|
+
auth_token: "123")
|
54
54
|
```
|
55
55
|
|
56
56
|
You won't be able to create a client for another seller if you are in different regions.
|
@@ -122,7 +122,7 @@ rescue Peddler::Errors::QuotaExceeded => error
|
|
122
122
|
end
|
123
123
|
```
|
124
124
|
|
125
|
-
|
125
|
+
Read [tips on how to avoid throttling](https://docs.developer.amazonservices.com/en_US/dev_guide/DG_Throttling.html).
|
126
126
|
|
127
127
|
### Debugging
|
128
128
|
|
@@ -140,7 +140,7 @@ puts response.mws_request_id
|
|
140
140
|
puts response.mws_timestamp
|
141
141
|
```
|
142
142
|
|
143
|
-
You can access the same attributes on `error.response`. See
|
143
|
+
You can access the same attributes on `error.response`. See <a href="#throttling">above example</a>.
|
144
144
|
|
145
145
|
## The APIs
|
146
146
|
|
@@ -150,6 +150,7 @@ The MWS Feeds API lets you upload inventory and order data to Amazon. You can al
|
|
150
150
|
|
151
151
|
- [Amazon references](https://developer.amazonservices.com/gp/mws/api.html?group=bde§ion=feeds)
|
152
152
|
- [Peddler API docs](http://www.rubydoc.info/gems/peddler/MWS/Feeds/Client)
|
153
|
+
- [XML schema docs](https://sellercentral.amazon.com/gp/help/help-page.html?itemID=1611)
|
153
154
|
|
154
155
|
### Finances
|
155
156
|
|
data/lib/mws/feeds/client.rb
CHANGED
@@ -6,6 +6,7 @@ module MWS
|
|
6
6
|
module Feeds
|
7
7
|
# The MWS Feeds API lets you upload inventory and order data to Amazon. You
|
8
8
|
# can also use this API to get information about the processing of feeds.
|
9
|
+
# @see https://sellercentral.amazon.com/gp/help/help-page.html?itemID=1611
|
9
10
|
class Client < ::Peddler::Client
|
10
11
|
self.version = '2009-01-01'
|
11
12
|
self.path = "/Feeds/#{version}"
|
@@ -47,6 +47,8 @@ module MWS
|
|
47
47
|
# @param [Struct, Hash] ship_from_address
|
48
48
|
# @param [Array<Struct, Hash>] inbound_shipment_plan_request_items
|
49
49
|
# @param [Hash] opts
|
50
|
+
# @option opts [String] :ship_to_country_code
|
51
|
+
# @option opts [String] :ship_to_country_subdivision_code
|
50
52
|
# @option opts [String] :label_prep_preference
|
51
53
|
# @return [Peddler::XMLParser]
|
52
54
|
def create_inbound_shipment_plan(ship_from_address,
|
@@ -58,6 +60,7 @@ module MWS
|
|
58
60
|
'InboundShipmentPlanRequestItems' =>
|
59
61
|
inbound_shipment_plan_request_items)
|
60
62
|
.structure!('InboundShipmentPlanRequestItems', 'member')
|
63
|
+
.structure!('PrepDetailsList', 'member')
|
61
64
|
|
62
65
|
run
|
63
66
|
end
|
@@ -12,6 +12,7 @@ module Peddler
|
|
12
12
|
|
13
13
|
# http://stackoverflow.com/questions/8073920/importing-csv-quoting-error-is-driving-me-nuts
|
14
14
|
OPTIONS = { col_sep: "\t", quote_char: "\x00", headers: true }.freeze
|
15
|
+
private_constant :OPTIONS
|
15
16
|
|
16
17
|
attr_reader :content, :summary
|
17
18
|
|
@@ -22,7 +23,7 @@ module Peddler
|
|
22
23
|
end
|
23
24
|
|
24
25
|
def parse(&blk)
|
25
|
-
CSV.parse(content, OPTIONS, &blk)
|
26
|
+
CSV.parse(content, OPTIONS, &blk) unless content.empty?
|
26
27
|
end
|
27
28
|
|
28
29
|
def records_count
|
@@ -42,7 +43,7 @@ module Peddler
|
|
42
43
|
|
43
44
|
def extract_content_and_summary
|
44
45
|
@content = body.encode('UTF-8', invalid: :replace, undef: :replace)
|
45
|
-
@summary, @content = @content.split("\n\n") if @content
|
46
|
+
@summary, @content = @content.split("\n\n", 2) if @content =~ /\t\t.*\n\n/
|
46
47
|
end
|
47
48
|
|
48
49
|
def summarize
|
data/lib/peddler/marketplace.rb
CHANGED
@@ -39,10 +39,9 @@ module Peddler
|
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
42
|
-
# Caveat: We use
|
43
|
-
#
|
44
|
-
#
|
45
|
-
# replacements.
|
42
|
+
# Caveat: We use supersets Windows-31J and CP1252 in place of Shift_JIS and
|
43
|
+
# ISO 8859-1 respectively to handle some edge cases. These should be safe to
|
44
|
+
# drop in as replacements.
|
46
45
|
def encoding
|
47
46
|
case country_code
|
48
47
|
when 'JP'
|
data/lib/peddler/operation.rb
CHANGED
@@ -15,12 +15,13 @@ module Peddler
|
|
15
15
|
|
16
16
|
def structure!(*list_keys)
|
17
17
|
list_key = list_keys.shift
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
18
|
+
keys
|
19
|
+
.find_all { |key| key.end_with?(list_key) }
|
20
|
+
.each do |found_key|
|
21
|
+
builder = StructuredList.new(found_key, *list_keys)
|
22
|
+
vals = delete(found_key)
|
23
|
+
update(builder.build(vals))
|
24
|
+
end
|
24
25
|
|
25
26
|
self
|
26
27
|
end
|
data/lib/peddler/parser.rb
CHANGED
@@ -7,8 +7,8 @@ module Peddler
|
|
7
7
|
# @api private
|
8
8
|
module Parser
|
9
9
|
class << self
|
10
|
-
#
|
11
|
-
#
|
10
|
+
# We're massaging data produced by a motley army of developers. It's
|
11
|
+
# messy.
|
12
12
|
def new(res, encoding)
|
13
13
|
# Don't parse if there's no body
|
14
14
|
return res unless res.body
|
@@ -16,9 +16,8 @@ module Peddler
|
|
16
16
|
if xml?(res)
|
17
17
|
XMLResponseParser.new(res)
|
18
18
|
else
|
19
|
-
# Amazon returns a variety of content types for flat files
|
20
|
-
#
|
21
|
-
# defensively and check content type again.
|
19
|
+
# Amazon returns a variety of content types for flat files. I simply
|
20
|
+
# assume anything not XML is a flat file.
|
22
21
|
FlatFileParser.new(res, encoding)
|
23
22
|
end
|
24
23
|
end
|
data/lib/peddler/version.rb
CHANGED
@@ -14,8 +14,8 @@ class TestOrders < IntegrationTest
|
|
14
14
|
|
15
15
|
next if order_ids.count < 2
|
16
16
|
|
17
|
-
|
18
|
-
|
17
|
+
res = client.get_order(*order_ids)
|
18
|
+
orders = res.dig('Orders', 'Order')
|
19
19
|
|
20
20
|
assert_equal order_ids.count, orders.count
|
21
21
|
end
|
data/test/integration_helper.rb
CHANGED
@@ -45,7 +45,7 @@ VCR.configure do |c|
|
|
45
45
|
end
|
46
46
|
|
47
47
|
Credentials.each do |record|
|
48
|
-
c.filter_sensitive_data('
|
49
|
-
c.filter_sensitive_data('
|
48
|
+
c.filter_sensitive_data('MERCHANT_ID') { record['merchant_id'] }
|
49
|
+
c.filter_sensitive_data('AWS_ACCESS_KEY_ID') { record['aws_access_key_id'] }
|
50
50
|
end
|
51
51
|
end
|
@@ -39,12 +39,49 @@ class TestMWSFulfillmentInboundShipmentClient < MiniTest::Test
|
|
39
39
|
def test_creates_inbound_shipment_plan
|
40
40
|
operation = {
|
41
41
|
'Action' => 'CreateInboundShipmentPlan',
|
42
|
-
'
|
43
|
-
'
|
42
|
+
'LabelPrepPreference' => 'SELLER_LABEL',
|
43
|
+
'ShipFromAddress.Name' => 'test1',
|
44
|
+
'ShipFromAddress.City' => 'Seattle',
|
45
|
+
'ShipFromAddress.CountryCode' => 'US',
|
46
|
+
'InboundShipmentPlanRequestItems.member.1.SellerSKU' => 'SKU00001',
|
47
|
+
'InboundShipmentPlanRequestItems.member.1.Quantity' => '1',
|
48
|
+
'InboundShipmentPlanRequestItems.member.1.PrepDetailsList.member.1.PrepInstruction' => 'Taping',
|
49
|
+
'InboundShipmentPlanRequestItems.member.1.PrepDetailsList.member.1.PrepOwner' => 'AMAZON',
|
50
|
+
'InboundShipmentPlanRequestItems.member.1.PrepDetailsList.member.2.PrepInstruction' => 'BubbleWrapping',
|
51
|
+
'InboundShipmentPlanRequestItems.member.1.PrepDetailsList.member.2.PrepOwner' => 'AMAZON',
|
52
|
+
'InboundShipmentPlanRequestItems.member.2.SellerSKU' => 'SKU00002',
|
53
|
+
'InboundShipmentPlanRequestItems.member.2.Quantity' => '1',
|
54
|
+
'InboundShipmentPlanRequestItems.member.2.PrepDetailsList.member.1.PrepInstruction' => 'Taping',
|
55
|
+
'InboundShipmentPlanRequestItems.member.2.PrepDetailsList.member.1.PrepOwner' => 'AMAZON',
|
56
|
+
'InboundShipmentPlanRequestItems.member.2.PrepDetailsList.member.2.PrepInstruction' => 'BubbleWrapping',
|
57
|
+
'InboundShipmentPlanRequestItems.member.2.PrepDetailsList.member.2.PrepOwner' => 'AMAZON'
|
44
58
|
}
|
45
59
|
|
46
60
|
@client.stub(:run, nil) do
|
47
|
-
|
61
|
+
address = {
|
62
|
+
'Name' => 'test1',
|
63
|
+
'City' => 'Seattle',
|
64
|
+
'CountryCode' => 'US'
|
65
|
+
}
|
66
|
+
request_items = [
|
67
|
+
{
|
68
|
+
'SellerSKU' => 'SKU00001',
|
69
|
+
'Quantity' => '1',
|
70
|
+
'PrepDetailsList' => [
|
71
|
+
{ 'PrepInstruction' => 'Taping', 'PrepOwner' => 'AMAZON' },
|
72
|
+
{ 'PrepInstruction' => 'BubbleWrapping', 'PrepOwner' => 'AMAZON' }
|
73
|
+
]
|
74
|
+
}, {
|
75
|
+
'SellerSKU' => 'SKU00002',
|
76
|
+
'Quantity' => '1',
|
77
|
+
'PrepDetailsList' => [
|
78
|
+
{ 'PrepInstruction' => 'Taping', 'PrepOwner' => 'AMAZON' },
|
79
|
+
{ 'PrepInstruction' => 'BubbleWrapping', 'PrepOwner' => 'AMAZON' }
|
80
|
+
]
|
81
|
+
}
|
82
|
+
]
|
83
|
+
@client.create_inbound_shipment_plan(address, request_items,
|
84
|
+
label_prep_preference: 'SELLER_LABEL')
|
48
85
|
end
|
49
86
|
|
50
87
|
assert_equal operation, @client.operation
|
@@ -20,6 +20,13 @@ class TestPeddlerFlatFileParser < MiniTest::Test
|
|
20
20
|
assert counter.positive?
|
21
21
|
end
|
22
22
|
|
23
|
+
def test_works_around_empty_rows
|
24
|
+
body = build_body("Feed Processing Summary:\n\tNumber of records processed\t\t2\n\tNumber of records successful\t\t2\n\nfoo\tbar\n1\ta\n\n2\tb\n",
|
25
|
+
encoding: Encoding::ASCII_8BIT)
|
26
|
+
parser = Peddler::FlatFileParser.new(build_mock_response(body), 'ISO-8859-1')
|
27
|
+
assert_equal 3, parser.parse.count
|
28
|
+
end
|
29
|
+
|
23
30
|
def test_summarises
|
24
31
|
body = build_body("Feed Processing Summary:\n\tNumber of records processed\t\t11006\n\tNumber of records successful\t\t11006\n\noriginal-record-number\tsku\terror-code\terror-type\terror-message\n1822\t85da472e-ba6c-11e3-95af-002590a74356\t5000\tWarning\tThe update for Sku '85da472e-ba6c-11e3-95af-002590a74356' was skipped because it is identical to the update in feed '9518995390'.\n",
|
25
32
|
encoding: Encoding::ASCII_8BIT)
|
@@ -16,11 +16,14 @@ class TestPeddlerOperation < MiniTest::Test
|
|
16
16
|
assert_equal 2, @operation['FooStatus.Foo.2']
|
17
17
|
end
|
18
18
|
|
19
|
-
def
|
20
|
-
@operation.store('Foo.Status', [{ 'Baz' => 1 }])
|
19
|
+
def test_converts_nested_keys_to_structured_list
|
20
|
+
@operation.store('Foo.1.Status', [{ 'Baz' => 1 }])
|
21
|
+
@operation.store('Foo.2.Status', [{ 'Baz' => 2 }])
|
21
22
|
@operation.structure!('Status', 'Bar')
|
22
|
-
refute @operation.key?('
|
23
|
-
|
23
|
+
refute @operation.key?('Foo.1.Status')
|
24
|
+
refute @operation.key?('Foo.2.Status')
|
25
|
+
assert_equal 1, @operation['Foo.1.Status.Bar.1.Baz']
|
26
|
+
assert_equal 2, @operation['Foo.2.Status.Bar.1.Baz']
|
24
27
|
end
|
25
28
|
|
26
29
|
def test_store_camelizes_symbol_key
|
@@ -5,7 +5,7 @@ http_interactions:
|
|
5
5
|
uri: https://mws.amazonservices.com/CartInformation/2014-03-01
|
6
6
|
body:
|
7
7
|
encoding: US-ASCII
|
8
|
-
string: AWSAccessKeyId=
|
8
|
+
string: AWSAccessKeyId=AWS_ACCESS_KEY_ID&Action=GetServiceStatus&SellerId=MERCHANT_ID&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2015-03-28T18%3A10%3A17Z&Version=2014-03-01&Signature=Ld91dAS8OXCk9NNcjb9d4AyEerTSfVMGDAdp7EHmCWU%3D
|
9
9
|
headers:
|
10
10
|
User-Agent:
|
11
11
|
- Jeff/1.2.0 (Language=Ruby; Hakans-MacBook-Pro.local)
|
@@ -50,7 +50,7 @@ http_interactions:
|
|
50
50
|
uri: https://mws-eu.amazonservices.com/CartInformation/2014-03-01
|
51
51
|
body:
|
52
52
|
encoding: US-ASCII
|
53
|
-
string: AWSAccessKeyId=
|
53
|
+
string: AWSAccessKeyId=AWS_ACCESS_KEY_ID&Action=GetServiceStatus&SellerId=MERCHANT_ID&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2015-03-28T18%3A10%3A18Z&Version=2014-03-01&Signature=d4vyZzrPNWdYbhXs5L01DT%2FoERrRfTDWHwyAlSpZb0I%3D
|
54
54
|
headers:
|
55
55
|
User-Agent:
|
56
56
|
- Jeff/1.2.0 (Language=Ruby; Hakans-MacBook-Pro.local)
|
@@ -95,7 +95,7 @@ http_interactions:
|
|
95
95
|
uri: https://mws.amazonservices.jp/CartInformation/2014-03-01
|
96
96
|
body:
|
97
97
|
encoding: US-ASCII
|
98
|
-
string: AWSAccessKeyId=
|
98
|
+
string: AWSAccessKeyId=AWS_ACCESS_KEY_ID&Action=GetServiceStatus&SellerId=MERCHANT_ID&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2015-03-28T18%3A10%3A18Z&Version=2014-03-01&Signature=SAtKF%2FgZvRKDqsTqHPIsaSkE4xSeqa9jroOreysDc1I%3D
|
99
99
|
headers:
|
100
100
|
User-Agent:
|
101
101
|
- Jeff/1.2.0 (Language=Ruby; Hakans-MacBook-Pro.local)
|
@@ -140,7 +140,7 @@ http_interactions:
|
|
140
140
|
uri: https://mws.amazonservices.com/CartInformation/2014-03-01
|
141
141
|
body:
|
142
142
|
encoding: US-ASCII
|
143
|
-
string: AWSAccessKeyId=
|
143
|
+
string: AWSAccessKeyId=AWS_ACCESS_KEY_ID&Action=GetServiceStatus&SellerId=MERCHANT_ID&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2015-03-28T18%3A10%3A20Z&Version=2014-03-01&Signature=W7G0kqHOMU91l%2B731hPIwjZbuNfk%2FuUZh4yEKkcuZKE%3D
|
144
144
|
headers:
|
145
145
|
User-Agent:
|
146
146
|
- Jeff/1.2.0 (Language=Ruby; Hakans-MacBook-Pro.local)
|
@@ -185,7 +185,7 @@ http_interactions:
|
|
185
185
|
uri: https://mws.amazonservices.com/CartInformation/2014-03-01
|
186
186
|
body:
|
187
187
|
encoding: UTF-8
|
188
|
-
string: AWSAccessKeyId=
|
188
|
+
string: AWSAccessKeyId=AWS_ACCESS_KEY_ID&Action=GetServiceStatus&SellerId=MERCHANT_ID&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2016-05-23T12%3A36%3A40Z&Version=2014-03-01&Signature=Tk7nFqDn9DB4%2B9%2FiJRdY6NZXW2PFdxWSmMcNOFpUWTg%3D
|
189
189
|
headers:
|
190
190
|
User-Agent:
|
191
191
|
- Jeff/1.5.1 (Language=Ruby; Hakans-MacBook.home)
|
@@ -235,7 +235,7 @@ http_interactions:
|
|
235
235
|
uri: https://mws-eu.amazonservices.com/CartInformation/2014-03-01
|
236
236
|
body:
|
237
237
|
encoding: UTF-8
|
238
|
-
string: AWSAccessKeyId=
|
238
|
+
string: AWSAccessKeyId=AWS_ACCESS_KEY_ID&Action=GetServiceStatus&SellerId=MERCHANT_ID&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2016-05-23T12%3A36%3A42Z&Version=2014-03-01&Signature=zN1E2KOQnB1%2BhCW13NFgfM8%2BzJ124zPIm20B%2BVjDdqY%3D
|
239
239
|
headers:
|
240
240
|
User-Agent:
|
241
241
|
- Jeff/1.5.1 (Language=Ruby; Hakans-MacBook.home)
|
@@ -285,7 +285,7 @@ http_interactions:
|
|
285
285
|
uri: https://mws-eu.amazonservices.com/CartInformation/2014-03-01
|
286
286
|
body:
|
287
287
|
encoding: UTF-8
|
288
|
-
string: AWSAccessKeyId=
|
288
|
+
string: AWSAccessKeyId=AWS_ACCESS_KEY_ID&Action=GetServiceStatus&SellerId=MERCHANT_ID&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2016-05-23T12%3A36%3A42Z&Version=2014-03-01&Signature=n%2FyWxKdk1zAyN4WMU%2BzjWlf9I1B69JYVDJh2JpL5uTo%3D
|
289
289
|
headers:
|
290
290
|
User-Agent:
|
291
291
|
- Jeff/1.5.1 (Language=Ruby; Hakans-MacBook.home)
|
@@ -335,7 +335,7 @@ http_interactions:
|
|
335
335
|
uri: https://mws-eu.amazonservices.com/CartInformation/2014-03-01
|
336
336
|
body:
|
337
337
|
encoding: UTF-8
|
338
|
-
string: AWSAccessKeyId=
|
338
|
+
string: AWSAccessKeyId=AWS_ACCESS_KEY_ID&Action=GetServiceStatus&SellerId=MERCHANT_ID&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2016-05-23T12%3A36%3A42Z&Version=2014-03-01&Signature=AY%2BsyBHSpK5JJWP5oXnho3Rf7jYJ30pGmvlGaAUnfzs%3D
|
339
339
|
headers:
|
340
340
|
User-Agent:
|
341
341
|
- Jeff/1.5.1 (Language=Ruby; Hakans-MacBook.home)
|
@@ -385,7 +385,7 @@ http_interactions:
|
|
385
385
|
uri: https://mws-eu.amazonservices.com/CartInformation/2014-03-01
|
386
386
|
body:
|
387
387
|
encoding: UTF-8
|
388
|
-
string: AWSAccessKeyId=
|
388
|
+
string: AWSAccessKeyId=AWS_ACCESS_KEY_ID&Action=GetServiceStatus&SellerId=MERCHANT_ID&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2016-05-23T12%3A36%3A43Z&Version=2014-03-01&Signature=7rJDI43OadISwA6AfpHAR6jCvV3ncXcRmU%2B%2BDHziIlY%3D
|
389
389
|
headers:
|
390
390
|
User-Agent:
|
391
391
|
- Jeff/1.5.1 (Language=Ruby; Hakans-MacBook.home)
|
@@ -5,7 +5,7 @@ http_interactions:
|
|
5
5
|
uri: https://mws.amazonservices.com/CustomerInformation/2014-03-01
|
6
6
|
body:
|
7
7
|
encoding: US-ASCII
|
8
|
-
string: AWSAccessKeyId=
|
8
|
+
string: AWSAccessKeyId=AWS_ACCESS_KEY_ID&Action=GetServiceStatus&SellerId=MERCHANT_ID&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2015-03-28T18%3A10%3A34Z&Version=2014-03-01&Signature=1%2FL5NDm5Ouf2bLwtGovQmn54OtIeeZHLfzzBQJfZ6P0%3D
|
9
9
|
headers:
|
10
10
|
User-Agent:
|
11
11
|
- Jeff/1.2.0 (Language=Ruby; Hakans-MacBook-Pro.local)
|
@@ -50,7 +50,7 @@ http_interactions:
|
|
50
50
|
uri: https://mws-eu.amazonservices.com/CustomerInformation/2014-03-01
|
51
51
|
body:
|
52
52
|
encoding: US-ASCII
|
53
|
-
string: AWSAccessKeyId=
|
53
|
+
string: AWSAccessKeyId=AWS_ACCESS_KEY_ID&Action=GetServiceStatus&SellerId=MERCHANT_ID&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2015-03-28T18%3A10%3A35Z&Version=2014-03-01&Signature=0Z0UxCRnrGZoS%2F%2Bjtn%2F3g0dYYiC4fkyDKQayAkIPtzE%3D
|
54
54
|
headers:
|
55
55
|
User-Agent:
|
56
56
|
- Jeff/1.2.0 (Language=Ruby; Hakans-MacBook-Pro.local)
|
@@ -95,7 +95,7 @@ http_interactions:
|
|
95
95
|
uri: https://mws.amazonservices.jp/CustomerInformation/2014-03-01
|
96
96
|
body:
|
97
97
|
encoding: US-ASCII
|
98
|
-
string: AWSAccessKeyId=
|
98
|
+
string: AWSAccessKeyId=AWS_ACCESS_KEY_ID&Action=GetServiceStatus&SellerId=MERCHANT_ID&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2015-03-28T18%3A10%3A36Z&Version=2014-03-01&Signature=nwmUlmdXDSzXRlMIkg3H%2FRVk8WFGs%2FkJYb%2FqMSjQi8U%3D
|
99
99
|
headers:
|
100
100
|
User-Agent:
|
101
101
|
- Jeff/1.2.0 (Language=Ruby; Hakans-MacBook-Pro.local)
|
@@ -140,7 +140,7 @@ http_interactions:
|
|
140
140
|
uri: https://mws.amazonservices.com/CustomerInformation/2014-03-01
|
141
141
|
body:
|
142
142
|
encoding: US-ASCII
|
143
|
-
string: AWSAccessKeyId=
|
143
|
+
string: AWSAccessKeyId=AWS_ACCESS_KEY_ID&Action=GetServiceStatus&SellerId=MERCHANT_ID&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2015-03-28T18%3A10%3A37Z&Version=2014-03-01&Signature=1gtD52L%2FPTkcgT%2FIOt40amQ1%2ByJXM9bXkqJz8ubiHf4%3D
|
144
144
|
headers:
|
145
145
|
User-Agent:
|
146
146
|
- Jeff/1.2.0 (Language=Ruby; Hakans-MacBook-Pro.local)
|
@@ -185,7 +185,7 @@ http_interactions:
|
|
185
185
|
uri: https://mws.amazonservices.com/CustomerInformation/2014-03-01
|
186
186
|
body:
|
187
187
|
encoding: UTF-8
|
188
|
-
string: AWSAccessKeyId=
|
188
|
+
string: AWSAccessKeyId=AWS_ACCESS_KEY_ID&Action=GetServiceStatus&SellerId=MERCHANT_ID&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2016-05-23T12%3A37%3A18Z&Version=2014-03-01&Signature=ulFnKcmr%2Bo3DWGZMbbUllITdAOwwNlHTbQrIcq%2FXWQE%3D
|
189
189
|
headers:
|
190
190
|
User-Agent:
|
191
191
|
- Jeff/1.5.1 (Language=Ruby; Hakans-MacBook.home)
|
@@ -235,7 +235,7 @@ http_interactions:
|
|
235
235
|
uri: https://mws-eu.amazonservices.com/CustomerInformation/2014-03-01
|
236
236
|
body:
|
237
237
|
encoding: UTF-8
|
238
|
-
string: AWSAccessKeyId=
|
238
|
+
string: AWSAccessKeyId=AWS_ACCESS_KEY_ID&Action=GetServiceStatus&SellerId=MERCHANT_ID&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2016-05-23T12%3A37%3A20Z&Version=2014-03-01&Signature=YO2xqZYI%2F5jCYgOq00tHWYklOU8akuk0FHY%2F0X%2F9hrI%3D
|
239
239
|
headers:
|
240
240
|
User-Agent:
|
241
241
|
- Jeff/1.5.1 (Language=Ruby; Hakans-MacBook.home)
|
@@ -285,7 +285,7 @@ http_interactions:
|
|
285
285
|
uri: https://mws-eu.amazonservices.com/CustomerInformation/2014-03-01
|
286
286
|
body:
|
287
287
|
encoding: UTF-8
|
288
|
-
string: AWSAccessKeyId=
|
288
|
+
string: AWSAccessKeyId=AWS_ACCESS_KEY_ID&Action=GetServiceStatus&SellerId=MERCHANT_ID&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2016-05-23T12%3A37%3A21Z&Version=2014-03-01&Signature=NhjhZ7182OzwKG0dPMRbJ5KnB4G2dRdOFCvBFISyLWE%3D
|
289
289
|
headers:
|
290
290
|
User-Agent:
|
291
291
|
- Jeff/1.5.1 (Language=Ruby; Hakans-MacBook.home)
|
@@ -335,7 +335,7 @@ http_interactions:
|
|
335
335
|
uri: https://mws-eu.amazonservices.com/CustomerInformation/2014-03-01
|
336
336
|
body:
|
337
337
|
encoding: UTF-8
|
338
|
-
string: AWSAccessKeyId=
|
338
|
+
string: AWSAccessKeyId=AWS_ACCESS_KEY_ID&Action=GetServiceStatus&SellerId=MERCHANT_ID&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2016-05-23T12%3A37%3A21Z&Version=2014-03-01&Signature=mIV1JMvgycHCj7xRR9wrhkIJLOd30ydlu%2Blh6l43rH0%3D
|
339
339
|
headers:
|
340
340
|
User-Agent:
|
341
341
|
- Jeff/1.5.1 (Language=Ruby; Hakans-MacBook.home)
|
@@ -385,7 +385,7 @@ http_interactions:
|
|
385
385
|
uri: https://mws-eu.amazonservices.com/CustomerInformation/2014-03-01
|
386
386
|
body:
|
387
387
|
encoding: UTF-8
|
388
|
-
string: AWSAccessKeyId=
|
388
|
+
string: AWSAccessKeyId=AWS_ACCESS_KEY_ID&Action=GetServiceStatus&SellerId=MERCHANT_ID&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2016-05-23T12%3A37%3A22Z&Version=2014-03-01&Signature=3FoVyLOV9DSHEVssJRfniw6TtAovo7Vx4TqrhlQCT5c%3D
|
389
389
|
headers:
|
390
390
|
User-Agent:
|
391
391
|
- Jeff/1.5.1 (Language=Ruby; Hakans-MacBook.home)
|