peddler 3.0.0.beta1 → 3.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 (66) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +96 -106
  3. data/lib/peddler/api/amazon_warehousing_and_distribution_2024_05_09.rb +34 -22
  4. data/lib/peddler/api/aplus_content_2020_11_01.rb +86 -48
  5. data/lib/peddler/api/application_integrations_2024_04_01.rb +56 -0
  6. data/lib/peddler/api/application_management_2023_11_30.rb +12 -2
  7. data/lib/peddler/api/catalog_items_2020_12_01.rb +31 -20
  8. data/lib/peddler/api/catalog_items_2022_04_01.rb +35 -25
  9. data/lib/peddler/api/catalog_items_v0.rb +39 -26
  10. data/lib/peddler/api/data_kiosk_2023_11_15.rb +41 -25
  11. data/lib/peddler/api/easy_ship_2022_03_23.rb +62 -43
  12. data/lib/peddler/api/fba_inbound_eligibility_v1.rb +13 -5
  13. data/lib/peddler/api/fba_inventory_v1.rb +40 -24
  14. data/lib/peddler/api/feeds_2021_06_30.rb +43 -25
  15. data/lib/peddler/api/finances_2024_06_19.rb +50 -0
  16. data/lib/peddler/api/finances_v0.rb +86 -59
  17. data/lib/peddler/api/fulfillment_inbound_2024_03_20.rb +304 -205
  18. data/lib/peddler/api/fulfillment_inbound_v0.rb +112 -74
  19. data/lib/peddler/api/fulfillment_outbound_2020_07_01.rb +90 -53
  20. data/lib/peddler/api/invoices_2024_06_19.rb +180 -0
  21. data/lib/peddler/api/listings_items_2020_09_01.rb +44 -33
  22. data/lib/peddler/api/listings_items_2021_08_01.rb +76 -60
  23. data/lib/peddler/api/listings_restrictions_2021_08_01.rb +19 -9
  24. data/lib/peddler/api/merchant_fulfillment_v0.rb +31 -15
  25. data/lib/peddler/api/messaging_v1.rb +93 -61
  26. data/lib/peddler/api/notifications_v1.rb +54 -23
  27. data/lib/peddler/api/orders_v0.rb +87 -72
  28. data/lib/peddler/api/product_fees_v0.rb +39 -31
  29. data/lib/peddler/api/product_pricing_2022_05_01.rb +17 -6
  30. data/lib/peddler/api/product_pricing_v0.rb +63 -45
  31. data/lib/peddler/api/product_type_definitions_2020_09_01.rb +29 -18
  32. data/lib/peddler/api/replenishment_2022_11_07.rb +21 -9
  33. data/lib/peddler/api/reports_2021_06_30.rb +60 -36
  34. data/lib/peddler/api/sales_v1.rb +20 -12
  35. data/lib/peddler/api/sellers_v1.rb +16 -4
  36. data/lib/peddler/api/services_v1.rb +138 -98
  37. data/lib/peddler/api/shipment_invoicing_v0.rb +25 -12
  38. data/lib/peddler/api/shipping_v1.rb +54 -29
  39. data/lib/peddler/api/shipping_v2.rb +132 -80
  40. data/lib/peddler/api/solicitations_v1.rb +18 -8
  41. data/lib/peddler/api/supply_sources_2020_07_01.rb +33 -15
  42. data/lib/peddler/api/tokens_2021_03_01.rb +13 -5
  43. data/lib/peddler/api/uploads_2020_11_01.rb +16 -6
  44. data/lib/peddler/api/vendor_direct_fulfillment_inventory_v1.rb +12 -4
  45. data/lib/peddler/api/vendor_direct_fulfillment_orders_2021_12_28.rb +29 -17
  46. data/lib/peddler/api/vendor_direct_fulfillment_orders_v1.rb +29 -17
  47. data/lib/peddler/api/vendor_direct_fulfillment_payments_v1.rb +11 -3
  48. data/lib/peddler/api/vendor_direct_fulfillment_sandbox_test_data_2021_10_28.rb +14 -4
  49. data/lib/peddler/api/vendor_direct_fulfillment_shipping_2021_12_28.rb +74 -48
  50. data/lib/peddler/api/vendor_direct_fulfillment_shipping_v1.rb +74 -50
  51. data/lib/peddler/api/vendor_direct_fulfillment_transactions_2021_12_28.rb +11 -3
  52. data/lib/peddler/api/vendor_direct_fulfillment_transactions_v1.rb +11 -3
  53. data/lib/peddler/api/vendor_invoices_v1.rb +11 -3
  54. data/lib/peddler/api/vendor_orders_v1.rb +54 -43
  55. data/lib/peddler/api/vendor_shipments_v1.rb +63 -51
  56. data/lib/peddler/api/vendor_transaction_status_v1.rb +12 -3
  57. data/lib/peddler/api.rb +41 -18
  58. data/lib/peddler/endpoint.rb +51 -0
  59. data/lib/peddler/error.rb +1 -0
  60. data/lib/peddler/marketplace.rb +49 -0
  61. data/lib/peddler/token.rb +70 -0
  62. data/lib/peddler/version.rb +1 -1
  63. data/lib/peddler.rb +56 -52
  64. metadata +10 -6
  65. data/lib/peddler/access_token.rb +0 -76
  66. data/lib/peddler/region.rb +0 -30
