peddler 2.0.4 → 2.1.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.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +12 -18
  3. data/lib/mws/fulfillment_inbound_shipment/client.rb +18 -0
  4. data/lib/mws/fulfillment_outbound_shipment/client.rb +0 -11
  5. data/lib/mws/reports/parser.rb +35 -0
  6. data/lib/peddler/errors/builder.rb +2 -1
  7. data/lib/peddler/errors/class_generator.rb +1 -0
  8. data/lib/peddler/flat_file_parser.rb +1 -0
  9. data/lib/peddler/headers.rb +4 -0
  10. data/lib/peddler/marketplace.rb +1 -0
  11. data/lib/peddler/operation.rb +12 -2
  12. data/lib/peddler/version.rb +1 -1
  13. data/lib/peddler/xml_parser.rb +1 -0
  14. data/lib/peddler/xml_response_parser.rb +1 -1
  15. data/test/helper.rb +1 -0
  16. data/test/integration/test_feeds.rb +3 -3
  17. data/test/integration/test_fulfillment_inbound_shipment.rb +3 -3
  18. data/test/integration/test_fulfillment_inventory.rb +2 -2
  19. data/test/integration/test_fulfillment_outbound_shipment.rb +1 -1
  20. data/test/integration/test_merchant_fulfillment.rb +57 -1
  21. data/test/integration/test_multibyte_queries.rb +1 -1
  22. data/test/integration/test_mws_headers.rb +1 -1
  23. data/test/integration/test_off_amazon_payments.rb +1 -1
  24. data/test/integration/test_orders.rb +2 -2
  25. data/test/integration/test_products.rb +12 -12
  26. data/test/integration/test_recommendations.rb +2 -2
  27. data/test/integration/test_reports.rb +6 -6
  28. data/test/integration/test_sellers.rb +1 -1
  29. data/test/integration/test_subscriptions.rb +3 -3
  30. data/test/integration_helper.rb +9 -7
  31. data/test/unit/mws/test_feeds_client.rb +6 -6
  32. data/test/unit/mws/test_finances_client.rb +5 -5
  33. data/test/unit/mws/test_fulfillment_inbound_shipment_client.rb +40 -24
  34. data/test/unit/mws/test_fulfillment_inventory_client.rb +3 -3
  35. data/test/unit/mws/test_fulfillment_outbound_shipment_client.rb +11 -11
  36. data/test/unit/mws/test_merchant_fulfillment_client.rb +5 -5
  37. data/test/unit/mws/test_off_amazon_payments_client.rb +17 -17
  38. data/test/unit/mws/test_orders_client.rb +7 -7
  39. data/test/unit/mws/test_products_client.rb +15 -15
  40. data/test/unit/mws/test_recommendations_client.rb +4 -4
  41. data/test/unit/mws/test_reports_client.rb +14 -14
  42. data/test/unit/mws/test_sellers_client.rb +3 -3
  43. data/test/unit/mws/test_subscriptions_client.rb +11 -11
  44. data/test/unit/peddler/errors/test_builder.rb +4 -4
  45. data/test/unit/peddler/errors/test_class_generator.rb +1 -1
  46. data/test/unit/peddler/errors/test_error.rb +5 -5
  47. data/test/unit/peddler/errors/test_parser.rb +4 -4
  48. data/test/unit/peddler/test_client.rb +20 -20
  49. data/test/unit/peddler/test_flat_file_parser.rb +11 -11
  50. data/test/unit/peddler/test_headers.rb +1 -1
  51. data/test/unit/peddler/test_marketplace.rb +1 -1
  52. data/test/unit/peddler/test_operation.rb +18 -12
  53. data/test/unit/peddler/test_parser.rb +3 -3
  54. data/test/unit/peddler/test_structured_list.rb +5 -5
  55. data/test/unit/peddler/test_vcr_matcher.rb +4 -4
  56. data/test/unit/peddler/test_xml_parser.rb +3 -3
  57. data/test/unit/peddler/test_xml_response_parser.rb +4 -4
  58. data/test/unit/test_mws.rb +1 -1
  59. data/test/vcr_cassettes/FulfillmentInboundShipment.yml +36 -36
  60. data/test/vcr_cassettes/MerchantFulfillment.yml +309 -1
  61. metadata +3 -2
@@ -4,14 +4,14 @@ require 'helper'
4
4
  require 'peddler/flat_file_parser'
5
5
 
6
6
  class TestPeddlerFlatFileParser < MiniTest::Test
7
- def test_parses_data
7
+ def test_parsing_data
8
8
  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",
9
9
  encoding: Encoding::ASCII_8BIT)
