peddler 1.6.7 → 2.0.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 +69 -67
  3. data/lib/mws/feeds/client.rb +15 -12
  4. data/lib/mws/finances/client.rb +12 -11
  5. data/lib/mws/fulfillment_inbound_shipment/client.rb +79 -107
  6. data/lib/mws/fulfillment_inventory/client.rb +5 -5
  7. data/lib/mws/fulfillment_outbound_shipment/client.rb +36 -44
  8. data/lib/mws/merchant_fulfillment/client.rb +11 -17
  9. data/lib/mws/off_amazon_payments/client.rb +38 -68
  10. data/lib/mws/orders/client.rb +28 -24
  11. data/lib/mws/products/client.rb +118 -153
  12. data/lib/mws/recommendations/client.rb +13 -17
  13. data/lib/mws/reports/client.rb +24 -23
  14. data/lib/mws/sellers/client.rb +5 -5
  15. data/lib/mws/subscriptions/client.rb +25 -36
  16. data/lib/peddler/client.rb +47 -124
  17. data/lib/peddler/errors/builder.rb +40 -14
  18. data/lib/peddler/errors/class_generator.rb +34 -0
  19. data/lib/peddler/errors/error.rb +13 -3
  20. data/lib/peddler/headers.rb +27 -11
  21. data/lib/peddler/marketplace.rb +30 -11
  22. data/lib/peddler/vcr_matcher.rb +11 -1
  23. data/lib/peddler/version.rb +1 -1
  24. data/lib/peddler/xml_parser.rb +4 -2
  25. data/lib/peddler/xml_response_parser.rb +1 -1
  26. data/test/helper.rb +0 -1
  27. data/test/integration/test_errors.rb +2 -14
  28. data/test/integration/test_feeds.rb +0 -3
  29. data/test/integration/test_multibyte_queries.rb +1 -1
  30. data/test/integration/test_mws_headers.rb +3 -2
  31. data/test/integration/test_orders.rb +2 -1
  32. data/test/integration/test_products.rb +9 -9
  33. data/test/integration/test_recommendations.rb +1 -1
  34. data/test/integration/test_subscriptions.rb +2 -2
  35. data/test/integration_helper.rb +1 -1
  36. data/test/mws.yml +36 -0
  37. data/test/mws.yml.example +8 -12
  38. data/test/null_client.rb +10 -8
  39. data/test/unit/mws/test_feeds_client.rb +1 -2
  40. data/test/unit/mws/test_fulfillment_outbound_shipment_client.rb +1 -1
  41. data/test/unit/mws/test_off_amazon_payments_client.rb +1 -1
  42. data/test/unit/mws/test_orders_client.rb +7 -6
  43. data/test/unit/mws/test_products_client.rb +13 -28
  44. data/test/unit/mws/test_recommendations_client.rb +1 -2
  45. data/test/unit/mws/test_reports_client.rb +1 -1
  46. data/test/unit/mws/test_subscriptions_client.rb +1 -130
  47. data/test/unit/peddler/errors/test_builder.rb +54 -7
  48. data/test/unit/peddler/errors/test_class_generator.rb +18 -0
  49. data/test/unit/peddler/errors/test_error.rb +7 -2
  50. data/test/unit/peddler/test_client.rb +136 -190
  51. data/test/unit/peddler/test_flat_file_parser.rb +2 -2
  52. data/test/unit/peddler/test_headers.rb +19 -9
  53. data/test/unit/peddler/test_marketplace.rb +18 -5
  54. data/test/unit/peddler/test_vcr_matcher.rb +3 -1
  55. data/test/vcr_cassettes/Feeds.yml +4816 -5224
  56. data/test/vcr_cassettes/Reports.yml +3278 -2604
  57. metadata +8 -9
  58. data/lib/peddler/errors.rb +0 -12
  59. data/lib/peddler/errors/handler.rb +0 -59
  60. data/test/unit/peddler/errors/test_handler.rb +0 -62
  61. data/test/unit/peddler/test_errors.rb +0 -26