@@ -3,6 +3,12 @@
3
3
  require "peddler/api"
4
4
 
5
5
  module Peddler
6
+ class << self
7
+ def orders_v0(...)
8
+ API::OrdersV0.new(...)
9
+ end
10
+ end
11
+
6
12
  class API
7
13
  # Selling Partner API for Orders
8
14
  #
@@ -16,29 +22,30 @@ module Peddler
16
22
  # types of orders, you can apply filters to your request. `NextToken` doesn't affect any filters that you include
17
23
  # in your request; it only impacts the pagination for the filtered orders response.
18
24
  #
19
- # @param [String] created_after Use this date to select orders created after (or at) a specified time. Only orders
25
+ # @note This operation can make a static sandbox call.
26
+ # @param created_after [String] Use this date to select orders created after (or at) a specified time. Only orders
20
27
  # placed after the specified time are returned. The date must be in [ISO
21
28
  # 8601](https://developer-docs.amazon.com/sp-api/docs/iso-8601) format. **Note**: Either the `CreatedAfter`
22
29
  # parameter or the `LastUpdatedAfter` parameter is required. Both cannot be empty. `LastUpdatedAfter` and
23
30
  # `LastUpdatedBefore` cannot be set when `CreatedAfter` is set.
24
- # @param [String] created_before Use this date to select orders created before (or at) a specified time. Only
31
+ # @param created_before [String] Use this date to select orders created before (or at) a specified time. Only
25
32
  # orders placed before the specified time are returned. The date must be in [ISO
26
33
  # 8601](https://developer-docs.amazon.com/sp-api/docs/iso-8601) format. **Note**: `CreatedBefore` is optional
27
34
  # when `CreatedAfter` is set. If specified, `CreatedBefore` must be equal to or after the `CreatedAfter` date
28
35
  # and at least two minutes before current time.
29
- # @param [String] last_updated_after Use this date to select orders that were last updated after (or at) a
36
+ # @param last_updated_after [String] Use this date to select orders that were last updated after (or at) a
30
37
  # specified time. An update is defined as any change in order status, including the creation of a new order.
31
38
  # Includes updates made by Amazon and by the seller. The date must be in [ISO
32
39
  # 8601](https://developer-docs.amazon.com/sp-api/docs/iso-8601) format. **Note**: Either the `CreatedAfter`
33
40
  # parameter or the `LastUpdatedAfter` parameter is required. Both cannot be empty. `CreatedAfter` or
34
41
  # `CreatedBefore` cannot be set when `LastUpdatedAfter` is set.
35
- # @param [String] last_updated_before Use this date to select orders that were last updated before (or at) a
42
+ # @param last_updated_before [String] Use this date to select orders that were last updated before (or at) a
36
43
  # specified time. An update is defined as any change in order status, including the creation of a new order.
37
44
  # Includes updates made by Amazon and by the seller. The date must be in [ISO
38
45
  # 8601](https://developer-docs.amazon.com/sp-api/docs/iso-8601) format. **Note**: `LastUpdatedBefore` is
39
46
  # optional when `LastUpdatedAfter` is set. But if specified, `LastUpdatedBefore` must be equal to or after the
40
47
  # `LastUpdatedAfter` date and at least two minutes before current time.
41
- # @param [Array<String>] order_statuses A list of `OrderStatus` values used to filter the results. **Possible
48
+ # @param order_statuses [Array<String>] A list of `OrderStatus` values used to filter the results. **Possible
42
49
  # values:** - `PendingAvailability` (This status is available for pre-orders only. The order has been placed,