10
10
  parser = Peddler::FlatFileParser.new(build_mock_response(body), 'ISO-8859-1')
11
11
  assert_kind_of CSV::Table, parser.parse
12
12
  end
13
13
 
14
- def test_parses_data_a_line_at_a_time
14
+ def test_parsing_data_a_line_at_a_time
15
15
  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",
16
16
  encoding: Encoding::ASCII_8BIT)
17
17
  parser = Peddler::FlatFileParser.new(build_mock_response(body), 'ISO-8859-1')
@@ -20,21 +20,21 @@ class TestPeddlerFlatFileParser < MiniTest::Test
20
20
  assert counter.positive?
21
21
  end
22
22
 
23
- def test_works_around_empty_rows
23
+ def test_the_work_around_empty_rows
24
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
25
  encoding: Encoding::ASCII_8BIT)
26
26
  parser = Peddler::FlatFileParser.new(build_mock_response(body), 'ISO-8859-1')
27
27
  assert_equal 3, parser.parse.count
28
28
  end
29
29
 
30
- def test_summarises
30
+ def test_summary
31
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",
32
32
  encoding: Encoding::ASCII_8BIT)
33
33
  parser = Peddler::FlatFileParser.new(build_mock_response(body), 'ISO-8859-1')
34
34
  refute_empty parser.records_count
35
35
  end
36
36
 
37
- def test_summarises_non_english_reports
37
+ def test_summary_of_non_english_reports
38
38
  body = build_body("Riepilogo elaborazione feed:\n\tNumero record elaborati\t\t1\n\tNumero record elaborati con successo\t\t1\n\n",
39
39
  encoding: 'Cp1252')
40
40
  parser = Peddler::FlatFileParser.new(build_mock_response(body), 'ISO-8859-1')
@@ -48,38 +48,38 @@ class TestPeddlerFlatFileParser < MiniTest::Test
48
48
  assert parser.valid?
49
49
  end
50
50
 
51
- def test_handles_reports_without_a_summary
51
+ def test_handling_reports_without_a_summary
52
52
  response = OpenStruct.new(body: "Foo\nBar\n")
53
53
  parser = Peddler::FlatFileParser.new(response, 'ISO-8859-1')
54
54
  refute_empty parser.content
55
55
  end
56
56
 
57
- def test_handles_japanese_flat_files
57
+ def test_handling_japanese_flat_files
58
58
  body = build_body("Foo\nこんにちは\n", encoding: Encoding::SHIFT_JIS)
59
59
  parser = Peddler::FlatFileParser.new(build_mock_response(body), Encoding::WINDOWS_31J)
60
60
  assert_equal 'こんにちは', parser.parse[0]['Foo']
61
61
  end
62
62
 
63
- def test_handles_japanese_curly_braces
63
+ def test_handling_japanese_curly_braces
64
64
  body = build_body("Foo\n〝\n", encoding: Encoding::WINDOWS_31J)
65
65
  parser = Peddler::FlatFileParser.new(build_mock_response(body), Encoding::WINDOWS_31J)
66
66
  assert_equal '〝', parser.parse[0]['Foo']
67
67
  end
68
68
 
69
- def test_handles_latin_1_flat_files
69
+ def test_handling_latin_1_flat_files
70
70
  body = build_body("Foo\n™\n", encoding: 'Cp1252')
71
71
  parser = Peddler::FlatFileParser.new(build_mock_response(body), Encoding::CP1252)
72
72
  assert_equal '™', parser.parse['Foo'][0]
73
73
  end
74
74
 
75
- def test_handles_undefined_characters
75
+ def test_handling_undefined_characters
76
76
  body = +"Foo\n\xFF\n"
77
77
  body.force_encoding(Encoding::ASCII_8BIT)
78
78
  parser = Peddler::FlatFileParser.new(build_mock_response(body), Encoding::ASCII_8BIT)
79
79
  assert_equal '�', parser.parse['Foo'][0]
80
80
  end
81
81
 
82
- def test_handles_utf8_flat_files
82
+ def test_handling_utf8_flat_files
83
83
  body = "Foo\nfür\n"
84
84
  parser = Peddler::FlatFileParser.new(build_mock_response(body, ascii: false), Encoding::CP1252)
85
85
  assert_equal 'für', parser.parse['Foo'][0]
@@ -43,7 +43,7 @@ class TestPeddlerHeaders < MiniTest::Test
43
43
  assert mws_response_context
44
44
  end
45
45
 
46
- def test_handles_no_quota
46
+ def test_handling_no_quota
47
47
  @headers = {}
48
48
  assert_nil mws_quota_max