@@ -11,12 +11,12 @@ module MWS
11
11
  # selling your inventory on Amazon's retail web site or through other retail
12
12
  # channels.
13
13
  class Client < ::Peddler::Client
14
- version '2010-10-01'
15
- path "/FulfillmentInventory/#{version}"
14
+ self.version = '2010-10-01'
15
+ self.path = "/FulfillmentInventory/#{version}"
16
16
 
17
17
  # Returns information about the availability of a seller's inventory
18
18
  #
19
- # @see http://docs.developer.amazonservices.com/en_US/fba_inventory/FBAInventory_ListInventorySupply.html
19
+ # @see https://docs.developer.amazonservices.com/en_US/fba_inventory/FBAInventory_ListInventorySupply.html
20
20
  # @param [Hash] opts
21
21
  # @option opts [Array<String>, String] :seller_skus
22
22
  # @option opts [String, #iso8601] :query_start_date_time
@@ -34,7 +34,7 @@ module MWS
34
34
  # Returns the next page of information about the availability of a
35
35
  # seller's inventory
36
36
  #
37
- # @see http://docs.developer.amazonservices.com/en_US/fba_inventory/FBAInventory_ListInventorySupplyByNextToken.html
37
+ # @see https://docs.developer.amazonservices.com/en_US/fba_inventory/FBAInventory_ListInventorySupplyByNextToken.html
38
38
  # @param [String] next_token
39
39
  # @return [Peddler::XMLParser]
40
40
  def list_inventory_supply_by_next_token(next_token)
@@ -46,7 +46,7 @@ module MWS
46
46
 
47
47
  # Gets the operational status of the API
48
48
  #
49
- # @see http://docs.developer.amazonservices.com/en_US/fba_inventory/MWS_GetServiceStatus.html
49
+ # @see https://docs.developer.amazonservices.com/en_US/fba_inventory/MWS_GetServiceStatus.html
50
50
  # @return [Peddler::XMLParser]
51
51
  def get_service_status
52
52
  operation('GetServiceStatus')
@@ -15,12 +15,12 @@ module MWS
15
15
  # on when they were fulfilled and by the fulfillment method associated with
16
16
  # them.
17
17
  class Client < ::Peddler::Client
18
- version '2010-10-01'
19
- path "/FulfillmentOutboundShipment/#{version}"
18
+ self.version = '2010-10-01'
19
+ self.path = "/FulfillmentOutboundShipment/#{version}"
20
20
 
21
21
  # Lists fulfillment order previews
22
22
  #
23
- # @see http://docs.developer.amazonservices.com/en_US/fba_outbound/FBAOutbound_GetFulfillmentPreview.html
23
+ # @see https://docs.developer.amazonservices.com/en_US/fba_outbound/FBAOutbound_GetFulfillmentPreview.html
24
24
  # @param [Struct, Hash] address
25
25
  # @param [Array<Struct, Hash>] items
26
26
  # @param [Hash] opts
@@ -28,13 +28,15 @@ module MWS
28
28
  # @option opts [Boolean] :include_cod_fulfillment_preview
29
29
  # @return [Peddler::XMLParser]
30
30
  def get_fulfillment_preview(address, items, opts = {})
31
+ opts = opts.dup
31
32
  if opts.key?(:include_cod_fulfillment_preview)
32
33
  opts['IncludeCODFulfillmentPreview'] =
33
34
  opts.delete(:include_cod_fulfillment_preview)
34
35
  end
35
36
 
36
37
  operation('GetFulfillmentPreview')
37
- .add(opts.update('Address' => address, 'Items' => items))
38
+ .add(opts)
39
+ .add('Address' => address, 'Items' => items)
38
40
  .structure!('Items', 'member')
39
41
  .structure!('ShippingSpeedCategories')