43
50
  # payment has not been authorized, and the release date of the item is in the future.) - `Pending` (The order
44
51
  # has been placed but payment has not been authorized.) - `Unshipped` (Payment has been authorized and the order
@@ -47,23 +54,23 @@ module Peddler
47
54
  # `InvoiceUnconfirmed` (All items in the order have been shipped. The seller has not yet given confirmation to
48
55
  # Amazon that the invoice has been shipped to the buyer.) - `Canceled` (The order has been canceled.) -
49
56
  # `Unfulfillable` (The order cannot be fulfilled. This state applies only to Multi-Channel Fulfillment orders.)
50
- # @param [Array<String>] marketplace_ids A list of `MarketplaceId` values. Used to select orders that were placed
57
+ # @param marketplace_ids [Array<String>] A list of `MarketplaceId` values. Used to select orders that were placed
51
58
  # in the specified marketplaces. Refer to [Marketplace
52
59
  # IDs](https://developer-docs.amazon.com/sp-api/docs/marketplace-ids) for a complete list of `marketplaceId`
53
60
  # values.
54
- # @param [Array<String>] fulfillment_channels A list that indicates how an order was fulfilled. Filters the
61
+ # @param fulfillment_channels [Array<String>] A list that indicates how an order was fulfilled. Filters the
55
62
  # results by fulfillment channel. **Possible values**: `AFN` (fulfilled by Amazon), `MFN` (fulfilled by seller).
56
- # @param [Array<String>] payment_methods A list of payment method values. Use this field to select orders that
63
+ # @param payment_methods [Array<String>] A list of payment method values. Use this field to select orders that
57
64
  # were paid with the specified payment methods. **Possible values**: `COD` (cash on delivery), `CVS`
58
65
  # (convenience store), `Other` (Any payment method other than COD or CVS).
59
- # @param [String] buyer_email The email address of a buyer. Used to select orders that contain the specified email
66
+ # @param buyer_email [String] The email address of a buyer. Used to select orders that contain the specified email
60
67
  # address.
61
- # @param [String] seller_order_id An order identifier that is specified by the seller. Used to select only the
68
+ # @param seller_order_id [String] An order identifier that is specified by the seller. Used to select only the
62
69
  # orders that match the order identifier. If `SellerOrderId` is specified, then `FulfillmentChannels`,
63
70
  # `OrderStatuses`, `PaymentMethod`, `LastUpdatedAfter`, LastUpdatedBefore, and `BuyerEmail` cannot be specified.
64
- # @param [Integer] max_results_per_page A number that indicates the maximum number of orders that can be returned
71
+ # @param max_results_per_page [Integer] A number that indicates the maximum number of orders that can be returned
65
72
  # per page. Value must be 1 - 100. Default 100.
66
- # @param [Array<String>] easy_ship_shipment_statuses A list of `EasyShipShipmentStatus` values. Used to select
73
+ # @param easy_ship_shipment_statuses [Array<String>] A list of `EasyShipShipmentStatus` values. Used to select
67
74
  # Easy Ship orders with statuses that match the specified values. If `EasyShipShipmentStatus` is specified, only
68
75
  # Amazon Easy Ship orders are returned. **Possible values:** - `PendingSchedule` (The package is awaiting the
69
76
  # schedule for pick-up.) - `PendingPickUp` (Amazon has not yet picked up the package from the seller.) -
@@ -76,41 +83,41 @@ module Peddler
76
83
  # seller.) - `ReturnedToSeller` (The package was not delivered and was returned to the seller.) - `Lost` (The
77
84
  # package is lost.) - `OutForDelivery` (The package is out for delivery.) - `Damaged` (The package was damaged
78
85
  # by the carrier.)
79
- # @param [Array<String>] electronic_invoice_statuses A list of `ElectronicInvoiceStatus` values. Used to select
86
+ # @param electronic_invoice_statuses [Array<String>] A list of `ElectronicInvoiceStatus` values. Used to select
80
87
  # orders with electronic invoice statuses that match the specified values. **Possible values:** - `NotRequired`
81
88
  # (Electronic invoice submission is not required for this order.) - `NotFound` (The electronic invoice was not
82
89
  # submitted for this order.) - `Processing` (The electronic invoice is being processed for this order.) -
83
90
  # `Errored` (The last submitted electronic invoice was rejected for this order.) - `Accepted` (The last
84
91
  # submitted electronic invoice was submitted and accepted.)
