retailcrm 1.0.1 → 1.0.2

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 (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/retailcrm.rb +91 -51
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5892ff6239b7f32f4734350c0594c3aca0d2b542
4
- data.tar.gz: e51a74e3dca2008a92a786850608ab13f7973d76
3
+ metadata.gz: ec3e33a1e8c60754039125af62d24716a5d9e1a2
4
+ data.tar.gz: a471b40ba01dd4d5c831e2f1a13253624dc98dcc
5
5
  SHA512:
6
- metadata.gz: 1138c399ba37c527d18b7f8be73b507ac171c5cd15cb43962c0a387f98f190fa0634965de25d13caae0836a924d06c7a12acd5e98f4009fe7f129da886a05df0
7
- data.tar.gz: f9e3ad55a0c60f4fe1ef8f3f6c98e5594f98a5c23f709305c52539623e2efd1b034b7007b5db671ccaca6d8f4855e04fdd0850840fc09cb4a80a183d1e75c69f
6
+ metadata.gz: 2a453a4c30e5abd9563bf6ff08be8db29814c93578e48039d9084308bd4d68d42b4ca2f79845fe344d2f98ce7ead9c7142a39a59d099aa8f5fc8e6de97bae250
7
+ data.tar.gz: 7fb723af25a4cdb4f8fa529285e8498837ef6dd2cee70a92b27cbe3410f2e9d939f73f132e0cdc4448165ce23e06b9e1fdb60f166679a7461eaf39d03f1c97df
@@ -9,10 +9,10 @@ require 'json'
9
9
  class Retailcrm
10
10
 
11
11
  def initialize(url, key)
12
- @rr_version = 3
13
- @rr_url = "#{url}/api/v#{@rr_version}/"
14
- @rr_key = key
15
- @rr_params = { :apiKey => @rr_key }
12
+ @version = 3
13
+ @url = "#{url}/api/v#{@version}/"
14
+ @key = key
15
+ @params = { :apiKey => @key }
16
16
  @filter = nil
17
17
  @ids = nil
18
18
  end
@@ -30,9 +30,9 @@ class Retailcrm
30
30
  # limit (Integer) (20|50|100)
31
31
  # page (Integer)
32
32
  def orders(filter = nil, limit = 20, page = 1)
33
- url = "#{@rr_url}orders"
34
- @rr_params[:limit] = limit
35
- @rr_params[:page] = page
33
+ url = "#{@url}orders"
34
+ @params[:limit] = limit
35
+ @params[:page] = page
36
36
  @filter = filter.to_a.map { |x| "filter[#{x[0]}]=#{x[1]}" }.join("&")
37
37
  make_request(url)
38
38
  end
@@ -49,7 +49,7 @@ class Retailcrm
49
49
  # ids (Array)
50
50
  def orders_statuses(ids = [])
51
51
  @ids = ids.map { |x| "ids[]=#{x}" }.join("&")
52
- url = "#{@rr_url}orders/statuses"
52
+ url = "#{@url}orders/statuses"
53
53
  make_request(url)
54
54
  end
55
55
 
@@ -65,9 +65,9 @@ class Retailcrm
65
65
  # id (Integer)
66
66
  # by (String)
67
67
  def orders_get(id, by = 'externalId')
68
- url = "#{@rr_url}orders/#{id}"
68
+ url = "#{@url}orders/#{id}"
69
69
  if by != 'externalId'
70
- @rr_params[:by] = by
70
+ @params[:by] = by
71
71
  end
72
72
  make_request(url)
73
73
  end
@@ -83,8 +83,8 @@ class Retailcrm
83
83
  # Arguments:
84
84
  # order (Array)
85
85
  def orders_create(order)
86
- url = "#{@rr_url}orders/create"
87
- @rr_params[:order] = order.to_json
86
+ url = "#{@url}orders/create"
87
+ @params[:order] = order.to_json
88
88
  make_request(url, 'post')
89
89
  end
90
90
 
@@ -100,8 +100,8 @@ class Retailcrm
100
100
  # order (Array)
101
101
  def orders_edit(order)
102
102
  id = order[:externalId]
103
- url = "#{@rr_url}orders/#{id}/edit"
104
- @rr_params[:order] = order.to_json
103
+ url = "#{@url}orders/#{id}/edit"
104
+ @params[:order] = order.to_json
105
105
  make_request(url, 'post')
106
106
  end
107
107
 
@@ -116,8 +116,8 @@ class Retailcrm
116
116
  # Arguments:
117
117
  # orders (Array)
118
118
  def orders_upload(orders)
119
- url = "#{@rr_url}orders/upload"
120
- @rr_params[:orders] = orders.to_json
119
+ url = "#{@url}orders/upload"
120
+ @params[:orders] = orders.to_json
121
121
  make_request(url, 'post')
122
122
  end
123
123
 
@@ -132,8 +132,8 @@ class Retailcrm
132
132
  # Arguments:
133
133
  # orders (Array)
134
134
  def orders_fix_external_ids(orders)
135
- url = "#{@rr_url}orders/fix-external-ids"
136
- @rr_params[:orders] = orders.to_json
135
+ url = "#{@url}orders/fix-external-ids"
136
+ @params[:orders] = orders.to_json
137
137
  make_request(url, 'post')
138
138
  end
139
139
 
@@ -152,12 +152,32 @@ class Retailcrm
152
152
  # offset (Integer)
153
153
  # skip_my_changes (Boolean)
154
154
  def orders_history(start_date = nil, end_date = nil, limit = 100, offset = 0, skip_my_changes = true)
155
- url = "#{@rr_url}orders/history"
156
- @rr_params[:startDate] = start_date
157
- @rr_params[:endDate] = end_date
158
- @rr_params[:limit] = limit
159
- @rr_params[:offset] = offset
160
- @rr_params[:skipMyChanges] = skip_my_changes
155
+ url = "#{@url}orders/history"
156
+ @params[:startDate] = start_date
157
+ @params[:endDate] = end_date
158
+ @params[:limit] = limit
159
+ @params[:offset] = offset
160
+ @params[:skipMyChanges] = skip_my_changes
161
+ make_request(url)
162
+ end
163
+
164
+ ##
165
+ # === Get orders assembly history
166
+ # http://www.retailcrm.ru/docs/Разработчики/СправочникМетодовAPIV3
167
+ #
168
+ # Example:
169
+ # >> Retailcrm.orders_packs_history({:orderId => 26120, :startDate => '2015-04-10 23:33:12'}, 50, 2)
170
+ # => {...}
171
+ #
172
+ # Arguments:
173
+ # filter (Hash)
174
+ # limit (Integer) (20|50|100)
175
+ # page (Integer)
176
+ def orders_packs_history(filter = nil, limit = 20, page = 1)
177
+ url = "#{@url}orders/packs/history"
178
+ @params[:limit] = limit
179
+ @params[:page] = page
180
+ @filter = filter.to_a.map { |x| "filter[#{x[0]}]=#{x[1]}" }.join("&")
161
181
  make_request(url)
162
182
  end
163
183
 
@@ -174,9 +194,9 @@ class Retailcrm
174
194
  # limit (Integer) (20|50|100)
175
195
  # page (Integer)
176
196
  def customers(filter = nil, limit = 20, page = 1)
177
- url = "#{@rr_url}customers"
178
- @rr_params[:limit] = limit
179
- @rr_params[:page] = page
197
+ url = "#{@url}customers"
198
+ @params[:limit] = limit
199
+ @params[:page] = page
180
200
  @filter = filter.to_a.map { |x| "filter[#{x[0]}]=#{x[1]}" }.join("&")
181
201
  make_request(url)
182
202
  end
@@ -193,9 +213,9 @@ class Retailcrm
193
213
  # id (Integer)
194
214
  # by (String)
195
215
  def customers_get(id, by = 'externalId')
196
- url = "#{@rr_url}customers/#{id}"
216
+ url = "#{@url}customers/#{id}"
197
217
  if by != 'externalId'
198
- @rr_params[:by] = by
218
+ @params[:by] = by
199
219
  end
200
220
  make_request(url)
201
221
  end
@@ -211,8 +231,8 @@ class Retailcrm
211
231
  # Arguments:
212
232
  # customer (Array)
213
233
  def customers_create(customer)
214
- url = "#{@rr_url}customers/create"
215
- @rr_params[:customer] = customer.to_json
234
+ url = "#{@url}customers/create"
235
+ @params[:customer] = customer.to_json
216
236
  make_request(url, 'post')
217
237
  end
218
238
 
@@ -228,8 +248,8 @@ class Retailcrm
228
248
  # customer (Array)
229
249
  def customers_edit(customer)
230
250
  id = customer[:externalId]
231
- url = "#{@rr_url}customers/#{id}/edit"
232
- @rr_params[:customer] = customer.to_json
251
+ url = "#{@url}customers/#{id}/edit"
252
+ @params[:customer] = customer.to_json
233
253
  make_request(url, 'post')
234
254
  end
235
255
 
@@ -244,8 +264,8 @@ class Retailcrm
244
264
  # Arguments:
245
265
  # customers (Array)
246
266
  def customers_upload(customers)
247
- url = "#{@rr_url}customers/upload"
248
- @rr_params[:customers] = customers.to_json
267
+ url = "#{@url}customers/upload"
268
+ @params[:customers] = customers.to_json
249
269
  make_request(url, 'post')
250
270
  end
251
271
 
@@ -260,17 +280,37 @@ class Retailcrm
260
280
  # Arguments:
261
281
  # customers (Array)
262
282
  def customers_fix_external_ids(customers)
263
- url = "#{@rr_url}customers/fix-external-ids"
264
- @rr_params[:customers] = customers.to_json
283
+ url = "#{@url}customers/fix-external-ids"
284
+ @params[:customers] = customers.to_json
265
285
  make_request(url, 'post')
266
286
  end
267
287
 
288
+ ##
289
+ # === Get purchace prices & stock balance
290
+ # http://www.retailcrm.ru/docs/Разработчики/СправочникМетодовAPIV3
291
+ #
292
+ # Example:
293
+ # >> Retailcrm.store_inventories({:productExternalId => 26120, :details => 1}, 50, 2)
294
+ # => {...}
295
+ #
296
+ # Arguments:
297
+ # filter (Hash)
298
+ # limit (Integer) (20|50|100)
299
+ # page (Integer)
300
+ def store_inventories(filter = nil, limit = 20, page = 1)
301
+ url = "#{@url}store/inventories"
302
+ @params[:limit] = limit
303
+ @params[:page] = page
304
+ @filter = filter.to_a.map { |x| "filter[#{x[0]}]=#{x[1]}" }.join("&")
305
+ make_request(url)
306
+ end
307
+
268
308
  ##
269
309
  # === Get delivery services
270
310
  # http://www.retailcrm.ru/docs/Разработчики/СправочникМетодовAPIV3
271
311
  #
272
312
  def delivery_services
273
- url = "#{@rr_url}reference/delivery-services"
313
+ url = "#{@url}reference/delivery-services"
274
314
  make_request(url)
275
315
  end
276
316
 
@@ -278,7 +318,7 @@ class Retailcrm
278
318
  # http://www.retailcrm.ru/docs/Разработчики/СправочникМетодовAPIV3
279
319
  #
280
320
  def delivery_types
281
- url = "#{@rr_url}reference/delivery-types"
321
+ url = "#{@url}reference/delivery-types"
282
322
  make_request(url)
283
323
  end
284
324
 
@@ -287,7 +327,7 @@ class Retailcrm
287
327
  # http://www.retailcrm.ru/docs/Разработчики/СправочникМетодовAPIV3
288
328
  #
289
329
  def order_methods
290
- url = "#{@rr_url}reference/order-methods"
330
+ url = "#{@url}reference/order-methods"
291
331
  make_request(url)
292
332
  end
293
333
 
@@ -296,7 +336,7 @@ class Retailcrm
296
336
  # http://www.retailcrm.ru/docs/Разработчики/СправочникМетодовAPIV3
297
337
  #
298
338
  def order_types
299
- url = "#{@rr_url}reference/order-types"
339
+ url = "#{@url}reference/order-types"
300
340
  make_request(url)
301
341
  end
302
342
 
@@ -304,7 +344,7 @@ class Retailcrm
304
344
  # http://www.retailcrm.ru/docs/Разработчики/СправочникМетодовAPIV3
305
345
  #
306
346
  def payment_statuses
307
- url = "#{@rr_url}reference/payment-statuses"
347
+ url = "#{@url}reference/payment-statuses"
308
348
  make_request(url)
309
349
  end
310
350
 
@@ -313,7 +353,7 @@ class Retailcrm
313
353
  # http://www.retailcrm.ru/docs/Разработчики/СправочникМетодовAPIV3
314
354
  #
315
355
  def payment_types
316
- url = "#{@rr_url}reference/payment-types"
356
+ url = "#{@url}reference/payment-types"
317
357
  make_request(url)
318
358
  end
319
359
 
@@ -322,7 +362,7 @@ class Retailcrm
322
362
  # http://www.retailcrm.ru/docs/Разработчики/СправочникМетодовAPIV3
323
363
  #
324
364
  def product_statuses
325
- url = "#{@rr_url}reference/product-statuses"
365
+ url = "#{@url}reference/product-statuses"
326
366
  make_request(url)
327
367
  end
328
368
 
@@ -330,7 +370,7 @@ class Retailcrm
330
370
  # http://www.retailcrm.ru/docs/Разработчики/СправочникМетодовAPIV3
331
371
  #
332
372
  def sites
333
- url = "#{@rr_url}reference/sites"
373
+ url = "#{@url}reference/sites"
334
374
  make_request(url)
335
375
  end
336
376
 
@@ -339,7 +379,7 @@ class Retailcrm
339
379
  # http://www.retailcrm.ru/docs/Разработчики/СправочникМетодовAPIV3
340
380
  #
341
381
  def status_groups
342
- url = "#{@rr_url}reference/status-groups"
382
+ url = "#{@url}reference/status-groups"
343
383
  make_request(url)
344
384
  end
345
385
 
@@ -347,7 +387,7 @@ class Retailcrm
347
387
  # http://www.retailcrm.ru/docs/Разработчики/СправочникМетодовAPIV3
348
388
  #
349
389
  def statuses
350
- url = "#{@rr_url}reference/statuses"
390
+ url = "#{@url}reference/statuses"
351
391
  make_request(url)
352
392
  end
353
393
 
@@ -356,7 +396,7 @@ class Retailcrm
356
396
  # http://www.retailcrm.ru/docs/Разработчики/СправочникМетодовAPIV3
357
397
  #
358
398
  def stores
359
- url = "#{@rr_url}reference/stores"
399
+ url = "#{@url}reference/stores"
360
400
  make_request(url)
361
401
  end
362
402
 
@@ -366,7 +406,7 @@ class Retailcrm
366
406
  # http://www.retailcrm.ru/docs/Разработчики/СправочникМетодовAPIV3
367
407
  #
368
408
  def statistic_update
369
- url = "#{@rr_url}statistic/update"
409
+ url = "#{@url}statistic/update"
370
410
  make_request(url)
371
411
  end
372
412
 
@@ -380,10 +420,10 @@ class Retailcrm
380
420
 
381
421
  if method == 'post'
382
422
  request = Net::HTTP::Post.new(uri)
383
- request.set_form_data(@rr_params)
423
+ request.set_form_data(@params)
384
424
  elsif method == 'get'
385
425
  request = Net::HTTP::Get.new(uri.path)
386
- request.set_form_data(@rr_params)
426
+ request.set_form_data(@params)
387
427
 
388
428
  if @filter.nil?
389
429
  data = "#{request.body}"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: retailcrm
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Lushpai