40
42
 
@@ -44,7 +46,7 @@ module MWS
44
46
  # Requests that Amazon ship items from the seller's Amazon Fulfillment
45
47
  # Network inventory to a destination address
46
48
  #
47
- # @see http://docs.developer.amazonservices.com/en_US/fba_outbound/FBAOutbound_CreateFulfillmentOrder.html
49
+ # @see https://docs.developer.amazonservices.com/en_US/fba_outbound/FBAOutbound_CreateFulfillmentOrder.html
48
50
  # @param [String] seller_fulfillment_order_id
49
51
  # @param [String] displayable_order_id
50
52
  # @param [String, #iso8601] displayable_order_date_time
@@ -64,22 +66,20 @@ module MWS
64
66
  displayable_order_comment,
65
67
  shipping_speed_category,
66
68
  destination_address, items, opts = {})
69
+ opts = opts.dup
67
70
  if opts.key?(:cod_settings)
68
71
  opts['CODSettings'] = opts.delete(:cod_settings)
69
72
  end
70
73
 
71
74
  operation('CreateFulfillmentOrder')
72
- .add(
73
- opts.merge(
74
- 'SellerFulfillmentOrderId' => seller_fulfillment_order_id,
75
- 'DisplayableOrderId' => displayable_order_id,
76
- 'DisplayableOrderDateTime' => displayable_order_date_time,
77
- 'DisplayableOrderComment' => displayable_order_comment,
78
- 'ShippingSpeedCategory' => shipping_speed_category,
79
- 'DestinationAddress' => destination_address,
80
- 'Items' => items
81
- )
82
- )
75
+ .add(opts)
76
+ .add('SellerFulfillmentOrderId' => seller_fulfillment_order_id,
77
+ 'DisplayableOrderId' => displayable_order_id,
78
+ 'DisplayableOrderDateTime' => displayable_order_date_time,
79
+ 'DisplayableOrderComment' => displayable_order_comment,
80
+ 'ShippingSpeedCategory' => shipping_speed_category,
81
+ 'DestinationAddress' => destination_address,
82
+ 'Items' => items)
83
83
  .structure!('Items', 'member')
84
84
  .structure!('NotificationEmailList', 'member')
85
85
 
@@ -89,7 +89,7 @@ module MWS
89
89
  # Updates and/or requests shipment for a fulfillment order with an order
90
90
  # hold on it
91
91
  #
92
- # @see http://docs.developer.amazonservices.com/en_US/fba_outbound/FBAOutbound_UpdateFulfillmentOrder.html
92
+ # @see https://docs.developer.amazonservices.com/en_US/fba_outbound/FBAOutbound_UpdateFulfillmentOrder.html
93
93
  # @param [String] seller_fulfillment_order_id
94
94
  # @param [Hash] opts
95
95
  # @option opts [String] :fulfillment_action
@@ -104,11 +104,8 @@ module MWS
104
104
  # @return [Peddler::XMLParser]
105
105
  def update_fulfillment_order(seller_fulfillment_order_id, opts = {})
106
106
  operation('UpdateFulfillmentOrder')
107
- .add(
108
- opts.update(
109
- 'SellerFulfillmentOrderId' => seller_fulfillment_order_id
110
- )
111
- )
107
+ .add(opts)
108
+ .add('SellerFulfillmentOrderId' => seller_fulfillment_order_id)
112
109
  .structure!('NotificationEmailList', 'member')
113
110
  .structure!('Items', 'member')
114
111
 
@@ -117,7 +114,7 @@ module MWS
117
114
 
118
115
  # Gets a fulfillment order
119
116
  #
120
- # @see http://docs.developer.amazonservices.com/en_US/fba_outbound/FBAOutbound_GetFulfillmentOrder.html
117
+ # @see https://docs.developer.amazonservices.com/en_US/fba_outbound/FBAOutbound_GetFulfillmentOrder.html
121
118
  # @param [String] seller_fulfillment_order_id
