peddler 2.4.4 → 3.0.0.beta1

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 (104) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +406 -134
  3. data/lib/peddler/access_token.rb +76 -0
  4. data/lib/peddler/api/amazon_warehousing_and_distribution_2024_05_09.rb +80 -0
  5. data/lib/peddler/api/aplus_content_2020_11_01.rb +208 -0
  6. data/lib/peddler/api/application_management_2023_11_30.rb +25 -0
  7. data/lib/peddler/api/catalog_items_2020_12_01.rb +70 -0
  8. data/lib/peddler/api/catalog_items_2022_04_01.rb +83 -0
  9. data/lib/peddler/api/catalog_items_v0.rb +90 -0
  10. data/lib/peddler/api/data_kiosk_2023_11_15.rb +92 -0
  11. data/lib/peddler/api/easy_ship_2022_03_23.rb +108 -0
  12. data/lib/peddler/api/fba_inbound_eligibility_v1.rb +36 -0
  13. data/lib/peddler/api/fba_inventory_v1.rb +106 -0
  14. data/lib/peddler/api/feeds_2021_06_30.rb +104 -0
  15. data/lib/peddler/api/finances_v0.rb +121 -0
  16. data/lib/peddler/api/fulfillment_inbound_2024_03_20.rb +660 -0
  17. data/lib/peddler/api/fulfillment_inbound_v0.rb +314 -0
  18. data/lib/peddler/api/fulfillment_outbound_2020_07_01.rb +222 -0
  19. data/lib/peddler/api/listings_items_2020_09_01.rb +84 -0
  20. data/lib/peddler/api/listings_items_2021_08_01.rb +154 -0
  21. data/lib/peddler/api/listings_restrictions_2021_08_01.rb +37 -0
  22. data/lib/peddler/api/merchant_fulfillment_v0.rb +64 -0
  23. data/lib/peddler/api/messaging_v1.rb +241 -0
  24. data/lib/peddler/api/notifications_v1.rb +114 -0
  25. data/lib/peddler/api/orders_v0.rb +264 -0
  26. data/lib/peddler/api/product_fees_v0.rb +69 -0
  27. data/lib/peddler/api/product_pricing_2022_05_01.rb +43 -0
  28. data/lib/peddler/api/product_pricing_v0.rb +144 -0
  29. data/lib/peddler/api/product_type_definitions_2020_09_01.rb +75 -0
  30. data/lib/peddler/api/replenishment_2022_11_07.rb +45 -0
  31. data/lib/peddler/api/reports_2021_06_30.rb +139 -0
  32. data/lib/peddler/api/sales_v1.rb +69 -0
  33. data/lib/peddler/api/sellers_v1.rb +33 -0
  34. data/lib/peddler/api/services_v1.rb +308 -0
  35. data/lib/peddler/api/shipment_invoicing_v0.rb +46 -0
  36. data/lib/peddler/api/shipping_v1.rb +107 -0
  37. data/lib/peddler/api/shipping_v2.rb +267 -0
  38. data/lib/peddler/api/solicitations_v1.rb +53 -0
  39. data/lib/peddler/api/supply_sources_2020_07_01.rb +82 -0
  40. data/lib/peddler/api/tokens_2021_03_01.rb +30 -0
  41. data/lib/peddler/api/uploads_2020_11_01.rb +40 -0
  42. data/lib/peddler/api/vendor_direct_fulfillment_inventory_v1.rb +24 -0
  43. data/lib/peddler/api/vendor_direct_fulfillment_orders_2021_12_28.rb +72 -0
  44. data/lib/peddler/api/vendor_direct_fulfillment_orders_v1.rb +72 -0
  45. data/lib/peddler/api/vendor_direct_fulfillment_payments_v1.rb +23 -0
  46. data/lib/peddler/api/vendor_direct_fulfillment_sandbox_test_data_2021_10_28.rb +35 -0
  47. data/lib/peddler/api/vendor_direct_fulfillment_shipping_2021_12_28.rb +177 -0
  48. data/lib/peddler/api/vendor_direct_fulfillment_shipping_v1.rb +165 -0
  49. data/lib/peddler/api/vendor_direct_fulfillment_transactions_2021_12_28.rb +24 -0
  50. data/lib/peddler/api/vendor_direct_fulfillment_transactions_v1.rb +24 -0
  51. data/lib/peddler/api/vendor_invoices_v1.rb +22 -0
  52. data/lib/peddler/api/vendor_orders_v1.rb +148 -0
  53. data/lib/peddler/api/vendor_shipments_v1.rb +120 -0
  54. data/lib/peddler/api/vendor_transaction_status_v1.rb +24 -0
  55. data/lib/peddler/api.rb +115 -0
  56. data/lib/peddler/error.rb +30 -0
  57. data/lib/peddler/region.rb +30 -0
  58. data/lib/peddler/version.rb +1 -1
  59. data/lib/peddler.rb +52 -1
  60. metadata +70 -80
  61. data/lib/mws/easy_ship/client.rb +0 -93
  62. data/lib/mws/easy_ship.rb +0 -3
  63. data/lib/mws/feeds/client.rb +0 -122
  64. data/lib/mws/feeds.rb +0 -3
  65. data/lib/mws/finances/client.rb +0 -82
  66. data/lib/mws/finances.rb +0 -3
  67. data/lib/mws/fulfillment_inbound_shipment/client.rb +0 -388
  68. data/lib/mws/fulfillment_inbound_shipment.rb +0 -3
  69. data/lib/mws/fulfillment_inventory/client.rb +0 -57
  70. data/lib/mws/fulfillment_inventory.rb +0 -3
  71. data/lib/mws/fulfillment_outbound_shipment/client.rb +0 -211
  72. data/lib/mws/fulfillment_outbound_shipment.rb +0 -3
  73. data/lib/mws/merchant_fulfillment/client.rb +0 -87
  74. data/lib/mws/merchant_fulfillment.rb +0 -3
  75. data/lib/mws/off_amazon_payments.rb +0 -3
  76. data/lib/mws/orders/client.rb +0 -120
  77. data/lib/mws/orders.rb +0 -3
  78. data/lib/mws/products/client.rb +0 -268
  79. data/lib/mws/products.rb +0 -3
  80. data/lib/mws/recommendations/client.rb +0 -72
  81. data/lib/mws/recommendations.rb +0 -3
  82. data/lib/mws/reports/client.rb +0 -236
  83. data/lib/mws/reports.rb +0 -3
  84. data/lib/mws/sellers/client.rb +0 -44
  85. data/lib/mws/sellers.rb +0 -3
  86. data/lib/mws/shipment_invoicing/client.rb +0 -74
  87. data/lib/mws/shipment_invoicing.rb +0 -3
  88. data/lib/mws/subscriptions/client.rb +0 -179
  89. data/lib/mws/subscriptions.rb +0 -3
  90. data/lib/mws.rb +0 -29
  91. data/lib/peddler/client.rb +0 -159
  92. data/lib/peddler/errors/builder.rb +0 -64
  93. data/lib/peddler/errors/class_generator.rb +0 -40
  94. data/lib/peddler/errors/error.rb +0 -45
  95. data/lib/peddler/errors/parser.rb +0 -28
  96. data/lib/peddler/flat_file_parser.rb +0 -56
  97. data/lib/peddler/headers.rb +0 -102
  98. data/lib/peddler/marketplace.rb +0 -78
  99. data/lib/peddler/operation.rb +0 -78
  100. data/lib/peddler/parser.rb +0 -33
  101. data/lib/peddler/structured_list.rb +0 -23
  102. data/lib/peddler/vcr_matcher.rb +0 -97
  103. data/lib/peddler/xml_parser.rb +0 -38
  104. data/lib/peddler/xml_response_parser.rb +0 -25
