peddler 1.0.2 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 643f86fabcad58eb28dc12df5a89e8d97a4b00bf
4
- data.tar.gz: a1ba8e6643a5dbc6590bd7f95f747ccd8526d339
3
+ metadata.gz: feb811340d856df7c73b3ea07afd4532892500c8
4
+ data.tar.gz: 537798c7e2eff288ac0d8e16094a8a295f9e2daf
5
5
  SHA512:
6
- metadata.gz: e8911ac5bebc89910a544bc5342f88fae07101cac10a6188454fd1625ea6e13b2ff214cc87eb0f29806b94e2dd8e6e272f9043435c7a2596d69d56b11ac0a363
7
- data.tar.gz: 5e6f584d46b5310792fbdb24a3984afdd036f46b13266d2251fd67a833fddf87d1678a463aec12b8cc44d6f945f76a2dc37b53852e6134db06893e3358761831
6
+ metadata.gz: ab7bc5600b29e18fe0968cd9dc874b9982ab50e4e6636b3390b0b46125b2e13eb1a1476e6064bdc2b4f889ede22fa97cd3d57c427530edc0e87c7d770e729594
7
+ data.tar.gz: 9a013902b6900d5e9cf6f0615a008816ec60e4761c758b8f8ba0ba10e3ec8e56547d8ad2f343695b38ab0cbb279ba03856364d2389bfbf9f77168d8a13128f7c
@@ -142,6 +142,46 @@ module MWS
142
142
  run
143
143
  end
144
144
 
145
+ # Gets lowest priced offers for a single product, based on SellerSKU
146
+ #
147
+ # @see http://docs.developer.amazonservices.com/en_MX/products/Products_GetLowestPricedOffersForSKU.html
148
+ # @overload get_lowest_priced_offers_for_sku(seller_sku, item_condition, opts = { marketplace_id: primary_marketplace_id })
149
+ # @param seller_sku [String]
150
+ # @param item_condition [String]
151
+ # @param opts [Hash]
152
+ # @option opts [String] :marketplace_id
153
+ # @return [Peddler::XMLParser]
154
+ def get_lowest_priced_offers_for_sku(seller_sku, item_condition, opts = {})
155
+ opts.update(
156
+ 'SellerSKU' => seller_sku,
157
+ 'ItemCondition' => item_condition
158
+ )
159
+ operation_with_marketplace('GetLowestPricedOffersForSKU')
160
+ .add(opts)
161
+
162
+ run
163
+ end
164
+
165
+ # Gets lowest priced offers for a single product, based on ASIN
166
+ #
167
+ # @see http://docs.developer.amazonservices.com/en_MX/products/Products_GetLowestPricedOffersForASIN.html
168
+ # @overload get_lowest_priced_offers_for_sku(asin, item_condition, opts = { marketplace_id: primary_marketplace_id })
169
+ # @param asin [String]
170
+ # @param item_condition [String]
171
+ # @param opts [Hash]
172
+ # @option opts [String] :marketplace_id
173
+ # @return [Peddler::XMLParser]
174
+ def get_lowest_priced_offers_for_asin(asin, item_condition, opts = {})
175
+ opts.update(
176
+ 'ASIN' => asin,
177
+ 'ItemCondition' => item_condition
178
+ )
179
+ operation_with_marketplace('GetLowestPricedOffersForASIN')
180
+ .add(opts)
181
+
182
+ run
183
+ end
184
+
145
185
  # Gets pricing information for seller's own offer listings, based on
146
186
  # Seller SKU
147
187
  #
@@ -223,11 +263,9 @@ module MWS
223
263
  end
224
264
 
225
265
  # @api private
226
- def operation_with_marketplace(*args)
227
- operation(*args).tap do |opts|
228
- unless opts.key?('MarketplaceId')
229
- opts.store('MarketplaceId', primary_marketplace_id)
230
- end
266
+ def operation_with_marketplace(action)
267
+ operation(action).tap do |opts|
268
+ opts.store('MarketplaceId', primary_marketplace_id)
231
269
  end
232
270
  end