122
119
  # @return [Peddler::XMLParser]
123
120
  def get_fulfillment_order(seller_fulfillment_order_id)
@@ -129,22 +126,20 @@ module MWS
129
126
 
130
127
  # Returns a list of fulfillment orders fulfilled on or after a date
131
128
  #
132
- # @see http://docs.developer.amazonservices.com/en_US/fba_outbound/FBAOutbound_ListAllFulfillmentOrders.html
133
- # @param [String, #iso8601] query_start_date_time
129
+ # @see https://docs.developer.amazonservices.com/en_US/fba_outbound/FBAOutbound_ListAllFulfillmentOrders.html
130
+ # @param [Hash] opts
131
+ # @option opts [String, #iso8601] :query_start_date_time
134
132
  # @return [Peddler::XMLParser]
135
- def list_all_fulfillment_orders(query_start_date_time = nil)
136
- opts = {}
137
- if query_start_date_time
138
- opts.update('QueryStartDateTime' => query_start_date_time)
139
- end
140
- operation('ListAllFulfillmentOrders').add(opts)
133
+ def list_all_fulfillment_orders(opts = {})
134
+ operation('ListAllFulfillmentOrders')
135
+ .add(opts)
141
136
 
142
137
  run
143
138
  end
144
139
 
145
140
  # Returns the next page of fulfillment orders
146
141
  #
147
- # @see http://docs.developer.amazonservices.com/en_US/fba_outbound/FBAOutbound_ListAllFulfillmentOrdersByNextToken.html
142
+ # @see https://docs.developer.amazonservices.com/en_US/fba_outbound/FBAOutbound_ListAllFulfillmentOrdersByNextToken.html
148
143
  # @param [String] next_token
149
144
  # @return [Peddler::XMLParser]
150
145
  def list_all_fulfillment_orders_by_next_token(next_token)
@@ -157,7 +152,7 @@ module MWS
157
152
  # Returns delivery tracking information for a package in an outbound
158
153
  # shipment for a Multi-Channel Fulfillment order
159
154
  #
160
- # @see http://docs.developer.amazonservices.com/en_US/fba_outbound/FBAOutbound_GetPackageTrackingDetails.html
155
+ # @see https://docs.developer.amazonservices.com/en_US/fba_outbound/FBAOutbound_GetPackageTrackingDetails.html
161
156
  # @param [String] package_number
162
157
  # @return [Peddler::XMLParser]
163
158
  def get_package_tracking_details(package_number)
@@ -170,7 +165,7 @@ module MWS
170
165
  # Requests that Amazon stop attempting to fulfill an existing fulfillment
171
166
  # order
172
167
  #
173
- # @see http://docs.developer.amazonservices.com/en_US/fba_outbound/FBAOutbound_CancelFulfillmentOrder.html
168
+ # @see https://docs.developer.amazonservices.com/en_US/fba_outbound/FBAOutbound_CancelFulfillmentOrder.html
174
169
  # @param [String] seller_fulfillment_order_id
175
170
  # @return [Peddler::XMLParser]
176
171
  def cancel_fulfillment_order(seller_fulfillment_order_id)
@@ -183,7 +178,7 @@ module MWS
183
178
  # Returns a list of return reason codes for a seller SKU in a given
184
179
  # marketplace.
185
180
  #
186
- # @see http://docs.developer.amazonservices.com/en_US/fba_outbound/FBAOutbound_ListReturnReasonCodes.html
181
+ # @see https://docs.developer.amazonservices.com/en_US/fba_outbound/FBAOutbound_ListReturnReasonCodes.html
187
182
  # @param [String] seller_sku
188
183
  # @param [Hash] opts
189
184
  # @option opts [String] :marketplace_id
@@ -192,11 +187,8 @@ module MWS
192
187
  # @return [Peddler::XMLParser]
