NAV Navbar

О руководстве

В документе описаны методы IMSKLAD API. С их помощью вы сможете управлять товарами, заказами и документами. Документ адресован разработчикам.

Запросы к API выполняются по протоколу HTTP методами POST. Входные и выходные структуры данных передаются в теле запроса и ответа. API поддерживает формат взаимодействия JSON.

Правила работы с API

В данном разделе отражены основные моменты работы с API IMSKLAD

Подключение

Для подключения вам необходимо:

  1. Оставить заявку по адресу imsklad.ru и подписать договор, а также уточнить все детали.
  2. Получить API Key
  3. Провести интеграцию

Авторизация и схема запроса

Пример запроса:

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 Да ФИО клиента
email 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 Да ФИО клиента
email 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 Да ФИО клиента
email 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 Нет Ошибка при выгрузке заказа в курьерскую службу