85
- # @param [String] next_token A string token returned in the response of your previous request.
86
- # @param [Array<String>] amazon_order_ids A list of `AmazonOrderId` values. An `AmazonOrderId` is an
92
+ # @param next_token [String] A string token returned in the response of your previous request.
93
+ # @param amazon_order_ids [Array<String>] A list of `AmazonOrderId` values. An `AmazonOrderId` is an
87
94
  # Amazon-defined order identifier, in 3-7-7 format.
88
- # @param [String] actual_fulfillment_supply_source_id The `sourceId` of the location from where you want the order
95
+ # @param actual_fulfillment_supply_source_id [String] The `sourceId` of the location from where you want the order
89
96
  # fulfilled.
90
- # @param [Boolean] is_ispu When true, this order is marked to be picked up from a store rather than delivered.
91
- # @param [String] store_chain_store_id The store chain store identifier. Linked to a specific store in a store
97
+ # @param is_ispu [Boolean] When true, this order is marked to be picked up from a store rather than delivered.
98
+ # @param store_chain_store_id [String] The store chain store identifier. Linked to a specific store in a store
92
99
  # chain.
93
- # @param [String] earliest_delivery_date_before Use this date to select orders with a earliest delivery date
100
+ # @param earliest_delivery_date_before [String] Use this date to select orders with a earliest delivery date
94
101
  # before (or at) a specified time. The date must be in [ISO
95
102
  # 8601](https://developer-docs.amazon.com/sp-api/docs/iso-8601) format.
96
- # @param [String] earliest_delivery_date_after Use this date to select orders with a earliest delivery date after
103
+ # @param earliest_delivery_date_after [String] Use this date to select orders with a earliest delivery date after
97
104
  # (or at) a specified time. The date must be in [ISO
98
105
  # 8601](https://developer-docs.amazon.com/sp-api/docs/iso-8601) format.
99
- # @param [String] latest_delivery_date_before Use this date to select orders with a latest delivery date before
106
+ # @param latest_delivery_date_before [String] Use this date to select orders with a latest delivery date before
100
107
  # (or at) a specified time. The date must be in [ISO
101
108
  # 8601](https://developer-docs.amazon.com/sp-api/docs/iso-8601) format.
102
- # @param [String] latest_delivery_date_after Use this date to select orders with a latest delivery date after (or
109
+ # @param latest_delivery_date_after [String] Use this date to select orders with a latest delivery date after (or
103
110
  # at) a specified time. The date must be in [ISO 8601](https://developer-docs.amazon.com/sp-api/docs/iso-8601)
104
111
  # format.
112
+ # @param rate_limit [Float] Requests per second
105
113
  # @return [Hash] The API response
106
- def get_orders(
107
- marketplace_ids, created_after: nil, created_before: nil, last_updated_after: nil, last_updated_before: nil,
108
- order_statuses: nil, fulfillment_channels: nil, payment_methods: nil, buyer_email: nil, seller_order_id: nil,
109
- max_results_per_page: nil, easy_ship_shipment_statuses: nil, electronic_invoice_statuses: nil, next_token: nil,
110
- amazon_order_ids: nil, actual_fulfillment_supply_source_id: nil, is_ispu: nil, store_chain_store_id: nil,
114
+ def get_orders(marketplace_ids, created_after: nil, created_before: nil, last_updated_after: nil,
115
+ last_updated_before: nil, order_statuses: nil, fulfillment_channels: nil, payment_methods: nil,
116
+ buyer_email: nil, seller_order_id: nil, max_results_per_page: nil, easy_ship_shipment_statuses: nil,
117
+ electronic_invoice_statuses: nil, next_token: nil, amazon_order_ids: nil,
118
+ actual_fulfillment_supply_source_id: nil, is_ispu: nil, store_chain_store_id: nil,
111
119
  earliest_delivery_date_before: nil, earliest_delivery_date_after: nil, latest_delivery_date_before: nil,
112
- latest_delivery_date_after: nil
113
- )
120
+ latest_delivery_date_after: nil, rate_limit: 0.0167)
114
121
  path = "/orders/v0/orders"
115
122
  params = {
116
123
  "CreatedAfter" => created_after,
@@ -137,47 +144,43 @@ module Peddler
137
144
  "LatestDeliveryDateAfter" => latest_delivery_date_after,
138
145
  }.compact
139
146
 
140
- rate_limit(0.0167).get(path, params:)
147
+ meter(rate_limit).get(path, params:)
141
148
  end