193
188
  def list_return_reason_codes(seller_sku, opts = {})
194
189
  operation('ListReturnReasonCodes')
195
- .add(
196
- opts.merge(
197
- 'SellerSKU' => seller_sku
198
- )
199
- )
190
+ .add(opts)
191
+ .add('SellerSKU' => seller_sku)
200
192
  .structure!('List', 'member')
201
193
 
202
194
  run
@@ -204,14 +196,14 @@ module MWS
204
196
 
205
197
  # Creates a fulfillment return.
206
198
  #
207
- # @see http://docs.developer.amazonservices.com/en_US/fba_outbound/FBAOutbound_CreateFulfillmentReturn.html
199
+ # @see https://docs.developer.amazonservices.com/en_US/fba_outbound/FBAOutbound_CreateFulfillmentReturn.html
208
200
  # @param [String] seller_fulfillment_order_id
209
201
  # @param [Array] items
210
202
  # @return [Peddler::XMLParser]
211
203
  def create_fulfillment_return(seller_fulfillment_order_id, items)
212
204
  operation('CreateFulfillmentReturn')
213
- .add('SellerFulfillmentOrderId' => seller_fulfillment_order_id)
214
- .add('Items' => items)
205
+ .add('SellerFulfillmentOrderId' => seller_fulfillment_order_id,
206
+ 'Items' => items)
215
207
  .structure!('Items', 'member')
216
208
 
217
209
  run
@@ -219,7 +211,7 @@ module MWS
219
211
 
220
212
  # Gets the operational status of the API
221
213
  #
222
- # @see http://docs.developer.amazonservices.com/en_US/fba_outbound/MWS_GetServiceStatus.html
214
+ # @see https://docs.developer.amazonservices.com/en_US/fba_outbound/MWS_GetServiceStatus.html
223
215
  # @return [Peddler::XMLParser]
224
216
  def get_service_status
225
217
  operation('GetServiceStatus')
@@ -12,13 +12,13 @@ module MWS
12
12
  # requirements. Sellers can choose from the shipping service offers returned
13
13
  # by Amazon, and then purchase shipping labels for fulfilling their orders.
14
14
  class Client < ::Peddler::Client
15
- version '2015-06-01'
16
- path "/MerchantFulfillment/#{version}"
15
+ self.version = '2015-06-01'
16
+ self.path = "/MerchantFulfillment/#{version}"
17
17
 
18
18
  # Returns a list of shipping service offers that satisfy the shipment
19
19
  # request details that you specify
20
20
  #
21
- # @see http://docs.developer.amazonservices.com/en_US/merch_fulfill/MerchFulfill_GetEligibleShippingServices.html
21
+ # @see https://docs.developer.amazonservices.com/en_US/merch_fulfill/MerchFulfill_GetEligibleShippingServices.html
22
22
  # @param [Struct, Hash] shipment_request_details
23
23
  # @return [Peddler::XMLParser]
24
24
  def get_eligible_shipping_services(shipment_request_details)
@@ -32,7 +32,7 @@ module MWS
32
32
  # Purchases shipping and returns PNG or PDF document data for a shipping
33
33
  # label
34
34
  #
35
- # @see http://docs.developer.amazonservices.com/en_US/merch_fulfill/MerchFulfill_CreateShipment.html
35
+ # @see https://docs.developer.amazonservices.com/en_US/merch_fulfill/MerchFulfill_CreateShipment.html
36
36
  # @param [Struct, Hash] shipment_request_details
37
37
  # @param [String] shipping_service_id
38
38
  # @param [Hash] opts
@@ -41,11 +41,9 @@ module MWS
41
41
  def create_shipment(shipment_request_details, shipping_service_id,
42
42
  opts = {})
43
43
  operation('CreateShipment')
44
- .add(
45
- 'ShipmentRequestDetails' => shipment_request_details,
46
- 'ShippingServiceId' => shipping_service_id
47
- )
48
44
  .add(opts)
