peddler 1.6.7 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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