49
49
  assert_nil mws_quota_remaining
@@ -39,7 +39,7 @@ class TestPeddlerMarketplace < MiniTest::Test
39
39
  @marketplace = Peddler::Marketplace.find('US')
40
40
  end
41
41
 
42
- def test_translates_uk
42
+ def test_translation_of_uk_to_gb
43
43
  marketplace = Peddler::Marketplace.find('UK')
44
44
  assert_equal 'GB', marketplace.country_code
45
45
  end
@@ -8,7 +8,7 @@ class TestPeddlerOperation < MiniTest::Test
8
8
  @operation = Peddler::Operation.new('Foo')
9
9
  end
10
10
 
11
- def test_converts_key_to_structured_list
11
+ def test_that_it_converts_key_to_structured_list
12
12
  @operation.store('FooStatus', [1, 2])
13
13
  @operation.structure!('FooStatus', 'Foo')
14
14
  refute @operation.key?('FooStatus')
@@ -16,7 +16,7 @@ class TestPeddlerOperation < MiniTest::Test
16
16
  assert_equal 2, @operation['FooStatus.Foo.2']
17
17
  end
18
18
 
19
- def test_converts_nested_keys_to_structured_list
19
+ def test_that_it_converts_nested_keys_to_structured_list
20
20
  @operation.store('Foo.1.Status', [{ 'Baz' => 1 }])
21
21
  @operation.store('Foo.2.Status', [{ 'Baz' => 2 }])
22
22
  @operation.structure!('Status', 'Bar')
@@ -26,30 +26,36 @@ class TestPeddlerOperation < MiniTest::Test
26
26
  assert_equal 2, @operation['Foo.2.Status.Bar.1.Baz']
27
27
  end
28
28
 
29
- def test_store_camelizes_symbol_key
29
+ def test_that_store_camelizes_symbol_key
30
30
  @operation.store(:foo_bar, 'baz')
31
31
  assert @operation.key?('FooBar')
32
32
  refute @operation.key?(:foo_bar)
33
33
  end
34
34
 
35
- def test_store_wont_camelize_string_key
35
+ def test_that_store_wont_camelize_string_key
36
36
  @operation.store('foo_bar', 'baz')
37
37
  assert @operation.key?('foo_bar')
38
38
  refute @operation.key?('FooBar')
39
39
  end
40
40
 
41
- def test_store_wont_camelize_symbol_key_with_capital_letter
41
+ def test_that_store_wont_camelize_symbol_key_with_capital_letter
42
42
  @operation.store('MarketplaceId'.to_sym, '1')
43
43
  assert @operation.key?('MarketplaceId')
44
44
  end
45
45
 
46
- def test_store_upcases_sku
47
- @operation.store(:seller_sku, 'baz')
46
+ def test_that_store_upcases_sku
47
+ @operation.store(:seller_sku, 'foo')
48
48
  assert @operation.key?('SellerSKU')
49
49
  refute @operation.key?(:seller_sku)
50
50
  end
51
51
 
52
- def test_store_timestamps_time_values
52
+ def test_that_store_upcases_cod
53
+ @operation.store(:include_cod_fulfillment_preview, 'foo')
54
+ assert @operation.key?('IncludeCODFulfillmentPreview')
55
+ refute @operation.key?(:include_cod_fulfillment_preview)
56
+ end
57
+
58
+ def test_that_store_timestamps_time_values
53
59
  ts = Minitest::Mock.new
54
60
  ts.expect(:iso8601, 'foo')
55
61
  @operation.store('time', ts)
@@ -57,25 +63,25 @@ class TestPeddlerOperation < MiniTest::Test
57
63
  assert_equal 'foo', @operation.fetch('time')
58
64
  end
59
65
 
60
- def test_stringifies_hash_values
66
+ def test_stringifying_hash_values
61
67
  @operation.store('Foo', bar: 1)
62
68
  assert_equal 1, @operation.fetch('Foo.Bar')
63
69
  refute @operation.key?('Foo')
64
70
  end
65
71
 
66
- def test_stringifies_nested_hash_values
72
+ def test_stringifying_nested_hash_values
67
73
  @operation.store('Foo', bar: { baz: 1 })
68
74
  assert_equal 1, @operation.fetch('Foo.Bar.Baz')
69
75
  refute @operation.key?('Foo')
70
76
  end
71
77
 
72
- def test_stringifies_struct_values
78
+ def test_stringifying_struct_values
73
79
  @operation.store('Foo', Struct.new(:bar, :baz).new(1, 2))
74
80
  assert_equal 1, @operation.fetch('Foo.Bar')