45
+ .add('ShipmentRequestDetails' => shipment_request_details,
46
+ 'ShippingServiceId' => shipping_service_id)
49
47
  .structure!('ItemList', 'Item')
50
48
 
51
49
  run
@@ -53,14 +51,12 @@ module MWS
53
51
 
54
52
  # Returns an existing shipment for the ShipmentId value that you specify
55
53
  #
56
- # @see http://docs.developer.amazonservices.com/en_US/merch_fulfill/MerchFulfill_GetShipment.html
54
+ # @see https://docs.developer.amazonservices.com/en_US/merch_fulfill/MerchFulfill_GetShipment.html
57
55
  # @param [String] shipment_id
58
56
  # @return [Peddler::XMLParser]
59
57
  def get_shipment(shipment_id)
60
58
  operation('GetShipment')
61
- .add(
62
- 'ShipmentId' => shipment_id
63
- )
59
+ .add('ShipmentId' => shipment_id)
64
60
 
65
61
  run
66
62
  end
@@ -68,21 +64,19 @@ module MWS
68
64
  # Cancels an existing shipment and requests a refund for the ShipmentId
69
65
  # value that you specify
70
66
  #
71
- # @see http://docs.developer.amazonservices.com/en_US/merch_fulfill/MerchFulfill_CancelShipment.html
67
+ # @see https://docs.developer.amazonservices.com/en_US/merch_fulfill/MerchFulfill_CancelShipment.html
72
68
  # @param [String] shipment_id
73
69
  # @return [Peddler::XMLParser]
74
70
  def cancel_shipment(shipment_id)
75
71
  operation('CancelShipment')
76
- .add(
77
- 'ShipmentId' => shipment_id
78
- )
72
+ .add('ShipmentId' => shipment_id)
79
73
 
80
74
  run
81
75
  end
82
76
 
83
77
  # Gets the operational status of the API
84
78
  #
85
- # @see http://docs.developer.amazonservices.com/en_US/merch_fulfill/MWS_GetServiceStatus.html
79
+ # @see https://docs.developer.amazonservices.com/en_US/merch_fulfill/MWS_GetServiceStatus.html
86
80
  # @return [Peddler::XMLParser]
87
81
  def get_service_status
88
82
  operation('GetServiceStatus')
@@ -16,8 +16,8 @@ module MWS
16
16
  # Payments. You cannot use this API section to process payments for Amazon
17
17
  # Marketplace, Amazon Webstore, or Checkout by Amazon.
18
18
  class Client < ::Peddler::Client
19
- version '2013-01-01'
20
- path "/OffAmazonPayments/#{version}/"
19
+ self.version = '2013-01-01'
20
+ self.path = "/OffAmazonPayments/#{version}/"
21
21
 
22
22
  # Switches the client to the sandbox environment
23
23
  #
@@ -44,11 +44,10 @@ module MWS
44
44
  def authorize(amazon_order_reference_id, authorization_reference_id,
45
45
  authorization_amount, opts = {})
46
46
  operation('Authorize')
47
- .add(opts.update(
48
- 'AmazonOrderReferenceId' => amazon_order_reference_id,
49
- 'AuthorizationReferenceId' => authorization_reference_id,
50
- 'AuthorizationAmount' => authorization_amount
51
- ))
47
+ .add(opts)
48
+ .add('AmazonOrderReferenceId' => amazon_order_reference_id,
49
+ 'AuthorizationReferenceId' => authorization_reference_id,
50
+ 'AuthorizationAmount' => authorization_amount)
52
51
 
53
52
  run
54
53
  end
@@ -62,11 +61,8 @@ module MWS
62
61
  # @return [Peddler::XMLParser]
63
62
  def cancel_order_reference(amazon_order_reference_id, opts = {})
64
63
  operation('CancelOrderReference')