142
149
 
143
150
  # Returns the order that you specify.
144
151
  #
145
- # @param [String] order_id An Amazon-defined order identifier, in 3-7-7 format.
152
+ # @note This operation can make a static sandbox call.
153
+ # @param order_id [String] An Amazon-defined order identifier, in 3-7-7 format.
154
+ # @param rate_limit [Float] Requests per second
146
155
  # @return [Hash] The API response
147
- def get_order(order_id)
156
+ def get_order(order_id, rate_limit: 0.5)
148
157
  path = "/orders/v0/orders/#{order_id}"
149
158
 
150
- rate_limit(0.5).get(path)
159
+ meter(rate_limit).get(path)
151
160
  end
152
161
 
153
162
  # Returns buyer information for the order that you specify.
154
163
  #
155
- # @param [String] order_id An `orderId` is an Amazon-defined order identifier, in 3-7-7 format.
164
+ # @note This operation can make a static sandbox call.
165
+ # @param order_id [String] An `orderId` is an Amazon-defined order identifier, in 3-7-7 format.
166
+ # @param rate_limit [Float] Requests per second
156
167
  # @return [Hash] The API response
157
- def get_order_buyer_info(order_id)
168
+ def get_order_buyer_info(order_id, rate_limit: 0.5)
158
169
  path = "/orders/v0/orders/#{order_id}/buyerInfo"
159
170
 
160
- rate_limit(0.5).get(path)
171
+ meter(rate_limit).get(path)
161
172
  end
162
173
 
163
174
  # Returns the shipping address for the order that you specify.
164
175
  #
165
- # @param [String] order_id An `orderId` is an Amazon-defined order identifier, in 3-7-7 format.
176
+ # @note This operation can make a static sandbox call.
177
+ # @param order_id [String] An `orderId` is an Amazon-defined order identifier, in 3-7-7 format.
178
+ # @param rate_limit [Float] Requests per second
166
179
  # @return [Hash] The API response
167
- def get_order_address(order_id)
180
+ def get_order_address(order_id, rate_limit: 0.5)
168
181
  path = "/orders/v0/orders/#{order_id}/address"
169
182
 
170
- rate_limit(0.5).get(path)
171
- end
172
-
173
- # Returns the fulfillment instructions for the order that you specify.
174
- #
175
- # @param [String] order_id An Amazon-defined order identifier, in 3-7-7 format.
176
- # @return [Hash] The API response
177
- def get_order_fulfillment_instructions(order_id)
178
- path = "/orders/v0/orders/#{order_id}/fulfillmentInstructions"
179
-
180
- rate_limit(0.5).get(path)
183
+ meter(rate_limit).get(path)
181
184
  end
182
185
 
183
186
  # Returns detailed order item information for the order that you specify. If `NextToken` is provided, it's used to
@@ -188,76 +191,88 @@ module Peddler
188
191
  # Shipped, or Shipped state, the getOrderItems operation returns information about pricing, taxes, shipping
189
192
  # charges, gift status and promotions for the order items in the order.
190
193
  #
191
- # @param [String] order_id An Amazon-defined order identifier, in 3-7-7 format.
192
- # @param [String] next_token A string token returned in the response of your previous request.
194
+ # @note This operation can make a static sandbox call.
195
+ # @param order_id [String] An Amazon-defined order identifier, in 3-7-7 format.
196
+ # @param next_token [String] A string token returned in the response of your previous request.
197
+ # @param rate_limit [Float] Requests per second
193
198
  # @return [Hash] The API response
194
- def get_order_items(order_id, next_token: nil)
199
+ def get_order_items(order_id, next_token: nil, rate_limit: 0.5)
195
200
  path = "/orders/v0/orders/#{order_id}/orderItems"
196
201
  params = {
197
202
  "NextToken" => next_token,
198
203
  }.compact
199
204
 
200
- rate_limit(0.5).get(path, params:)
205
+ meter(rate_limit).get(path, params:)
201
206
  end
202
207
 
203
208
  # Returns buyer information for the order items in the order that you specify.
204
209
  #
205
- # @param [String] order_id An Amazon-defined order identifier, in 3-7-7 format.
206
- # @param [String] next_token A string token returned in the response of your previous request.
210
+ # @note This operation can make a static sandbox call.
211
+ # @param order_id [String] An Amazon-defined order identifier, in 3-7-7 format.
212
+ # @param next_token [String] A string token returned in the response of your previous request.
213
+ # @param rate_limit [Float] Requests per second
207
214
  # @return [Hash] The API response