75
81
  assert_equal 2, @operation.fetch('Foo.Baz')
76
82
  end
77
83
 
78
- def test_update_returns_delegator
84
+ def test_that_update_returns_delegator
79
85
  assert_kind_of Peddler::Operation, @operation.add(foo: 'bar')
80
86
  end
81
87
  end
@@ -16,19 +16,19 @@ class TestPeddlerParser < MiniTest::Test
16
16
  end
17
17
  end
18
18
 
19
- def test_parses_xml
19
+ def test_parsing_xml
20
20
  assert_parser Peddler::XMLParser,
21
21
  'text/xml',
22
22
  'text/xml; charset=UTF-8'
23
23
  end
24
24
 
25
- def test_parses_incorrect_content_type
25
+ def test_parsing_incorrect_content_type
26
26
  assert_parser Peddler::XMLParser,
27
27
  'xml; charset=UTF-8',
28
28
  body: '<?xml version="1.0"?><GetLowestOfferListingsForASINResponse>...'
29
29
  end
30
30
 
31
- def test_parses_flat_files
31
+ def test_parsing_flat_files
32
32
  assert_parser Peddler::FlatFileParser,
33
33
  'text/plain',
34
34
  'application/octet-stream'
@@ -8,29 +8,29 @@ class TestPeddlerStructuredList < MiniTest::Test
8
8
  @list = Peddler::StructuredList.new('OrderStatus', 'Status')
9
9
  end
10
10
 
11
- def test_builds_a_structured_list_for_a_single_value
11
+ def test_building_a_structured_list_for_a_single_value
12
12
  exp = { 'OrderStatus.Status.1' => 'foo' }
13
13
  assert_equal exp, @list.build('foo')
14
14
  end
15
15
 
16
- def test_builds_a_structured_list_for_an_array_of_values
16
+ def test_building_a_structured_list_for_an_array_of_values
17
17
  exp = { 'OrderStatus.Status.1' => 'foo', 'OrderStatus.Status.2' => 'bar' }
18
18
  assert_equal exp, @list.build(%w[foo bar])
19
19
  end
20
20
 
21
- def test_flattens_nested_arrays_of_values
21
+ def test_flattening_nested_arrays_of_values
22
22
  exp = { 'OrderStatus.Status.1' => 'foo', 'OrderStatus.Status.2' => 'bar' }
23
23
  assert_equal exp, @list.build([%w[foo bar]])
24
24
  end
25
25
 
26
- def test_handles_single_key
26
+ def test_handling_single_key
27
27
  list = Peddler::StructuredList.new('Foo')
28
28
  exp = { 'Foo.1' => 'bar' }
29
29
 
30
30
  assert_equal exp, list.build('bar')
31
31
  end
32
32
 
33
- def test_handles_more_than_two_keys
33
+ def test_handling_more_than_two_keys
34
34
  list = Peddler::StructuredList.new('QueryList', 'Query', '1', 'FilterOptions', 'FilterOption')
35
35
  exp = { 'QueryList.Query.1.FilterOptions.FilterOption.1' => 'foo' }
36
36
 
@@ -13,7 +13,7 @@ class TestPeddlerVCRMatcher < MiniTest::Test
13
13
  VCR.insert_cassette(test_name)
14
14
  end
15
15
 
16
- def test_matches_recorded_post_without_body
16
+ def test_matching_recorded_post_without_body
17
17
  client.run
18
18
  end
19
19
 
@@ -24,12 +24,12 @@ class TestPeddlerVCRMatcher < MiniTest::Test
24
24
  end
25
25
  end
26
26
 
27
- def test_matches_recorded_post_with_body
27
+ def test_matching_recorded_post_with_body
28
28
  client.body = 'content'
29
29
  client.run
30
30
  end
31
31
 
32
- def test_wont_match_unrecorded_post_with_different_query_and_same_body
32
+ def test_that_it_wont_match_unrecorded_post_with_different_query_and_same_body
33
33
  client.operation.add(foo: 'bar')
34
34
  client.body = 'content'
35
35
  assert_raises(VCR::Errors::UnhandledHTTPRequestError) do
@@ -37,7 +37,7 @@ class TestPeddlerVCRMatcher < MiniTest::Test
37
37
  end
38
38
  end
39
39
 
40
- def test_wont_match_unrecorded_post_with_same_query_and_different_body
40
+ def test_that_it_wont_match_unrecorded_post_with_same_query_and_different_body
41
41
  client.body = 'other content'
42
42
  assert_raises(VCR::Errors::UnhandledHTTPRequestError) do
43
43
  client.run
