peddler 0.8.0 → 0.9.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 (82) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/README.md +15 -14
  4. data/lib/mws/cart_information/client.rb +72 -0
  5. data/lib/mws/cart_information.rb +1 -69
  6. data/lib/mws/customer_information/client.rb +79 -0
  7. data/lib/mws/customer_information.rb +1 -77
  8. data/lib/mws/feeds/client.rb +112 -0
  9. data/lib/mws/feeds.rb +1 -110
  10. data/lib/mws/fulfillment_inbound_shipment/client.rb +233 -0
  11. data/lib/mws/fulfillment_inbound_shipment.rb +1 -231
  12. data/lib/mws/fulfillment_inventory/client.rb +53 -0
  13. data/lib/mws/fulfillment_inventory.rb +1 -51
  14. data/lib/mws/fulfillment_outbound_shipment/client.rb +171 -0
  15. data/lib/mws/fulfillment_outbound_shipment.rb +1 -168
  16. data/lib/mws/off_amazon_payments/client.rb +362 -0
  17. data/lib/mws/off_amazon_payments.rb +1 -360
  18. data/lib/mws/orders/client.rb +102 -0
  19. data/lib/mws/orders.rb +1 -98
  20. data/lib/mws/products/client.rb +234 -0
  21. data/lib/mws/products.rb +1 -232
  22. data/lib/mws/recommendations/client.rb +71 -0
  23. data/lib/mws/recommendations.rb +1 -66
  24. data/lib/mws/reports/client.rb +220 -0
  25. data/lib/mws/reports.rb +1 -220
  26. data/lib/mws/sellers/client.rb +42 -0
  27. data/lib/mws/sellers.rb +1 -40
  28. data/lib/mws/subscriptions/client.rb +177 -0
  29. data/lib/mws/subscriptions.rb +1 -169
  30. data/lib/mws.rb +2 -2
  31. data/lib/peddler/client.rb +3 -3
  32. data/lib/peddler/flat_file_parser.rb +3 -3
  33. data/lib/peddler/operation.rb +2 -3
  34. data/lib/peddler/structured_list.rb +1 -3
  35. data/lib/peddler/version.rb +1 -1
  36. data/lib/peddler/xml_parser.rb +1 -1
  37. data/test/integration/test_cart_information.rb +2 -2
  38. data/test/integration/test_customer_information.rb +2 -2
  39. data/test/integration/test_feeds.rb +2 -2
  40. data/test/integration/test_fulfillment_inbound_shipment.rb +2 -2
  41. data/test/integration/test_fulfillment_inventory.rb +3 -7
  42. data/test/integration/test_fulfillment_outbound_shipment.rb +2 -49
  43. data/test/integration/test_off_amazon_payments.rb +2 -2
  44. data/test/integration/test_orders.rb +2 -13
  45. data/test/integration/test_products.rb +2 -2
  46. data/test/integration/test_recommendations.rb +2 -11
  47. data/test/integration/test_reports.rb +2 -3
  48. data/test/integration/test_sellers.rb +2 -9
  49. data/test/integration/test_subscriptions.rb +2 -2
  50. data/test/integration_test_helper.rb +49 -0
  51. data/test/mws.yml +16 -0
  52. data/test/mws.yml.bak +16 -0
  53. data/test/test_helper.rb +7 -0
  54. data/test/unit/mws/test_off_amazon_payments_client.rb +9 -0
  55. data/test/unit/mws/test_products_client.rb +9 -0
  56. data/test/unit/peddler/test_client.rb +2 -2
  57. data/test/unit/peddler/test_flat_file_parser.rb +2 -2
  58. data/test/unit/peddler/test_operation.rb +2 -2
  59. data/test/unit/peddler/test_parser.rb +2 -2
  60. data/test/unit/peddler/test_structured_list.rb +2 -2
  61. data/test/unit/peddler/test_xml_parser.rb +2 -2
  62. data/test/unit/test_mws.rb +3 -3
  63. data/test/vcr_cassettes/CartInformation.yml +37 -725
  64. data/test/vcr_cassettes/CustomerInformation.yml +37 -728
  65. data/test/vcr_cassettes/Feeds.yml +100 -528
  66. data/test/vcr_cassettes/FulfillmentInboundShipment.yml +39 -728
  67. data/test/vcr_cassettes/FulfillmentInventory.yml +96 -997
  68. data/test/vcr_cassettes/FulfillmentOutboundShipment.yml +39 -725
  69. data/test/vcr_cassettes/OffAmazonPayments.yml +36 -727
  70. data/test/vcr_cassettes/Orders.yml +38 -29855
  71. data/test/vcr_cassettes/Products.yml +1300 -3871
  72. data/test/vcr_cassettes/Recommendations.yml +8934 -15590
  73. data/test/vcr_cassettes/Reports.yml +288 -1326
  74. data/test/vcr_cassettes/Sellers.yml +38 -1178
  75. data/test/vcr_cassettes/Subscriptions.yml +244 -1066
  76. metadata +27 -98
  77. data/test/helper.rb +0 -3
  78. data/test/integration_helper.rb +0 -49
  79. data/test/mws.yml.1 +0 -32
  80. data/test/mws.yml.example +0 -4
  81. data/test/unit/mws/test_off_amazon_payments.rb +0 -9
  82. data/test/unit/mws/test_products.rb +0 -9