208
- def get_order_items_buyer_info(order_id, next_token: nil)
215
+ def get_order_items_buyer_info(order_id, next_token: nil, rate_limit: 0.5)
209
216
  path = "/orders/v0/orders/#{order_id}/orderItems/buyerInfo"
210
217
  params = {
211
218
  "NextToken" => next_token,
212
219
  }.compact
213
220
 
214
- rate_limit(0.5).get(path, params:)
221
+ meter(rate_limit).get(path, params:)
215
222
  end
216
223
 
217
224
  # Update the shipment status for an order that you specify.
218
225
  #
219
- # @param [String] order_id An Amazon-defined order identifier, in 3-7-7 format.
220
- # @param [Hash] payload The request body for the `updateShipmentStatus` operation.
226
+ # @note This operation can make a static sandbox call.
227
+ # @param order_id [String] An Amazon-defined order identifier, in 3-7-7 format.
228
+ # @param payload [Hash] The request body for the `updateShipmentStatus` operation.
229
+ # @param rate_limit [Float] Requests per second
221
230
  # @return [Hash] The API response
222
- def update_shipment_status(order_id, payload)
231
+ def update_shipment_status(order_id, payload, rate_limit: 5.0)
223
232
  path = "/orders/v0/orders/#{order_id}/shipment"
224
233
  body = payload
225
234
 
226
- rate_limit(5.0).post(path, body:)
235
+ meter(rate_limit).post(path, body:)
227
236
  end
228
237
 
229
238
  # Returns regulated information for the order that you specify.
230
239
  #
231
- # @param [String] order_id An Amazon-defined order identifier, in 3-7-7 format.
240
+ # @note This operation can make a static sandbox call.
241
+ # @param order_id [String] An Amazon-defined order identifier, in 3-7-7 format.
242
+ # @param rate_limit [Float] Requests per second
232
243
  # @return [Hash] The API response
233
- def get_order_regulated_info(order_id)
244
+ def get_order_regulated_info(order_id, rate_limit: 0.5)
234
245
  path = "/orders/v0/orders/#{order_id}/regulatedInfo"
235
246
 
236
- rate_limit(0.5).get(path)
247
+ meter(rate_limit).get(path)
237
248
  end
238
249
 
239
250
  # Updates (approves or rejects) the verification status of an order containing regulated products.
240
251
  #
241
- # @param [String] order_id An Amazon-defined order identifier, in 3-7-7 format.
242
- # @param [Hash] payload The request body for the `updateVerificationStatus` operation.
252
+ # @note This operation can make a static sandbox call.
253
+ # @param order_id [String] An Amazon-defined order identifier, in 3-7-7 format.
254
+ # @param payload [Hash] The request body for the `updateVerificationStatus` operation.
255
+ # @param rate_limit [Float] Requests per second
243
256
  # @return [Hash] The API response
244
- def update_verification_status(order_id, payload)
257
+ def update_verification_status(order_id, payload, rate_limit: 0.5)
245
258
  path = "/orders/v0/orders/#{order_id}/regulatedInfo"
246
259
  body = payload
247
260
 
248
- rate_limit(0.5).patch(path, body:)
261
+ meter(rate_limit).patch(path, body:)
249
262
  end
250
263
 
251
264
  # Updates the shipment confirmation status for a specified order.
252
265
  #
253
- # @param [String] order_id An Amazon-defined order identifier, in 3-7-7 format.
254
- # @param [Hash] payload Request body of `confirmShipment`.
266
+ # @note This operation can make a static sandbox call.
267
+ # @param order_id [String] An Amazon-defined order identifier, in 3-7-7 format.
268
+ # @param payload [Hash] Request body of `confirmShipment`.
269
+ # @param rate_limit [Float] Requests per second
255
270
  # @return [Hash] The API response
256
- def confirm_shipment(order_id, payload)
271
+ def confirm_shipment(order_id, payload, rate_limit: 2.0)
257
272
  path = "/orders/v0/orders/#{order_id}/shipmentConfirmation"
258
273
  body = payload
259
274
 
260
- rate_limit(2.0).post(path, body:)
275
+ meter(rate_limit).post(path, body:)
261
276
  end
262
277
  end
263
278
  end
@@ -3,6 +3,12 @@
3
3
  require "peddler/api"
4
4
 
5
5
  module Peddler