@@ -20,18 +20,18 @@ class TestPeddlerXMLParser < MiniTest::Test
20
20
  @parser = Parser.new(res)
21
21
  end
22
22
 
23
- def test_does_not_implement_parsing
23
+ def test_that_it_does_not_implement_parsing
24
24
  assert_raises(NotImplementedError) do
25
25
  @parser.parse
26
26
  end
27
27
  end
28
28
 
29
- def test_digs_data
29
+ def test_digging_data
30
30
  @parser.instance_variable_set :@data, foo: { bar: :baz }
31
31
  assert_equal :baz, @parser.dig(:foo, :bar)
32
32
  end
33
33
 
34
- def test_validates
34
+ def test_validation
35
35
  assert @parser.valid?
36
36
  end
37
37
  end
@@ -4,25 +4,25 @@ require 'helper'
4
4
  require 'peddler/xml_response_parser'
5
5
 
6
6
  class TestPeddlerXMLResponseParser < MiniTest::Test
7
- def test_parses_responses
7
+ def test_parsing_responses
8
8
  body = '<Response><Result><Foo>Bar</Foo></Result></Response>'
9
9
  parser = Peddler::XMLResponseParser.new(response(body))
10
10
  assert_equal 'Bar', parser.parse['Foo']
11
11
  end
12
12
 
13
- def test_parses_messages
13
+ def test_parsing_messages
14
14
  body = '<Response><MessageType>ProcessingReport</MessageType><Message><Foo>Bar</Foo></Message></Response>'
15
15
  parser = Peddler::XMLResponseParser.new(response(body))
16
16
  assert_equal 'Bar', parser.parse['Foo']
17
17
  end
18
18
 
19
- def test_parses_reports
19
+ def test_parsing_reports
20
20
  body = '<fooReports><fooReport><foo>Bar</foo></fooReport></fooReports>'
21
21
  parser = Peddler::XMLResponseParser.new(response(body))
22
22
  assert_equal 'Bar', parser.parse['foo']
23
23
  end
24
24
 
25
- def test_parses_next_token
25
+ def test_parsing_next_token
26
26
  body = '<Response><Result><NextToken>123</NextToken></Result></Response>'
27
27
  parser = Peddler::XMLResponseParser.new(response(body))
28
28
  assert_equal '123', parser.next_token
@@ -4,7 +4,7 @@ require 'helper'
4
4
  require 'mws'
5
5
 
6
6
  class Test < MiniTest::Test
7
- def test_delegates_to_apis
7
+ def test_delegation_to_apis
8
8
  assert_equal MWS.constants.size, MWS.methods(false).size
9
9
  assert_kind_of MWS::Products::Client, MWS.products
10
10
  end
@@ -46,12 +46,12 @@ http_interactions:
46
46
  <LabelPrepType>SELLER_LABEL</LabelPrepType>
47
47
  <DestinationFulfillmentCenterId>IND1</DestinationFulfillmentCenterId>
48
48
  <ShipToAddress>
49
- <City>Whitestown</City>
49
+ <City>FILTERED</City>
50
50
  <CountryCode>US</CountryCode>
51
51
  <PostalCode>FILTERED</PostalCode>
52
52
  <Name>FILTERED</Name>
53
53
  <AddressLine1>FILTERED</AddressLine1>
54
- <StateOrProvinceCode>IN</StateOrProvinceCode>
54
+ <StateOrProvinceCode>FILTERED</StateOrProvinceCode>
55
55
  </ShipToAddress>
56
56
  <Items>
57
57
  <member>
@@ -116,12 +116,12 @@ http_interactions:
116
116
  <LabelPrepType>SELLER_LABEL</LabelPrepType>
117
117
  <DestinationFulfillmentCenterId>IND1</DestinationFulfillmentCenterId>
118
118
  <ShipToAddress>
119
- <City>Whitestown</City>
119
+ <City>FILTERED</City>
120
120
  <CountryCode>US</CountryCode>
121
121
  <PostalCode>FILTERED</PostalCode>
122
122
  <Name>FILTERED</Name>
123
123
  <AddressLine1>FILTERED</AddressLine1>
124
- <StateOrProvinceCode>IN</StateOrProvinceCode>
124
+ <StateOrProvinceCode>FILTERED</StateOrProvinceCode>
125
125
  </ShipToAddress>
126
126
  <Items>
127
127
  <member>
@@ -186,12 +186,12 @@ http_interactions:
186
186
  <LabelPrepType>SELLER_LABEL</LabelPrepType>
187
187
  <DestinationFulfillmentCenterId>IND1</DestinationFulfillmentCenterId>
