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.
- checksums.yaml +4 -4
- data/LICENSE +1 -1
- data/README.md +15 -14
- data/lib/mws/cart_information/client.rb +72 -0
- data/lib/mws/cart_information.rb +1 -69
- data/lib/mws/customer_information/client.rb +79 -0
- data/lib/mws/customer_information.rb +1 -77
- data/lib/mws/feeds/client.rb +112 -0
- data/lib/mws/feeds.rb +1 -110
- data/lib/mws/fulfillment_inbound_shipment/client.rb +233 -0
- data/lib/mws/fulfillment_inbound_shipment.rb +1 -231
- data/lib/mws/fulfillment_inventory/client.rb +53 -0
- data/lib/mws/fulfillment_inventory.rb +1 -51
- data/lib/mws/fulfillment_outbound_shipment/client.rb +171 -0
- data/lib/mws/fulfillment_outbound_shipment.rb +1 -168
- data/lib/mws/off_amazon_payments/client.rb +362 -0
- data/lib/mws/off_amazon_payments.rb +1 -360
- data/lib/mws/orders/client.rb +102 -0
- data/lib/mws/orders.rb +1 -98
- data/lib/mws/products/client.rb +234 -0
- data/lib/mws/products.rb +1 -232
- data/lib/mws/recommendations/client.rb +71 -0
- data/lib/mws/recommendations.rb +1 -66
- data/lib/mws/reports/client.rb +220 -0
- data/lib/mws/reports.rb +1 -220
- data/lib/mws/sellers/client.rb +42 -0
- data/lib/mws/sellers.rb +1 -40
- data/lib/mws/subscriptions/client.rb +177 -0
- data/lib/mws/subscriptions.rb +1 -169
- data/lib/mws.rb +2 -2
- data/lib/peddler/client.rb +3 -3
- data/lib/peddler/flat_file_parser.rb +3 -3
- data/lib/peddler/operation.rb +2 -3
- data/lib/peddler/structured_list.rb +1 -3
- data/lib/peddler/version.rb +1 -1
- data/lib/peddler/xml_parser.rb +1 -1
- data/test/integration/test_cart_information.rb +2 -2
- data/test/integration/test_customer_information.rb +2 -2
- data/test/integration/test_feeds.rb +2 -2
- data/test/integration/test_fulfillment_inbound_shipment.rb +2 -2
- data/test/integration/test_fulfillment_inventory.rb +3 -7
- data/test/integration/test_fulfillment_outbound_shipment.rb +2 -49
- data/test/integration/test_off_amazon_payments.rb +2 -2
- data/test/integration/test_orders.rb +2 -13
- data/test/integration/test_products.rb +2 -2
- data/test/integration/test_recommendations.rb +2 -11
- data/test/integration/test_reports.rb +2 -3
- data/test/integration/test_sellers.rb +2 -9
- data/test/integration/test_subscriptions.rb +2 -2
- data/test/integration_test_helper.rb +49 -0
- data/test/mws.yml +16 -0
- data/test/mws.yml.bak +16 -0
- data/test/test_helper.rb +7 -0
- data/test/unit/mws/test_off_amazon_payments_client.rb +9 -0
- data/test/unit/mws/test_products_client.rb +9 -0
- data/test/unit/peddler/test_client.rb +2 -2
- data/test/unit/peddler/test_flat_file_parser.rb +2 -2
- data/test/unit/peddler/test_operation.rb +2 -2
- data/test/unit/peddler/test_parser.rb +2 -2
- data/test/unit/peddler/test_structured_list.rb +2 -2
- data/test/unit/peddler/test_xml_parser.rb +2 -2
- data/test/unit/test_mws.rb +3 -3
- data/test/vcr_cassettes/CartInformation.yml +37 -725
- data/test/vcr_cassettes/CustomerInformation.yml +37 -728
- data/test/vcr_cassettes/Feeds.yml +100 -528
- data/test/vcr_cassettes/FulfillmentInboundShipment.yml +39 -728
- data/test/vcr_cassettes/FulfillmentInventory.yml +96 -997
- data/test/vcr_cassettes/FulfillmentOutboundShipment.yml +39 -725
- data/test/vcr_cassettes/OffAmazonPayments.yml +36 -727
- data/test/vcr_cassettes/Orders.yml +38 -29855
- data/test/vcr_cassettes/Products.yml +1300 -3871
- data/test/vcr_cassettes/Recommendations.yml +8934 -15590
- data/test/vcr_cassettes/Reports.yml +288 -1326
- data/test/vcr_cassettes/Sellers.yml +38 -1178
- data/test/vcr_cassettes/Subscriptions.yml +244 -1066
- metadata +27 -98
- data/test/helper.rb +0 -3
- data/test/integration_helper.rb +0 -49
- data/test/mws.yml.1 +0 -32
- data/test/mws.yml.example +0 -4
- data/test/unit/mws/test_off_amazon_payments.rb +0 -9
- data/test/unit/mws/test_products.rb +0 -9
@@ -0,0 +1,234 @@
|
|
1
|
+
require 'peddler/client'
|
2
|
+
|
3
|
+
module MWS
|
4
|
+
module Products
|
5
|
+
# The MWS Products API helps you get information to match your products to
|
6
|
+
# existing product listings on Amazon Marketplace websites and to make
|
7
|
+
# sourcing and pricing decisions for listing those products on Amazon
|
8
|
+
# Marketplace websites.
|
9
|
+
class Client < ::Peddler::Client
|
10
|
+
path '/Products/2011-10-01'
|
11
|
+
|
12
|
+
# Lists products and their attributes, based on a search query
|
13
|
+
#
|
14
|
+
# @see http://docs.developer.amazonservices.com/en_US/products/Products_ListMatchingProducts.html
|
15
|
+
# @overload list_matching_products(query, opts = { marketplace_id: marketplace_id })
|
16
|
+
# @param query [String]
|
17
|
+
# @param opts [Hash]
|
18
|
+
# @option opts [String] :marketplace_id
|
19
|
+
# @option opts [String] :query_context_id
|
20
|
+
# @return [Peddler::XMLParser]
|
21
|
+
def list_matching_products(query, opts = {})
|
22
|
+
operation('ListMatchingProducts')
|
23
|
+
.add(opts.merge('Query' => query))
|
24
|
+
|
25
|
+
run
|
26
|
+
end
|
27
|
+
|
28
|
+
# Lists products and their attributes, based on a list of ASIN, GCID,
|
29
|
+
# SellerSKU, UPC, EAN, ISBN, and JAN values
|
30
|
+
#
|
31
|
+
# @see http://docs.developer.amazonservices.com/en_US/products/Products_GetMatchingProduct.html
|
32
|
+
# @overload get_matching_product_for_id(id_type, *id_list, opts = { marketplace_id: marketplace_id })
|
33
|
+
# @param id_type [String]
|
34
|
+
# @param id_list [Array<String>]
|
35
|
+
# @param opts [Hash]
|
36
|
+
# @option opts [String] :marketplace_id
|
37
|
+
# @return [Peddler::XMLParser]
|
38
|
+
def get_matching_product_for_id(id_type, *id_list)
|
39
|
+
opts = extract_options(id_list)
|
40
|
+
|
41
|
+
operation('GetMatchingProductForId')
|
42
|
+
.add(opts.merge('IdType' => id_type, 'IdList' => id_list))
|
43
|
+
.structure!('IdList', 'Id')
|
44
|
+
|
45
|
+
run
|
46
|
+
end
|
47
|
+
|
48
|
+
# Lists products and their attributes, based on a list of ASIN values
|
49
|
+
#
|
50
|
+
# @see http://docs.developer.amazonservices.com/en_US/products/Products_GetMatchingProductForId.html
|
51
|
+
# @overload get_matching_product(*asins, opts = { marketplace_id: marketplace_id })
|
52
|
+
# @param asins [Array<String>]
|
53
|
+
# @param opts [Hash]
|
54
|
+
# @option opts [String] :marketplace_id
|
55
|
+
# @return [Peddler::XMLParser]
|
56
|
+
def get_matching_product(*asins)
|
57
|
+
opts = extract_options(asins)
|
58
|
+
|
59
|
+
operation('GetMatchingProduct')
|
60
|
+
.add(opts.merge('ASINList' => asins))
|
61
|
+
.structure!('ASINList', 'ASIN')
|
62
|
+
|
63
|
+
run
|
64
|
+
end
|
65
|
+
|
66
|
+
# Gets the current competitive price of a product, based on Seller SKU
|
67
|
+
#
|
68
|
+
# @see http://docs.developer.amazonservices.com/en_US/products/Products_GetCompetitivePricingForSKU.html
|
69
|
+
# @overload get_competitive_pricing_for_sku(*skus, opts = { marketplace_id: marketplace_id })
|
70
|
+
# @param skus [Array<String>]
|
71
|
+
# @param opts [Hash]
|
72
|
+
# @option opts [String] :marketplace_id
|
73
|
+
# @return [Peddler::XMLParser]
|
74
|
+
def get_competitive_pricing_for_sku(*skus)
|
75
|
+
opts = extract_options(skus)
|
76
|
+
|
77
|
+
operation('GetCompetitivePricingForSKU')
|
78
|
+
.add(opts.merge('SellerSKUList' => skus))
|
79
|
+
.structure!('SellerSKUList', 'SellerSKU')
|
80
|
+
|
81
|
+
run
|
82
|
+
end
|
83
|
+
|
84
|
+
# Gets the current competitive price of a product, identified by its ASIN
|
85
|
+
#
|
86
|
+
# @see http://docs.developer.amazonservices.com/en_US/products/Products_GetCompetitivePricingForASIN.html
|
87
|
+
# @overload get_competitive_pricing_for_asin(*asins, opts = { marketplace_id: marketplace_id })
|
88
|
+
# @param asins [Array<String>]
|
89
|
+
# @param opts [Hash]
|
90
|
+
# @option opts [String] :marketplace_id
|
91
|
+
# @return [Peddler::XMLParser]
|
92
|
+
def get_competitive_pricing_for_asin(*asins)
|
93
|
+
opts = extract_options(asins)
|
94
|
+
|
95
|
+
operation('GetCompetitivePricingForASIN')
|
96
|
+
.add(opts.merge('ASINList' => asins))
|
97
|
+
.structure!('ASINList', 'ASIN')
|
98
|
+
|
99
|
+
run
|
100
|
+
end
|
101
|
+
|
102
|
+
# Gets pricing information for the lowest-price active offer listings for
|
103
|
+
# a product, based on Seller SKU
|
104
|
+
#
|
105
|
+
# @see http://docs.developer.amazonservices.com/en_US/products/Products_GetLowestOfferListingsForSKU.html
|
106
|
+
# @overload get_lowest_offer_listings_for_sku(*skus, opts = { marketplace_id: marketplace_id })
|
107
|
+
# @param skus [Array<String>]
|
108
|
+
# @param opts [Hash]
|
109
|
+
# @option opts [String] :marketplace_id
|
110
|
+
# @option opts [String] :item_condition
|
111
|
+
# @option opts [Boolean] :exclude_me
|
112
|
+
# @return [Peddler::XMLParser]
|
113
|
+
def get_lowest_offer_listings_for_sku(*skus)
|
114
|
+
opts = extract_options(skus)
|
115
|
+
|
116
|
+
operation('GetLowestOfferListingsForSKU')
|
117
|
+
.add(opts.merge('SellerSKUList' => skus))
|
118
|
+
.structure!('SellerSKUList', 'SellerSKU')
|
119
|
+
|
120
|
+
run
|
121
|
+
end
|
122
|
+
|
123
|
+
# Gets pricing information for the lowest-price active offer listings for
|
124
|
+
# a product, identified by its ASIN
|
125
|
+
#
|
126
|
+
# @see http://docs.developer.amazonservices.com/en_US/products/Products_GetLowestOfferListingsForASIN.html
|
127
|
+
# @overload get_lowest_offer_listings_for_asin(*asins, opts = { marketplace_id: marketplace_id })
|
128
|
+
# @param asins [Array<String>]
|
129
|
+
# @param opts [Hash]
|
130
|
+
# @option opts [String] :marketplace_id
|
131
|
+
# @option opts [String] :item_condition
|
132
|
+
# @option opts [Boolean] :exclude_me
|
133
|
+
# @return [Peddler::XMLParser]
|
134
|
+
def get_lowest_offer_listings_for_asin(*asins)
|
135
|
+
opts = extract_options(asins)
|
136
|
+
|
137
|
+
operation('GetLowestOfferListingsForASIN')
|
138
|
+
.add(opts.merge('ASINList' => asins))
|
139
|
+
.structure!('ASINList', 'ASIN')
|
140
|
+
|
141
|
+
run
|
142
|
+
end
|
143
|
+
|
144
|
+
# Gets pricing information for seller's own offer listings, based on
|
145
|
+
# Seller SKU
|
146
|
+
#
|
147
|
+
# @see http://docs.developer.amazonservices.com/en_US/products/Products_GetMyPriceForSKU.html
|
148
|
+
# @overload get_my_price_for_sku(*skus, opts = { marketplace_id: marketplace_id })
|
149
|
+
# @param skus [Array<String>]
|
150
|
+
# @param opts [Hash]
|
151
|
+
# @option opts [String] :marketplace_id
|
152
|
+
# @option opts [String] :item_condition
|
153
|
+
# @return [Peddler::XMLParser]
|
154
|
+
def get_my_price_for_sku(*skus)
|
155
|
+
opts = extract_options(skus)
|
156
|
+
|
157
|
+
operation('GetMyPriceForSKU')
|
158
|
+
.add(opts.merge('SellerSKUList' => skus))
|
159
|
+
.structure!('SellerSKUList', 'SellerSKU')
|
160
|
+
|
161
|
+
run
|
162
|
+
end
|
163
|
+
|
164
|
+
# Gets pricing information for seller's own offer listings, identified by
|
165
|
+
# its ASIN
|
166
|
+
#
|
167
|
+
# @see http://docs.developer.amazonservices.com/en_US/products/Products_GetMyPriceForASIN.html
|
168
|
+
# @overload get_my_price_for_asin(*skus, opts = { marketplace_id: marketplace_id })
|
169
|
+
# @param asins [Array<String>]
|
170
|
+
# @param opts [Hash]
|
171
|
+
# @option opts [String] :marketplace_id
|
172
|
+
# @option opts [String] :item_condition
|
173
|
+
# @return [Peddler::XMLParser]
|
174
|
+
def get_my_price_for_asin(*asins)
|
175
|
+
opts = extract_options(asins)
|
176
|
+
|
177
|
+
operation('GetMyPriceForASIN')
|
178
|
+
.add(opts.merge('ASINList' => asins))
|
179
|
+
.structure!('ASINList', 'ASIN')
|
180
|
+
|
181
|
+
run
|
182
|
+
end
|
183
|
+
|
184
|
+
# Gets parent product categories that a product belongs to, based on
|
185
|
+
# Seller`SKU
|
186
|
+
#
|
187
|
+
# @see http://docs.developer.amazonservices.com/en_US/products/Products_GetProductCategoriesForSKU.html
|
188
|
+
# @overload get_product_categories_for_sku(sku, opts = { marketplace_id: marketplace_id })
|
189
|
+
# @param sku [String]
|
190
|
+
# @param opts [Hash]
|
191
|
+
# @option opts [String] :marketplace_id
|
192
|
+
# @return [Peddler::XMLParser]
|
193
|
+
def get_product_categories_for_sku(sku, opts = {})
|
194
|
+
operation('GetProductCategoriesForSKU')
|
195
|
+
.add(opts.merge('SellerSKU' => sku))
|
196
|
+
|
197
|
+
run
|
198
|
+
end
|
199
|
+
|
200
|
+
# Gets parent product categories that a product belongs to, based on ASIN
|
201
|
+
#
|
202
|
+
# @see http://docs.developer.amazonservices.com/en_US/products/Products_GetProductCategoriesForASIN.html
|
203
|
+
# @overload get_product_categories_for_asin(asin, opts = { marketplace_id: marketplace_id })
|
204
|
+
# @param asin [String]
|
205
|
+
# @param opts [Hash]
|
206
|
+
# @option opts [String] :marketplace_id
|
207
|
+
# @return [Peddler::XMLParser]
|
208
|
+
def get_product_categories_for_asin(asin, opts = {})
|
209
|
+
operation('GetProductCategoriesForASIN')
|
210
|
+
.add(opts.merge('ASIN' => asin))
|
211
|
+
|
212
|
+
run
|
213
|
+
end
|
214
|
+
|
215
|
+
# Gets the service status of the API
|
216
|
+
#
|
217
|
+
# @see http://docs.developer.amazonservices.com/en_US/products/Products_GetServiceStatus.html
|
218
|
+
# @return [Peddler::XMLParser]
|
219
|
+
def get_service_status
|
220
|
+
operation('GetServiceStatus')
|
221
|
+
run
|
222
|
+
end
|
223
|
+
|
224
|
+
# @api private
|
225
|
+
def operation(*)
|
226
|
+
super.tap do |opts|
|
227
|
+
unless opts.key?('MarketplaceId')
|
228
|
+
opts.store('MarketplaceId', marketplace_id)
|
229
|
+
end
|
230
|
+
end
|
231
|
+
end
|
232
|
+
end
|
233
|
+
end
|
234
|
+
end
|
data/lib/mws/products.rb
CHANGED
@@ -1,232 +1 @@
|
|
1
|
-
require '
|
2
|
-
|
3
|
-
module MWS
|
4
|
-
# The MWS Products API helps you get information to match your products to
|
5
|
-
# existing product listings on Amazon Marketplace websites and to make
|
6
|
-
# sourcing and pricing decisions for listing those products on Amazon
|
7
|
-
# Marketplace websites.
|
8
|
-
class Products < ::Peddler::Client
|
9
|
-
path '/Products/2011-10-01'
|
10
|
-
|
11
|
-
# Lists products and their attributes, based on a search query
|
12
|
-
#
|
13
|
-
# @see http://docs.developer.amazonservices.com/en_US/products/Products_ListMatchingProducts.html
|
14
|
-
# @overload list_matching_products(query, opts = { marketplace_id: marketplace_id })
|
15
|
-
# @param query [String]
|
16
|
-
# @param opts [Hash]
|
17
|
-
# @option opts [String] :marketplace_id
|
18
|
-
# @option opts [String] :query_context_id
|
19
|
-
# @return [Peddler::XMLParser]
|
20
|
-
def list_matching_products(query, opts = {})
|
21
|
-
operation('ListMatchingProducts')
|
22
|
-
.add(opts.merge('Query' => query))
|
23
|
-
|
24
|
-
run
|
25
|
-
end
|
26
|
-
|
27
|
-
# Lists products and their attributes, based on a list of ASIN, GCID,
|
28
|
-
# SellerSKU, UPC, EAN, ISBN, and JAN values
|
29
|
-
#
|
30
|
-
# @see http://docs.developer.amazonservices.com/en_US/products/Products_GetMatchingProduct.html
|
31
|
-
# @overload get_matching_product_for_id(id_type, *id_list, opts = { marketplace_id: marketplace_id })
|
32
|
-
# @param id_type [String]
|
33
|
-
# @param id_list [Array<String>]
|
34
|
-
# @param opts [Hash]
|
35
|
-
# @option opts [String] :marketplace_id
|
36
|
-
# @return [Peddler::XMLParser]
|
37
|
-
def get_matching_product_for_id(id_type, *id_list)
|
38
|
-
opts = extract_options(id_list)
|
39
|
-
|
40
|
-
operation('GetMatchingProductForId')
|
41
|
-
.add(opts.merge('IdType' => id_type, 'IdList' => id_list))
|
42
|
-
.structure!('IdList', 'Id')
|
43
|
-
|
44
|
-
run
|
45
|
-
end
|
46
|
-
|
47
|
-
# Lists products and their attributes, based on a list of ASIN values
|
48
|
-
#
|
49
|
-
# @see http://docs.developer.amazonservices.com/en_US/products/Products_GetMatchingProductForId.html
|
50
|
-
# @overload get_matching_product(*asins, opts = { marketplace_id: marketplace_id })
|
51
|
-
# @param asins [Array<String>]
|
52
|
-
# @param opts [Hash]
|
53
|
-
# @option opts [String] :marketplace_id
|
54
|
-
# @return [Peddler::XMLParser]
|
55
|
-
def get_matching_product(*asins)
|
56
|
-
opts = extract_options(asins)
|
57
|
-
|
58
|
-
operation('GetMatchingProduct')
|
59
|
-
.add(opts.merge('ASINList' => asins))
|
60
|
-
.structure!('ASINList', 'ASIN')
|
61
|
-
|
62
|
-
run
|
63
|
-
end
|
64
|
-
|
65
|
-
# Gets the current competitive price of a product, based on Seller SKU
|
66
|
-
#
|
67
|
-
# @see http://docs.developer.amazonservices.com/en_US/products/Products_GetCompetitivePricingForSKU.html
|
68
|
-
# @overload get_competitive_pricing_for_sku(*skus, opts = { marketplace_id: marketplace_id })
|
69
|
-
# @param skus [Array<String>]
|
70
|
-
# @param opts [Hash]
|
71
|
-
# @option opts [String] :marketplace_id
|
72
|
-
# @return [Peddler::XMLParser]
|
73
|
-
def get_competitive_pricing_for_sku(*skus)
|
74
|
-
opts = extract_options(skus)
|
75
|
-
|
76
|
-
operation('GetCompetitivePricingForSKU')
|
77
|
-
.add(opts.merge('SellerSKUList' => skus))
|
78
|
-
.structure!('SellerSKUList', 'SellerSKU')
|
79
|
-
|
80
|
-
run
|
81
|
-
end
|
82
|
-
|
83
|
-
# Gets the current competitive price of a product, identified by its ASIN
|
84
|
-
#
|
85
|
-
# @see http://docs.developer.amazonservices.com/en_US/products/Products_GetCompetitivePricingForASIN.html
|
86
|
-
# @overload get_competitive_pricing_for_asin(*asins, opts = { marketplace_id: marketplace_id })
|
87
|
-
# @param asins [Array<String>]
|
88
|
-
# @param opts [Hash]
|
89
|
-
# @option opts [String] :marketplace_id
|
90
|
-
# @return [Peddler::XMLParser]
|
91
|
-
def get_competitive_pricing_for_asin(*asins)
|
92
|
-
opts = extract_options(asins)
|
93
|
-
|
94
|
-
operation('GetCompetitivePricingForASIN')
|
95
|
-
.add(opts.merge('ASINList' => asins))
|
96
|
-
.structure!('ASINList', 'ASIN')
|
97
|
-
|
98
|
-
run
|
99
|
-
end
|
100
|
-
|
101
|
-
# Gets pricing information for the lowest-price active offer listings for a
|
102
|
-
# product, based on Seller SKU
|
103
|
-
#
|
104
|
-
# @see http://docs.developer.amazonservices.com/en_US/products/Products_GetLowestOfferListingsForSKU.html
|
105
|
-
# @overload get_lowest_offer_listings_for_sku(*skus, opts = { marketplace_id: marketplace_id })
|
106
|
-
# @param skus [Array<String>]
|
107
|
-
# @param opts [Hash]
|
108
|
-
# @option opts [String] :marketplace_id
|
109
|
-
# @option opts [String] :item_condition
|
110
|
-
# @option opts [Boolean] :exclude_me
|
111
|
-
# @return [Peddler::XMLParser]
|
112
|
-
def get_lowest_offer_listings_for_sku(*skus)
|
113
|
-
opts = extract_options(skus)
|
114
|
-
|
115
|
-
operation('GetLowestOfferListingsForSKU')
|
116
|
-
.add(opts.merge('SellerSKUList' => skus))
|
117
|
-
.structure!('SellerSKUList', 'SellerSKU')
|
118
|
-
|
119
|
-
run
|
120
|
-
end
|
121
|
-
|
122
|
-
# Gets pricing information for the lowest-price active offer listings for a
|
123
|
-
# product, identified by its ASIN
|
124
|
-
#
|
125
|
-
# @see http://docs.developer.amazonservices.com/en_US/products/Products_GetLowestOfferListingsForASIN.html
|
126
|
-
# @overload get_lowest_offer_listings_for_asin(*asins, opts = { marketplace_id: marketplace_id })
|
127
|
-
# @param asins [Array<String>]
|
128
|
-
# @param opts [Hash]
|
129
|
-
# @option opts [String] :marketplace_id
|
130
|
-
# @option opts [String] :item_condition
|
131
|
-
# @option opts [Boolean] :exclude_me
|
132
|
-
# @return [Peddler::XMLParser]
|
133
|
-
def get_lowest_offer_listings_for_asin(*asins)
|
134
|
-
opts = extract_options(asins)
|
135
|
-
|
136
|
-
operation('GetLowestOfferListingsForASIN')
|
137
|
-
.add(opts.merge('ASINList' => asins))
|
138
|
-
.structure!('ASINList', 'ASIN')
|
139
|
-
|
140
|
-
run
|
141
|
-
end
|
142
|
-
|
143
|
-
# Gets pricing information for seller's own offer listings, based on Seller
|
144
|
-
# SKU
|
145
|
-
#
|
146
|
-
# @see http://docs.developer.amazonservices.com/en_US/products/Products_GetMyPriceForSKU.html
|
147
|
-
# @overload get_my_price_for_sku(*skus, opts = { marketplace_id: marketplace_id })
|
148
|
-
# @param skus [Array<String>]
|
149
|
-
# @param opts [Hash]
|
150
|
-
# @option opts [String] :marketplace_id
|
151
|
-
# @option opts [String] :item_condition
|
152
|
-
# @return [Peddler::XMLParser]
|
153
|
-
def get_my_price_for_sku(*skus)
|
154
|
-
opts = extract_options(skus)
|
155
|
-
|
156
|
-
operation('GetMyPriceForSKU')
|
157
|
-
.add(opts.merge('SellerSKUList' => skus))
|
158
|
-
.structure!('SellerSKUList', 'SellerSKU')
|
159
|
-
|
160
|
-
run
|
161
|
-
end
|
162
|
-
|
163
|
-
# Gets pricing information for seller's own offer listings, identified by
|
164
|
-
# its ASIN
|
165
|
-
#
|
166
|
-
# @see http://docs.developer.amazonservices.com/en_US/products/Products_GetMyPriceForASIN.html
|
167
|
-
# @overload get_my_price_for_asin(*skus, opts = { marketplace_id: marketplace_id })
|
168
|
-
# @param asins [Array<String>]
|
169
|
-
# @param opts [Hash]
|
170
|
-
# @option opts [String] :marketplace_id
|
171
|
-
# @option opts [String] :item_condition
|
172
|
-
# @return [Peddler::XMLParser]
|
173
|
-
def get_my_price_for_asin(*asins)
|
174
|
-
opts = extract_options(asins)
|
175
|
-
|
176
|
-
operation('GetMyPriceForASIN')
|
177
|
-
.add(opts.merge('ASINList' => asins))
|
178
|
-
.structure!('ASINList', 'ASIN')
|
179
|
-
|
180
|
-
run
|
181
|
-
end
|
182
|
-
|
183
|
-
# Gets parent product categories that a product belongs to, based on
|
184
|
-
# Seller`SKU
|
185
|
-
#
|
186
|
-
# @see http://docs.developer.amazonservices.com/en_US/products/Products_GetProductCategoriesForSKU.html
|
187
|
-
# @overload get_product_categories_for_sku(sku, opts = { marketplace_id: marketplace_id })
|
188
|
-
# @param sku [String]
|
189
|
-
# @param opts [Hash]
|
190
|
-
# @option opts [String] :marketplace_id
|
191
|
-
# @return [Peddler::XMLParser]
|
192
|
-
def get_product_categories_for_sku(sku, opts = {})
|
193
|
-
operation('GetProductCategoriesForSKU')
|
194
|
-
.add(opts.merge('SellerSKU' => sku))
|
195
|
-
|
196
|
-
run
|
197
|
-
end
|
198
|
-
|
199
|
-
# Gets parent product categories that a product belongs to, based on ASIN
|
200
|
-
#
|
201
|
-
# @see http://docs.developer.amazonservices.com/en_US/products/Products_GetProductCategoriesForASIN.html
|
202
|
-
# @overload get_product_categories_for_asin(asin, opts = { marketplace_id: marketplace_id })
|
203
|
-
# @param asin [String]
|
204
|
-
# @param opts [Hash]
|
205
|
-
# @option opts [String] :marketplace_id
|
206
|
-
# @return [Peddler::XMLParser]
|
207
|
-
def get_product_categories_for_asin(asin, opts = {})
|
208
|
-
operation('GetProductCategoriesForASIN')
|
209
|
-
.add(opts.merge('ASIN' => asin))
|
210
|
-
|
211
|
-
run
|
212
|
-
end
|
213
|
-
|
214
|
-
# Gets the service status of the API
|
215
|
-
#
|
216
|
-
# @see http://docs.developer.amazonservices.com/en_US/products/Products_GetServiceStatus.html
|
217
|
-
# @return [Peddler::XMLParser]
|
218
|
-
def get_service_status
|
219
|
-
operation('GetServiceStatus')
|
220
|
-
run
|
221
|
-
end
|
222
|
-
|
223
|
-
# @api private
|
224
|
-
def operation(*)
|
225
|
-
super.tap do |opts|
|
226
|
-
unless opts.has_key?('MarketplaceId')
|
227
|
-
opts.store('MarketplaceId', marketplace_id)
|
228
|
-
end
|
229
|
-
end
|
230
|
-
end
|
231
|
-
end
|
232
|
-
end
|
1
|
+
require 'mws/products/client'
|
@@ -0,0 +1,71 @@
|
|
1
|
+
require 'peddler/client'
|
2
|
+
|
3
|
+
module MWS
|
4
|
+
module Recommendations
|
5
|
+
# The Recommendations API enables you to programmatically retrieve Amazon
|
6
|
+
# Selling Coach recommendations by recommendation category. A recommendation
|
7
|
+
# is an actionable, timely, and personalized opportunity to increase your
|
8
|
+
# sales and performance.
|
9
|
+
class Client < ::Peddler::Client
|
10
|
+
path '/Recommendations/2013-04-01'
|
11
|
+
|
12
|
+
# Checks whether there are active recommendations for each category for
|
13
|
+
# the given marketplace, and if there are, returns the time when
|
14
|
+
# recommendations were last updated for each category
|
15
|
+
#
|
16
|
+
# @see http://docs.developer.amazonservices.com/en_US/recommendations/Recommendations_GetLastUpdatedTimeForRecommendations.html
|
17
|
+
# @param marketplace_id [String]
|
18
|
+
# @return [Peddler::XMLParser]
|
19
|
+
def get_last_updated_time_for_recommendations(marketplace_id = marketplace_id)
|
20
|
+
operation('GetLastUpdatedTimeForRecommendations')
|
21
|
+
.add('MarketplaceId' => marketplace_id)
|
22
|
+
|
23
|
+
run
|
24
|
+
end
|
25
|
+
|
26
|
+
# Lists active recommendations for a specific category or for all
|
27
|
+
# categories for a specific marketplace
|
28
|
+
#
|
29
|
+
# @see http://docs.developer.amazonservices.com/en_US/recommendations/Recommendations_ListRecommendations.html
|
30
|
+
# @overload list_recommendations(opts = { marketplace_id: marketplace_id })
|
31
|
+
# @param opts [Hash]
|
32
|
+
# @option opts [String] :marketplace_id
|
33
|
+
# @option opts [String] :recommendation_category
|
34
|
+
# @option opts [String] :category_query_list
|
35
|
+
# @return [Peddler::XMLParser]
|
36
|
+
def list_recommendations(opts = {})
|
37
|
+
opts[:marketplace_id] ||= marketplace_id
|
38
|
+
|
39
|
+
operation('ListRecommendations')
|
40
|
+
.add(opts)
|
41
|
+
.structure!(
|
42
|
+
'CategoryQueryList', 'CategoryQuery', '1', 'FilterOptions',
|
43
|
+
'FilterOption'
|
44
|
+
)
|
45
|
+
|
46
|
+
run
|
47
|
+
end
|
48
|
+
|
49
|
+
# Lists the next page of active recommendations
|
50
|
+
#
|
51
|
+
# @see http://docs.developer.amazonservices.com/en_US/recommendations/Recommendations_ListRecommendationsByNextToken.html
|
52
|
+
# @param next_token [String]
|
53
|
+
# @return [Peddler::XMLParser]
|
54
|
+
def list_recommendations_by_next_token(next_token)
|
55
|
+
operation('ListRecommendationsByNextToken')
|
56
|
+
.add('NextToken' => next_token)
|
57
|
+
|
58
|
+
run
|
59
|
+
end
|
60
|
+
|
61
|
+
# Gets the service status of the API
|
62
|
+
#
|
63
|
+
# @see http://docs.developer.amazonservices.com/en_US/recommendations/Recommendations_GetServiceStatus.html
|
64
|
+
# @return [Peddler::XMLParser]
|
65
|
+
def get_service_status
|
66
|
+
operation('GetServiceStatus')
|
67
|
+
run
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
data/lib/mws/recommendations.rb
CHANGED
@@ -1,66 +1 @@
|
|
1
|
-
require '
|
2
|
-
|
3
|
-
module MWS
|
4
|
-
# The Recommendations API enables you to programmatically retrieve Amazon
|
5
|
-
# Selling Coach recommendations by recommendation category. A recommendation
|
6
|
-
# is an actionable, timely, and personalized opportunity to increase your
|
7
|
-
# sales and performance.
|
8
|
-
class Recommendations < ::Peddler::Client
|
9
|
-
path '/Recommendations/2013-04-01'
|
10
|
-
|
11
|
-
# Checks whether there are active recommendations for each category for the
|
12
|
-
# given marketplace, and if there are, returns the time when recommendations
|
13
|
-
# were last updated for each category
|
14
|
-
#
|
15
|
-
# @see http://docs.developer.amazonservices.com/en_US/recommendations/Recommendations_GetLastUpdatedTimeForRecommendations.html
|
16
|
-
# @param marketplace_id [String]
|
17
|
-
# @return [Peddler::XMLParser]
|
18
|
-
def get_last_updated_time_for_recommendations(marketplace_id = marketplace_id)
|
19
|
-
operation('GetLastUpdatedTimeForRecommendations')
|
20
|
-
.add('MarketplaceId' => marketplace_id)
|
21
|
-
|
22
|
-
run
|
23
|
-
end
|
24
|
-
|
25
|
-
# Lists active recommendations for a specific category or for all categories
|
26
|
-
# for a specific marketplace
|
27
|
-
#
|
28
|
-
# @see http://docs.developer.amazonservices.com/en_US/recommendations/Recommendations_ListRecommendations.html
|
29
|
-
# @overload list_recommendations(opts = { marketplace_id: marketplace_id })
|
30
|
-
# @param opts [Hash]
|
31
|
-
# @option opts [String] :marketplace_id
|
32
|
-
# @option opts [String] :recommendation_category
|
33
|
-
# @option opts [String] :category_query_list
|
34
|
-
# @return [Peddler::XMLParser]
|
35
|
-
def list_recommendations(opts = {})
|
36
|
-
opts[:marketplace_id] ||= marketplace_id
|
37
|
-
|
38
|
-
operation('ListRecommendations')
|
39
|
-
.add(opts)
|
40
|
-
.structure!('CategoryQueryList', 'CategoryQuery', '1', 'FilterOptions', 'FilterOption')
|
41
|
-
|
42
|
-
run
|
43
|
-
end
|
44
|
-
|
45
|
-
# Lists the next page of active recommendations
|
46
|
-
#
|
47
|
-
# @see http://docs.developer.amazonservices.com/en_US/recommendations/Recommendations_ListRecommendationsByNextToken.html
|
48
|
-
# @param next_token [String]
|
49
|
-
# @return [Peddler::XMLParser]
|
50
|
-
def list_recommendations_by_next_token(next_token)
|
51
|
-
operation('ListRecommendationsByNextToken')
|
52
|
-
.add('NextToken' => next_token)
|
53
|
-
|
54
|
-
run
|
55
|
-
end
|
56
|
-
|
57
|
-
# Gets the service status of the API
|
58
|
-
#
|
59
|
-
# @see http://docs.developer.amazonservices.com/en_US/recommendations/Recommendations_GetServiceStatus.html
|
60
|
-
# @return [Peddler::XMLParser]
|
61
|
-
def get_service_status
|
62
|
-
operation('GetServiceStatus')
|
63
|
-
run
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|
1
|
+
require 'mws/recommendations/client'
|