6
+ class << self
7
+ def product_fees_v0(...)
8
+ API::ProductFeesV0.new(...)
9
+ end
10
+ end
11
+
6
12
  class API
7
13
  # Selling Partner API for Product Fees
8
14
  #
@@ -10,59 +16,61 @@ module Peddler
10
16
  # then account for those fees in your pricing.
11
17
  class ProductFeesV0 < API
12
18
  # Returns the estimated fees for the item indicated by the specified seller SKU in the marketplace specified in
13
- # the request body.
14
- # @note The parameters associated with this operation may contain special characters that require URL encoding to
15
- # call the API. To avoid errors with SKUs when encoding URLs, refer to [URL
16
- # Encoding](https://developer-docs.amazon.com/sp-api/docs/url-encoding). You can call `getMyFeesEstimateForSKU`
17
- # for an item on behalf of a selling partner before the selling partner sets the item's price. The selling
18
- # partner can then take any estimated fees into account. Each fees estimate request must include an original
19
- # identifier. This identifier is included in the fees estimate so that you can correlate a fees estimate with
20
- # the original request.
21
- # @note This identifier value is used to identify an estimate. Actual costs may vary. Search "fees" in [Seller
22
- # Central](https://sellercentral.amazon.com/) and consult the store-specific fee schedule for the most
23
- # up-to-date information.
24
- # @note When sellers use the `getMyFeesEstimateForSKU` operation with their `SellerSKU`, they get accurate fees
25
- # based on real item measurements, but only after they've sent their items to Amazon.
19
+ # the request body. **Note:** The parameters associated with this operation may contain special characters that
20
+ # require URL encoding to call the API. To avoid errors with SKUs when encoding URLs, refer to [URL
21
+ # Encoding](https://developer-docs.amazon.com/sp-api/docs/url-encoding). You can call `getMyFeesEstimateForSKU`
22
+ # for an item on behalf of a selling partner before the selling partner sets the item's price. The selling partner
23
+ # can then take any estimated fees into account. Each fees estimate request must include an original identifier.
24
+ # This identifier is included in the fees estimate so that you can correlate a fees estimate with the original
25
+ # request. **Note:** This identifier value is used to identify an estimate. Actual costs may vary. Search "fees"
26
+ # in [Seller Central](https://sellercentral.amazon.com/) and consult the store-specific fee schedule for the most
27
+ # up-to-date information. **Note:** When sellers use the `getMyFeesEstimateForSKU` operation with their
28
+ # `SellerSKU`, they get accurate fees based on real item measurements, but only after they've sent their items to
29
+ # Amazon.
26
30
  #
27
- # @param [Hash] body
28
- # @param [String] seller_sku Used to identify an item in the given marketplace. SellerSKU is qualified by the
31
+ # @note This operation can make a static sandbox call.
32
+ # @param body [Hash]
33
+ # @param seller_sku [String] Used to identify an item in the given marketplace. SellerSKU is qualified by the
29
34
  # seller's SellerId, which is included with every operation that you submit.
35
+ # @param rate_limit [Float] Requests per second
30
36
  # @return [Hash] The API response
31
- def get_my_fees_estimate_for_sku(body, seller_sku)
37
+ def get_my_fees_estimate_for_sku(body, seller_sku, rate_limit: 1.0)
32
38
  path = "/products/fees/v0/listings/#{seller_sku}/feesEstimate"
33
39
 
34
- rate_limit(1.0).post(path, body:)
40
+ meter(rate_limit).post(path, body:)
35
41
  end
36
42
 
37
43
  # Returns the estimated fees for the item indicated by the specified ASIN in the marketplace specified in the
38
44
  # request body. You can call `getMyFeesEstimateForASIN` for an item on behalf of a selling partner before the
39
45
  # selling partner sets the item's price. The selling partner can then take estimated fees into account. Each fees
40
46
  # request must include an original identifier. This identifier is included in the fees estimate so you can
41
- # correlate a fees estimate with the original request.
42
- # @note This identifier value is used to identify an estimate. Actual costs may vary. Search "fees" in [Seller
43
- # Central](https://sellercentral.amazon.com/) and consult the store-specific fee schedule for the most
44
- # up-to-date information.
45
- # @note When using the `getMyFeesEstimateForASIN` operation with an ASIN, the fee estimates might be different.
46
- # This is because these estimates use the item's catalog size, which might not always match the actual size of
47
- # the item sent to Amazon.
47
+ # correlate a fees estimate with the original request. **Note:** This identifier value is used to identify an
48
+ # estimate. Actual costs may vary. Search "fees" in [Seller Central](https://sellercentral.amazon.com/) and
49
+ # consult the store-specific fee schedule for the most up-to-date information. **Note:** When using the
50
+ # `getMyFeesEstimateForASIN` operation with an ASIN, the fee estimates might be different. This is because these
51
+ # estimates use the item's catalog size, which might not always match the actual size of the item sent to Amazon.
48
52
  #