188
188
  <ShipToAddress>
189
- <City>Whitestown</City>
189
+ <City>FILTERED</City>
190
190
  <CountryCode>US</CountryCode>
191
191
  <PostalCode>FILTERED</PostalCode>
192
192
  <Name>FILTERED</Name>
193
193
  <AddressLine1>FILTERED</AddressLine1>
194
- <StateOrProvinceCode>IN</StateOrProvinceCode>
194
+ <StateOrProvinceCode>FILTERED</StateOrProvinceCode>
195
195
  </ShipToAddress>
196
196
  <Items>
197
197
  <member>
@@ -256,12 +256,12 @@ http_interactions:
256
256
  <LabelPrepType>SELLER_LABEL</LabelPrepType>
257
257
  <DestinationFulfillmentCenterId>IND1</DestinationFulfillmentCenterId>
258
258
  <ShipToAddress>
259
- <City>Whitestown</City>
259
+ <City>FILTERED</City>
260
260
  <CountryCode>US</CountryCode>
261
261
  <PostalCode>FILTERED</PostalCode>
262
262
  <Name>FILTERED</Name>
263
263
  <AddressLine1>FILTERED</AddressLine1>
264
- <StateOrProvinceCode>IN</StateOrProvinceCode>
264
+ <StateOrProvinceCode>FILTERED</StateOrProvinceCode>
265
265
  </ShipToAddress>
266
266
  <Items>
267
267
  <member>
@@ -756,12 +756,12 @@ http_interactions:
756
756
  <LabelPrepType>SELLER_LABEL</LabelPrepType>
757
757
  <DestinationFulfillmentCenterId>IND1</DestinationFulfillmentCenterId>
758
758
  <ShipToAddress>
759
- <City>Whitestown</City>
759
+ <City>FILTERED</City>
760
760
  <CountryCode>US</CountryCode>
761
761
  <PostalCode>FILTERED</PostalCode>
762
762
  <Name>FILTERED</Name>
763
763
  <AddressLine1>FILTERED</AddressLine1>
764
- <StateOrProvinceCode>IN</StateOrProvinceCode>
764
+ <StateOrProvinceCode>FILTERED</StateOrProvinceCode>
765
765
  </ShipToAddress>
766
766
  <Items>
767
767
  <member>
@@ -826,12 +826,12 @@ http_interactions:
826
826
  <LabelPrepType>SELLER_LABEL</LabelPrepType>
827
827
  <DestinationFulfillmentCenterId>IND1</DestinationFulfillmentCenterId>
828
828
  <ShipToAddress>
829
- <City>Whitestown</City>
829
+ <City>FILTERED</City>
830
830
  <CountryCode>US</CountryCode>
831
831
  <PostalCode>FILTERED</PostalCode>
832
832
  <Name>FILTERED</Name>
833
833
  <AddressLine1>FILTERED</AddressLine1>
834
- <StateOrProvinceCode>IN</StateOrProvinceCode>
834
+ <StateOrProvinceCode>FILTERED</StateOrProvinceCode>
835
835
  </ShipToAddress>
836
836
  <Items>
837
837
  <member>
@@ -896,12 +896,12 @@ http_interactions:
896
896
  <LabelPrepType>SELLER_LABEL</LabelPrepType>
897
897
  <DestinationFulfillmentCenterId>IND1</DestinationFulfillmentCenterId>
898
898
  <ShipToAddress>
899
- <City>Whitestown</City>
899
+ <City>FILTERED</City>
900
900
  <CountryCode>US</CountryCode>
901
901
  <PostalCode>FILTERED</PostalCode>
902
902
  <Name>FILTERED</Name>
903
903
  <AddressLine1>FILTERED</AddressLine1>
904
- <StateOrProvinceCode>IN</StateOrProvinceCode>
904
+ <StateOrProvinceCode>FILTERED</StateOrProvinceCode>
905
905
  </ShipToAddress>
906
906
  <Items>
907
907
  <member>
@@ -966,12 +966,12 @@ http_interactions:
966
966
  <LabelPrepType>SELLER_LABEL</LabelPrepType>
967
967
  <DestinationFulfillmentCenterId>IND1</DestinationFulfillmentCenterId>
968
968
  <ShipToAddress>
969
- <City>Whitestown</City>
969
+ <City>FILTERED</City>
970
970
  <CountryCode>US</CountryCode>
971
971
  <PostalCode>FILTERED</PostalCode>
972
972
  <Name>FILTERED</Name>
973
973
  <AddressLine1>FILTERED</AddressLine1>