@@ -1,87 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'peddler/client'
4
-
5
- module MWS
6
- module MerchantFulfillment
7
- # The Merchant Fulfillment API provides programmatic access to Amazon's
8
- # Shipping Services for sellers, including competitive rates from
9
- # Amazon-partnered carriers. Sellers can find out what shipping service
10
- # offers are available by submitting information about a proposed shipment,
11
- # such as package size and weight, shipment origin, and delivery date
12
- # requirements. Sellers can choose from the shipping service offers returned
13
- # by Amazon, and then purchase shipping labels for fulfilling their orders.
14
- class Client < ::Peddler::Client
15
- self.version = '2015-06-01'
16
- self.path = "/MerchantFulfillment/#{version}"
17
-
18
- # Returns a list of shipping service offers that satisfy the shipment
19
- # request details that you specify
20
- #
21
- # @see https://docs.developer.amazonservices.com/en_US/merch_fulfill/MerchFulfill_GetEligibleShippingServices.html
22
- # @param [Struct, Hash] shipment_request_details
23
- # @return [Peddler::XMLParser]
24
- def get_eligible_shipping_services(shipment_request_details)
25
- operation('GetEligibleShippingServices')
26
- .add('ShipmentRequestDetails' => shipment_request_details)
27
- .structure!('ItemList', 'Item')
28
-
29
- run
30
- end
31
-
32
- # Purchases shipping and returns PNG or PDF document data for a shipping
33
- # label
34
- #
35
- # @see https://docs.developer.amazonservices.com/en_US/merch_fulfill/MerchFulfill_CreateShipment.html
36
- # @param [Struct, Hash] shipment_request_details
37
- # @param [String] shipping_service_id
38
- # @param [Hash] opts
39
- # @option opts [String] :shipping_service_offer_id
40
- # @return [Peddler::XMLParser]
41
- def create_shipment(shipment_request_details, shipping_service_id,
42
- opts = {})
43
- operation('CreateShipment')
44
- .add(opts)
45
- .add('ShipmentRequestDetails' => shipment_request_details,
46
- 'ShippingServiceId' => shipping_service_id)
47
- .structure!('ItemList', 'Item')
48
-
49
- run
50
- end
51
-
52
- # Returns an existing shipment for the ShipmentId value that you specify
53
- #
54
- # @see https://docs.developer.amazonservices.com/en_US/merch_fulfill/MerchFulfill_GetShipment.html
55
- # @param [String] shipment_id
56
- # @return [Peddler::XMLParser]
57
- def get_shipment(shipment_id)
58
- operation('GetShipment')
59
- .add('ShipmentId' => shipment_id)
60
-
61
- run
62
- end
63
-
64
- # Cancels an existing shipment and requests a refund for the ShipmentId
65
- # value that you specify
66
- #
67
- # @see https://docs.developer.amazonservices.com/en_US/merch_fulfill/MerchFulfill_CancelShipment.html
68
- # @param [String] shipment_id
69
- # @return [Peddler::XMLParser]
70
- def cancel_shipment(shipment_id)
71
- operation('CancelShipment')
72
- .add('ShipmentId' => shipment_id)
73
-
74
- run
75
- end
76
-
77
- # Gets the operational status of the API
78
- #
79
- # @see https://docs.developer.amazonservices.com/en_US/merch_fulfill/MWS_GetServiceStatus.html
80
- # @return [Peddler::XMLParser]
81
- def get_service_status
82
- operation('GetServiceStatus')
83
- run
84
- end
85
- end
86
- end
87
- end
@@ -1,3 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'mws/merchant_fulfillment/client'
@@ -1,3 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'mws/off_amazon_payments/client'
@@ -1,120 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'peddler/client'
4
-
5
- module MWS
6
- module Orders
7
- # With the MWS Orders API, you can list orders created or updated during a
8
- # time frame you specify or retrieve information about specific orders.
9
- class Client < ::Peddler::Client
10
- self.version = '2013-09-01'
11
- self.path = "/Orders/#{version}"
12
-
13
- # Lists orders
14
- #
15
- # @note When calling this operation, you must specify a time frame using
16
- # either created_after or last_updated_after. When requesting orders by
17
- # "Unshipped" status you must also request "PartiallyShipped" orders.
18
- # @see https://docs.developer.amazonservices.com/en_US/orders-2013-09-01/Orders_ListOrders.html
19
- # @overload list_orders(*marketplace_id, opts = {})
20
- # @param [Array<String>] marketplace_id
21
- # @param [Hash] opts
22
- # @option opts [String, #iso8601] :created_after
23
- # @option opts [String, #iso8601] :created_before
24
- # @option opts [String, #iso8601] :last_updated_after
25
- # @option opts [String, #iso8601] :last_updated_before
26
- # @option opts [Array<String>, String] :order_status
27
- # @option opts [Array<String>, String] :fulfillment_channel
28
- # @option opts [Array<String>, String] :payment_method
29
- # @option opts [String] :buyer_email
30
- # @option opts [String] :seller_order_id
31
- # @option opts [String] :max_results_per_page
32
- # @option opts [String] :tfm_shipment_status
33
- # @return [Peddler::XMLParser]
34
- def list_orders(*marketplace_id)
35
- marketplace_id = marketplace_id.dup
36
- opts = extract_options(marketplace_id)
37
- opts['TFMShipmentStatus'] = opts.delete(:tfm_shipment_status) if opts.key?(:tfm_shipment_status)
38
-
39
- operation('ListOrders')
40
- .add(opts)
41
- .add('MarketplaceId' => marketplace_id)
42
- .structure!('OrderStatus', 'Status')
43
- .structure!('FulfillmentChannel', 'Channel')
44
- .structure!('MarketplaceId', 'Id')
45
- .structure!('PaymentMethod')
46
- .structure!('TFMShipmentStatus', 'Status')
47
- require_start_time!
48
-
49
- run
50
- end
51
-
52
- # Lists the next page of orders
53
- #
54
- # @see https://docs.developer.amazonservices.com/en_US/orders-2013-09-01/Orders_ListOrdersByNextToken.html
55
- # @param [String] next_token
56
- # @return [Peddler::XMLParser]
57
- def list_orders_by_next_token(next_token)
58
- operation('ListOrdersByNextToken')
59
- .add('NextToken' => next_token)
60
-
61
- run
62
- end
63
-
64
- # Gets one or more orders
65
- #
66
- # @see https://docs.developer.amazonservices.com/en_US/orders-2013-09-01/Orders_GetOrder.html
67
- # @param [Array<String>] amazon_order_ids
68
- # @return [Peddler::XMLParser]
69
- def get_order(*amazon_order_ids)
70
- operation('GetOrder')
71
- .add('AmazonOrderId' => amazon_order_ids)
72
- .structure!('AmazonOrderId', 'Id')
73
-
74
- run
75
- end
76
-
77
- # Lists order items for an order
78
- #
79
- # @see https://docs.developer.amazonservices.com/en_US/orders-2013-09-01/Orders_ListOrderItems.html
80
- # @param [String] amazon_order_id
81
- # @return [Peddler::XMLParser]
82
- def list_order_items(amazon_order_id)
83
- operation('ListOrderItems')
84
- .add('AmazonOrderId' => amazon_order_id)
85
-
86
- run
87
- end
88
-
89
- # Lists the next page of order items for an order
90
- #
91
- # @see https://docs.developer.amazonservices.com/en_US/orders-2013-09-01/Orders_ListOrderItemsByNextToken.html
92
- # @param [String] next_token
93
- # @return [Peddler::XMLParser]
94
- def list_order_items_by_next_token(next_token)
95
- operation('ListOrderItemsByNextToken')
96
- .add('NextToken' => next_token)
97
-
98
- run
99
- end
100
-
101
- # Gets the service status of the API
102
- #
103
- # @see https://docs.developer.amazonservices.com/en_US/orders-2013-09-01/MWS_GetServiceStatus.html
104
- # @return [Peddler::XMLParser]
105
- def get_service_status
106
- operation('GetServiceStatus')
107
- run
108
- end
109
-
110
- private
111
-
112
- def require_start_time!
113
- return if operation.key?('CreatedAfter')
114
- return if operation.key?('LastUpdatedAfter')
115
-
116
- raise ArgumentError, 'specify created_after or last_updated_after'
117
- end
118
- end
119
- end
120
- end
data/lib/mws/orders.rb DELETED
@@ -1,3 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'mws/orders/client'
@@ -1,268 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'peddler/client'
4
-
5
- module MWS
6
- module Products
7
- # The MWS Products API helps you get information to match your products to
8
- # existing product listings on Amazon Marketplace websites and to make
9
- # sourcing and pricing decisions for listing those products on Amazon
10
- # Marketplace websites.
11
- class Client < ::Peddler::Client
12
- self.version = '2011-10-01'
13
- self.path = "/Products/#{version}"
14
-
15
- # Lists products and their attributes, based on a search query
16
- #
17
- # @see https://docs.developer.amazonservices.com/en_US/products/Products_ListMatchingProducts.html
18
- # @param [String] marketplace_id
19
- # @param [String] query
20
- # @param [Hash] opts
21
- # @option opts [String] :query_context_id
22
- # @return [Peddler::XMLParser]
23
- def list_matching_products(marketplace_id, query, opts = {})
24
- operation('ListMatchingProducts')
25
- .add(opts)
26
- .add('MarketplaceId' => marketplace_id, 'Query' => query)
27
-
28
- run
29
- end
30
-
31
- # Lists products and their attributes, based on a list of ASIN values
32
- #
33
- # @see https://docs.developer.amazonservices.com/en_US/products/Products_GetMatchingProductForId.html
34
- # @param [String] marketplace_id
35
- # @param [Array<String>] asin_list
36
- # @return [Peddler::XMLParser]
37
- def get_matching_product(marketplace_id, *asin_list)
38
- operation('GetMatchingProduct')
39
- .add('MarketplaceId' => marketplace_id, 'ASINList' => asin_list)
40
- .structure!('ASINList', 'ASIN')
41
-
42
- run
43
- end
44
-
45
- # Lists products and their attributes, based on a list of ASIN, GCID,
46
- # SellerSKU, UPC, EAN, ISBN, and JAN values
47
- #
48
- # @see https://docs.developer.amazonservices.com/en_US/products/Products_GetMatchingProduct.html
49
- # @param [String] marketplace_id
50
- # @param [String] id_type
51
- # @param [Array<String>] id_list
52
- # @return [Peddler::XMLParser]
53
- def get_matching_product_for_id(marketplace_id, id_type, *id_list)
54
- operation('GetMatchingProductForId')
55
- .add('MarketplaceId' => marketplace_id, 'IdType' => id_type,
56
- 'IdList' => id_list)
57
- .structure!('IdList', 'Id')
58
-
59
- run
60
- end
61
-
62
- # Gets the current competitive price of a product, based on Seller SKU
63
- #
64
- # @see https://docs.developer.amazonservices.com/en_US/products/Products_GetCompetitivePricingForSKU.html
65
- # @param [String] marketplace_id
66
- # @param [Array<String>] seller_sku_list
67
- # @return [Peddler::XMLParser]
68
- def get_competitive_pricing_for_sku(marketplace_id, *seller_sku_list)
69
- operation('GetCompetitivePricingForSKU')
70
- .add('MarketplaceId' => marketplace_id,
71
- 'SellerSKUList' => seller_sku_list)
72
- .structure!('SellerSKUList', 'SellerSKU')
73
-
74
- run
75
- end
76
-
77
- # Gets the current competitive price of a product, identified by its ASIN
78
- #
79
- # @see https://docs.developer.amazonservices.com/en_US/products/Products_GetCompetitivePricingForASIN.html
80
- # @param [String] marketplace_id
81
- # @param [Array<String>] asin_list
82
- # @return [Peddler::XMLParser]
83
- def get_competitive_pricing_for_asin(marketplace_id, *asin_list)
84
- operation('GetCompetitivePricingForASIN')
85
- .add('MarketplaceId' => marketplace_id, 'ASINList' => asin_list)
86
- .structure!('ASINList', 'ASIN')
87
-
88
- run
89
- end
90
-
91
- # Gets pricing information for the lowest-price active offer listings for
92
- # a product, based on Seller SKU
93
- #
94
- # @see https://docs.developer.amazonservices.com/en_US/products/Products_GetLowestOfferListingsForSKU.html
95
- # @overload get_lowest_offer_listings_for_sku(marketplace_id, *seller_sku_list, opts = {})
96
- # @param [String] marketplace_id
97
- # @param [Array<String>] seller_sku_list
98
- # @param [Hash] opts
99
- # @option opts [String] :item_condition
100
- # @option opts [Boolean] :exclude_me
101
- # @return [Peddler::XMLParser]
102
- def get_lowest_offer_listings_for_sku(marketplace_id, *seller_sku_list)
103
- seller_sku_list = seller_sku_list.dup
104
- opts = extract_options(seller_sku_list)
105
-
106
- operation('GetLowestOfferListingsForSKU')
107
- .add(opts)
108
- .add('MarketplaceId' => marketplace_id,
109
- 'SellerSKUList' => seller_sku_list)
110
- .structure!('SellerSKUList', 'SellerSKU')
111
-
112
- run
113
- end
114
-
115
- # Gets pricing information for the lowest-price active offer listings for
116
- # a product, identified by its ASIN
117
- #
118
- # @see https://docs.developer.amazonservices.com/en_US/products/Products_GetLowestOfferListingsForASIN.html
119
- # @overload get_lowest_offers_listings_for_asin(marketplace_id, *asin_list, opts = {})
120
- # @param [String] marketplace_id
121
- # @param [Array<String>] asin_list
122
- # @param [Hash] opts
123
- # @option opts [String] :item_condition
124
- # @option opts [Boolean] :exclude_me
125
- # @return [Peddler::XMLParser]
126
- def get_lowest_offer_listings_for_asin(marketplace_id, *asin_list)
127
- asin_list = asin_list.dup
128
- opts = extract_options(asin_list)
129
-
130
- operation('GetLowestOfferListingsForASIN')
131
- .add(opts)
132
- .add('MarketplaceId' => marketplace_id, 'ASINList' => asin_list)
133
- .structure!('ASINList', 'ASIN')
134
-
135
- run
136
- end
137
-
138
- # Gets lowest priced offers for a single product, based on SellerSKU
139
- #
140
- # @see https://docs.developer.amazonservices.com/en_MX/products/Products_GetLowestPricedOffersForSKU.html
141
- # @param [String] marketplace_id
142
- # @param [String] seller_sku
143
- # @param [String] item_condition
144
- # @return [Peddler::XMLParser]
145
- def get_lowest_priced_offers_for_sku(marketplace_id, seller_sku,
146
- item_condition)
147
- operation('GetLowestPricedOffersForSKU')
148
- .add('MarketplaceId' => marketplace_id, 'SellerSKU' => seller_sku,
149
- 'ItemCondition' => item_condition)
150
-
151
- run
152
- end
153
-
154
- # Gets lowest priced offers for a single product, based on ASIN
155
- #
156
- # @see https://docs.developer.amazonservices.com/en_MX/products/Products_GetLowestPricedOffersForASIN.html
157
- # @param [String] marketplace_id
158
- # @param [String] asin
159
- # @param [String] item_condition
160
- # @return [Peddler::XMLParser]
161
- def get_lowest_priced_offers_for_asin(marketplace_id, asin,
162
- item_condition)
163
- operation('GetLowestPricedOffersForASIN')
164
- .add('MarketplaceId' => marketplace_id, 'ASIN' => asin,
165
- 'ItemCondition' => item_condition)
166
-
167
- run
168
- end
169
-
170
- # Gets the estimated fees for a list of products.
171
- #
172
- # @see https://docs.developer.amazonservices.com/en_US/products/Products_GetMyFeesEstimate.html
173
- # @see https://docs.developer.amazonservices.com/en_US/products/Products_Datatypes.html#FeesEstimateRequest
174
- # @param [Array<Struct, Hash>] fees_estimate_requests
175
- # @return [Peddler::XMLParser]
176
- def get_my_fees_estimate(*fees_estimate_requests)
177
- operation('GetMyFeesEstimate')
178
- .add('FeesEstimateRequestList' => fees_estimate_requests)
179
- .structure!('FeesEstimateRequestList', 'FeesEstimateRequest')
180
-
181
- run
182
- end
183
-
184
- # Gets pricing information for seller's own offer listings, based on
185
- # Seller SKU
186
- #
187
- # @see https://docs.developer.amazonservices.com/en_US/products/Products_GetMyPriceForSKU.html
188
- # @overload get_my_price_for_sku(marketplace_id, *seller_sku_list,
189
- # opts = {})
190
- # @param [String] marketplace_id
191
- # @param [Array<String>] seller_sku_list
192
- # @param [Hash] opts
193
- # @option opts [String] :item_condition
194
- # @return [Peddler::XMLParser]
195
- def get_my_price_for_sku(marketplace_id, *seller_sku_list)
196
- seller_sku_list = seller_sku_list.dup
197
- opts = extract_options(seller_sku_list)
198
-
199
- operation('GetMyPriceForSKU')
200
- .add(opts)
201
- .add('MarketplaceId' => marketplace_id,
202
- 'SellerSKUList' => seller_sku_list)
203
- .structure!('SellerSKUList', 'SellerSKU')
204
-
205
- run
206
- end
207
-
208
- # Gets pricing information for seller's own offer listings, identified by
209
- # its ASIN
210
- #
211
- # @see https://docs.developer.amazonservices.com/en_US/products/Products_GetMyPriceForASIN.html
212
- # @overload get_my_price_for_asin(marketplace_id, *asin_list, opts = {})
213
- # @param [String] marketplace_id
214
- # @param [Array<String>] asin_list
215
- # @param [Hash] opts
216
- # @option opts [String] :item_condition
217
- # @return [Peddler::XMLParser]
218
- def get_my_price_for_asin(marketplace_id, *asin_list)
219
- asin_list = asin_list.dup
220
- opts = extract_options(asin_list)
221
-
222
- operation('GetMyPriceForASIN')
223
- .add(opts)
224
- .add('MarketplaceId' => marketplace_id,
225
- 'ASINList' => asin_list)
226
- .structure!('ASINList', 'ASIN')
227
-
228
- run
229
- end
230
-
231
- # Gets parent product categories that a product belongs to, based on
232
- # Seller SKU
233
- #
234
- # @see https://docs.developer.amazonservices.com/en_US/products/Products_GetProductCategoriesForSKU.html
235
- # @param [String] marketplace_id
236
- # @param [String] seller_sku
237
- # @return [Peddler::XMLParser]
238
- def get_product_categories_for_sku(marketplace_id, seller_sku)
239
- operation('GetProductCategoriesForSKU')
240
- .add('MarketplaceId' => marketplace_id, 'SellerSKU' => seller_sku)
241
-
242
- run
243
- end
244
-
245
- # Gets parent product categories that a product belongs to, based on ASIN
246
- #
247
- # @see https://docs.developer.amazonservices.com/en_US/products/Products_GetProductCategoriesForASIN.html
248
- # @param [String] marketplace_id
249
- # @param [String] asin
250
- # @return [Peddler::XMLParser]
251
- def get_product_categories_for_asin(marketplace_id, asin)
252
- operation('GetProductCategoriesForASIN')
253
- .add('MarketplaceId' => marketplace_id, 'ASIN' => asin)
254
-
255
- run
256
- end
257
-
258
- # Gets the service status of the API
259
- #
260
- # @see https://docs.developer.amazonservices.com/en_US/products/Products_GetServiceStatus.html
261
- # @return [Peddler::XMLParser]
262
- def get_service_status
263
- operation('GetServiceStatus')
264
- run
265
- end
266
- end
267
- end
268
- end
data/lib/mws/products.rb DELETED
@@ -1,3 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'mws/products/client'
@@ -1,72 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'peddler/client'
4
-
5
- module MWS
6
- module Recommendations
7
- # The Recommendations API enables you to programmatically retrieve Amazon
8
- # Selling Coach recommendations by recommendation category. A recommendation
9
- # is an actionable, timely, and personalized opportunity to increase your
10
- # sales and performance.
11
- class Client < ::Peddler::Client
12
- self.version = '2013-04-01'
13
- self.path = "/Recommendations/#{version}"
14
-
15
- # Checks whether there are active recommendations for each category for
16
- # the given marketplace, and if there are, returns the time when
17
- # recommendations were last updated for each category
18
- #
19
- # @see https://docs.developer.amazonservices.com/en_US/recommendations/Recommendations_GetLastUpdatedTimeForRecommendations.html
20
- # @param [String] marketplace_id
21
- # @return [Peddler::XMLParser]
22
- def get_last_updated_time_for_recommendations(marketplace_id)
23
- operation('GetLastUpdatedTimeForRecommendations')
24
- .add('MarketplaceId' => marketplace_id)
25
-
26
- run
27
- end
28
-
29
- # Lists active recommendations for a specific category or for all
30
- # categories for a specific marketplace
31
- #
32
- # @see https://docs.developer.amazonservices.com/en_US/recommendations/Recommendations_ListRecommendations.html
33
- # @param [String] marketplace_id
34
- # @param [Hash] opts
35
- # @option opts [String] :recommendation_category
36
- # @option opts [Array<Struct, Hash>] :category_query_list
37
- # @return [Peddler::XMLParser]
38
- def list_recommendations(marketplace_id, opts = {})
39
- operation('ListRecommendations')
40
- .add(opts)
41
- .add('MarketplaceId' => marketplace_id)
42
- .structure!(
43
- 'CategoryQueryList', 'CategoryQuery', '1', 'FilterOptions',
44
- 'FilterOption'
45
- )
46
-
47
- run
48
- end
49
-
50
- # Lists the next page of active recommendations
51
- #
52
- # @see https://docs.developer.amazonservices.com/en_US/recommendations/Recommendations_ListRecommendationsByNextToken.html
53
- # @param [String] next_token
54
- # @return [Peddler::XMLParser]
55
- def list_recommendations_by_next_token(next_token)
56
- operation('ListRecommendationsByNextToken')
57
- .add('NextToken' => next_token)
58
-
59
- run
60
- end
61
-
62
- # Gets the service status of the API
63
- #
64
- # @see https://docs.developer.amazonservices.com/en_US/recommendations/Recommendations_GetServiceStatus.html
65
- # @return [Peddler::XMLParser]
66
- def get_service_status
67
- operation('GetServiceStatus')
68
- run
69
- end
70
- end
71
- end
72
- end
@@ -1,3 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'mws/recommendations/client'