49
- # @param [Hash] body
50
- # @param [String] asin The Amazon Standard Identification Number (ASIN) of the item.
53
+ # @note This operation can make a static sandbox call.
54
+ # @param body [Hash]
55
+ # @param asin [String] The Amazon Standard Identification Number (ASIN) of the item.
56
+ # @param rate_limit [Float] Requests per second
51
57
  # @return [Hash] The API response
52
- def get_my_fees_estimate_for_asin(body, asin)
58
+ def get_my_fees_estimate_for_asin(body, asin, rate_limit: 1.0)
53
59
  path = "/products/fees/v0/items/#{asin}/feesEstimate"
54
60
 
55
- rate_limit(1.0).post(path, body:)
61
+ meter(rate_limit).post(path, body:)
56
62
  end
57
63
 
58
64
  # Returns the estimated fees for a list of products.
59
65
  #
60
- # @param [Hash] body
66
+ # @note This operation can make a static sandbox call.
67
+ # @param body [Hash]
68
+ # @param rate_limit [Float] Requests per second
61
69
  # @return [Hash] The API response
62
- def get_my_fees_estimates(body)
70
+ def get_my_fees_estimates(body, rate_limit: 0.5)
63
71
  path = "/products/fees/v0/feesEstimate"
64
72
 
65
- rate_limit(0.5).post(path, body:)
73
+ meter(rate_limit).post(path, body:)
66
74
  end
67
75
  end
68
76
  end
@@ -3,6 +3,12 @@
3
3
  require "peddler/api"
4
4
 
5
5
  module Peddler
6
+ class << self
7
+ def product_pricing_2022_05_01(...)
8
+ API::ProductPricing20220501.new(...)
9
+ end
10
+ end
11
+
6
12
  class API
7
13
  # Selling Partner API for Pricing
8
14
  #
@@ -17,26 +23,31 @@ module Peddler
17
23
  # change, and different offers may be featured based on other factors, including fulfillment capabilities to a
18
24
  # specific customer. The response to an unsuccessful request includes the available error text.
19
25
  #
20
- # @param [Hash] get_featured_offer_expected_price_batch_request_body The batch of `getFeaturedOfferExpectedPrice`
26
+ # @note This operation can make a static sandbox call.
27
+ # @param get_featured_offer_expected_price_batch_request_body [Hash] The batch of `getFeaturedOfferExpectedPrice`
21
28
  # requests.
29
+ # @param rate_limit [Float] Requests per second
22
30
  # @return [Hash] The API response
23
- def get_featured_offer_expected_price_batch(get_featured_offer_expected_price_batch_request_body)
31
+ def get_featured_offer_expected_price_batch(get_featured_offer_expected_price_batch_request_body,
32
+ rate_limit: 0.033)
24
33
  path = "/batches/products/pricing/2022-05-01/offer/featuredOfferExpectedPrice"
25
34
  body = get_featured_offer_expected_price_batch_request_body
26
35
 
27
- rate_limit(0.033).post(path, body:)
36
+ meter(rate_limit).post(path, body:)
28
37
  end
29
38
 
30
39
  # Returns the competitive summary response including featured buying options for the ASIN and `marketplaceId`
31
40
  # combination.
32
41
  #
33
- # @param [Hash] requests The batch of `getCompetitiveSummary` requests.
42
+ # @note This operation can make a static sandbox call.
43
+ # @param requests [Hash] The batch of `getCompetitiveSummary` requests.
44
+ # @param rate_limit [Float] Requests per second
34
45
  # @return [Hash] The API response
35
- def get_competitive_summary(requests)
46
+ def get_competitive_summary(requests, rate_limit: 0.033)
36
47
  path = "/batches/products/pricing/2022-05-01/items/competitiveSummary"
37
48
  body = requests
38
49
 
39
- rate_limit(0.033).post(path, body:)
50
+ meter(rate_limit).post(path, body:)
40
51
  end
41
52
  end
42
53
  end