974
- <StateOrProvinceCode>IN</StateOrProvinceCode>
974
+ <StateOrProvinceCode>FILTERED</StateOrProvinceCode>
975
975
  </ShipToAddress>
976
976
  <Items>
977
977
  <member>
@@ -1036,12 +1036,12 @@ http_interactions:
1036
1036
  <LabelPrepType>SELLER_LABEL</LabelPrepType>
1037
1037
  <DestinationFulfillmentCenterId>IND1</DestinationFulfillmentCenterId>
1038
1038
  <ShipToAddress>
1039
- <City>Whitestown</City>
1039
+ <City>FILTERED</City>
1040
1040
  <CountryCode>US</CountryCode>
1041
1041
  <PostalCode>FILTERED</PostalCode>
1042
1042
  <Name>FILTERED</Name>
1043
1043
  <AddressLine1>FILTERED</AddressLine1>
1044
- <StateOrProvinceCode>IN</StateOrProvinceCode>
1044
+ <StateOrProvinceCode>FILTERED</StateOrProvinceCode>
1045
1045
  </ShipToAddress>
1046
1046
  <Items>
1047
1047
  <member>
@@ -1108,12 +1108,12 @@ http_interactions:
1108
1108
  <DestinationFulfillmentCenterId>IND1</DestinationFulfillmentCenterId>
1109
1109
  <LabelPrepType>SELLER_LABEL</LabelPrepType>
1110
1110
  <ShipToAddress>
1111
- <City>Whitestown</City>
1111
+ <City>FILTERED</City>
1112
1112
  <CountryCode>US</CountryCode>
1113
1113
  <PostalCode>FILTERED</PostalCode>
1114
1114
  <Name>FILTERED</Name>
1115
1115
  <AddressLine1>FILTERED</AddressLine1>
1116
- <StateOrProvinceCode>IN</StateOrProvinceCode>
1116
+ <StateOrProvinceCode>FILTERED</StateOrProvinceCode>
1117
1117
  </ShipToAddress>
1118
1118
  <Items>
1119
1119
  <member>
@@ -1675,12 +1675,12 @@ http_interactions:
1675
1675
  <DestinationFulfillmentCenterId>IND1</DestinationFulfillmentCenterId>
1676
1676
  <LabelPrepType>SELLER_LABEL</LabelPrepType>
1677
1677
  <ShipToAddress>
1678
- <City>Whitestown</City>
1678
+ <City>FILTERED</City>
1679
1679
  <CountryCode>US</CountryCode>
1680
1680
  <PostalCode>FILTERED</PostalCode>
1681
1681
  <Name>FILTERED</Name>
1682
1682
  <AddressLine1>FILTERED</AddressLine1>
1683
- <StateOrProvinceCode>IN</StateOrProvinceCode>
1683
+ <StateOrProvinceCode>FILTERED</StateOrProvinceCode>
1684
1684
  </ShipToAddress>
1685
1685
  <Items>
1686
1686
  <member>
@@ -2242,12 +2242,12 @@ http_interactions:
2242
2242
  <DestinationFulfillmentCenterId>IND1</DestinationFulfillmentCenterId>
2243
2243
  <LabelPrepType>SELLER_LABEL</LabelPrepType>
2244
2244
  <ShipToAddress>
2245
- <City>Whitestown</City>
2245
+ <City>FILTERED</City>
2246
2246
  <CountryCode>US</CountryCode>
2247
2247
  <PostalCode>FILTERED</PostalCode>
2248
2248
  <Name>FILTERED</Name>
2249
2249
  <AddressLine1>FILTERED</AddressLine1>
2250
- <StateOrProvinceCode>IN</StateOrProvinceCode>
2250
+ <StateOrProvinceCode>FILTERED</StateOrProvinceCode>
2251
2251
  </ShipToAddress>
2252
2252
  <Items>
2253
2253
  <member>
@@ -2809,12 +2809,12 @@ http_interactions:
2809
2809
  <DestinationFulfillmentCenterId>IND1</DestinationFulfillmentCenterId>
2810
2810
  <LabelPrepType>SELLER_LABEL</LabelPrepType>
2811
2811
  <ShipToAddress>
2812
- <City>Whitestown</City>
2812
+ <City>FILTERED</City>
2813
2813
  <CountryCode>US</CountryCode>
2814
2814
  <PostalCode>FILTERED</PostalCode>
2815
2815
  <Name>FILTERED</Name>
2816
2816
  <AddressLine1>FILTERED</AddressLine1>
2817
- <StateOrProvinceCode>IN</StateOrProvinceCode>
2817
+ <StateOrProvinceCode>FILTERED</StateOrProvinceCode>
2818
2818
  </ShipToAddress>