233
271
  end
@@ -1,3 +1,3 @@
1
1
  module Peddler
2
- VERSION = '1.0.2'
2
+ VERSION = '1.1.0'
3
3
  end
@@ -37,6 +37,13 @@ class TestProducts < IntegrationTest
37
37
  end
38
38
  end
39
39
 
40
+ def test_gets_lowest_priced_offers_for_asin
41
+ clients.each do |client|
42
+ res = client.get_lowest_priced_offers_for_asin('1780935374', 'New')
43
+ refute_empty res.parse
44
+ end
45
+ end
46
+
40
47
  def test_gets_product_categories_for_asin
41
48
  clients.each do |client|
42
49
  res = client.get_product_categories_for_asin('1780935374')
data/test/mws.yml ADDED
@@ -0,0 +1,16 @@
1
+ - primary_marketplace_id: A2EUQ1WTGCTBG2
2
+ aws_access_key_id: AKIAITHQMZUJROSOP27Q
3
+ aws_secret_access_key: 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
4
+ merchant_id: A2A7WNXBU01UJW
5
+ - primary_marketplace_id: A1PA6795UKMFR9
6
+ aws_access_key_id: AKIAIORT7554FEBW7UBQ
7
+ aws_secret_access_key: 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
8
+ merchant_id: A7ZXDJZD3UIRG
9
+ - primary_marketplace_id: A1VC38T7YXB528
10
+ aws_access_key_id: AKIAJ5RDDSRROM6GXQ5Q
11
+ aws_secret_access_key: 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
12
+ merchant_id: A7BU5WGNVGQ1I
13
+ - primary_marketplace_id: ATVPDKIKX0DER
14
+ aws_access_key_id: AKIAJ767ZET2BZR4UDDQ
15
+ aws_secret_access_key: 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
16
+ merchant_id: A2H6NH4SQYFZ4M
@@ -92,6 +92,36 @@ class TestMWSProductsClient < MiniTest::Test
92
92
  assert_equal operation, @client.operation
93
93
  end
94
94
 
95
+ def test_gets_lowest_priced_offers_for_sku
96
+ operation = {
97
+ 'Action' => 'GetLowestPricedOffersForSKU',
98
+ 'MarketplaceId' => '123',
99
+ 'SellerSKU' => '1',
100
+ 'ItemCondition' => 'New'
101
+ }
102
+
103
+ @client.stub(:run, nil) do
104
+ @client.get_lowest_priced_offers_for_sku('1', 'New')
105
+ end
106
+
107
+ assert_equal operation, @client.operation
108
+ end
109
+
110
+ def test_gets_lowest_priced_offers_for_asin
111
+ operation = {
112
+ 'Action' => 'GetLowestPricedOffersForASIN',
113
+ 'MarketplaceId' => '123',
114
+ 'ASIN' => '1',
115
+ 'ItemCondition' => 'New'
116
+ }
117
+
118
+ @client.stub(:run, nil) do
119
+ @client.get_lowest_priced_offers_for_asin('1', 'New')
120
+ end
121
+
122
+ assert_equal operation, @client.operation
123
+ end
124
+
95
125
  def test_gets_lowest_offer_listings_for_asin
96
126
  operation = {
97
127
  'Action' => 'GetLowestOfferListingsForASIN',
@@ -162,6 +192,20 @@ class TestMWSProductsClient < MiniTest::Test
162
192
  assert_equal operation, @client.operation
163
193
  end
164
194
 
195
+ def test_queries_nonprimary_marketplaces
196
+ operation = {
197
+ 'Action' => 'GetProductCategoriesForASIN',
198
+ 'MarketplaceId' => '321',
199
+ 'ASIN' => '1'
200
+ }
201
+
202
+ @client.stub(:run, nil) do
203
+ @client.get_product_categories_for_asin('1', marketplace_id: '321')
204
+ end
205
+
206
+ assert_equal operation, @client.operation
207
+ end
208
+
165
209
  def test_gets_service_status
166
210
  operation = {
167
211
  'Action' => 'GetServiceStatus'