@@ -0,0 +1,362 @@
1
+ require 'peddler/client'
2
+
3
+ module MWS
4
+ module OffAmazonPayments
5
+ # The Off-Amazon Payments API helps you to process payments for purchases
6
+ # made by buyers on your website using the Login and Pay with Amazon
7
+ # service. This API enables you to programmatically retrieve shipping and
8
+ # payment information provided by the buyer from their Amazon account. It
9
+ # allows you to authorize, capture, and refund payments, enabling a variety
10
+ # of payments scenarios.
11
+ #
12
+ # @note The Off-Amazon Payments API section is only applicable to payments
13
+ # made through the Login and Pay with Amazon service offered by Amazon
14
+ # Payments. You cannot use this API section to process payments for Amazon
15
+ # Marketplace, Amazon Webstore, or Checkout by Amazon.
16
+ class Client < ::Peddler::Client
17
+ path '/OffAmazonPayments/2013-01-01/'
18
+
19
+ # Switches the client to the sandbox environment
20
+ #
21
+ # @see https://payments.amazon.com/help/Checkout-by-Amazon/Using-the-Checkout-by-Amazon-Sandbox/Overview-of-the-Sandbox
22
+ # @return [self]
23
+ def sandbox
24
+ self.path = '/OffAmazonPayments_Sandbox/2013-01-01/'
25
+ self
26
+ end
27
+
28
+ # Creates an order reference for the given object
29
+ #
30
+ # @see http://docs.developer.amazonservices.com/en_US/off_amazon_payments/OffAmazonPayments_CreateOrderReferenceForId.html
31
+ # @param id [String]
32
+ # @param id_type [String]
33
+ # @param opts [Hash]
34
+ # @option opts [Boolean] :inherit_shipping_address
35
+ # @option opts [Boolean] :confirm_now
36
+ # @return [Peddler::XMLParser]
37
+ def create_order_reference_for_id(id, id_type, opts = {})
38
+ operation('CreateOrderReferenceForId')
39
+ .add(opts.merge(
40
+ 'Id' => id,
41
+ 'IdType' => id_type
42
+ ))
43
+
44
+ run
45
+ end
46
+
47
+ # Returns details about the Billing Agreement object and its current state
48
+ #
49
+ # @see http://docs.developer.amazonservices.com/en_US/off_amazon_payments/OffAmazonPayments_GetBillingAgreementDetails.html
50
+ # @param amazon_billing_agreement_id [String]
51
+ # @param opts [Hash]
52
+ # @option opts [String] :address_consent_token
53
+ # @return [Peddler::XMLParser]
54
+ def get_billing_agreement_details(amazon_billing_agreement_id, opts = {})
55
+ operation('GetBillingAgreementDetails')
56
+ .add(opts.merge(
57
+ 'AmazonBillingAgreementId' => amazon_billing_agreement_id
58
+ ))
59
+
60
+ run
61
+ end
62
+
63
+ # Sets billing agreement details such as a description of the agreement
64
+ # and other information about the seller
65
+ #
66
+ # @see http://docs.developer.amazonservices.com/en_US/off_amazon_payments/OffAmazonPayments_SetBillingAgreementDetails.html
67
+ # @param amazon_billing_agreement_id [String]
68
+ # @param billing_agreement_attributes [Struct, Hash]
69
+ # @return [Peddler::XMLParser]
70
+ def set_billing_agreement_details(amazon_billing_agreement_id, billing_agreement_attributes)
71
+ operation('SetBillingAgreementDetails')
72
+ .add(
73
+ 'AmazonBillingAgreementId' => amazon_billing_agreement_id,
74
+ 'BillingAgreementAttributes' => billing_agreement_attributes
75
+ )
76
+
77
+ run
78
+ end
79
+
80
+ # Confirms that the billing agreement is free of constraints and all
81
+ # required information has been set on the billing agreement
82
+ #
83
+ # @see http://docs.developer.amazonservices.com/en_US/off_amazon_payments/OffAmazonPayments_ConfirmBillingAgreement.html
84
+ # @param amazon_billing_agreement_id [String]
85
+ # @return [Peddler::XMLParser]
86
+ def confirm_billing_agreement(amazon_billing_agreement_id)
87
+ operation('ConfirmBillingAgreement')
88
+ .add(
89
+ 'AmazonBillingAgreementId' => amazon_billing_agreement_id
90
+ )
91
+
92
+ run
93
+ end
94
+
95
+ # Validates the status of the BillingAgreement object and the payment
96
+ # method associated with it
97
+ #
98
+ # @see http://docs.developer.amazonservices.com/en_US/off_amazon_payments/OffAmazonPayments_ValidateBillingAgreement.html
99
+ # @param amazon_billing_agreement_id [String]
100
+ # @return [Peddler::XMLParser]
101
+ def validate_billing_agreement(amazon_billing_agreement_id)
102
+ operation('ValidateBillingAgreement')
103
+ .add(
104
+ 'AmazonBillingAgreementId' => amazon_billing_agreement_id
105
+ )
106
+
107
+ run
108
+ end
109
+
110
+ # Reserves a specified amount against the payment method(s) stored in the
111
+ # billing agreement
112
+ #
113
+ # @see http://docs.developer.amazonservices.com/en_US/off_amazon_payments/OffAmazonPayments_AuthorizeOnBillingAgreement.html
114
+ # @param amazon_billing_agreement_id [String]
115
+ # @param authorization_reference_id [String]
116
+ # @param authorization_amount [Hash, Struct]
117
+ # @param opts [Hash]
118
+ # @option opts [String] :seller_authorization_note
119
+ # @option opts [Integer] :transaction_timeout
120
+ # @option opts [Boolean] :capture_now
121
+ # @option opts [String] :soft_descriptor
122
+ # @option opts [String] :seller_note
123
+ # @option opts [String] :platform_id
124
+ # @option opts [Hash, Struct] :seller_order_attributes
125
+ # @option opts [Boolean] :inherit_shipping_address
126
+ # @return [Peddler::XMLParser]
127
+ def authorize_on_billing_agreement(amazon_billing_agreement_id, authorization_reference_id, authorization_amount, opts = {})
128
+ operation('AuthorizeOnBillingAgreement')
129
+ .add(opts.merge(
130
+ 'AmazonBillingAgreementId' => amazon_billing_agreement_id,
131
+ 'AuthorizationReferenceId' => authorization_reference_id,
132
+ 'AuthorizationAmount' => authorization_amount
133
+ ))
134
+
135
+ run
136
+ end
137
+
138
+ # Confirms that you want to terminate the billing agreement with the buyer
139
+ # and that you do not expect to create any new order references or
140
+ # authorizations on this billing agreement
141
+ #
142
+ # @see http://docs.developer.amazonservices.com/en_US/off_amazon_payments/OffAmazonPayments_CloseBillingAgreement.html
143
+ # @param amazon_billing_agreement_id [String]
144
+ # @param opts [Hash]
145
+ # @option opts [String] :closure_reason
146
+ # @return [Peddler::XMLParser]
147
+ def close_billing_agreement(amazon_billing_agreement_id, opts = {})
148
+ operation('CloseBillingAgreement')
149
+ .add(opts.merge(
150
+ 'AmazonBillingAgreementId' => amazon_billing_agreement_id
151
+ ))
152
+
153
+ run
154
+ end
155
+
156
+ # Sets order reference details such as the order total and a description
157
+ # for the order
158
+ #
159
+ # @see http://docs.developer.amazonservices.com/en_US/off_amazon_payments/OffAmazonPayments_SetOrderReferenceDetails.html
160
+ # @param amazon_order_reference_id [String]
161
+ # @param order_total [Struct, Hash]
162
+ # @param opts [Hash]
163
+ # @option opts [String] :platform_id
164
+ # @option opts [String] :seller_note
165
+ # @option opts [Struct, Hash] :seller_order_attributes
166
+ # @return [Peddler::XMLParser]
167
+ def set_order_reference_details(amazon_order_reference_id, order_total, opts = {})
168
+ operation('SetOrderReferenceDetails')
169
+ .add(
170
+ 'AmazonOrderReferenceId' => amazon_order_reference_id,
171
+ 'OrderReferenceAttributes' => opts.merge('OrderTotal' => order_total)
172
+ )
173
+
174
+ run
175
+ end
176
+
177
+ # Returns details about the Order Reference object and its current state
178
+ #
179
+ # @see http://docs.developer.amazonservices.com/en_US/off_amazon_payments/OffAmazonPayments_GetOrderReferenceDetails.html
180
+ # @param amazon_order_reference_id [String]
181
+ # @param opts [Hash]
182
+ # @option opts [String] address_consent_token
183
+ # @return [Peddler::XMLParser]
184
+ def get_order_reference_details(amazon_order_reference_id, opts = {})
185
+ operation('GetOrderReferenceDetails')
186
+ .add(opts.merge('AmazonOrderReferenceId' => amazon_order_reference_id))
187
+
188
+ run
189
+ end
190
+
191
+ # Confirms that the order reference is free of constraints and all required
192
+ # information has been set on the order reference
193
+ #
194
+ # @see http://docs.developer.amazonservices.com/en_US/off_amazon_payments/OffAmazonPayments_ConfirmOrderReference.html
195
+ # @param amazon_order_reference_id [String]
196
+ # @return [Peddler::XMLParser]
197
+ def confirm_order_reference(amazon_order_reference_id)
198
+ operation('ConfirmOrderReference')
199
+ .add('AmazonOrderReferenceId' => amazon_order_reference_id)
200
+
201
+ run
202
+ end
203
+
204
+ # Cancels a previously confirmed order reference
205
+ #
206
+ # @see http://docs.developer.amazonservices.com/en_US/off_amazon_payments/OffAmazonPayments_CancelOrderReference.html
207
+ # @param amazon_order_reference_id [String]
208
+ # @param opts [Hash]
209
+ # @option opts [String] cancelation_reason
210
+ # @return [Peddler::XMLParser]
211
+ def cancel_order_reference(amazon_order_reference_id, opts = {})
212
+ operation('CancelOrderReference')
213
+ .add(opts.merge('AmazonOrderReferenceId' => amazon_order_reference_id))
214
+
215
+ run
216
+ end
217
+
218
+ # Confirms that an order reference has been fulfilled (fully or partially)
219
+ # and that you do not expect to create any new authorizations on this
220
+ # order reference
221
+ #
222
+ # @see http://docs.developer.amazonservices.com/en_US/off_amazon_payments/OffAmazonPayments_CloseOrderReference.html
223
+ # @param amazon_order_reference_id [String]
224
+ # @param opts [Hash]
225
+ # @option opts [String] closure_reason
226
+ # @return [Peddler::XMLParser]
227
+ def close_order_reference(amazon_order_reference_id, opts = {})
228
+ operation('CloseOrderReference')
229
+ .add(opts.merge('AmazonOrderReferenceId' => amazon_order_reference_id))
230
+
231
+ run
232
+ end
233
+
234
+ # Reserves a specified amount against the payment method(s) stored in the
235
+ # order reference
236
+ #
237
+ # @see http://docs.developer.amazonservices.com/en_US/off_amazon_payments/OffAmazonPayments_Authorize.html
238
+ # @param amazon_order_reference_id [String]
239
+ # @param authorization_reference_id [String]
240
+ # @param authorization_amount [Struct, Hash]
241
+ # @param opts [Hash]
242
+ # @option opts [String] :seller_authorization_note
243
+ # @option opts [Integer] :transaction_timeout
244
+ # @option opts [Boolean] :capture_now
245
+ # @option opts [String] :soft_descriptor
246
+ # @return [Peddler::XMLParser]
247
+ def authorize(amazon_order_reference_id, authorization_reference_id, authorization_amount, opts = {})
248
+ operation('Authorize')
249
+ .add(opts.merge(
250
+ 'AmazonOrderReferenceId' => amazon_order_reference_id,
251
+ 'AuthorizationReferenceId' => authorization_reference_id,
252
+ 'AuthorizationAmount' => authorization_amount
253
+ ))
254
+
255
+ run
256
+ end
257
+
258
+ # Returns the status of a particular authorization and the total amount
259
+ # captured on the authorization
260
+ #
261
+ # @see http://docs.developer.amazonservices.com/en_US/off_amazon_payments/OffAmazonPayments_GetAuthorizationDetails.html
262
+ # @param amazon_authorization_id [String]
263
+ # @return [Peddler::XMLParser]
264
+ def get_authorization_details(amazon_authorization_id)
265
+ operation('GetAuthorizationDetails')
266
+ .add('AmazonAuthorizationId' => amazon_authorization_id)
267
+
268
+ run
269
+ end
270
+
271
+ # Captures funds from an authorized payment instrument
272
+ #
273
+ # @see http://docs.developer.amazonservices.com/en_US/off_amazon_payments/OffAmazonPayments_Capture.html
274
+ # @param amazon_authorization_id [String]
275
+ # @param capture_reference_id [String]
276
+ # @param capture_amount [Struct, Hash]
277
+ # @param opts [Hash]
278
+ # @option opts [String] :seller_capture_note
279
+ # @option opts [String] :soft_descriptor
280
+ # @return [Peddler::XMLParser]
281
+ def capture(amazon_authorization_id, capture_reference_id, capture_amount, opts = {})
282
+ operation('Capture')
283
+ .add(opts.merge(
284
+ 'AmazonAuthorizationId' => amazon_authorization_id,
285
+ 'CaptureReferenceId' => capture_reference_id,
286
+ 'CaptureAmount' => capture_amount
287
+ ))
288
+
289
+ run
290
+ end
291
+
292
+ # Returns the status of a particular capture and the total amount refunded
293
+ # on the capture
294
+ #
295
+ # @see http://docs.developer.amazonservices.com/en_US/off_amazon_payments/OffAmazonPayments_GetCaptureDetails.html
296
+ # @param amazon_capture_id [String]
297
+ # @return [Peddler::XMLParser]
298
+ def get_capture_details(amazon_capture_id)
299
+ operation('GetAuthorizationDetails')
300
+ .add('AmazonCaptureId' => amazon_capture_id)
301
+
302
+ run
303
+ end
304
+
305
+ # Closes an authorization
306
+ #
307
+ # @see http://docs.developer.amazonservices.com/en_US/off_amazon_payments/OffAmazonPayments_CloseAuthorization.html
308
+ # @param amazon_authorization_id [String]
309
+ # @param opts [Hash]
310
+ # @option opts [String] closure_reason
311
+ # @return [Peddler::XMLParser]
312
+ def close_authorization(amazon_authorization_id, opts = {})
313
+ operation('CloseAuthorization')
314
+ .add(opts.merge('AmazonAuthorizationId' => amazon_authorization_id))
315
+
316
+ run
317
+ end
318
+
319
+ # Refunds a previously captured amount
320
+ #
321
+ # @see http://docs.developer.amazonservices.com/en_US/off_amazon_payments/OffAmazonPayments_Refund.html
322
+ # @param amazon_capture_id [String]
323
+ # @param refund_reference_id [String]
324
+ # @param refund_amount [Struct, Hash]
325
+ # @param opts [Hash]
326
+ # @option opts [String] :seller_refund_note
327
+ # @option opts [String] :soft_descriptor
328
+ # @return [Peddler::XMLParser]
329
+ def refund(amazon_capture_id, refund_reference_id, refund_amount, opts = {})
330
+ operation('Refund')
331
+ .add(opts.merge(
332
+ 'AmazonCaptureId' => amazon_capture_id,
333
+ 'RefundReferenceId' => refund_reference_id,
334
+ 'RefundAmount' => refund_amount
335
+ ))
336
+
337
+ run
338
+ end
339
+
340
+ # Returns the status of a particular refund
341
+ #
342
+ # @see http://docs.developer.amazonservices.com/en_US/off_amazon_payments/OffAmazonPayments_GetRefundDetails.html
343
+ # @param amazon_refund_id [String]
344
+ # @return [Peddler::XMLParser]
345
+ def get_refund_details(amazon_refund_id)
346
+ operation('GetRefundDetails')
347
+ .add('AmazonRefundId' => amazon_refund_id)
348
+
349
+ run
350
+ end
351
+
352
+ # Gets the operational status of the API
353
+ #
354
+ # @see http://docs.developer.amazonservices.com/en_US/off_amazon_payments/OffAmazonPayments_GetServiceStatus.html
355
+ # @return [Peddler::XMLParser]
356
+ def get_service_status
357
+ operation('GetServiceStatus')
358
+ run
359
+ end
360
+ end
361
+ end
362
+ end