retailcrm 1.0.1 → 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/retailcrm.rb +91 -51
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ec3e33a1e8c60754039125af62d24716a5d9e1a2
|
4
|
+
data.tar.gz: a471b40ba01dd4d5c831e2f1a13253624dc98dcc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2a453a4c30e5abd9563bf6ff08be8db29814c93578e48039d9084308bd4d68d42b4ca2f79845fe344d2f98ce7ead9c7142a39a59d099aa8f5fc8e6de97bae250
|
7
|
+
data.tar.gz: 7fb723af25a4cdb4f8fa529285e8498837ef6dd2cee70a92b27cbe3410f2e9d939f73f132e0cdc4448165ce23e06b9e1fdb60f166679a7461eaf39d03f1c97df
|
data/lib/retailcrm.rb
CHANGED
@@ -9,10 +9,10 @@ require 'json'
|
|
9
9
|
class Retailcrm
|
10
10
|
|
11
11
|
def initialize(url, key)
|
12
|
-
@
|
13
|
-
@
|
14
|
-
@
|
15
|
-
@
|
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 = "#{@
|
34
|
-
@
|
35
|
-
@
|
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 = "#{@
|
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 = "#{@
|
68
|
+
url = "#{@url}orders/#{id}"
|
69
69
|
if by != 'externalId'
|
70
|
-
@
|
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 = "#{@
|
87
|
-
@
|
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 = "#{@
|
104
|
-
@
|
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 = "#{@
|
120
|
-
@
|
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 = "#{@
|
136
|
-
@
|
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 = "#{@
|
156
|
-
@
|
157
|
-
@
|
158
|
-
@
|
159
|
-
@
|
160
|
-
@
|
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 = "#{@
|
178
|
-
@
|
179
|
-
@
|
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 = "#{@
|
216
|
+
url = "#{@url}customers/#{id}"
|
197
217
|
if by != 'externalId'
|
198
|
-
@
|
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 = "#{@
|
215
|
-
@
|
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 = "#{@
|
232
|
-
@
|
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 = "#{@
|
248
|
-
@
|
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 = "#{@
|
264
|
-
@
|
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 = "#{@
|
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 = "#{@
|
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 = "#{@
|
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 = "#{@
|
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 = "#{@
|
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 = "#{@
|
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 = "#{@
|
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 = "#{@
|
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 = "#{@
|
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 = "#{@
|
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 = "#{@
|
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 = "#{@
|
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(@
|
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(@
|
426
|
+
request.set_form_data(@params)
|
387
427
|
|
388
428
|
if @filter.nil?
|
389
429
|
data = "#{request.body}"
|