2819
2819
  <Items>
2820
2820
  <member>
@@ -3376,12 +3376,12 @@ http_interactions:
3376
3376
  <DestinationFulfillmentCenterId>IND1</DestinationFulfillmentCenterId>
3377
3377
  <LabelPrepType>SELLER_LABEL</LabelPrepType>
3378
3378
  <ShipToAddress>
3379
- <City>Whitestown</City>
3379
+ <City>FILTERED</City>
3380
3380
  <CountryCode>US</CountryCode>
3381
3381
  <PostalCode>FILTERED</PostalCode>
3382
3382
  <Name>FILTERED</Name>
3383
3383
  <AddressLine1>FILTERED</AddressLine1>
3384
- <StateOrProvinceCode>IN</StateOrProvinceCode>
3384
+ <StateOrProvinceCode>FILTERED</StateOrProvinceCode>
3385
3385
  </ShipToAddress>
3386
3386
  <Items>
3387
3387
  <member>
@@ -3943,12 +3943,12 @@ http_interactions:
3943
3943
  <DestinationFulfillmentCenterId>IND1</DestinationFulfillmentCenterId>
3944
3944
  <LabelPrepType>SELLER_LABEL</LabelPrepType>
3945
3945
  <ShipToAddress>
3946
- <City>Whitestown</City>
3946
+ <City>FILTERED</City>
3947
3947
  <CountryCode>US</CountryCode>
3948
3948
  <PostalCode>FILTERED</PostalCode>
3949
3949
  <Name>FILTERED</Name>
3950
3950
  <AddressLine1>FILTERED</AddressLine1>
3951
- <StateOrProvinceCode>IN</StateOrProvinceCode>
3951
+ <StateOrProvinceCode>FILTERED</StateOrProvinceCode>
3952
3952
  </ShipToAddress>
3953
3953
  <Items>
3954
3954
  <member>
@@ -4510,12 +4510,12 @@ http_interactions:
4510
4510
  <DestinationFulfillmentCenterId>IND1</DestinationFulfillmentCenterId>
4511
4511
  <LabelPrepType>SELLER_LABEL</LabelPrepType>
4512
4512
  <ShipToAddress>
4513
- <City>Whitestown</City>
4513
+ <City>FILTERED</City>
4514
4514
  <CountryCode>US</CountryCode>
4515
4515
  <PostalCode>FILTERED</PostalCode>
4516
4516
  <Name>FILTERED</Name>
4517
4517
  <AddressLine1>FILTERED</AddressLine1>
4518
- <StateOrProvinceCode>IN</StateOrProvinceCode>
4518
+ <StateOrProvinceCode>FILTERED</StateOrProvinceCode>
4519
4519
  </ShipToAddress>
4520
4520
  <Items>
4521
4521
  <member>
@@ -5077,12 +5077,12 @@ http_interactions:
5077
5077
  <DestinationFulfillmentCenterId>IND1</DestinationFulfillmentCenterId>
5078
5078
  <LabelPrepType>SELLER_LABEL</LabelPrepType>
5079
5079
  <ShipToAddress>
5080
- <City>Whitestown</City>
5080
+ <City>FILTERED</City>
5081
5081
  <CountryCode>US</CountryCode>
5082
5082
  <PostalCode>FILTERED</PostalCode>
5083
5083
  <Name>FILTERED</Name>
5084
5084
  <AddressLine1>FILTERED</AddressLine1>
5085
- <StateOrProvinceCode>IN</StateOrProvinceCode>
5085
+ <StateOrProvinceCode>FILTERED</StateOrProvinceCode>
5086
5086
  </ShipToAddress>
5087
5087
  <Items>
5088
5088
  <member>
@@ -5644,12 +5644,12 @@ http_interactions:
5644
5644
  <DestinationFulfillmentCenterId>IND1</DestinationFulfillmentCenterId>
5645
5645
  <LabelPrepType>SELLER_LABEL</LabelPrepType>
5646
5646
  <ShipToAddress>
5647
- <City>Whitestown</City>
5647
+ <City>FILTERED</City>
5648
5648
  <CountryCode>US</CountryCode>
5649
5649
  <PostalCode>FILTERED</PostalCode>
5650
5650
  <Name>FILTERED</Name>
5651
5651
  <AddressLine1>FILTERED</AddressLine1>
5652
- <StateOrProvinceCode>IN</StateOrProvinceCode>
5652
+ <StateOrProvinceCode>FILTERED</StateOrProvinceCode>
5653
5653
  </ShipToAddress>
5654
5654
  <Items>
5655
5655
  <member>