О руководстве
В документе описаны методы IMSKLAD API. С их помощью вы сможете управлять товарами, заказами и документами. Документ адресован разработчикам.
Запросы к API выполняются по протоколу HTTP методами POST. Входные и выходные структуры данных передаются в теле запроса и ответа. API поддерживает формат взаимодействия JSON.
Правила работы с API
В данном разделе отражены основные моменты работы с API IMSKLAD
Подключение
Для подключения вам необходимо:
- Оставить заявку по адресу imsklad.ru и подписать договор, а также уточнить все детали.
- Получить API Key
- Провести интеграцию
Авторизация и схема запроса
Пример запроса:
POST / HTTP/1.1
Host: clients.imsklad.ru:7000
Content-Type: application/json
{
"key": "YOUR_API_KEY",
"type": "goods",
"action": "add_good",
"data": {
"id" : 13,
"name" : "Тестовый товар",
"description" : "",
"price" : 100,
"cost" : 100,
"weight" : 100,
"width" : 0,
"height" : 0,
"length" : 0,
"color" : 13,
"size" : ""
}
}
Пример ответа:
{
"result": "ok",
"id": 124323
}
При работе с API необходимо отправить HTTP POST запрос в JSON формате по адресу: http://client.imsklad.ru:7000
Поля запроса:
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
key | String | Да | API ключ |
type | String | Да | Тип запроса |
action | String | Да | Вызываемый метод |
data | Mixed | Да | Данные, для различных запросов имеют разный формат (Например: Object или Array) |
В ответ приходит JSON структура, соответствующая данному запросу.
Сообщения об ошибках
Пример ответа с ошибкой:
{
"error": "Incorrect data",
"code": 3
}
В случаи не правильного запроса или какой-то ошибки, сервер вернет JSON объект с кодом и описанием ошибки.
Поля ответа с ошибкой:
Параметр | Тип | Описание |
---|---|---|
error | String | Описанием ошибки |
code | Int | Код ошибки |
Коды ошибок:
Код | Описание |
---|---|
1 | Фатальная ошибка сервера |
2 | Объект не найден |
3 | Данные запроса неверны |
4 | Операция не выполнена |
Работа с товарами
Добавление товара
Пример запроса:
POST / HTTP/1.1
Host: clients.imsklad.ru:7000
Content-Type: application/json
{
"key": "YOUR_API_KEY",
"type": "goods",
"action": "add_good",
"data": {
"id" : 13,
"name" : "Тестовый товар",
"description" : "",
"price" : 100,
"cost" : 100,
"image": "http://api.imsklad.ru/img/1.png",
"weight" : 100,
"width" : 0,
"height" : 0,
"length" : 0,
"color" : 13,
"size" : ""
}
}
Пример ответа:
{
"result": "ok",
"id": 124323
}
Данный метод используется для добавления товара в складскую систему.
Тип запроса (type): goods
Метод (action): add_good
Поля данных запроса:
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
id | String | Да | ID товара в системе партнера |
name | String | Да | Название товара |
description | String | Нет | Описание товара |
price | Float | Да | Розничная цена товара |
cost | Float | Да | Стоимость товара |
image | String | Нет | Внешняя ссылка на картинку |
weight | Int | Нет | Вес товара в граммах |
width | Int | Нет | Ширина товара в мм |
height | Int | Нет | Высота товара в мм |
length | Int | Нет | Длинна товара в мм |
color | Int | Нет | ID цвета товара см. таблицу наже |
size | String | Нет | Размер товара (Например: XL, S, 10 см x 20 см) |
Поля ответа:
Параметр | Тип | Описание |
---|---|---|
result | String | Результат запроса (По умолчвнию: ok) |
id | Int | ID товара в складской системе |
Цвета товара:
ID | Название | RGB |
---|---|---|
1 | Белый | #ffffff |
4 | Черный | #000000 |
5 | Синий | #0000ff |
6 | Желтый | #ffff00 |
7 | Оранжевый | #ff8000 |
8 | Зеленый | #008000 |
9 | Красный | #ff0000 |
10 | Коричневый | #964B00 |
11 | Голубой | #3c9eff |
13 | Серый | #858585 |
14 | Прозрачный | trans |
15 | Серебряный | #C0C0C0 |
16 | Фиолетовый | #5A009D |
17 | Разноцветный | rgb |
18 | Бирюзовый | #30D5C8 |
19 | Золотой | #FFD700 |
20 | Бежевый | #F5F5DC |
21 | Маджента | #FF00FF |
22 | Бордовый | #800000 |
23 | Оливковый | #808000 |
24 | Фуксия | #FF00FF |
25 | Мятный | #00FF7F |
26 | Темно-зеленый | #006400 |
27 | Темно-синий | #00008B |
28 | Розовый | #FF69B4 |
29 | Ярко-розовый | #FF1493 |
30 | Светло-розовый | #FFB6C1 |
31 | Темно-коричневый | #800000 |
32 | Салатовый | #99FF99 |
33 | Коралловый | #F78181 |
34 | Бронзовый | #B8860B |
35 | Сиреневый | #DA70D6 |
36 | Хаки | #78866B |
37 | Горчичный | #F0A128 |
38 | Светло-серый | #D3D3D3 |
39 | Лайм | #C8FE2E |
40 | Светло-голубой | #A9E2F3 |
42 | Ярко-зеленый | #7FFF00 |
Обновление товара
Пример запроса:
POST / HTTP/1.1
Host: clients.imsklad.ru:7000
Content-Type: application/json
{
"key": "YOUR_API_KEY",
"type": "goods",
"action": "update_good",
"data": {
"id" : 13,
"name" : "Тестовый товар",
"description" : "",
"price" : 100,
"cost" : 100,
"weight" : 100,
"width" : 0,
"height" : 0,
"length" : 0,
"color" : 13,
"size" : ""
}
}
Пример ответа:
{
"result": "ok",
"id": 124323
}
Данный метод используется для обновления информации о товаре в складской системе.
Тип запроса (type): goods
Метод (action): update_good
Поля данных запроса:
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
id | String | Да | ID товара в системе партнера |
name | String | Да | Название товара |
description | String | Нет | Описание товара |
price | Float | Да | Розничная цена товара |
cost | Float | Да | Стоимость товара |
image | String | Нет | Внешняя ссылка на картинку |
weight | Int | Нет | Вес товара в граммах |
width | Int | Нет | Ширина товара в мм |
height | Int | Нет | Высота товара в мм |
length | Int | Нет | Длинна товара в мм |
color | Int | Нет | ID цвета товара см. добавление товара |
size | String | Нет | Размер товара (Например: XL, S, 10 см x 20 см) |
Поля ответа:
Параметр | Тип | Описание |
---|---|---|
result | String | Результат запроса (По умолчвнию: ok) |
id | Int | ID товара в складской системе |
Получение остатков на складе
Пример запроса:
POST / HTTP/1.1
Host: clients.imsklad.ru:7000
Content-Type: application/json
{
"key": "YOUR_API_KEY",
"type": "goods",
"action": "get_stock",
"data": {
"storage_id" : 1,
"ids" : [
124323,
342343
],
}
}
Пример ответа:
[
{
"id" : 124323,
"stock": 10,
"reserved": 2
},
{
"id" : 342343,
"stock": 25,
"reserved": 4
}
]
Данный метод позволяет получить остатки товаров на складе
Тип запроса (type): goods
Метод (action): get_stock
Поля данных запроса:
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
storage_id | String | Да | ID склада в складской системе (На данный момент равен 1) |
ids | Array of Int | Да | Массив ID товаров складской системы (Данный ID возвращается при добавлении товара в складскую систему) |
В ответ возвращается массив из JSON объектов
Структура JSON объекта в ответе:
Параметр | Тип | Описание |
---|---|---|
id | Int | ID товара в складской системе |
stock | Int | Количество товара на складе |
reserved | Int | Зарезервированно товара |
События склада
Обновление товара
Материал на оформлении
Работа с заказами
Добавление заказа
Пример запроса:
POST / HTTP/1.1
Host: clients.imsklad.ru:7000
Content-Type: application/json
{
"key": "YOUR_API_KEY",
"type": "order",
"action": "add_order",
"data": {
"id" : "AZ-1234",
"guid": "67060465-4b5e-11eb-80c6-00155dd99f08",
"storage_id" : 1,
"tags" : "to-assemble",
"name" : "Иванов Иван Иванович",
"email": "test@test.ru",
"phone" : "79990000000",
"phone2" : null,
"post_code" : "123321",
"address" : "Москва, ул. Минская д.18 к.2",
"address_lat" : 55.741688,
"address_lng": 37.483840,
"comment" : "Домофон 1232",
"owner_comment" : "Доставить к 15:00",
"discount" : 0,
"delivery" : 500,
"total_paid" : 1000,
"delivery_type" : 4,
"delivery_date_from" : 1565377798,
"delivery_date_to" : 1565397798,
"shipment_date" : 1565177798,
"courier": 42,
"is_canceled" : 0,
"tracked" : 0,
"track" : null,
"track_status" : null,
"track_update" : 0,
"city_id" : 8192,
"pickup_point" : "",
"courier_city_code" : "",
"address_obj" : {
"city" : "Москва",
"street": "ул. Минская",
"house": "д.18 к.2",
"room": ""
},
"goods" : [
{
"id" : 123123,
"quantity" : 4,
"price" : 1000
},
{
"id" : 342343,
"quantity" : 1,
"price" : 5000
}
]
}
}
Пример ответа:
{
"result": "ok",
"id": 124323
}
Данный метод используется для добавления заказа в складскую систему.
Тип запроса (type): order
Метод (action): add_order
Поля данных запроса:
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
id | String | Да | ID заказа в системе партнера |
guid | String | Нет | GUID заказа в системе партнера, будет возвращаться вместе с id при запросах от WMS |
storage_id | Int | Да | ID склада в складской системе (На данный момент равен 1) |
tags | String | Нет | Тэги к заказу, через запятую см. таблицу ниже |
name | String | Да | ФИО клиента |
String | Нет | Email клиента | |
phone | String | Нет | Телефон клиента |
phone2 | String | Нет | Дополнительный телефон клиента |
post_code | String | Нет | Почтовый индекс |
address | String | Нет | Адрес доставки |
address_lat | Double | Нет | Координаты адреса доставки (Широта:Latitude) |
address_lng | Double | Нет | Координаты адреса доставки (Долгота:Longitude) |
comment | String | Нет | Комментарий клиента к заказу |
owner_comment | String | Нет | Комментарий партнера к заказу |
discount | Decimal | Да | Скидка |
delivery | Decimal | Да | Стоимость доставки |
total_paid | Decimal | Да | Сумма оплаченная клиентом |
delivery_type | Int | Нет | ID типа доставки см. таблицу ниже |
delivery_date_from | Int | Нет | Дата доставки, c (Unixtimestamp) |
delivery_date_to | Int | Нет | Дата доставки, по (Unixtimestamp) |
shipment_date | Int | Нет | Дата отгрузки, c (Unixtimestamp) |
courier | Int | Нет | ID курьера см. таблицу ниже |
is_canceled | Int | Нет | Отменен ли заказ (0 - Нет, 1 - Да) |
track_status | String | Нет | Статус отслеживания (На данный момент не используется) |
tracked | Int | Нет | Отслеживать ли заказ (На данный момент не используется) |
track | String | Нет | Трэк курьерской службы |
track_update | Int | Нет | Дата обновления статусв отслеживания, c (Unixtimestamp) (На данный момент не используется) |
city_id | Int | Нет | ID города доставки см. примечание ниже |
pickup_point | String | Нет | Код пункта самовывоза курьерской службы |
courier_city_code | String | Нет | Код города в курьерской службе |
address_obj | Object | Нет | Адрес доставки по частям, необходим для некоторых курьерских служб |
address_obj.city | String | Нет | Город |
address_obj.street | String | Нет | Улица |
address_obj.house | String | Нет | Дом |
address_obj.room | String | Нет | Квартира |
goods | Array | Да | Массив товаров в заказе |
goods.id | Int | Да | ID товара в системе партнера |
goods.quantity | Int | Да | Количество |
goods.price | Decimal | Да | Цена товара в заказе |
Поля ответа:
Параметр | Тип | Описание |
---|---|---|
result | String | Результат запроса (По умолчвнию: ok) |
id | Int | ID заказа в складской системе |
Типы доставки и курьеры:
Тип доставки | ID типа доставки | ID курьера |
---|---|---|
Почтой России | 4 | 7 (через Грастин), 42 (Почта России) |
СДЭК | 16 | 7 |
Грастин | 22 | 6 |
BoxBerry | 62 | 32 |
Пешкарики | 113 | 40 |
Доступные тэги к заказу:
Тэг | Название |
---|---|
call | Позвонить |
nosms | Без СМС |
problem | Проблема |
Обновление заказа
Пример запроса:
POST / HTTP/1.1
Host: clients.imsklad.ru:7000
Content-Type: application/json
{
"key": "YOUR_API_KEY",
"type": "order",
"action": "update_order",
"data": {
"id" : "AZ-1234",
"tags" : "to-assemble",
"name" : "Иванов Иван Иванович",
"email": "test@test.ru",
"phone" : "79990000000",
"phone2" : null,
"post_code" : "123321",
"address" : "Москва, ул. Минская д.18 к.2",
"address_lat" : 55.741688,
"address_lng": 37.483840,
"comment" : "Домофон 1232",
"owner_comment" : "Доставить к 15:00",
"discount" : 0,
"delivery" : 500,
"total_paid" : 1000,
"delivery_type" : 4,
"delivery_date_from" : 1565377798,
"delivery_date_to" : 1565397798,
"shipment_date" : 1565177798,
"courier": 42,
"is_canceled" : 0,
"tracked" : 0,
"track" : null,
"track_status" : null,
"track_update" : 0,
"city_id" : 8192,
"pickup_point" : "",
"courier_city_code" : "",
"address_obj" : {
"city" : "Москва",
"street": "ул. Минская",
"house": "д.18 к.2",
"room": ""
},
"goods" : [
{
"id" : 123123,
"quantity" : 4,
"price" : 1000
},
{
"id" : 342343,
"quantity" : 1,
"price" : 5000
}
]
}
}
Пример ответа:
{
"result": "warning",
"warning": "The order in the assembly process(goods not saved)",
"id": 124323
}
Данный метод используется для изменения заказа в складской системе.
Тип запроса (type): order
Метод (action): update_order
Поля данных запроса:
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
id | String | Да | ID заказа в системе партнера |
tags | String | Нет | Тэги к заказу, через запятую см. добавление заказа |
name | String | Да | ФИО клиента |
String | Нет | Email клиента | |
phone | String | Нет | Телефон клиента |
phone2 | String | Нет | Дополнительный телефон клиента |
post_code | String | Нет | Почтовый индекс |
address | String | Нет | Адрес доставки |
address_lat | Double | Нет | Координаты адреса доставки (Широта:Latitude) |
address_lng | Double | Нет | Координаты адреса доставки (Долгота:Longitude) |
comment | String | Нет | Комментарий клиента к заказу |
owner_comment | String | Нет | Комментарий партнера к заказу |
discount | Decimal | Да | Скидка |
delivery | Decimal | Да | Стоимость доставки |
total_paid | Decimal | Да | Сумма оплаченная клиентом |
delivery_type | Int | Нет | ID типа доставки см. добавление заказа |
delivery_date_from | Int | Нет | Дата доставки, c (Unixtimestamp) |
delivery_date_to | Int | Нет | Дата доставки, по (Unixtimestamp) |
shipment_date | Int | Нет | Дата отгрузки, c (Unixtimestamp) |
courier | Int | Нет | ID курьера см. добавление заказа |
is_canceled | Int | Нет | Отменен ли заказ (0 - Нет, 1 - Да) |
track_status | String | Нет | Статус отслеживания (На данный момент не используется) |
tracked | Int | Нет | Отслеживать ли заказ (На данный момент не используется) |
track | String | Нет | Трэк курьерской службы |
track_update | Int | Нет | Дата обновления статусв отслеживания, c (Unixtimestamp) (На данный момент не используется) |
city_id | Int | Нет | ID города доставки см. примечание ниже |
pickup_point | String | Нет | Код пункта самовывоза курьерской службы |
courier_city_code | String | Нет | Код города в курьерской службе |
address_obj | Object | Нет | Адрес доставки по частям, необходим для некоторых курьерских служб |
address_obj.city | String | Нет | Город |
address_obj.street | String | Нет | Улица |
address_obj.house | String | Нет | Дом |
address_obj.room | String | Нет | Квартира |
goods | Array | Да | Массив товаров в заказе |
goods.id | Int | Да | ID товара в системе партнера |
goods.quantity | Int | Да | Количество |
goods.price | Decimal | Да | Цена товара в заказе |
Поля ответа:
Параметр | Тип | Описание |
---|---|---|
result | String | Результат запроса (ok - в случаи успешеного обновления, warning - в случаи частичного обновления см предупреждение ниже) |
warning | String | Предупреждение (указывается только при result = "warning") |
id | Int | ID заказа в складской системе |
Работа с предзаказами поставщику
Добавление предзаказа поставщику
Пример запроса:
POST / HTTP/1.1
Host: clients.imsklad.ru:7000
Content-Type: application/json
{
"key": "YOUR_API_KEY",
"type": "preorder",
"action": "add_preorder",
"data": {
"id" : "4423",
"storage_id" : 1,
"code" : "TT-23432",
"type" : 0,
"owner_date" : 1565397798,
"need_pickup" : 1,
"pickup_address" : "Москва, ул Минская, дом 18 корп 2",
"pickup_contacts" : "+7(925) 111111 Глушко Нина, ООО Инфомобиль, с 9 до 18",
"supplier_name": "SomeGoodCompany",
"goods" : [
{
"id" : 123123,
"quantity" : 4,
"price" : 1000
},
{
"id" : 342343,
"quantity" : 1,
"price" : 5000
}
]
}
}
Пример ответа:
{
"result": "ok",
"id": 124323
}
Данный метод используется для добавления документа предзаказа поставщику в складскую систему.
Тип документа: Если установлен в 0 (приход) – это означает что склад ожидает получить товары от поставщика, если установлен в 1 (расход) – Это означает что склад должен собрать указанные товары и вернуть поставщику.
Если требуется выезд курьера к поставщику, выставляется параметр need_pickup=1, и заполняются параметры pickup_address и pickup_contacts.
Тип запроса (type): preorder
Метод (action): add_preorder
Поля данных запроса:
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
id | String | Да | ID документа в системе партнера |
storage_id | Int | Да | ID склада в складской системе (На данный момент равен 1) |
code | String | Нет | Код документа |
type | Int | Да | Тип документа (0 - Приход, 1 - Расход) |
owner_date | Int | Нет | Дата документа (Unixtimestamp) |
need_pickup | Int | Нет | Требуется забор от поставщика (0 - не требуется, 1 - требуется) |
pickup_address | String | Нет | Адрес поставщика |
pickup_contacts | String | Нет | Контакты поставщика, ФИО Менеджера, Название организации, время работы, комментарий |
supplier_name | String | Нет | Название поставщика |
goods | Array | Да | Массив товаров в заказе |
goods.id | Int | Да | ID товара в системе партнера |
goods.quantity | Int | Да | Количество |
goods.price | Decimal | Да | Цена товара в заказе |
Поля ответа:
Параметр | Тип | Описание |
---|---|---|
result | String | Результат запроса (По умолчвнию: ok) |
id | Int | ID документа в складской системе |
Обновление предзаказа поставщику
Пример запроса:
POST / HTTP/1.1
Host: clients.imsklad.ru:7000
Content-Type: application/json
{
"key": "YOUR_API_KEY",
"type": "preorder",
"action": "update_preorder",
"data": {
"id" : "4423",
"code" : "TT-23432",
"type" : 0,
"date" : 1565397798,
"need_pickup" : 1,
"pickup_address" : "Москва, ул Минская, дом 18 корп 2",
"pickup_contacts" : "+7(925) 111111 Глушко Нина, ООО Инфомобиль, с 9 до 18",
"supplier_name": "SomeGoodCompany",
"goods" : [
{
"id" : 123123,
"quantity" : 4,
"price" : 1000
},
{
"id" : 342343,
"quantity" : 1,
"price" : 5000
}
]
}
}
Пример ответа:
{
"result": "ok",
"id": 124323
}
Данный метод используется для обновления документа предзаказа поставщику в складской системе.
Тип документа: Если установлен в 0 (приход) – это означает что склад ожидает получить товары от поставщика, если установлен в 1 (расход) – Это означает что склад должен собрать указанные товары и вернуть поставщику.
Если требуется выезд курьера к поставщику, выставляется параметр need_pickup=1, и заполняются параметры pickup_address и pickup_contacts.
Тип запроса (type): preorder
Метод (action): update_preorder
Поля данных запроса:
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
id | String | Да | ID документа в системе партнера |
code | String | Нет | Код документа |
type | Int | Да | Тип документа (0 - Приход, 1 - Расход) |
date | Int | Нет | Дата документа (Unixtimestamp) |
need_pickup | Int | Нет | Требуется забор от поставщика (0 - не требуется, 1 - требуется) |
pickup_address | String | Нет | Адрес поставщика |
pickup_contacts | String | Нет | Контакты поставщика, ФИО Менеджера, Название организации, время работы, комментарий |
supplier_name | String | Нет | Название поставщика |
goods | Array | Да | Массив товаров в заказе |
goods.id | Int | Да | ID товара в системе партнера |
goods.quantity | Int | Да | Количество |
goods.price | Decimal | Да | Цена товара в заказе |
Поля ответа:
Параметр | Тип | Описание |
---|---|---|
result | String | Результат запроса (По умолчвнию: ok) |
id | Int | ID документа в складской системе |
Работа с документами
Добавление документа
Пример запроса:
POST / HTTP/1.1
Host: clients.imsklad.ru:7000
Content-Type: application/json
{
"key": "YOUR_API_KEY",
"type": "doc",
"action": "add_doc",
"data": {
"id" : "4423",
"storage_id" : 1,
"code" : "TT-23432",
"type" : 0,
"date" : 1565397798,
"goods" : [
{
"id" : 123123,
"quantity" : 4,
"price" : 1000
},
{
"id" : 342343,
"quantity" : 1,
"price" : 5000
}
]
}
}
Пример ответа:
{
"result": "ok",
"id": 124323
}
Данный метод используется для добавления документа в складскую систему.
Тип запроса (type): doc
Метод (action): add_doc
Поля данных запроса:
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
id | String | Да | ID документа в системе партнера |
storage_id | Int | Да | ID склада в складской системе (На данный момент равен 1) |
code | String | Нет | Код документа |
type | Int | Да | Тип документа (0 - Приход, 1 - Расход) |
date | Int | Нет | Дата документа (Unixtimestamp) |
goods | Array | Да | Массив товаров в заказе |
goods.id | Int | Да | ID товара в системе партнера |
goods.quantity | Int | Да | Количество |
goods.price | Decimal | Да | Цена товара в заказе |
Поля ответа:
Параметр | Тип | Описание |
---|---|---|
result | String | Результат запроса (По умолчвнию: ok) |
id | Int | ID документа в складской системе |
Обновление документа
Пример запроса:
POST / HTTP/1.1
Host: clients.imsklad.ru:7000
Content-Type: application/json
{
"key": "YOUR_API_KEY",
"type": "doc",
"action": "update_doc",
"data": {
"id" : "4423",
"code" : "TT-23432",
"type" : 0,
"date" : 1565397798,
"goods" : [
{
"id" : 123123,
"quantity" : 4,
"price" : 1000
},
{
"id" : 342343,
"quantity" : 1,
"price" : 5000
}
]
}
}
Пример ответа:
{
"result": "ok",
"id": 124323
}
Данный метод используется для обновления документа в складской системе.
Тип запроса (type): doc
Метод (action): update_doc
Поля данных запроса:
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
id | String | Да | ID документа в системе партнера |
code | String | Нет | Код документа |
type | Int | Да | Тип документа (0 - Приход, 1 - Расход) |
date | Int | Нет | Дата документа (Unixtimestamp) |
goods | Array | Да | Массив товаров в заказе |
goods.id | Int | Да | ID товара в системе партнера |
goods.quantity | Int | Да | Количество |
goods.price | Decimal | Да | Цена товара в заказе |
Поля ответа:
Параметр | Тип | Описание |
---|---|---|
result | String | Результат запроса (По умолчвнию: ok) |
id | Int | ID документа в складской системе |
Работа с биллингом
Получение стоимости операций и баланса
Пример запроса:
POST / HTTP/1.1
Host: clients.imsklad.ru:7000
Content-Type: application/json
{
"key": "YOUR_API_KEY",
"type": "billing",
"action": "get_billing",
"data": {
"storage_id" : 1,
"from" : 1565397798,
"to" : 1565397798
}
}
Пример ответа:
{
"current_balance": 11067,
"change_of_balance": -150,
"billing": [
{
"id": 32953,
"order_id": 153383,
"foreign_order_id": "359407",
"doc_request_id": null,
"date": 1590775160,
"amount": -50,
"comment": ""
},
{
"id": 32954,
"order_id": null,
"foreign_order_id": null,
"doc_request_id": 1120,
"date": 1590775195,
"amount": -100,
"comment": "Забор товара"
}]
}
Данный метод используется для получения операций по изменению баланса счета за определенный период, а также значения текущего баланса.
Тип запроса (type): billing
Метод (action): get_billing
Поля данных запроса:
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
storage_id | Int | Да | ID документа в системе партнера |
from | Int | Да | Дата начала периода (Unixtimestamp) |
to | Int | Да | Дата конца периода (Unixtimestamp) |
Поля ответа:
Параметр | Тип | Описание |
---|---|---|
current_balance | Int | Текущий баланс партнера |
change_of_balance | Int | Изменение баланса за выбранный перод |
from | Int | Дата начала периода (Unixtimestamp) |
to | Int | Дата конца периода (Unixtimestamp) |
billing | Array | Массив операций за выбранный период |
billing.id | Int | ID операции |
billing.order_id | Int | ID заказа в складской системе |
billing.foreign_order_id | String | ID заказа в системе партнера |
billing.doc_request_id | Int | ID заявки в складской системе |
billing.type | Int | Тип операции |
billing.date | Int | Дата операции (Unixtimestamp) |
billing.amount | Array | Стоимость операции |
billing.comment | Int | Комментраий к операции |
Типы операций:
ID | Описание |
---|---|
0 | Сборка заказа |
1 | Пополнение баланса |
2 | Доставка |
9 | Прочее |
Обработка вызовов складской системы
Обработка вызовов складской системы к клиенту (события на складе). Когда в на скалде происходит то или иное изменение, событие, изменение статуса, то складская система уведомляет партнера о таком событии.
Авторизация
Пример запроса:
POST / HTTP/1.1
Host: YOUR_ENDPOINT_HOST_URL
Content-Type: application/json
{
"key": "YOUR_ENDPOINT_KEY",
"type": "good",
"action": "get_good",
"data": {
"id" : 124323
}
}
Пример ответа:
{
"id": 124323,
"name" : "Тестовый товар",
"description" : "Очень тестовый товар",
"price" : 100,
"cost" : 100,
"weight" : 100,
"width" : 10,
"height" : 20,
"length" : 30,
"color" : 13,
"size" : "Большой"
}
Складская система уведомляет клиента об изменениях в документах и заказах, запрашивает данные для справочников путем отправки HTTP POST запрос в JSON формате по адресу указанному в настройках клиента. Например http://your_shop.ru/endpoint/imsklad.php
Поля запроса:
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
key | String | Да | ENDPOINT ключ |
type | String | Да | Тип запроса |
action | String | Да | Вызываемый метод |
data | Mixed | Да | Данные, для различных запросов имеют разный формат (Например: Object или Array) |
В ответ должна приходить JSON структура, соответствующая данному запросу.
Типы и методы запросов:
Некоторые типы запросов очень желательно реализовать, другие менее важны, и остаются на усмотрения разработчика. В таблице отмечено какие методы обязательно нужно поддержать.
Тип | Метод | Обязательный | Описание |
---|---|---|---|
order | update_order | Да | Обновление заказа, передается объект заказа |
order | set_status | Да | Передается текущий статус заказа |
order | set_pay | Нет | Сообщается о о получении денег за заказ |
order | send_to_cdek | Нет | Передает идентификаторы заказов, которые надо выгрузить в СДЭК (Если выгрузка заказа происходит на стороне клиента) |
order | send_to_boxberry | Нет | Передает идентификаторы заказов, которые надо выгрузить в BoxBerry (Если выгрузка заказа происходит на стороне клиента) |
order | send_act_to_boxberry | Нет | Передает идентификаторы заказов, которые надо включить в акт BoxBerry для отгрузки (Если выгрузка заказа происходит на стороне клиента) |
doc | add_doc | Нет | Выгрузка документа поступления или списания, сообщает что произошло физическое поступление или списание товара на складе |
doc | update_doc | Нет | Обновление ранее выгруженного документа |
doc | set_status | Нет | Обновление статуса документа (Новый, Проведен, Отменен) |
good | get_good | Да | Получение информации по товару |
good | get_good_suppliers | Нет | Получения списка поставщиков для данного товара |
supplier | get_supplier | Нет | Получение информации о поставщике |
supplier | get_suppliers | Нет | Получение списка поставщиков |
Callback Обновление заказа
Пример запроса:
POST / HTTP/1.1
Host: YOUR_ENDPOINT_HOST_URL
Content-Type: application/json
{
"key": "YOUR_ENDPOINT_KEY",
"type": "order",
"action": "update_order",
"data": {
"id" : "AZ-1234",
"guid": null,
"tags" : "to-assemble",
"name" : "Иванов Иван Иванович",
"email": "test@test.ru",
"phone" : "79990000000",
"phone2" : null,
"post_code" : "123321",
"address" : "Москва, ул. Минская д.18 к.2",
"address_lat" : 55.741688,
"address_lng": 37.483840,
"comment" : "Домофон 1232",
"owner_comment" : "Доставить к 15:00",
"discount" : 0,
"delivery" : 500,
"total_paid" : 1000,
"delivery_type_id" : 4,
"delivery_date_from" : 1565377798,
"delivery_date_to" : 1565397798,
"shipment_date" : 1565177798,
"delivery_courier_id": 42,
"is_canceled" : 0,
"tracked" : 0,
"track" : null,
"track_status" : null,
"track_update" : 0,
"city_id" : 8192,
"pickup_point" : "",
"courier_city_code" : "",
"address_obj" : {
"city" : "Москва",
"street": "ул. Минская",
"house": "д.18 к.2",
"room": ""
},
"goods" : [
{
"id" : 123123,
"quantity" : 4,
"price" : 1000
},
{
"id" : 342343,
"quantity" : 1,
"price" : 5000
}
]
}
}
Пример ответа:
{
"result": "ok",
"id": "AZ-1234"
}
Данный метод используется для изменения заказа в складской системе.
Тип запроса (type): order
Метод (action): update_order
Поля данных запроса:
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
id | String | Да | ID заказа в системе партнера |
guid | String | Да | GUID заказа в системе партнера |
tags | String | Нет | Тэги к заказу, через запятую см. добавление заказа |
name | String | Да | ФИО клиента |
String | Нет | Email клиента | |
phone | String | Нет | Телефон клиента |
phone2 | String | Нет | Дополнительный телефон клиента |
post_code | String | Нет | Почтовый индекс |
address | String | Нет | Адрес доставки |
address_lat | Double | Нет | Координаты адреса доставки (Широта:Latitude) |
address_lng | Double | Нет | Координаты адреса доставки (Долгота:Longitude) |
comment | String | Нет | Комментарий клиента к заказу |
owner_comment | String | Нет | Комментарий партнера к заказу |
discount | Decimal | Да | Скидка |
delivery | Decimal | Да | Стоимость доставки |
total_paid | Decimal | Да | Сумма оплаченная клиентом |
delivery_type_id | Int | Нет | ID типа доставки см. добавление заказа |
delivery_date_from | Int | Нет | Дата доставки, c (Unixtimestamp) |
delivery_date_to | Int | Нет | Дата доставки, по (Unixtimestamp) |
shipment_date | Int | Нет | Дата отгрузки, c (Unixtimestamp) |
delivery_courier_id | Int | Нет | ID курьера см. добавление заказа |
is_canceled | Int | Нет | Отменен ли заказ (0 - Нет, 1 - Да) |
track_status | String | Нет | Статус отслеживания (На данный момент не используется) |
tracked | Int | Нет | Отслеживать ли заказ (На данный момент не используется) |
track | String | Нет | Трэк курьерской службы |
track_update | Int | Нет | Дата обновления статусв отслеживания, c (Unixtimestamp) (На данный момент не используется) |
city_id | Int | Нет | ID города доставки см. примечание ниже |
pickup_point | String | Нет | Код пункта самовывоза курьерской службы |
courier_city_code | String | Нет | Код города в курьерской службе |
address_obj | Object | Нет | Адрес доставки по частям, необходим для некоторых курьерских служб |
address_obj.city | String | Нет | Город |
address_obj.street | String | Нет | Улица |
address_obj.house | String | Нет | Дом |
address_obj.room | String | Нет | Квартира |
goods | Array | Да | Массив товаров в заказе |
goods.id | Int | Да | ID товара в системе партнера |
goods.quantity | Int | Да | Количество |
goods.price | Decimal | Да | Цена товара в заказе |
Поля ответа:
Параметр | Тип | Описание |
---|---|---|
result | String | Результат запроса (ok - в случае успешеного обновления) |
id | String | ID заказа в системе партнера |
Callback Обновление статуса заказа
Пример запроса:
POST / HTTP/1.1
Host: YOUR_ENDPOINT_HOST_URL
Content-Type: application/json
{
"key": "YOUR_ENDPOINT_KEY",
"type": "order",
"action": "set_status",
"data": {
"id" : "AZ-1234",
"old_status" : 0,
"new_status" : 1,
"system_id" : 11232,
"guid": "67060465-4b5e-11eb-80c6-00155dd99f08",
}
}
Пример ответа:
{
"result": "ok"
}
Данный метод используется для обновления статуса заказа в CRM клиента.
Тип запроса (type): order
Метод (action): set_status
Поля данных запроса:
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
id | String | Да | ID заказа в системе партнера |
old_status | Int | Да | Старый статус заказа См следущую таблицу |
new_status | Int | Да | Текущиа статус заказа См следущую таблицу |
system_id | Int | Да | Id заказа в IMSKLAD |
guid | String | Да | GUID заказа в системе партнера |
Значения статусов заказа:
Значение | Обозначение |
---|---|
0 | Новый заказ, собрать |
1 | Передан на комплектацию |
2 | Комплектуется |
3 | Скомплектован, готов передаваться на упаковку |
4 | Передан на упаковку |
5 | Упаковывается |
6 | Упакован |
7 | Передается на отгрузку |
8 | Готов к отгрузке |
9 | Отгружен в курьерскую службу, покинул склад |
10 | Отменен |
11 | Вручен клиенту |
Callback Создание документа
Пример запроса:
POST / HTTP/1.1
Host: YOUR_ENDPOINT_HOST_URL
Content-Type: application/json
{
"key": "YOUR_ENDPOINT_KEY",
"type": "order",
"action": "set_status",
"data": {
}
}
Пример ответа:
{
"result": "ok"
}
Данный вызов вызывается при создании документа
Тип запроса (type): doc
Метод (action): add_doc
Поля данных запроса:
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
id | String | Да | ID заказа в системе партнера |
old_status | Int | Да | Старый статус заказа См следущую таблицу |
new_status | Int | Да | Текущиа статус заказа См следущую таблицу |
system_id | Int | Да | Id заказа в IMSKLAD |
Значения статусов заказа:
Значение | Обозначение |
---|---|
0 | Новый заказ, собрать |
1 | Передан на комплектацию |
2 | Комплектуется |
3 | Скомплектован, готов передаваться на упаковку |
4 | Передан на упаковку |
5 | Упаковывается |
6 | Упакован |
7 | Передается на отгрузку |
8 | Готов к отгрузке |
9 | Отгружен в курьерскую службу, покинул склад |
10 | Отменен |
11 | Вручен клиенту |
Callback Обновление трэков заказов
Пример запроса:
POST / HTTP/1.1
Host: YOUR_ENDPOINT_HOST_URL
Content-Type: application/json
{
"key": "YOUR_ENDPOINT_KEY",
"type": "order",
"action": "update_tracks",
"data": [
{
"id" : "AZ-1234",
"guid": "67060465-4b5e-11eb-80c6-00155dd99f08",
"track": "345345345234"
},
{
"id" : "AZ-2322",
"guid": null,
"track": "45345344544"
},
{
"id" : "AZ-2324",
"guid": "9ec81f66-4ba7-11eb-80c6-00155dd99f08",
"err": "Incorrect pvz"
},
]
}
Пример ответа:
{
"result": "ok"
}
Данный метод используется для обновления трэков заказа в CRM клиента.
Тип запроса (type): order
Метод (action): update_tracks
Поля данных запроса:
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
id | String | Да | ID заказа в системе партнера |
track | String | Нет | Трэк заказа в курьерской службе |
guid | String | Да | GUID заказа в системе партнера |
err | String | Нет | Ошибка при выгрузке заказа в курьерскую службу |