saferoute-api 0.0.9 → 0.2.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.
- package/README.md +791 -580
- package/dist/api/pickups.d.ts +15 -0
- package/dist/api/reports.d.ts +29 -0
- package/dist/api/widgets.d.ts +1 -23
- package/dist/const.d.ts +136 -0
- package/dist/index.d.ts +46 -6
- package/dist/index.js +1 -1
- package/dist/request.d.ts +64 -1
- package/dist/types/pickups.d.ts +58 -0
- package/dist/types/reports.d.ts +71 -0
- package/dist/types/warehouses.d.ts +6 -0
- package/dist/types/widgets.d.ts +53 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,581 +1,792 @@
|
|
|
1
|
-
# Пакет для работы с API SafeRoute.
|
|
2
|
-
|
|
3
|
-
[Документация к API](https://wiki.saferoute.ru/ru/api)
|
|
4
|
-
|
|
5
|
-
- [Установка](#установка)
|
|
6
|
-
- [Работа с API](#работа-с-api)
|
|
7
|
-
- [
|
|
8
|
-
- [
|
|
9
|
-
- [
|
|
10
|
-
- [
|
|
11
|
-
- [
|
|
12
|
-
- [
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
- [
|
|
16
|
-
- [Получение
|
|
17
|
-
|
|
18
|
-
- [
|
|
19
|
-
- [
|
|
20
|
-
- [
|
|
21
|
-
- [
|
|
22
|
-
- [
|
|
23
|
-
- [
|
|
24
|
-
- [
|
|
25
|
-
- [
|
|
26
|
-
- [
|
|
27
|
-
- [
|
|
28
|
-
- [
|
|
29
|
-
|
|
30
|
-
- [
|
|
31
|
-
- [
|
|
32
|
-
|
|
33
|
-
- [Получение списка
|
|
34
|
-
|
|
35
|
-
- [
|
|
36
|
-
- [Получение
|
|
37
|
-
|
|
38
|
-
- [
|
|
39
|
-
- [
|
|
40
|
-
- [
|
|
41
|
-
- [
|
|
42
|
-
|
|
43
|
-
- [
|
|
44
|
-
- [
|
|
45
|
-
|
|
46
|
-
- [
|
|
47
|
-
- [
|
|
48
|
-
|
|
49
|
-
- [
|
|
50
|
-
- [
|
|
51
|
-
|
|
52
|
-
- [
|
|
53
|
-
- [
|
|
54
|
-
|
|
55
|
-
- [
|
|
56
|
-
- [
|
|
57
|
-
|
|
58
|
-
- [
|
|
59
|
-
- [
|
|
60
|
-
|
|
61
|
-
- [
|
|
62
|
-
- [
|
|
63
|
-
|
|
64
|
-
- [
|
|
65
|
-
- [
|
|
66
|
-
- [
|
|
67
|
-
|
|
68
|
-
- [
|
|
69
|
-
- [
|
|
70
|
-
|
|
71
|
-
- [
|
|
72
|
-
- [
|
|
73
|
-
- [
|
|
74
|
-
- [
|
|
75
|
-
- [
|
|
76
|
-
|
|
77
|
-
- [Список
|
|
78
|
-
- [
|
|
79
|
-
|
|
80
|
-
- [
|
|
81
|
-
|
|
82
|
-
- [
|
|
83
|
-
- [
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
- [
|
|
87
|
-
- [
|
|
88
|
-
|
|
89
|
-
- [Список
|
|
90
|
-
- [
|
|
91
|
-
- [Список
|
|
92
|
-
- [
|
|
93
|
-
- [
|
|
94
|
-
- [
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
- [
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
####
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
####
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
####
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
####
|
|
363
|
-
|
|
364
|
-
_В разработке_
|
|
365
|
-
|
|
366
|
-
####
|
|
367
|
-
|
|
368
|
-
_В разработке_
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
####
|
|
401
|
-
|
|
402
|
-
_В разработке_
|
|
403
|
-
|
|
404
|
-
####
|
|
405
|
-
|
|
406
|
-
_В разработке_
|
|
407
|
-
|
|
408
|
-
####
|
|
409
|
-
|
|
410
|
-
_В разработке_
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
####
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
```
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
const
|
|
542
|
-
|
|
543
|
-
const res:
|
|
544
|
-
```
|
|
545
|
-
|
|
546
|
-
####
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
1
|
+
# Пакет для работы с API SafeRoute.
|
|
2
|
+
|
|
3
|
+
[Документация к API](https://wiki.saferoute.ru/ru/api)
|
|
4
|
+
|
|
5
|
+
- [Установка](#установка)
|
|
6
|
+
- [Работа с API](#работа-с-api)
|
|
7
|
+
- [Описание типов APIDataResponse и APIBoolResponse](#описание-типов-apidataresponse-и-apiboolresponse)
|
|
8
|
+
- [APIDataResponse](#apidataresponse)
|
|
9
|
+
- [APIBoolResponse](#apiboolresponse)
|
|
10
|
+
- [Авторизация, профиль и настройки](#авторизация-профиль-и-настройки)
|
|
11
|
+
- [Авторизация по E-mail и паролю](#авторизация-по-e-mail-и-паролю)
|
|
12
|
+
- [Получение данных и настроек пользователя по токену](#получение-данных-и-настроек-пользователя-по-токену)
|
|
13
|
+
- [Калькулятор доставки](#калькулятор-доставки)
|
|
14
|
+
- [Расчёт стоимости доставки](#расчёт-стоимости-доставки)
|
|
15
|
+
- [Расчёт стоимости доставки для отдельной транспортной компании](#расчёт-стоимости-доставки-для-отдельной-транспортной-компании)
|
|
16
|
+
- [Получение списка ID транспортных компаний, доставка которыми доступна в выбранный населённый пункт](#получение-списка-id-транспортных-компаний-доставка-которыми-доступна-в-выбранный-населённый-пункт)
|
|
17
|
+
- [Заказы](#заказы)
|
|
18
|
+
- [Получение списка заказов](#получение-списка-заказов)
|
|
19
|
+
- [Получение отдельного заказа](#получение-отдельного-заказа)
|
|
20
|
+
- [Создание заказа](#создание-заказа)
|
|
21
|
+
- [Редактирование заказа](#редактирование-заказа)
|
|
22
|
+
- [Частичное редактирование заказа](#частичное-редактирование-заказа)
|
|
23
|
+
- [Подтверждение заказов](#подтверждение-заказов)
|
|
24
|
+
- [Отмена заказов](#отмена-заказов)
|
|
25
|
+
- [Дублирование заказов](#дублирование-заказов)
|
|
26
|
+
- [Дублирование заказа для возврата](#дублирование-заказа-для-возврата)
|
|
27
|
+
- [Возврат заказов](#возврат-заказов)
|
|
28
|
+
- [Продление хранения на ПВЗ](#продление-хранения-на-пвз)
|
|
29
|
+
- [Комплектация заказов](#комплектация-заказов)
|
|
30
|
+
- [Раскомплектация заказов](#раскомплектация-заказов)
|
|
31
|
+
- [Получение параметров забора для создания заказа без склада и магазина](#получение-параметров-забора-для-создания-заказа-без-склада-и-магазина)
|
|
32
|
+
- [Заборы](#заборы)
|
|
33
|
+
- [Получение списка заборов](#получение-списка-заборов)
|
|
34
|
+
- [Создание забора](#создание-забора)
|
|
35
|
+
- [Отмена забора](#отмена-забора)
|
|
36
|
+
- [Получение списка компаний забора](#получение-списка-компаний-забора)
|
|
37
|
+
- [Товары](#товары)
|
|
38
|
+
- [Получение списка товаров](#получение-списка-товаров)
|
|
39
|
+
- [Получение отдельного товара](#получение-отдельного-товара)
|
|
40
|
+
- [Создание нового товара](#создание-нового-товара)
|
|
41
|
+
- [Редактирование товара](#редактирование-товара)
|
|
42
|
+
- [Частичное редактирование товара](#частичное-редактирование-товара)
|
|
43
|
+
- [Удаление товара](#удаление-товара)
|
|
44
|
+
- [Импорт товаров](#импорт-товаров)
|
|
45
|
+
- [Комплекты товаров](#комплекты-товаров)
|
|
46
|
+
- [Получение списка комплектов](#получение-списка-комплектов)
|
|
47
|
+
- [Получение отдельного комплекта](#получение-отдельного-комплекта)
|
|
48
|
+
- [Создание нового комплекта](#создание-нового-комплекта)
|
|
49
|
+
- [Редактирование комплекта](#редактирование-комплекта)
|
|
50
|
+
- [Удаление комплекта](#удаление-комплекта)
|
|
51
|
+
- [Склады](#склады)
|
|
52
|
+
- [Получение списка складов](#получение-списка-складов)
|
|
53
|
+
- [Получение отдельного склада](#получение-отдельного-склада)
|
|
54
|
+
- [Создание нового склада](#создание-нового-склада)
|
|
55
|
+
- [Редактирование склада](#редактирование-склада)
|
|
56
|
+
- [Удаление склада](#удаление-склада)
|
|
57
|
+
- [Магазины](#магазины)
|
|
58
|
+
- [Получение списка магазинов](#получение-списка-магазинов)
|
|
59
|
+
- [Получение отдельного магазина](#получение-отдельного-магазина)
|
|
60
|
+
- [Создание нового магазина](#создание-нового-магазина)
|
|
61
|
+
- [Редактирование магазина](#редактирование-магазина)
|
|
62
|
+
- [Удаление магазина](#удаление-магазина)
|
|
63
|
+
- [Коробки](#коробки)
|
|
64
|
+
- [Получение списка коробок](#получение-списка-коробок)
|
|
65
|
+
- [Получение отдельной коробки](#получение-отдельной-коробки)
|
|
66
|
+
- [Создание новой коробки](#создание-новой-коробки)
|
|
67
|
+
- [Редактирование коробки](#редактирование-коробки)
|
|
68
|
+
- [Частичное редактирование коробки](#частичное-редактирование-коробки)
|
|
69
|
+
- [Удаление коробки](#удаление-коробки)
|
|
70
|
+
- [Документы](#документы)
|
|
71
|
+
- [Список актов приёма товаров](#список-актов-приёма-товаров)
|
|
72
|
+
- [Формирование акта приёма товаров](#формирование-акта-приёма-товаров)
|
|
73
|
+
- [Список актов передачи заказов](#список-актов-передачи-заказов)
|
|
74
|
+
- [Создание актов передачи заказов](#создание-актов-передачи-заказов)
|
|
75
|
+
- [Генерация сборочной ведомости](#генерация-сборочной-ведомости)
|
|
76
|
+
- [Формирование отчёта по движению товаров](#формирование-отчёта-по-движению-товаров)
|
|
77
|
+
- [Список стикеров](#список-стикеров)
|
|
78
|
+
- [Формирование стикеров](#формирование-стикеров)
|
|
79
|
+
- [Отчёты](#отчёты)
|
|
80
|
+
- [Список счетов](#список-счетов)
|
|
81
|
+
- [Список отчётов агента/исполнителя](#список-отчётов-агентаисполнителя)
|
|
82
|
+
- [Подтверждение отчёта агента](#подтверждение-отчёта-агента)
|
|
83
|
+
- [Список аналитических отчётов](#список-аналитических-отчётов)
|
|
84
|
+
- [Генерация аналитических отчётов](#генерация-аналитических-отчётов)
|
|
85
|
+
- [Маркетплейсы](#маркетплейсы)
|
|
86
|
+
- [Список маркетплейсов](#список-маркетплейсов)
|
|
87
|
+
- [Редактирование настроек маркетплейса](#редактирование-настроек-маркетплейса)
|
|
88
|
+
- [Другое](#другое)
|
|
89
|
+
- [Список дополнительных услуг](#список-дополнительных-услуг)
|
|
90
|
+
- [Информация об интервалах курьерской доставки](#информация-об-интервалах-курьерской-доставки)
|
|
91
|
+
- [Список компаний доставки (кроме возвратных)](#список-компаний-доставки-кроме-возвратных)
|
|
92
|
+
- [Список компаний возврата](#список-компаний-возврата)
|
|
93
|
+
- [Список всех ПВЗ](#список-всех-пвз)
|
|
94
|
+
- [Список маркетплейсов со складами](#список-маркетплейсов-со-складами)
|
|
95
|
+
- [Список статусов заказа](#список-статусов-заказа)
|
|
96
|
+
- [Трекинг заказа](#трекинг-заказа)
|
|
97
|
+
- [Данные по доступным вариантам отгрузки](#данные-по-доступным-вариантам-отгрузки)
|
|
98
|
+
- [Виджеты](#виджеты)
|
|
99
|
+
- [apiScript](#apiScript)
|
|
100
|
+
- [widgets/update-order](#widgetsupdate-order)
|
|
101
|
+
- [widgets/confirm-order](#widgetsconfirm-order)
|
|
102
|
+
- [Константы](#константы)
|
|
103
|
+
|
|
104
|
+
## Установка
|
|
105
|
+
|
|
106
|
+
### NPM
|
|
107
|
+
```
|
|
108
|
+
npm i saferoute-api
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Yarn
|
|
112
|
+
```
|
|
113
|
+
yarn add saferoute-api
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## Работа с API
|
|
117
|
+
|
|
118
|
+
### Описание типов APIDataResponse и APIBoolResponse
|
|
119
|
+
|
|
120
|
+
#### APIDataResponse
|
|
121
|
+
|
|
122
|
+
Тип для запросов, в которых сервер возвращает какие-либо данные без постраничной навигации.
|
|
123
|
+
|
|
124
|
+
```typescript
|
|
125
|
+
type APIDataResponse<D> =
|
|
126
|
+
// Получен успешный ответ от сервера
|
|
127
|
+
| {
|
|
128
|
+
status: SuccessStatuses; // HTTP-статус ответа сервера
|
|
129
|
+
data: D; // Полученные данные
|
|
130
|
+
error: null;
|
|
131
|
+
}
|
|
132
|
+
// От сервера получены код и текстовое описание ошибки
|
|
133
|
+
| {
|
|
134
|
+
status: ErrorWithCodeStatuses;
|
|
135
|
+
data: null;
|
|
136
|
+
error: {
|
|
137
|
+
code: ERROR_CODES;
|
|
138
|
+
message: string;
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
// Запрос завершился ошибкой, сервер не отдал код ошибки
|
|
142
|
+
| {
|
|
143
|
+
status: ErrorWithoutCodeStatuses;
|
|
144
|
+
data: null;
|
|
145
|
+
error: null;
|
|
146
|
+
};
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
Тип для запросов, в которых сервер возвращает список с постраничной навигацией.
|
|
150
|
+
|
|
151
|
+
```typescript
|
|
152
|
+
type APIDataPaginatedResponse<D> =
|
|
153
|
+
// Получен успешный ответ от сервера
|
|
154
|
+
| {
|
|
155
|
+
status: SuccessStatuses; // HTTP-статус ответа сервера
|
|
156
|
+
data: D[]; // Полученный список
|
|
157
|
+
pagination: {
|
|
158
|
+
currentPage: number; // Текущая запрошенная страница
|
|
159
|
+
pageCount: number; // Общее количество страниц в текущем списке
|
|
160
|
+
perPage: number; // Количество выводимых на страницу результатов
|
|
161
|
+
totalCount: number; // Общее количество результатов в списке
|
|
162
|
+
};
|
|
163
|
+
error: null;
|
|
164
|
+
}
|
|
165
|
+
// От сервера получены код и текстовое описание ошибки
|
|
166
|
+
| {
|
|
167
|
+
status: ErrorWithCodeStatuses;
|
|
168
|
+
data: null;
|
|
169
|
+
pagination: null;
|
|
170
|
+
error: {
|
|
171
|
+
code: ERROR_CODES;
|
|
172
|
+
message: string;
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
// Запрос завершился ошибкой, сервер не отдал код ошибки
|
|
176
|
+
| {
|
|
177
|
+
status: ErrorWithoutCodeStatuses;
|
|
178
|
+
data: null;
|
|
179
|
+
pagination: null;
|
|
180
|
+
error: null;
|
|
181
|
+
};
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
#### APIBoolResponse
|
|
185
|
+
|
|
186
|
+
Тип для запросов, в которых требуется вернуть результат выполнения запроса "успешно" / "не успешно".
|
|
187
|
+
|
|
188
|
+
```typescript
|
|
189
|
+
type APIBoolResponse =
|
|
190
|
+
// Успешное выполнение запроса
|
|
191
|
+
| {
|
|
192
|
+
status: SuccessStatuses;
|
|
193
|
+
success: true;
|
|
194
|
+
error: null;
|
|
195
|
+
}
|
|
196
|
+
// Неуспешное выполнение запроса с кодом ошибки
|
|
197
|
+
| {
|
|
198
|
+
status: ErrorWithCodeStatuses;
|
|
199
|
+
success: false;
|
|
200
|
+
error: {
|
|
201
|
+
code: ERROR_CODES;
|
|
202
|
+
message: string;
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
// Неуспешное выполнение запроса без кода ошибки
|
|
206
|
+
| {
|
|
207
|
+
status: ErrorWithoutCodeStatuses;
|
|
208
|
+
success: false;
|
|
209
|
+
error: null;
|
|
210
|
+
};
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### Авторизация, профиль и настройки
|
|
214
|
+
|
|
215
|
+
#### Авторизация по E-mail и паролю
|
|
216
|
+
|
|
217
|
+
_В разработке_
|
|
218
|
+
|
|
219
|
+
#### Получение данных и настроек пользователя по токену
|
|
220
|
+
|
|
221
|
+
_В разработке_
|
|
222
|
+
|
|
223
|
+
### Калькулятор доставки
|
|
224
|
+
|
|
225
|
+
#### Расчёт стоимости доставки
|
|
226
|
+
|
|
227
|
+
_В разработке_
|
|
228
|
+
|
|
229
|
+
#### Расчёт стоимости доставки для отдельной транспортной компании
|
|
230
|
+
|
|
231
|
+
_В разработке_
|
|
232
|
+
|
|
233
|
+
#### Получение списка ID транспортных компаний, доставка которыми доступна в выбранный населённый пункт
|
|
234
|
+
|
|
235
|
+
_В разработке_
|
|
236
|
+
|
|
237
|
+
### Заказы
|
|
238
|
+
|
|
239
|
+
#### Получение списка заказов
|
|
240
|
+
|
|
241
|
+
_В разработке_
|
|
242
|
+
|
|
243
|
+
#### Получение отдельного заказа
|
|
244
|
+
|
|
245
|
+
_В разработке_
|
|
246
|
+
|
|
247
|
+
#### Создание заказа
|
|
248
|
+
|
|
249
|
+
_В разработке_
|
|
250
|
+
|
|
251
|
+
#### Редактирование заказа
|
|
252
|
+
|
|
253
|
+
_В разработке_
|
|
254
|
+
|
|
255
|
+
#### Частичное редактирование заказа
|
|
256
|
+
|
|
257
|
+
_В разработке_
|
|
258
|
+
|
|
259
|
+
#### Подтверждение заказов
|
|
260
|
+
|
|
261
|
+
_В разработке_
|
|
262
|
+
|
|
263
|
+
#### Отмена заказов
|
|
264
|
+
|
|
265
|
+
_В разработке_
|
|
266
|
+
|
|
267
|
+
#### Дублирование заказов
|
|
268
|
+
|
|
269
|
+
_В разработке_
|
|
270
|
+
|
|
271
|
+
#### Дублирование заказа для возврата
|
|
272
|
+
|
|
273
|
+
_В разработке_
|
|
274
|
+
|
|
275
|
+
#### Возврат заказов
|
|
276
|
+
|
|
277
|
+
_В разработке_
|
|
278
|
+
|
|
279
|
+
#### Продление хранения на ПВЗ
|
|
280
|
+
|
|
281
|
+
_В разработке_
|
|
282
|
+
|
|
283
|
+
#### Комплектация заказов
|
|
284
|
+
|
|
285
|
+
_В разработке_
|
|
286
|
+
|
|
287
|
+
#### Раскомплектация заказов
|
|
288
|
+
|
|
289
|
+
_В разработке_
|
|
290
|
+
|
|
291
|
+
#### Получение параметров забора для создания заказа без склада и магазина
|
|
292
|
+
|
|
293
|
+
_В разработке_
|
|
294
|
+
|
|
295
|
+
### Заборы
|
|
296
|
+
|
|
297
|
+
[Документация к API заборов](https://wiki.saferoute.ru/ru/api/endpoints/pickups)
|
|
298
|
+
|
|
299
|
+
#### Получение списка заборов
|
|
300
|
+
|
|
301
|
+
Пример использования.
|
|
302
|
+
|
|
303
|
+
```typescript
|
|
304
|
+
import api, { APIDataPaginatedResponse, GetPickupsParams, Pickup } from 'saferoute-api';
|
|
305
|
+
|
|
306
|
+
const token = '******************';
|
|
307
|
+
const params: GetPickupsParams = { archive: true };
|
|
308
|
+
|
|
309
|
+
const res: APIDataPaginatedResponse<Pickup> = await api.pickups.getPickups(token, params);
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
#### Создание забора
|
|
313
|
+
|
|
314
|
+
Пример использования.
|
|
315
|
+
|
|
316
|
+
```typescript
|
|
317
|
+
import api, { APIDataResponse, PickupCreateParams, PICKUP_TYPES } from 'saferoute-api';
|
|
318
|
+
|
|
319
|
+
const token = '******************';
|
|
320
|
+
const params: PickupCreateParams = {
|
|
321
|
+
date: '2024-02-01',
|
|
322
|
+
type: PICKUP_TYPES.COURIER_MERGED,
|
|
323
|
+
companyId: 1,
|
|
324
|
+
warehouseId: 2,
|
|
325
|
+
comment: null,
|
|
326
|
+
};
|
|
327
|
+
|
|
328
|
+
const res: APIDataResponse<{ id: number }> = await api.pickups.createPickup(token, params);
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
#### Отмена забора
|
|
332
|
+
|
|
333
|
+
Пример использования.
|
|
334
|
+
|
|
335
|
+
```typescript
|
|
336
|
+
import api, { APIBoolResponse } from 'saferoute-api';
|
|
337
|
+
|
|
338
|
+
const token = '******************';
|
|
339
|
+
const id = 15; // ID забора
|
|
340
|
+
|
|
341
|
+
const res: APIBoolResponse = await api.pickups.cancelPickup(token, id);
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
#### Получение списка компаний забора
|
|
345
|
+
|
|
346
|
+
Пример использования.
|
|
347
|
+
|
|
348
|
+
```typescript
|
|
349
|
+
import api, { APIDataResponse, GetPickupCompaniesParams, PickupCompany, PICKUP_TYPES } from 'saferoute-api';
|
|
350
|
+
|
|
351
|
+
const token = '******************';
|
|
352
|
+
const params: GetPickupCompaniesParams = {
|
|
353
|
+
type: PICKUP_TYPES.COURIER_MERGED,
|
|
354
|
+
warehouseId: 1,
|
|
355
|
+
};
|
|
356
|
+
|
|
357
|
+
const res: APIDataResponse<PickupCompany> = await api.pickups.getPickupCompanies(token, params);
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
### Товары
|
|
361
|
+
|
|
362
|
+
#### Получение списка товаров
|
|
363
|
+
|
|
364
|
+
_В разработке_
|
|
365
|
+
|
|
366
|
+
#### Получение отдельного товара
|
|
367
|
+
|
|
368
|
+
_В разработке_
|
|
369
|
+
|
|
370
|
+
#### Создание нового товара
|
|
371
|
+
|
|
372
|
+
_В разработке_
|
|
373
|
+
|
|
374
|
+
#### Редактирование товара
|
|
375
|
+
|
|
376
|
+
_В разработке_
|
|
377
|
+
|
|
378
|
+
#### Частичное редактирование товара
|
|
379
|
+
|
|
380
|
+
_В разработке_
|
|
381
|
+
|
|
382
|
+
#### Удаление товара
|
|
383
|
+
|
|
384
|
+
_В разработке_
|
|
385
|
+
|
|
386
|
+
#### Импорт товаров
|
|
387
|
+
|
|
388
|
+
_В разработке_
|
|
389
|
+
|
|
390
|
+
### Комплекты товаров
|
|
391
|
+
|
|
392
|
+
#### Получение списка комплектов
|
|
393
|
+
|
|
394
|
+
_В разработке_
|
|
395
|
+
|
|
396
|
+
#### Получение отдельного комплекта
|
|
397
|
+
|
|
398
|
+
_В разработке_
|
|
399
|
+
|
|
400
|
+
#### Создание нового комплекта
|
|
401
|
+
|
|
402
|
+
_В разработке_
|
|
403
|
+
|
|
404
|
+
#### Редактирование комплекта
|
|
405
|
+
|
|
406
|
+
_В разработке_
|
|
407
|
+
|
|
408
|
+
#### Удаление комплекта
|
|
409
|
+
|
|
410
|
+
_В разработке_
|
|
411
|
+
|
|
412
|
+
### Склады
|
|
413
|
+
|
|
414
|
+
#### Получение списка складов
|
|
415
|
+
|
|
416
|
+
_В разработке_
|
|
417
|
+
|
|
418
|
+
#### Получение отдельного склада
|
|
419
|
+
|
|
420
|
+
_В разработке_
|
|
421
|
+
|
|
422
|
+
#### Создание нового склада
|
|
423
|
+
|
|
424
|
+
_В разработке_
|
|
425
|
+
|
|
426
|
+
#### Редактирование склада
|
|
427
|
+
|
|
428
|
+
_В разработке_
|
|
429
|
+
|
|
430
|
+
#### Удаление склада
|
|
431
|
+
|
|
432
|
+
_В разработке_
|
|
433
|
+
|
|
434
|
+
### Магазины
|
|
435
|
+
|
|
436
|
+
#### Получение списка магазинов
|
|
437
|
+
|
|
438
|
+
_В разработке_
|
|
439
|
+
|
|
440
|
+
#### Получение отдельного магазина
|
|
441
|
+
|
|
442
|
+
_В разработке_
|
|
443
|
+
|
|
444
|
+
#### Создание нового магазина
|
|
445
|
+
|
|
446
|
+
_В разработке_
|
|
447
|
+
|
|
448
|
+
#### Редактирование магазина
|
|
449
|
+
|
|
450
|
+
_В разработке_
|
|
451
|
+
|
|
452
|
+
#### Удаление магазина
|
|
453
|
+
|
|
454
|
+
_В разработке_
|
|
455
|
+
|
|
456
|
+
### Коробки
|
|
457
|
+
|
|
458
|
+
#### Получение списка коробок
|
|
459
|
+
|
|
460
|
+
_В разработке_
|
|
461
|
+
|
|
462
|
+
#### Получение отдельной коробки
|
|
463
|
+
|
|
464
|
+
_В разработке_
|
|
465
|
+
|
|
466
|
+
#### Создание новой коробки
|
|
467
|
+
|
|
468
|
+
_В разработке_
|
|
469
|
+
|
|
470
|
+
#### Редактирование коробки
|
|
471
|
+
|
|
472
|
+
_В разработке_
|
|
473
|
+
|
|
474
|
+
#### Частичное редактирование коробки
|
|
475
|
+
|
|
476
|
+
_В разработке_
|
|
477
|
+
|
|
478
|
+
#### Удаление коробки
|
|
479
|
+
|
|
480
|
+
_В разработке_
|
|
481
|
+
|
|
482
|
+
### Документы
|
|
483
|
+
|
|
484
|
+
#### Список актов приёма товаров
|
|
485
|
+
|
|
486
|
+
_В разработке_
|
|
487
|
+
|
|
488
|
+
#### Формирование акта приёма товаров
|
|
489
|
+
|
|
490
|
+
_В разработке_
|
|
491
|
+
|
|
492
|
+
#### Список актов передачи заказов
|
|
493
|
+
|
|
494
|
+
_В разработке_
|
|
495
|
+
|
|
496
|
+
#### Создание актов передачи заказов
|
|
497
|
+
|
|
498
|
+
_В разработке_
|
|
499
|
+
|
|
500
|
+
#### Генерация сборочной ведомости
|
|
501
|
+
|
|
502
|
+
_В разработке_
|
|
503
|
+
|
|
504
|
+
#### Формирование отчёта по движению товаров
|
|
505
|
+
|
|
506
|
+
_В разработке_
|
|
507
|
+
|
|
508
|
+
#### Список стикеров
|
|
509
|
+
|
|
510
|
+
_В разработке_
|
|
511
|
+
|
|
512
|
+
#### Формирование стикеров
|
|
513
|
+
|
|
514
|
+
_В разработке_
|
|
515
|
+
|
|
516
|
+
### Отчёты
|
|
517
|
+
|
|
518
|
+
[Документация к API отчётов](https://wiki.saferoute.ru/ru/api/endpoints/reports)
|
|
519
|
+
|
|
520
|
+
#### Список счетов
|
|
521
|
+
|
|
522
|
+
Пример использования.
|
|
523
|
+
|
|
524
|
+
```typescript
|
|
525
|
+
import api, { APIDataPaginatedResponse, GetBillsParams, Bill } from 'saferoute-api';
|
|
526
|
+
|
|
527
|
+
const token = '******************';
|
|
528
|
+
const params: GetBillsParams = { from: '2023-01-01', to: '2023-03-01' };
|
|
529
|
+
|
|
530
|
+
const res: APIDataPaginatedResponse<Bill> = await api.reports.getBills(token, params);
|
|
531
|
+
```
|
|
532
|
+
|
|
533
|
+
#### Список отчётов агента/исполнителя
|
|
534
|
+
|
|
535
|
+
Пример использования.
|
|
536
|
+
|
|
537
|
+
```typescript
|
|
538
|
+
import api, { APIDataPaginatedResponse, GetAgentReportsParams, AgentReport, REPORTS_TYPES } from 'saferoute-api';
|
|
539
|
+
|
|
540
|
+
const token = '******************';
|
|
541
|
+
const params: GetAgentReportsParams = { from: '2023-01-01', to: '2023-03-01', type: REPORTS_TYPES.DAILY };
|
|
542
|
+
|
|
543
|
+
const res: APIDataPaginatedResponse<AgentReport> = await api.reports.getAgentReports(token, params);
|
|
544
|
+
```
|
|
545
|
+
|
|
546
|
+
#### Подтверждение отчёта агента
|
|
547
|
+
|
|
548
|
+
Пример использования.
|
|
549
|
+
|
|
550
|
+
```typescript
|
|
551
|
+
import api, { APIBoolResponse } from 'saferoute-api';
|
|
552
|
+
|
|
553
|
+
const token = '******************';
|
|
554
|
+
const id = 15; // ID отчёта
|
|
555
|
+
|
|
556
|
+
const res: APIBoolResponse = await api.reports.confirmAgentReport(token, id);
|
|
557
|
+
```
|
|
558
|
+
|
|
559
|
+
#### Список аналитических отчётов
|
|
560
|
+
|
|
561
|
+
Пример использования.
|
|
562
|
+
|
|
563
|
+
```typescript
|
|
564
|
+
import api, { APIDataPaginatedResponse, GetAnalyticalReportsParams, AnalyticalReport, ANALYTICAL_REPORTS_TYPES } from 'saferoute-api';
|
|
565
|
+
|
|
566
|
+
const token = '******************';
|
|
567
|
+
const params: GetAnalyticalReportsParams = { from: '2023-01-01', to: '2023-03-01', type: ANALYTICAL_REPORTS_TYPES.CONSOLIDATED };
|
|
568
|
+
|
|
569
|
+
const res: APIDataPaginatedResponse<AnalyticalReport> = await api.reports.getAnalyticalReports(token, params);
|
|
570
|
+
```
|
|
571
|
+
|
|
572
|
+
#### Генерация аналитических отчётов
|
|
573
|
+
|
|
574
|
+
Пример использования.
|
|
575
|
+
|
|
576
|
+
```typescript
|
|
577
|
+
import api, { APIDataResponse, AnalyticalReportGenerateParams, ANALYTICAL_REPORTS_TYPES } from 'saferoute-api';
|
|
578
|
+
|
|
579
|
+
const token = '******************';
|
|
580
|
+
const params: AnalyticalReportGenerateParams = {
|
|
581
|
+
date: { from: '2023-01-01', to: '2023-03-01' },
|
|
582
|
+
type: ANALYTICAL_REPORTS_TYPES.BY_ORDERS,
|
|
583
|
+
};
|
|
584
|
+
|
|
585
|
+
const res: APIDataResponse<{ file: string }> = await api.reports.generateAnalyticalReport(token, params);
|
|
586
|
+
```
|
|
587
|
+
|
|
588
|
+
### Маркетплейсы
|
|
589
|
+
|
|
590
|
+
#### Список маркетплейсов
|
|
591
|
+
|
|
592
|
+
_В разработке_
|
|
593
|
+
|
|
594
|
+
#### Редактирование настроек маркетплейса
|
|
595
|
+
|
|
596
|
+
_В разработке_
|
|
597
|
+
|
|
598
|
+
### Другое
|
|
599
|
+
|
|
600
|
+
#### Список дополнительных услуг
|
|
601
|
+
|
|
602
|
+
_В разработке_
|
|
603
|
+
|
|
604
|
+
#### Информация об интервалах курьерской доставки
|
|
605
|
+
|
|
606
|
+
_В разработке_
|
|
607
|
+
|
|
608
|
+
#### Список компаний доставки (кроме возвратных)
|
|
609
|
+
|
|
610
|
+
_В разработке_
|
|
611
|
+
|
|
612
|
+
#### Список компаний возврата
|
|
613
|
+
|
|
614
|
+
_В разработке_
|
|
615
|
+
|
|
616
|
+
#### Список всех ПВЗ
|
|
617
|
+
|
|
618
|
+
_В разработке_
|
|
619
|
+
|
|
620
|
+
#### Список маркетплейсов со складами
|
|
621
|
+
|
|
622
|
+
_В разработке_
|
|
623
|
+
|
|
624
|
+
#### Список статусов заказа
|
|
625
|
+
|
|
626
|
+
_В разработке_
|
|
627
|
+
|
|
628
|
+
#### Трекинг заказа
|
|
629
|
+
|
|
630
|
+
_В разработке_
|
|
631
|
+
|
|
632
|
+
#### Данные по доступным вариантам отгрузки
|
|
633
|
+
|
|
634
|
+
_В разработке_
|
|
635
|
+
|
|
636
|
+
## Виджеты
|
|
637
|
+
|
|
638
|
+
Функции для помощи в интеграции виджетов.
|
|
639
|
+
|
|
640
|
+
### apiScript
|
|
641
|
+
|
|
642
|
+
Реализация API-скрипта виджетов для nodejs.
|
|
643
|
+
|
|
644
|
+
#### Пример подключения с использованием NestJS.
|
|
645
|
+
|
|
646
|
+
```typescript
|
|
647
|
+
import { Body, Controller, Get, Post, Query, HttpCode, HttpStatus, Ip } from '@nestjs/common';
|
|
648
|
+
|
|
649
|
+
import api, { WidgetsApiResponse } from 'saferoute-api';
|
|
650
|
+
|
|
651
|
+
const token = '******************';
|
|
652
|
+
const shopId = 777777;
|
|
653
|
+
|
|
654
|
+
@Controller('widgets')
|
|
655
|
+
export default class WidgetsController {
|
|
656
|
+
@Get('api')
|
|
657
|
+
getApiRequest(@Query() query, @Ip() ip: string): Promise<WidgetsApiResponse> {
|
|
658
|
+
return api.widgets.widgetApi(query.url, 'GET', query.data, { token, shopId }, ip);
|
|
659
|
+
}
|
|
660
|
+
|
|
661
|
+
@Post('api')
|
|
662
|
+
@HttpCode(HttpStatus.OK)
|
|
663
|
+
postApiRequest(@Body('url') url: string, @Body('data') data, @Ip() ip: string): Promise<WidgetsApiResponse> {
|
|
664
|
+
return api.widgets.widgetApi(url, 'POST', data, { token, shopId }, ip);
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
```
|
|
668
|
+
|
|
669
|
+
### widgets/update-order
|
|
670
|
+
|
|
671
|
+
Функция обновления данных заказа, созданного корзинным виджетом.
|
|
672
|
+
|
|
673
|
+
См. [изменение параметров заказа после его создания](https://wiki.saferoute.ru/ru/widgets/cart#%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D0%BE%D0%B2-%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B0-%D0%BF%D0%BE%D1%81%D0%BB%D0%B5-%D0%B5%D0%B3%D0%BE-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F).
|
|
674
|
+
|
|
675
|
+
#### Пример использования.
|
|
676
|
+
|
|
677
|
+
```typescript
|
|
678
|
+
import api, { WidgetsUpdateOrderResponse } from 'saferoute-api';
|
|
679
|
+
|
|
680
|
+
const token = '******************';
|
|
681
|
+
const shopId = 777777;
|
|
682
|
+
|
|
683
|
+
// ID заказа, полученный из виджета, либо возвращённый предыдущим вызовом api.widgets.updateOrder() в data.cabinetId
|
|
684
|
+
const orderId = '';
|
|
685
|
+
|
|
686
|
+
const res: Promise<WidgetsUpdateOrderResponse> = api.widgets.updateOrder(orderId, {
|
|
687
|
+
status: 'confirmed', // Код статуса заказа
|
|
688
|
+
paymentMethod: 'cod', // Код способа оплаты заказа
|
|
689
|
+
COD: true, // Наличие наложенного платежа (nppOption из документации к виджету)
|
|
690
|
+
cmsId: '656565', // ID заказа в CMS
|
|
691
|
+
payment: false, // Флаг совершения оплаты
|
|
692
|
+
}, { token, shopId });
|
|
693
|
+
```
|
|
694
|
+
|
|
695
|
+
#### Описание ответа `WidgetsUpdateOrderResponse`.
|
|
696
|
+
|
|
697
|
+
```typescript
|
|
698
|
+
type WidgetsUpdateOrderResponse =
|
|
699
|
+
// Заказ обновлён успешно
|
|
700
|
+
// Если заказ был отправлен в Личный кабинет, data.cabinetId будет содержать его ID в Личном кабинете
|
|
701
|
+
| {
|
|
702
|
+
status: WIDGETS_RESPONSE_STATUS_CODES.SUCCESS;
|
|
703
|
+
data: {
|
|
704
|
+
cabinetId: number | null;
|
|
705
|
+
};
|
|
706
|
+
}
|
|
707
|
+
// Ошибка
|
|
708
|
+
// data.code содержит код ошибки (см. документацию к виджету), data.message - текстовую расшифровку (опционально)
|
|
709
|
+
| {
|
|
710
|
+
status: WIDGETS_RESPONSE_STATUS_CODES.REQUEST_ERROR;
|
|
711
|
+
data: {
|
|
712
|
+
code: WIDGETS_UPDATE_ORDER_ERRORS;
|
|
713
|
+
message: string;
|
|
714
|
+
};
|
|
715
|
+
}
|
|
716
|
+
// Ошибка авторизации - передан некорректный токен
|
|
717
|
+
| {
|
|
718
|
+
status: WIDGETS_RESPONSE_STATUS_CODES.AUTH_ERROR;
|
|
719
|
+
}
|
|
720
|
+
// Ошибка сервера - обратитесь в техподдержку
|
|
721
|
+
| {
|
|
722
|
+
status: WIDGETS_RESPONSE_STATUS_CODES.SERVER_ERROR;
|
|
723
|
+
};
|
|
724
|
+
```
|
|
725
|
+
|
|
726
|
+
### widgets/confirm-order
|
|
727
|
+
|
|
728
|
+
Функция подтверждения оформления заказа на сайте при оплате через эквайринг корзинного виджета.
|
|
729
|
+
|
|
730
|
+
См. [встроенный эквайринг](https://wiki.saferoute.ru/ru/widgets/cart#%D0%B2%D1%81%D1%82%D1%80%D0%BE%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9-%D1%8D%D0%BA%D0%B2%D0%B0%D0%B9%D1%80%D0%B8%D0%BD%D0%B3).
|
|
731
|
+
|
|
732
|
+
#### Пример использования.
|
|
733
|
+
|
|
734
|
+
```typescript
|
|
735
|
+
import api, { WidgetsConfirmOrderResponse } from 'saferoute-api';
|
|
736
|
+
|
|
737
|
+
const token = '******************';
|
|
738
|
+
const shopId = 777777;
|
|
739
|
+
|
|
740
|
+
// ID сессии чекаута, полученный из виджета после оформления заказа
|
|
741
|
+
const checkoutSessId = '';
|
|
742
|
+
|
|
743
|
+
const res: Promise<WidgetsConfirmOrderResponse> = api.widgets.confirmOrder(checkoutSessId, { token, shopId });
|
|
744
|
+
```
|
|
745
|
+
|
|
746
|
+
#### Описание ответа `WidgetsConfirmOrderResponse`.
|
|
747
|
+
|
|
748
|
+
```typescript
|
|
749
|
+
type WidgetsConfirmOrderResponse =
|
|
750
|
+
// Заказ успешно подтверждён
|
|
751
|
+
| {
|
|
752
|
+
status: WIDGETS_RESPONSE_STATUS_CODES.SUCCESS;
|
|
753
|
+
}
|
|
754
|
+
// Ошибка, data.code содержит код ошибки (см. документацию к виджету)
|
|
755
|
+
| {
|
|
756
|
+
status: WIDGETS_RESPONSE_STATUS_CODES.REQUEST_ERROR;
|
|
757
|
+
data: {
|
|
758
|
+
code: WIDGETS_CONFIRM_ORDER_ERRORS;
|
|
759
|
+
};
|
|
760
|
+
}
|
|
761
|
+
// Ошибка авторизации - передан некорректный токен
|
|
762
|
+
| {
|
|
763
|
+
status: WIDGETS_RESPONSE_STATUS_CODES.AUTH_ERROR;
|
|
764
|
+
}
|
|
765
|
+
// Ошибка сервера - обратитесь в техподдержку
|
|
766
|
+
| {
|
|
767
|
+
status: WIDGETS_RESPONSE_STATUS_CODES.SERVER_ERROR;
|
|
768
|
+
};
|
|
769
|
+
```
|
|
770
|
+
|
|
771
|
+
## Константы
|
|
772
|
+
|
|
773
|
+
### Общие
|
|
774
|
+
|
|
775
|
+
* `ERROR_CODES` - Коды ошибок API
|
|
776
|
+
|
|
777
|
+
### Заборы
|
|
778
|
+
|
|
779
|
+
* `PICKUP_TYPES` - Типы заборов
|
|
780
|
+
* `PICKUP_STATUSES` - Статусы заборов
|
|
781
|
+
|
|
782
|
+
### Отчёты
|
|
783
|
+
|
|
784
|
+
* `BILLS_STATUSES` - Статусы счетов
|
|
785
|
+
* `REPORTS_TYPES` - Типы отчётов
|
|
786
|
+
* `ANALYTICAL_REPORTS_TYPES` - Типы аналитических отчётов
|
|
787
|
+
|
|
788
|
+
### Виджеты
|
|
789
|
+
|
|
790
|
+
* `WIDGETS_RESPONSE_STATUS_CODES` - Статусы ответа API виджета
|
|
791
|
+
* `WIDGETS_UPDATE_ORDER_ERRORS` - Коды ошибок [API обновления заказа](#widgetsupdate-order) из виджета
|
|
581
792
|
* `WIDGETS_CONFIRM_ORDER_ERRORS` - Коды ошибок [API подтверждения оформления заказа](#widgetsconfirm-order) в виджете (при оплате через эквайринг виджета)
|