65
- .add(
66
- opts.update(
67
- 'AmazonOrderReferenceId' => amazon_order_reference_id
68
- )
69
- )
64
+ .add(opts)
65
+ .add('AmazonOrderReferenceId' => amazon_order_reference_id)
70
66
 
71
67
  run
72
68
  end
@@ -84,11 +80,10 @@ module MWS
84
80
  def capture(amazon_authorization_id, capture_reference_id, capture_amount,
85
81
  opts = {})
86
82
  operation('Capture')
87
- .add(opts.update(
88
- 'AmazonAuthorizationId' => amazon_authorization_id,
89
- 'CaptureReferenceId' => capture_reference_id,
90
- 'CaptureAmount' => capture_amount
91
- ))
83
+ .add(opts)
84
+ .add('AmazonAuthorizationId' => amazon_authorization_id,
85
+ 'CaptureReferenceId' => capture_reference_id,
86
+ 'CaptureAmount' => capture_amount)
92
87
 
93
88
  run
94
89
  end
@@ -102,7 +97,8 @@ module MWS
102
97
  # @return [Peddler::XMLParser]
103
98
  def close_authorization(amazon_authorization_id, opts = {})
104
99
  operation('CloseAuthorization')
105
- .add(opts.update('AmazonAuthorizationId' => amazon_authorization_id))
100
+ .add(opts)
101
+ .add('AmazonAuthorizationId' => amazon_authorization_id)
106
102
 
107
103
  run
108
104
  end
@@ -118,11 +114,8 @@ module MWS
118
114
  # @return [Peddler::XMLParser]
119
115
  def close_order_reference(amazon_order_reference_id, opts = {})
120
116
  operation('CloseOrderReference')
121
- .add(
122
- opts.update(
123
- 'AmazonOrderReferenceId' => amazon_order_reference_id
124
- )
125
- )
117
+ .add(opts)
118
+ .add('AmazonOrderReferenceId' => amazon_order_reference_id)
126
119
 
127
120
  run
128
121
  end
@@ -152,10 +145,8 @@ module MWS
152
145
  # @return [Peddler::XMLParser]
153
146
  def create_order_reference_for_id(id, id_type, opts = {})
154
147
  operation('CreateOrderReferenceForId')
155
- .add(opts.update(
156
- 'Id' => id,
157
- 'IdType' => id_type
158
- ))
148
+ .add(opts)
149
+ .add('Id' => id, 'IdType' => id_type)
159
150
 
160
151
  run
161
152
  end
@@ -195,11 +186,8 @@ module MWS
195
186
  # @return [Peddler::XMLParser]
196
187
  def get_order_reference_details(amazon_order_reference_id, opts = {})
197
188
  operation('GetOrderReferenceDetails')
198
- .add(
199
- opts.update(
200
- 'AmazonOrderReferenceId' => amazon_order_reference_id
201
- )
202
- )
189
+ .add(opts)
190
+ .add('AmazonOrderReferenceId' => amazon_order_reference_id)
203
191
 
204
192
  run
205
193
  end
@@ -238,11 +226,10 @@ module MWS
238
226
  def refund(amazon_capture_id, refund_reference_id, refund_amount,
239
227
  opts = {})
240
228
  operation('Refund')
241
- .add(opts.update(
242
- 'AmazonCaptureId' => amazon_capture_id,
243
- 'RefundReferenceId' => refund_reference_id,
244
- 'RefundAmount' => refund_amount
245
- ))
229
+ .add(opts)
230
+ .add('AmazonCaptureId' => amazon_capture_id,
231
+ 'RefundReferenceId' => refund_reference_id,
232
+ 'RefundAmount' => refund_amount)
246
233
 
247
234
  run
248
235
  end
@@ -262,10 +249,8 @@ module MWS
262
249
  opts = {})
263
250
  order_reference_attributes = opts.update('OrderTotal' => order_total)
264
251
  operation('SetOrderReferenceDetails')
