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.
- 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}"
|