peddler 2.0.0 → 2.0.3

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.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +7 -6
  3. data/lib/mws/feeds/client.rb +1 -0
  4. data/lib/mws/fulfillment_inbound_shipment/client.rb +3 -0
  5. data/lib/peddler/errors/builder.rb +0 -2
  6. data/lib/peddler/flat_file_parser.rb +3 -2
  7. data/lib/peddler/marketplace.rb +3 -4
  8. data/lib/peddler/operation.rb +7 -6
  9. data/lib/peddler/parser.rb +4 -5
  10. data/lib/peddler/version.rb +1 -1
  11. data/test/integration/test_orders.rb +2 -2
  12. data/test/integration/test_reports.rb +1 -1
  13. data/test/integration_helper.rb +2 -2
  14. data/test/unit/mws/test_fulfillment_inbound_shipment_client.rb +40 -3
  15. data/test/unit/peddler/test_flat_file_parser.rb +7 -0
  16. data/test/unit/peddler/test_operation.rb +7 -4
  17. data/test/vcr_cassettes/CartInformation.yml +9 -9
  18. data/test/vcr_cassettes/CustomerInformation.yml +9 -9
  19. data/test/vcr_cassettes/Errors.yml +18 -18
  20. data/test/vcr_cassettes/Feeds.yml +108 -108
  21. data/test/vcr_cassettes/FulfillmentInboundShipment.yml +27 -27
  22. data/test/vcr_cassettes/FulfillmentInventory.yml +18 -18
  23. data/test/vcr_cassettes/FulfillmentOutboundShipment.yml +9 -9
  24. data/test/vcr_cassettes/MWSHeaders.yml +9 -9
  25. data/test/vcr_cassettes/MerchantFulfillment.yml +9 -9
  26. data/test/vcr_cassettes/MultibyteQueries.yml +9 -9
  27. data/test/vcr_cassettes/OffAmazonPayments.yml +9 -9
  28. data/test/vcr_cassettes/Orders.yml +27 -27
  29. data/test/vcr_cassettes/Products.yml +81 -81
  30. data/test/vcr_cassettes/Recommendations.yml +18 -18
  31. data/test/vcr_cassettes/Reports.yml +189 -189
  32. data/test/vcr_cassettes/Sellers.yml +9 -9
  33. data/test/vcr_cassettes/Subscriptions.yml +27 -27
  34. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5bcc09df9ec8e72bf5ed2fc5f08bf6a4993bbbbcc9ddf20ae470d55f640a02fb
4
- data.tar.gz: 22934c9e74c6e03783d159ee436bfeeff8e90ee5f4053034228874f7a53c707c
3
+ metadata.gz: ab8bcb8e672611aae106acc48115ea0bc464386bfd132d9e63a9f79ec65a98e2
4
+ data.tar.gz: e9f7a329ded38e2ef63d3a339a925dbaf7696e2d58e7d59851f66fbb1aa7326e
5
5
  SHA512:
6
- metadata.gz: c2da04631b697f1715ecfc878d018685a3791eca496384cc6a96a602173b3244d5c3bb17c0d0b1fab6236eb7d1678f278aadb75acce5a6393822026c324c01c7
7
- data.tar.gz: 26977e23909f476a1b7f90c5a5b33baa4824391bd2bc6b5c5f212f75f64cd50f8091ab0634ff89bbdf31e76799072d5caf4e1bedcc605b72030f471a2c355678
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 [register as an application developer](https://docs.developer.amazonservices.com/en_US/dev_guide/DG_Registering.html#DG_Registering__RegisteringAsADeveloper).
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
- client = MWS.orders(marketplace: "ATVPDKIKX0DER",
52
- merchant_id: "123",
53
- auth_token: "123")
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
- [Read Amazon's tips on how to avoid throttling](https://docs.developer.amazonservices.com/en_US/dev_guide/DG_Throttling.html).
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 example in <a href="#throttling">above</a>.
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&section=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
 
@@ -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
@@ -39,8 +39,6 @@ module Peddler
39
39
  end
40
40
 
41
41
  def error_class
42
- Errors.const_get(error_name)
43
- rescue NameError
44
42
  ClassGenerator.call(error_name)
45
43
  end
46
44
 
@@ -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) if content
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.include?("\n\n")
46
+ @summary, @content = @content.split("\n\n", 2) if @content =~ /\t\t.*\n\n/
46
47
  end
47
48
 
48
49
  def summarize
@@ -39,10 +39,9 @@ module Peddler
39
39
  end
40
40
  end
41
41
 
42
- # Caveat: We use the supersets Windows-31J and CP1252 in place of Shift_JIS
43
- # and ISO 8859-1 respectively to handle edge cases where latter will not
44
- # support some characters. The supersets should be safe to use as drop-in
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'
@@ -15,12 +15,13 @@ module Peddler
15
15
 
16
16
  def structure!(*list_keys)
17
17
  list_key = list_keys.shift
18
- found_key = keys.find { |key| key.end_with?(list_key) }
19
- if found_key
20
- builder = StructuredList.new(found_key, *list_keys)
21
- vals = delete(found_key)
22
- update(builder.build(vals))
23
- end
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
@@ -7,8 +7,8 @@ module Peddler
7
7
  # @api private
8
8
  module Parser
9
9
  class << self
10
- # The inevitable-seeming messiness of massaging data produced by a motley
11
- # army of Amazon developers
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, so we
20
- # simply assume that anything not XML is a flat file rather than code
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Peddler
4
- VERSION = '2.0.0'
4
+ VERSION = '2.0.3'
5
5
  end
@@ -14,8 +14,8 @@ class TestOrders < IntegrationTest
14
14
 
15
15
  next if order_ids.count < 2
16
16
 
17
- orders = client.get_order(*order_ids)
18
- .dig('Orders', 'Order')
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
@@ -45,7 +45,7 @@ class TestReports < IntegrationTest
45
45
  id = res.parse['ReportInfo']['ReportId']
46
46
  res = client.get_report(id)
47
47
  assert res.valid?
48
- refute_empty res.parse || res.records_count
48
+ assert res.records_count || res.parse
49
49
  end
50
50
  end
51
51
  end
@@ -45,7 +45,7 @@ VCR.configure do |c|
45
45
  end
46
46
 
47
47
  Credentials.each do |record|
48
- c.filter_sensitive_data('FILTERED') { record['merchant_id'] }
49
- c.filter_sensitive_data('FILTERED') { record['aws_access_key_id'] }
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
- 'ShipFromAddress.Foo' => '1',
43
- 'InboundShipmentPlanRequestItems.member.1.Bar' => '2'
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
- @client.create_inbound_shipment_plan({ 'Foo' => '1' }, [{ 'Bar' => '2' }])
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 test_converts_nested_key_to_structured_list
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?('FooStatus')
23
- assert_equal 1, @operation['Foo.Status.Bar.1.Baz']
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=FILTERED&Action=GetServiceStatus&SellerId=FILTERED&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2015-03-28T18%3A10%3A17Z&Version=2014-03-01&Signature=Ld91dAS8OXCk9NNcjb9d4AyEerTSfVMGDAdp7EHmCWU%3D
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=FILTERED&Action=GetServiceStatus&SellerId=FILTERED&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2015-03-28T18%3A10%3A18Z&Version=2014-03-01&Signature=d4vyZzrPNWdYbhXs5L01DT%2FoERrRfTDWHwyAlSpZb0I%3D
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=FILTERED&Action=GetServiceStatus&SellerId=FILTERED&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2015-03-28T18%3A10%3A18Z&Version=2014-03-01&Signature=SAtKF%2FgZvRKDqsTqHPIsaSkE4xSeqa9jroOreysDc1I%3D
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=FILTERED&Action=GetServiceStatus&SellerId=FILTERED&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2015-03-28T18%3A10%3A20Z&Version=2014-03-01&Signature=W7G0kqHOMU91l%2B731hPIwjZbuNfk%2FuUZh4yEKkcuZKE%3D
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=FILTERED&Action=GetServiceStatus&SellerId=FILTERED&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2016-05-23T12%3A36%3A40Z&Version=2014-03-01&Signature=Tk7nFqDn9DB4%2B9%2FiJRdY6NZXW2PFdxWSmMcNOFpUWTg%3D
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=FILTERED&Action=GetServiceStatus&SellerId=FILTERED&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2016-05-23T12%3A36%3A42Z&Version=2014-03-01&Signature=zN1E2KOQnB1%2BhCW13NFgfM8%2BzJ124zPIm20B%2BVjDdqY%3D
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=FILTERED&Action=GetServiceStatus&SellerId=FILTERED&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2016-05-23T12%3A36%3A42Z&Version=2014-03-01&Signature=n%2FyWxKdk1zAyN4WMU%2BzjWlf9I1B69JYVDJh2JpL5uTo%3D
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=FILTERED&Action=GetServiceStatus&SellerId=FILTERED&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2016-05-23T12%3A36%3A42Z&Version=2014-03-01&Signature=AY%2BsyBHSpK5JJWP5oXnho3Rf7jYJ30pGmvlGaAUnfzs%3D
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=FILTERED&Action=GetServiceStatus&SellerId=FILTERED&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2016-05-23T12%3A36%3A43Z&Version=2014-03-01&Signature=7rJDI43OadISwA6AfpHAR6jCvV3ncXcRmU%2B%2BDHziIlY%3D
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=FILTERED&Action=GetServiceStatus&SellerId=FILTERED&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2015-03-28T18%3A10%3A34Z&Version=2014-03-01&Signature=1%2FL5NDm5Ouf2bLwtGovQmn54OtIeeZHLfzzBQJfZ6P0%3D
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=FILTERED&Action=GetServiceStatus&SellerId=FILTERED&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2015-03-28T18%3A10%3A35Z&Version=2014-03-01&Signature=0Z0UxCRnrGZoS%2F%2Bjtn%2F3g0dYYiC4fkyDKQayAkIPtzE%3D
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=FILTERED&Action=GetServiceStatus&SellerId=FILTERED&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2015-03-28T18%3A10%3A36Z&Version=2014-03-01&Signature=nwmUlmdXDSzXRlMIkg3H%2FRVk8WFGs%2FkJYb%2FqMSjQi8U%3D
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=FILTERED&Action=GetServiceStatus&SellerId=FILTERED&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2015-03-28T18%3A10%3A37Z&Version=2014-03-01&Signature=1gtD52L%2FPTkcgT%2FIOt40amQ1%2ByJXM9bXkqJz8ubiHf4%3D
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=FILTERED&Action=GetServiceStatus&SellerId=FILTERED&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2016-05-23T12%3A37%3A18Z&Version=2014-03-01&Signature=ulFnKcmr%2Bo3DWGZMbbUllITdAOwwNlHTbQrIcq%2FXWQE%3D
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=FILTERED&Action=GetServiceStatus&SellerId=FILTERED&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2016-05-23T12%3A37%3A20Z&Version=2014-03-01&Signature=YO2xqZYI%2F5jCYgOq00tHWYklOU8akuk0FHY%2F0X%2F9hrI%3D
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=FILTERED&Action=GetServiceStatus&SellerId=FILTERED&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2016-05-23T12%3A37%3A21Z&Version=2014-03-01&Signature=NhjhZ7182OzwKG0dPMRbJ5KnB4G2dRdOFCvBFISyLWE%3D
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=FILTERED&Action=GetServiceStatus&SellerId=FILTERED&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2016-05-23T12%3A37%3A21Z&Version=2014-03-01&Signature=mIV1JMvgycHCj7xRR9wrhkIJLOd30ydlu%2Blh6l43rH0%3D
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=FILTERED&Action=GetServiceStatus&SellerId=FILTERED&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2016-05-23T12%3A37%3A22Z&Version=2014-03-01&Signature=3FoVyLOV9DSHEVssJRfniw6TtAovo7Vx4TqrhlQCT5c%3D
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)