265
- .add(
266
- 'AmazonOrderReferenceId' => amazon_order_reference_id,
267
- 'OrderReferenceAttributes' => order_reference_attributes
268
- )
252
+ .add('AmazonOrderReferenceId' => amazon_order_reference_id,
253
+ 'OrderReferenceAttributes' => order_reference_attributes)
269
254
 
270
255
  run
271
256
  end
@@ -291,13 +276,10 @@ module MWS
291
276
  authorization_reference_id,
292
277
  authorization_amount, opts = {})
293
278
  operation('AuthorizeOnBillingAgreement')
294
- .add(
295
- opts.update(
296
- 'AmazonBillingAgreementId' => amazon_billing_agreement_id,
297
- 'AuthorizationReferenceId' => authorization_reference_id,
298
- 'AuthorizationAmount' => authorization_amount
299
- )
300
- )
279
+ .add(opts)
280
+ .add('AmazonBillingAgreementId' => amazon_billing_agreement_id,
281
+ 'AuthorizationReferenceId' => authorization_reference_id,
282
+ 'AuthorizationAmount' => authorization_amount)
301
283
 
302
284
  run
303
285
  end
@@ -313,11 +295,8 @@ module MWS
313
295
  # @return [Peddler::XMLParser]
314
296
  def close_billing_agreement(amazon_billing_agreement_id, opts = {})
315
297
  operation('CloseBillingAgreement')
316
- .add(
317
- opts.update(
318
- 'AmazonBillingAgreementId' => amazon_billing_agreement_id
319
- )
320
- )
298
+ .add(opts)
299
+ .add('AmazonBillingAgreementId' => amazon_billing_agreement_id)
321
300
 
322
301
  run
323
302
  end
@@ -330,9 +309,7 @@ module MWS
330
309
  # @return [Peddler::XMLParser]
331
310
  def confirm_billing_agreement(amazon_billing_agreement_id)
332
311
  operation('ConfirmBillingAgreement')
333
- .add(
334
- 'AmazonBillingAgreementId' => amazon_billing_agreement_id
335
- )
312
+ .add('AmazonBillingAgreementId' => amazon_billing_agreement_id)
336
313
 
337
314
  run
338
315
  end
@@ -346,11 +323,8 @@ module MWS
346
323
  # @return [Peddler::XMLParser]
347
324
  def get_billing_agreement_details(amazon_billing_agreement_id, opts = {})
348
325
  operation('GetBillingAgreementDetails')
349
- .add(
350
- opts.update(
351
- 'AmazonBillingAgreementId' => amazon_billing_agreement_id
352
- )
353
- )
326
+ .add(opts)
327
+ .add('AmazonBillingAgreementId' => amazon_billing_agreement_id)
354
328
 
355
329
  run
356
330
  end
@@ -365,10 +339,8 @@ module MWS
365
339
  def set_billing_agreement_details(amazon_billing_agreement_id,
366
340
  billing_agreement_attributes)
367
341
  operation('SetBillingAgreementDetails')
368
- .add(
369
- 'AmazonBillingAgreementId' => amazon_billing_agreement_id,
370
- 'BillingAgreementAttributes' => billing_agreement_attributes
371
- )
342
+ .add('AmazonBillingAgreementId' => amazon_billing_agreement_id,
343
+ 'BillingAgreementAttributes' => billing_agreement_attributes)
372
344
 
373
345
  run
374
346
  end
@@ -381,9 +353,7 @@ module MWS
381
353
  # @return [Peddler::XMLParser]
382
354
  def validate_billing_agreement(amazon_billing_agreement_id)
383
355
  operation('ValidateBillingAgreement')
384
- .add(
385
- 'AmazonBillingAgreementId' => amazon_billing_agreement_id
386
- )
356
+ .add('AmazonBillingAgreementId' => amazon_billing_agreement_id)
387
357
 
388
358
  run
389
359
  end