мета-данные страницы

Api

Api Личного кабинета версии 1.4


Оглавление

Описание API
Формат команд
Коды ошибок API
Авторизация
Пример работы с обсуждениями
Работа с выездами
Работа со статистикой ЛК

Команды API

Команды API

Версия API. api_version
Авторизация. ModernLogin
Проверка валидности сессии. ValidSessionID
Регистрация. ModernRegistration
Восстановление пароля. ModernRememberPwd
Выход из Личного кабинета. Logout
Информация по клиенту. ContrInfo
Сохранение информации по клиенту. SaveInfo
Сохранение пароля. SavePass
Подтверждение номера телефона. ConfirmCellPhone
Остаток бонусов клиента. Bonus
Остаток депозита клиента. Deposit
Список заказов клиента. Orders
История заказов клиента. OrdersHistory
Полная информация по заказу. FullOrderInfo
Краткая информация по услугам заказа. Services
Полная информация по услугам заказа. FullService
Квитанция. ReceiptOnline
Квитанция. Receipt
Подписанная квитанция. SingReceipt
Фотографии заказа. OrderImages
Фотографии по заказу. OrderImagesModern
Оплата депозитом. DepositPay
Оплата бонусом. BonusPay
Статистика входа в ЛК. Entry
Статистика заходов в ЛК. EntranceSite
Статистика открытия заказа в ЛК. OpenOrders
Статистика открытия истории в ЛК. OpenHistory
Дополнительные реквизиты. AddonTypes
Комплекты доп. реквизитов. AddonPacks
Прайс-лист. PriceList
Группы прайс-листа. PriceTree
Склады. ReceptionCenters
Регионы (районы). Regions
Список выездов. Trips
Свободное время начала выезда на дату. TripsHr
Свободное время окончания выезда на дату. TripsHrTo
Список выездных машин. Cars
Создание выезда. TripOrder
Промо-код. PromoCode
Используемый промо-код. PromoCodeUse
Активация промо-кода. PromoCodeActivate
Список изменившихся ID заказов. LastChangeOrder
Подтверждение заказа. OrderConfirm
Подтверждение заказа. OrderAppConfirm
Отмена подтверждения заказа. CancelOrderApp
Статус заказа. GetStatusOrder
Отмена заказа. CancelOrder
Темы обсуждений клиента. TitleMessages
Список сообщений темы. MessageList
Количество новых сообщений в теме. CountNewMessages
Отправка сообщения темы. SendMessage
Список акций. GetActionList
Список сертификатов. Certificate
Список строк сертификатов. CertificateLines
Список активных сертификатов. ActiveCertificates
Создание оплаты сертификата. CreatePayCertificate
Рекламные объявления. Advertisment
Картинки рекламных объявлений. AdvertismentImg

Список команд


Описание API

Api позволяет реализовать Личный кабинет клиента, используя клиентскую сессию(авторизованного пользователя) (SessionID), получая информацию только по этому клиенту.
На основе полученной сессии, команды возвращают информацию Только по одному текущем клиенту.

Api личного кабинета Не позволяет реализовать синхронизацию всех заказов/клиентов и др. со сторонними сервисами. Т.к. это может привести к избыточной нагрузке и большому количеству запросов.

Для реализации таких целей, правильно использовать Коммерческое API.
В нем есть поддержка загрузки Изменившихся заказов за период (с выводом подробной информации по заказу), изменившихся клиентов, создание и изменение заказов.


Формат команд

Все команды выполняются методом GET. Ответ на запрос приходит в json формате.

Все значения параметров команд должны быть преобразованы, через js encodeURIComponent или подобные функции.

Пример:

//www.himinfo.ru/cl/{Path}/api/?command={"key":"value"}&SessionID=...&callback=...

где:

  • {Path} - имя для Химчистки. Полный путь предоставляется отдельно, после настройки API;
  • command - название выполняемой команды;
  • {«key»: «value»} - параметры команды (значение=ключ). Представляет собой текстовую аналогию записи объекта на JS;
  • SessionID - в зависимости от команды обязательный параметр. Указывает ID сессии для выполнения команды. Выдается при выполнении команды авторизации;
  • callback - необязательный параметр. Указывает на имя процедуры для jsonP, которое вернется в ответе с json строкой.

В ответе на запрос могут присутствовать поля, не описанные в настоящей документации. Приложению следует их игнорировать.

Пример запросов jQuery.

Функция encodeURIComponent выполняется для всех значений параметров команды:

'//www.himinfo.ru/cl/{Path}/api/?command=' + encodeURIComponent('{"param1": "' + param1.val() + '", "param2": "' + param2.val() + '", "param3": "' + param3.val()+ '"}'),

1) в данном случае метод $.ajax сам выполнит encodeURL:

$.ajax({
  'url': '//www.himinfo.ru/cl/{Path}/api/',
  'data': {'command': '{"param1": "' + param1.val() + '", "param2": "' + param2.val() + '", "param3": "' + param3.val() + '"}'},
  'dataType': 'jsonp',
  'success': function(response, ioArgs){},
  'error': function(XMLHttpRequest, textStatus, errorThrown){},
  'josnpCallback': 'callback',
  'timeout': 30000
});

2)

  $.ajax({
    'url': '//www.himinfo.ru/cl/{Path}/api/?command=' + encodeURIComponent('{"param1": "' + param1.val() + '", "param2": "' + email.val() + '", "param1": "' + name.val()+ '"}'),
    'dataType': 'jsonp',
    'success': function(response, ioArgs){},
    'error': function(XMLHttpRequest, textStatus, errorThrown){},
    'josnpCallback': 'callback',
    'timeout': 30000
  });


Коды ошибок API

Код ошибкиТекст ошибки Описание
100 Ошибка подключения к БД1
101 Ошибка выполнения запроса1
102 Слишком частые запросы
103 Отсутствуют команды на выполнение. Не правильно была сформирована API команда или такой не существует.
104 Отсутствуют параметры команды Не правильно указаны параметры в команде API.
105 Некорректные данные Не правильный формат данных в параметрах команды API.
106 Недействительный SessionID

1 - обратиться к разработчикам Агбис.


Авторизация

Для регистрации используется команда ModernRegistration.

Для авторизации используется команда ModernLogin.

Для восстановления пароля команда ModernRememberPwd.


Пример работы с обсуждениями

1) TitleMessages - получить список обсуждений происходит по сессии, т.е. только конкретно для  авторизованного клиента. вернет:

//www.himinfo.ru/cl/{Path}/api/?TitleMessages&SessionID=

Ответ json:

{
  "error": 0, 
  "Messages": [
    {
      "id": "10045", 
      "doc_num": "", 
      "dttm": "16.03.2015 5:48:19", 
      "comment": "test", 
      "user": "1", 
      "star": "0", 
      "message_type": "5", 
      "new_mes_count": "0", 
      "status_message": "0"
    }
  ]
}

2) MessageList - вернет сообщения для конкретной темы (если в теме нет сообщений от пользователей или самого клиента то запрос будет пустой) по ее ID полученной с помощью команды TitleMessages.

//www.himinfo.ru/cl/{Path}/api/?MessageList={"id": "10045"}&SessionID=

Ответ json:

{
  "error": 0, 
  "childNode_comments": [
    {
      "dttm": "16.03.2015+21:09:31", 
      "comment": "test", 
      "user": "0", 
      "status_message": 1
    }
  ]
}

3) SendMessage - добавит сообщение в существующую тему по ее ID полученной с помощью команды TitleMessages, либо без ID  создаст новую тему.

Отправка сообщения в существующее обсуждение:

//www.himinfo.ru/cl/{Path}/api/?SendMessage={"id": "10045", "dttm": "25.03.2015 12:52", "mes_type": "3", "comment": "%D1%82%D0%B5%D1%81%D1%82"}&SessionID=

Создание нового обсуждения на примере отзыва о заказе

//www.himinfo.ru/cl/{Path}/api/?SendMessage={"dor_id": "102577", "dttm": "25.03.2015 12:52", "mes_type": "1", "star": "5", "comment": "%D1%82%D0%B5%D1%81%D1%82"}&SessionID=3213A4C7-6FD5-4ABC-8CAD-24FFA77726E9

4) CountNewMessages - кол-во новых сообщения в теме по ее ID полученной с помощью команды TitleMessages либо без ID  создаст новую тему.

//www.himinfo.ru/cl/{Path}/api/?CountNewMessages={"id": "10045"}&SessionID=

Ответ json:

{
  "error": 0, 
  "count_new": "3"
}


Работа с выездами

Получение списка журнала выездов используется команда Trips.

Для резервирование или редактирования времени выезда используется команда TripOrder.

При резервировании выезда, для указания корректного времени начала и окончания выезда, выполняется команда TripsHr (возвращает список свободного времени начала выезда, на которое можно зарезервировать время), далее выполнятся команда TripsHrTo с указанием предполагаемой даты окончания выезда (вернет список времени окончания, на которое можно завершить выезд).

После резервирования выезда, команда Trips вернет обновленный список выездов.


Работа со статистикой ЛК

Для работы отчета «Отчёт обращений в «Личный кабинет» клиентами.

Используемые команды:
Entry - статистика входа в ЛК (0 - зарегестрировался, 1 - авторизовался);
EntranceSite - статистика заходов в ЛК;
OpenOrders - статистика открытия заказа в ЛК;
OpenHistory - статистика открытия истории в ЛК.


Команды API

Версия API. api_version

Команда: api_version

Вернет версию api. Параметры команды отсутствуют.

Метод отправки: GET

Формат запроса: api_version

Строка запроса:

.../api/?api_version

Ответ json:

{"api_version": "1.4"}


Авторизация. ModernLogin

Команда: ModernLogin

Авторизация по номеру телефона. Используется вместе с командой регистрации ModernRegistration.

Метод отправки: GET

Формат запроса: ModernLogin={"phone": "+79123456789", "pwd": "7110eda4d09e062aa5e4a390b0a572ac0d2c0220"}

Строка запроса:

.../api/?ModernLogin=%7B%22phone%22%3A%20%22%2B79123456789%22%2C%20%22pwd%22%3A%20%227110eda4d09e062aa5e4a390b0a572ac0d2c0220%22%7D

где
phone - номер телефона клиента, обязательный параметр;
pwd – пароль, преобразованный с помощью SHA1, обязательный параметр.

Ответ json:

{
  "error":0,
  "Session_id":"F3967266-DDAE-4524-A8AB-7BCDF79A97F1",
  "contr_id":"10013",
  "promo_code_friend":""
 }

где
error - код выполнения, 0 - успешно, 1 - ошибка;
Msg - текст сообщения в случае ошибки.
Session_id - ID сессии авторизованного клиента;
contr_id - ID клиента;
promo_code_friend - промо-код.


Проверка валидности сессии. ValidSessionID

Команда: ValidSessionID

Проверка валидности SessionID.

Метод отправки: GET

Формат запроса: ValidSessionID&SessionID=

Строка запроса:

.../api/?ValidSessionID&SessionID=...

где
SessionID – GUID проверяемой сессии.

Ответ json:

{
  "error": 0, 
  "contr_id": "123"
}

где
contr_id – ID клиента, которому принадлежит сессия.


Регистрация. ModernRegistration

Команда: ModernRegistration

Регистрация клиента в личном кабинете химчистке.

Метод отправки: GET

Формат запроса: ModernRegistration={"fio": "Тест Тестовый", "phone": "+79123456789", "email": "test@test.com"}

Строка запроса:

.../api/?ModernRegistration=%7B%22phone%22%3A%22%2B79123456789%22%2C%22fio%22%3A%22%D0%A2%D0%B5%D1%81%D1%82%20%D0%A2%D0%B5%D1%81%D1%82%D0%BE%D0%B2%D1%8B%D0%B9%22%7D

где
phone - логин, телефон клиента, обязательный параметр;
fio - ФИО клиента, обязательный параметр;
email - Email клиента, не обязательный параметр.

Ответ json:

// При успешной регистрации
{
  "error": 0, 
  "Msg": "СМС сообщение с кодом отправлено"
}

// При нахождении телефона на другом клиенте
{
  "error": 1, 
  "Msg": "Данный номер телефона уже зарегистрирован. Попробуйте восстановить пароль"
  "contr_id": "1234",
  "exists": "1"
}

где
error - код выполнения, 0 - успешно, 1 - ошибка;
Msg - текст сообщения;
contr_id - ID клиента;
exists - признак что телефон уже занят другим клиентом.


Восстановление пароля. ModernRememberPwd

Команда: ModernRememberPwd

Восстановление пароля зарегистрированного клиента.

Метод отправки: GET

Формат запроса: ModernRememberPwd={"phone":"+79123456789"}

Строка запроса:

.../api/?ModernRememberPwd=%7B%22phone%22%3A%20%22%2B79123456789%22%7D

где
phone - телефон клиента, обязательный параметр.

Ответ json:

{
  "error": 0, 
  "Msg": "СМС сообщение с кодом отправлено"
}

где
error - код выполнения, 0 - успешно, 1 - ошибка;
Msg - текст сообщения.


Выход из Личного кабинета. Logout

Команда: Logout

Выход из Личного кабинета, завершение работы сессии

Метод отправки: GET

Формат запроса: Logout&SessionID=

Строка запроса:

.../api/?Logout&SessionID=...

где
SessionID - ID сессии, обязательный параметр. Возвращает команда авторизации ModernLogin.

Ответ json:

{"error": 0}

где
error - код выполнения, 0 - успешно, 1 - ошибка; Msg - текст сообщения в случае ошибки.


Информация по клиенту. ContrInfo

Команда: ContrInfo

Информация по авторизированному клиенту.

Метод отправки: GET

Формат запроса: ContrInfo&SessionID=

Строка запроса:

.../api/?ContrInfo&SessionID=...

где
SessionID - ID сессии, обязательный параметр.

Ответ json:

{
  "error": 0,
  "contr_id": "12345",
  "name": "%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%20%D0%98%D0%B2%D0%B0%D0%BD%20%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87",
  "short_name": "%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%20%D0%98.%D0%98.",
  "fone": "111-11-11",
  "fone_cell": "%2B79990009900",
  "email": "example@example.com",
  "agree_to_receive_sms": "0",
  "agree_to_receive_adv_sms": "0",
  "address": "%D0%94%D1%80%D1%83%D0%B6%D0%B1%D1%8B%201-1",
  "barcode": "123456789000",
  "discount": "5",  
  "last_order_discount":"0",
  "last_discount": "15",
  "discount_scheme_name": "",
  "gender": "0",
  "sp": "2",
  "source": "",
  "region_id": "",
  "full_orders_cost": "1648370,24",
  "is_active": "1",
  "loyalty": "0",
  "order_not_pay": "266",
  "order_count": "457",
  "deposit": "50",
  "bonus": "5371",
  "dolg": "1273565,62",
  "promo_code": "P2HZ3",
  "birth_day": "01.01.1900"
}

где
error - успешность выполнения команды;
contr_id – ID клиента;
name - ФИО клиента;
short_name - краткое ФИО клиента;
fone - обычный телефон;
fone_cell - сотовый телефон;
email - электронная почта;
agree_to_receive_sms - согласен получать СМС о готовности заказов;
agree_to_receive_adv_sms - согласен получать рекламные и поздравительные СМС;
address - адрес клиента;
barcode - номер карточки клиента;
discount - процент скидки клиента;
last_order_discount - скидка из последнего заказа;
last_discount - Последняя скидка по ДС;
discount_scheme_name - название ДС клинта;
gender – пол клиента (0-мужской, 1-женский);
sp – тип клиента (1- организация, 2- физическое лицо);
source - любой текст;
region_id – район;
full_orders_cost – сумма заказов клиента;
is_active – активность карточки клиента (0 - не активен, 1 - активен);
loyalty – лояльность клиента (0 - нейтральный, 1 - положительный/лояльный, 2 - отрицательный/конфликтный, 3 - VIP);
order_not_pay – количество не оплаченных заказов;
order_count – количество заказов;
deposit – остаток депозита клиента;
bonus – остаток бонуса клиента;
dolg – сумма долга клиента;
promo_code – используемый промо-код;
birth_day – дата рождения.


Сохранение информации по клиенту. SaveInfo

Команда: SaveInfo

Сохранение информации по клиенту.

Метод отправки: GET

Формат запроса: SaveInfo={"Name": "Агбис Тест Тестович", "birth_day": "01.10.1974", "Teleph_cell": "+79990009900", "Email": "", "Address": "Новокузнецк, 123- 4", "gender": "0", "agree_to_receive_sms": "1", "agree_to_receive_adv_sms": "0"}&SessionID=

Строка запроса:

.../api/?SaveInfo=%7B%22Name%22%3A%20%22%D0%90%D0%B3%D0%B1%D0%B8%D1%81%20%D0%A2%D0%B5%D1%81%D1%82%20%D0%A2%D0%B5%D1%81%D1%82%D0%BE%D0%B2%D0%B8%D1%87%22%2C%20%22birth_day%22%3A%20%2201.10.1974%22%2C%20%22Teleph_cell%22%3A%20%22%2B79990009900%22%2C%20%22Email%22%3A%20%22%22%2C%20%22Address%22%3A%20%22%D0%9D%D0%BE%D0%B2%D0%BE%D0%BA%D1%83%D0%B7%D0%BD%D0%B5%D1%86%D0%BA%2C%20123-%204%22%2C%20%22gender%22%3A%20%220%22%2C%20%22agree_to_receive_sms%22%3A%20%221%22%2C%20%22agree_to_receive_adv_sms%22%3A%20%220%22%7D&SessionID=D5DEC8D0-707C-4757-90C3-C3DC4240010D&SessionID=...

где
Name – ФИО клиента, не обязательный параметр;
Teleph_cell – сотовый телефон, не обязательный параметр;
Fone – обычный телефон, не обязательный параметр;
birth_day – день рождения (пример: 01.04.1954), не обязательный параметр;
Email – E-mail адрес, не обязательный параметр;
Address – адрес клиента, не обязательный параметр;
gender – пол клиента (0 – м, 1 - ж), не обязательный параметр;
agree_to_receive_sms - согласие на смс о готовности заказа, не обязательный параметр;
agree_to_receive_adv_sms - согласие на рекламную смс, не обязательный параметр;
source - любой текст, не обязательный параметр;
SessionID - ID сессии, обязательный параметр.

Ответ json:

{
  "error": 0, 
  "Msg": "%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B8%20%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D1%8B", 
  "contr_id": "10013"
}

где
error - успешность выполнения команды;
Msg - сообщение;
contr_id - ID клиента;
need_confirm_phone - признак что, измененный телефон нужно подтвердить.
Клиенту на новый телефон уходит смс с кодом подтверждения. Для подтверждения телефона используется команда ConfirmCellPhone.


Сохранение пароля. SavePass

Команда: SavePass

Сохранение нового пароля клиента.

Метод отправки: GET

Формат запроса: SavePass={"old":"40bd001563085fc35165329ea1ff5c5ecbdbbeef","new":"7110eda4d09e062aa5e4a390b0a572ac0d2c0220","IsDigitPass":"1"}&SessionID=

Строка запроса:

.../api/?SavePass=%7B%22old%22%3A%2240bd001563085fc35165329ea1ff5c5ecbdbbeef%22%2C%22new%22%3A%227110eda4d09e062aa5e4a390b0a572ac0d2c0220%22%2C%22IsDigitPass%22%3A%221%22%7D&SessionID=...

где
old - старый пароль, обязательный параметр;
new - новый пароль, обязательный параметр;
IsDigitPass - признак, если пароль содержит только цифры, не обязательный параметр;
SessionID - ID сессии, обязательный параметр;
old и new должны быть преобразованы с помощью алгоритма SHA1.

Ответ json:

{
  "error": 0
}


Подтверждение номера телефона. ConfirmCellPhone

Команда: ConfirmCellPhone

Подтверждение номера телефона по клиенту.
При успешном подтверждении новый телефон будет применен в карточке клиента.

Метод отправки: GET

Формат запроса: ConfirmCellPhone={"contr_id": "10013", "code": "1234"}&SessionID=

Строка запроса:

.../api/?ConfirmCellPhone={"contr_id": "10013", "code": "1234"}&SessionID=...

где
contr_id - ID клиента, обязательный параметр;
code - код подтверждения из смс, не обязательный параметр. Если не указать будет повторная смс с кодом подтверждения, не чаще 1 раза в 5мин;
SessionID - ID сессии, обязательный параметр.

Ответ json:

{
  "error": 0, 
  "code": "223", 
  "phone": "+79990009900", 
  "contr_id": "10013"
}

где
error - успешность выполнения команды;
code - новый код подтверждения из смс при повторной отправке;
phone - телефон на который ушла смс;
contr_id - ID клиента.


Остаток бонусов клиента. Bonus

Команда: Bonus

Метод отправки: GET

Остаток бонусов авторизированного клиента. Обязательный параметр SessionID.

Формат запроса: Bonus&SessionID=

Строка запроса:

.../api/?Bonus&SessionID=...

где
SessionID - ID сессии, обязательный параметр.

Ответ json:

{
  "error":0,
  "bonus_rest":"1956"
}
где
bonus_rest - остаток бонуса клиента.


Остаток депозита клиента. Deposit

Команда: Deposit

Метод отправки: GET

Остаток депозита авторизированного клиента. Обязательный параметр SessionID.

Формат запроса: Deposit&SessionID=

Строка запроса:

.../api/?Deposit&SessionID=...

где
SessionID - ID сессии, обязательный параметр.

Ответ json:

{
  "error":0,
  "deposit_rest":"206"
}

где
deposit_rest - остаток депозита клиента.


Список заказов клиента. Orders

Команд: Orders

Метод отправки: GET

Список текущих заказов (кроме выданных) авторизированного клиента.

Формат запроса: Orders={"sclad": 1, "need_serv": 1}&SessionID=

Строка запроса:

.../api/?Orders=%7B%22sclad%22%3A1%2C%22need_serv%22%3A1%7D&SessionID=...

где
sclad - информация по складу, необязательный параметр. Указывает нужно ли в ответе указывать информацию по складу(принимает значение 0 и 1);
need_serv - детализация по услугам заказа, необязательный параметр. Указывает нужно ли в ответ записывать детализацию по услугам заказа, в противном случае блок «services» будет отсутствовать(принимает значение 0 и 1);
SessionID - ID сессии, обязательный параметр.

Ответ json:

{
  "error": 0, 
  "orders":[
    {
      "dor_id": 150708,
      "doc_num": "001476",
      "kredit": "1056",
      "debet": "801,93",
      "doc_date": "15.07.2013",
      "date_out": "19.07.2013 15:14:22",
      "status": "1",
      "photo_exist": "0",
      "discount": "5",
      "sclad_name": "%D0%A7%D0%B8%D1%81%D1%82%D0%BA%D0%B0",
      "sclad_adr": "%D0%94%D1%80%D1%83%D0%B6%D0%B1%D1%8B%201-1",
      "sclad_hours": "8:00-20:00",
      "services":[
        {
          "dos_id": "100230799",
          "tov_id": "100644",
          "service": "%D0%94%D1%83%D0%B1%D0%BB%D0%B5%D0%BD%D0%BA%D0%B0",
          "code": "060104",
          "status_id": "1",
          "status_name": "%D0%9D%D0%BE%D0%B2%D1%8B%D0%B9",
          "barcode": "271800000786781001",
          "price": "1320",
          "qty": "1",
          "kfx": "1",
          "discount": "20", 
          "nursery_id": "0", 
          "nurseries_name": "%D0%9D%D0%B5+%D0%B4%D0%B5%D1%82%D1%81%D0%BA%D0%B0%D1%8F",
          "nurseries_discount": "0",
          "serv_weight": "1",
          "dirty_id": "0",
          "dirty_name": "%D0%9E%D0%B1%D1%89%D0%B5%D0%B5",
          "dirty_kfx": "1",
          "kredit": "1056",
          "ext_info": "",
          "shop_description": "",
          "group_tov": "%D0%90%D1%82%D0%B5%D0%BB%D1%8C%D0%B5",
          "addons":[
            {
              "id": "3",
              "descr": "%D0%98%D0%B7%D0%BD%D0%BE%D1%81%20%D0%B2%20%25",
              "value_type": "1",
              "aos_id": "1009302",
              "aos_value": "%D0%98%D0%B7%D0%BD%D0%BE%D1%81%2050%25"
            }
          ]
        }
      ]
    }
  ]
}

где
orders - массив объектов заказов:
dor_id – ID заказа;
doc_date – дата заказа;
doc_num – номер заказа;
date_out – дата выдачи;
kredit – сумма заказа;
debet – сумма оплаты заказа;
discount – скидка по заказу;
kind_id – тип заказа (0 – Заказ для химчистки, 1 - Заказ для прачечной, 2 – Продажа товаров, 3 – Выездной заказ);
photo_exist – содержит фотографии;
sclad_to – ID склад приема;
sclad_name – название склада;
sclad_adr – адрес склада;
sclad_hours – время работы склада;
current_sclad_id – текущий склад;
status – статус заказа (1 - Новый, 2 - На хранении, 3 - В исполнении, 4 - Исполненный, 5 - Выданный, 6 - Закрытый, 7 - Отменённый);
waiting_confirm – признак подтверждения заказа от клиента (0 - не требует подтверждения, по умолчанию; 1- требует подтверждения от клиента; 2 – клиент согласился, подтвержден; 3 - клиент НЕ согласился, отменен);
is_not_confirmed - признак подтверждения сотрудником химчистки (0 - если сотрудник химчистки уже подтвердил заказ или мы не ждем подтверждения от него, по умолчанию; 1 - если сотрудник химчистки еще не подтвердил заказа, но мы ждем это);
services - массив объектов услуг:
dos_id – ID услуги в заказе;
tov_id – ID номенклатурной услуги;
service - название услуги;
code - артикул;
status_id – ID статуса;
status_name - название статуса;
barcode - штрих-код услуги;
price - цена;
qty - количество;
kfx - коэффициент;
discount - скидка;
nursery_id - ID детской скидки;
nurseries_name - название детской скидки;
nurseries_discount - значение детской скидки;
serv_weight - вес;
dirty_id - ID наценки;
dirty_name - название наценки;
dirty_kfx - коэффициент наценки;
kredit - стоимость услуги;
ext_info - описание;
shop_description - описание цеха;
group_tov - группа номенклатуры.
addons - массив объектов доп реквизитов:
id – ID реквизита;
descr - название реквизита;
value_type - тип реквизита;
aos_id – ID значения реквизита;
aos_value - значение реквизита.


История заказов клиента. OrdersHistory

Команда: OrdersHistory

Метод отправки: GET

Список выполненных (выданных) заказов клиента.

Формат запроса: OrdersHistory={"mon": 1, "need_serv": 1}&SessionID=

Строка запроса:

.../api/?OrdersHistory=%7B%22mon%22%3A1%2C%22need_serv%22%3A1%7D&SessionID=...

где
mon - период отображения истории, необязательный параметр. Принимает значение 0 - за последний квартал, 1 – за последние полгода, 2 - за год;
sclad - информация по складу, необязательный параметр. Указывает нужно ли в ответе указывать информацию по складу(принимает значение 0 и 1);
need_serv - детализация по услугам заказа, необязательный параметр. Указывает нужно ли в ответ записывать детализацию по услугам заказа, в противном случае блок «services» будет отсутствовать(принимает значение 0 и 1);
SessionID - ID сессии, обязательный параметр.

Ответ json:

{
  "error": "0",
  "orders_history": 
    [
      {
        "dor_id": "159214",
        "doc_num": "0000023",
        "kredit": "1056",
        "debet": "1056",
        "doc_date": "15.07.2013",
        "date_out": "19.07.2013 15:14:22",
        "status": "5",
        "discount": "0",
        "date_out_fast": "20.06.2016 10:08:23",
        "services":
          [
            {
              "dos_id": "100230799",
              "tov_id": "100644",
              "service": "%D0%94%D1%83%D0%B1%D0%BB%D0%B5%D0%BD%D0%BA%D0%B0",
              "code": "060104",
              "status_id": "1",
              "status_name": "%D0%9D%D0%BE%D0%B2%D1%8B%D0%B9",
              "barcode": "271800000786781001",
              "price": "1320",
              "qty": "1",
              "kfx": "1",
              "discount": "20",
              "nursery_id": "0",
              "nurseries_name": "%D0%9D%D0%B5+%D0%B4%D0%B5%D1%82%D1%81%D0%BA%D0%B0%D1%8F",
              "nurseries_discount": "0",
              "serv_weight": "1",
              "dirty_id": "0",
              "dirty_name": "%D0%9E%D0%B1%D1%89%D0%B5%D0%B5",
              "dirty_kfx": "1",
              "kredit": "1056",
              "ext_info": "",
              "shop_description": "",
              "group_tov": "%D0%90%D1%82%D0%B5%D0%BB%D1%8C%D0%B5",
              "addons":
                [
                  {
                    "id": "3",
                    "descr": "%D0%98%D0%B7%D0%BD%D0%BE%D1%81%20%D0%B2%20%25",
                    "value_type": "1",
                    "aos_id": "1009302",
                    "aos_value": "%D0%98%D0%B7%D0%BD%D0%BE%D1%81%2050%25"
                  }
                ]
            }
          ]
      }
    ]
}

где
orders_history - массив объектов заказов:
dor_id – ID заказа;
doc_date – дата заказа;
doc_num – номер заказа;
date_out – дата выдачи;
date_out_fast – дата выдачи фактическая;
kredit – сумма заказа;
debet – сумма оплаты заказа;
discount – скидка по заказу;
status – статус заказа.
services - массив объектов услуг:
dos_id – ID услуги;
tov_id – ID номенклатуры;
service - название услуги;
code - артикул;
status_id – ID статуса;
status_name - название статуса;
barcode - штрих-код услуги;
price - цена;
qty - количество;
kfx - коэффициент;
discount - скидка;
nursery_id - ID детской скидки;
nurseries_name - название детской скидки;
nurseries_discount - значение детской скидки;
serv_weight - вес;
dirty_id - ID наценки;
dirty_name - название наценки;
dirty_kfx - коэффициент наценки;
kredit - стоимость услуги;
ext_info - описание;
shop_description - описание цеха;
group_tov - группа номенклатуры.
addons - массив объектов доп. реквизитов:
id – ID реквизита;
descr - название реквизита;
value_type - тип реквизита;
aos_id – ID значения реквизита;
aos_value - значение реквизита.


Полная информация по заказу. FullOrderInfo

Команда: FullOrderInfo

Получение полной информации по заказу.

Метод отправки: GET

Заголовок запроса (Header): не требуется.

Формат запроса: FullOrderInfo={"dor_id":"1"}&SessionID=...

Строка запроса:

.../api/?FullOrderInfo=%7B%22dor_id%22%3A%221001464%22%7D&SessionID=...

где
dor_id – ID заказа, обязательный параметр;
SessionID - ID сессии, обязательный параметр.

Ответ json:

{
  "error": 0,
  "dor_id": "1001464",
  "order_dop_info": {
    "kind_id": "0",
    "doc_num": "000098",
    "kredit": "1",
    "debet": "0",
    "barcode": "280000000001001464",
    "firm_id": "11",
    "doc_date": "24.05.2021",
    "date_out": "25.05.2021%2017:00:00",
    "current_sclad_id": "1",
    "status_id": "1",
    "photo_exist": "0",
    "discount": "20",
    "sclad_to": "1",
    "fast_exec_id": "0",
    "sclad_name": "%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9",
    "sclad_adr": "%D0%BF%D1%80-%D1%82%20%D0%9C%D0%B5%D1%82%D0%B0%D0%BB%D0%BB%D1%83%D1%80%D0%B3%D0%BE%D0%B2%2043-23",
    "sclad_hours": "",
    "discount_extrnl_id": "",
    "sclad_kredit_id": "1",
    "is_not_confirmed": "0",
    "waiting_confirm": "0"
  },
  "order_services": [
    {
      "dos_id": "100231018",
      "parent_id": "",
      "qty_kredit": "1",
      "kredit": "1",
      "name": "%D0%91%D0%B5%D1%80%D0%BC%D1%83%D0%B4%D1%8B",
      "status_id": "1",
      "unitname": "%D1%88%D1%82.",
      "serv_num": "1",
      "barcode_read": "%5B0%5D%2098%20(1)",
      "photo_exist": "0"
    }
  ],
  "order_payments": [
    {
     "doc_id": "100156",
     "doc_type": "91",
     "kassa_debet": "0",
     "bank_debet": "0",
     "card_debet": "0",
     "bonus_debet": "1940",
     "deposit_debet": "0"
   }
  ],
  "order_comments": [],
  "order_plans": [],
  "order_signs": []
}

где
dor_id - ID заказа;
order_dop_info – Массив доп. информация по заказу:
kind_id - тип заказа (0 - Заказ для химчистки, 1 - Заказ для прачечной, 2 - Продажа товаров, 3 - Выездной заказ, 5 - Заказ для клининга);
doc_num - номер заказа;
kredit – сумма заказа;
debet – сумма оплаты заказа;
barcode – штрих-код заказа;
firm_id – ID фирмы;
doc_date – дата заказа;
date_out – дата выдачи;
current_sclad_id – ID текущего склада;
status_id – статус заказа (1 - Новый, 2 - На хранении, 3 - В исполнении, 4 - Исполненный, 5 - Выданный, 6 - Закрытый, 7 - Отменённый);
photo_exist – заказ содержит фотографии (0 - нет фотографий, 1 - содержит фотографии);
discount – скидка по заказу;
sclad_to – ID склада приема;
fast_exec_id - ID срочности;
sclad_name – название склада;
sclad_adr – адрес склада;
sclad_hours – время работы склада;
discount_extrnl_id - ID ВДС;
sclad_kredit_id - ID склада приема;
waiting_confirm – признак подтверждения заказа от клиента (0 - не требует подтверждения, по умолчанию; 1- требует подтверждения от клиента; 2 – клиент согласился, подтвержден; 3 - клиент НЕ согласился, отменен);
is_not_confirmed - признак подтверждения сотрудником химчистки (0 - если сотрудник химчистки уже подтвердил заказ или мы не ждем подтверждения от него, по умолчанию; 1 - если сотрудник химчистки еще не подтвердил заказа, но мы ждем это);
order_services – массив услуг в заказе(ID услуги, кол-во конкретной услуги, стоимость конкретной услуги, наименование услуги, статус услуги, ед. измерения услуги);
dos_id - ID услуги;
parent_id - ID родительской услуги;
qty_kredit - количество;
kredit - сумма услуги;
name - наименование услуги;
status_id - статус услуги;
unitname - наименование единицы измерения;
serv_num - номер услуги;
barcode_read - бирка услуги
photo_exist - услуга содержит фотографии (0 - нет фотографий, 1 - содержит фотографии);
order_payments - массив оплат:
doc_id - ID документа оплаты;
doc_type - тип документа оплаты (3 - Кассовый документ (без фискализации), 4 - Банковский документ, 9 - Оплата банковской картой, 31 - Кассовый чек оплата покупателем (с фискализацией), 32 - Кассовый чек возврат денег покупателю (с фискализацией), 91 - Бонус, 92 - Оплата депозитом);
kassa_debet - сумма оплаты кассового документа;
bank_debet - сумма оплаты банковского документа;
card_debet - сумма оплаты банковской картой;
bonus_debet - сумма оплаты бонусом;
deposit_debet - сумма оплаты депозитом;
order_comments – массив комментариев услуг в заказа:
id - ID комментария;
descript - комментарий;
order_plans – массив выездов по заказу;
id - ID выезда;
tp - тип выезда;
dt - дата выезда;
hr - час выезда;
mn - минуты выезда;
to_hr - час до которого длится выезд;
to_mn - минуты до которого длится выезда;
address - адрес выезда;
comment - комментарий;
sclad_id - ID склада выезда;
mp_status_id - ID статус выезда (0 - новый, 1 – совершен, 2 – завершен);
order_signs – массив подписанных квитанций по заказу(вн. номер подписанной квитанции, дата подписания, название квитанции):
id - ID подписанной квитанции;
dttm - дата подписанной квитанции;
name - наименование квитанции.


Краткая информация по услугам заказа. Services

Команда: Services

Запрос краткой информации по услугам заказа

Метод отправки: GET

Заголовок запроса (Header): не требуется.

Формат запроса: Services={"dor_id":"1"}&SessionID=...

Строка запроса:

.../api/?Services=%7B%22dor_id%22%3A%221001464%22%7D&SessionID=...

где
dor_id – ID заказа, обязательный параметр;
info - дополнительная информация по услуге, обязательный параметр. Принимает значения 0 и 1;
SessionID - ID сессии, обязательный параметр.

Ответ json:

{
  "error": 0,
  "order_servises": [
    {
      "dos_id": "100231286",
      "tov_id": "10018",
      "service": "%D0%91%D0%B5%D1%80%D0%BC%D1%83%D0%B4%D1%8B",
      "status_id": "1",
      "unit_name": "%D1%88%D1%82.",
      "serv_num": "1",
      "parent_id": "",
      "kredit": "880",
      "ext_info": "",
      "qty_kredit": "1"
    }
  ]
}

где
order_servises - массив услуг заказа:
dos_id – ID услуги;
tov_id – ID товара;
service – название услуги;
status_id - статус услуги;
unit_name - единица измерения;
serv_num – последовательный номер услуги;
parent_id – ID родительской услуги;
kredit – стоимость услуги;
ext_info – дополнительное описание;
qty_kredit – количество услуги.


Полная информация по услугам заказа. FullService

Команда: FullService

Получение полной информации по услугам заказа.

Метод отправки: GET

Заголовок запроса (Header): не требуется.

Формат запроса: FullService={"dor_id":"1"}&SessionID=...

Строка запроса:

.../api/?FullService=%7B%22dor_id%22%3A%221001464%22%7D&SessionID=...

где
dor_id – ID заказа, обязательный параметр;
SessionID - ID сессии, обязательный параметр.

Ответ json:

{
  "error": 0,
  "order_services": [
    {
      "dos_id": "100231286",
      "parent_id": "",
      "tov_id": "10018",
      "service": "%D0%91%D0%B5%D1%80%D0%BC%D1%83%D0%B4%D1%8B",
      "code": "01.18",
      "status_id": "1",
      "status_name": "%D0%9D%D0%BE%D0%B2%D1%8B%D0%B9",
      "serv_num": "1",
      "barcode": "272100000002241001",
      "price": "880",
      "qty": "1",
      "kfx": "1",
      "discount": "12",
      "nursery_id": "0",
      "nurseries_name": "%D0%9D%D0%B5%20%D0%B4%D0%B5%D1%82%D1%81%D0%BA%D0%B0%D1%8F",
      "nurseries_discount": "0",
      "serv_weight": "1",
      "dirty_id": "0",
      "dirty_name": "%D0%9E%D0%B1%D1%89%D0%B5%D0%B5",
      "dirty_kfx": "1",
      "kredit": "880",
      "ext_info": "",
      "shop_description": "",
      "group_tov": "1.%20%D0%A2%D0%B5%D0%BA%D1%81%D1%82%D0%B8%D0%BB%D1%8C%D0%BD%D0%BE-%D1%82%D1%80%D0%B8%D0%BA%D0%BE%D1%82%D0%B0%D0%B6%D0%BD%D0%B0%D1%8F%20%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B0",
      "discount_type": "10",
      "addons": []
    }
  ]
}

где
order_services - массив услуг заказа:
dos_id – ID услуги;
parent_id – ID родительской услуги;
tov_id – ID услуги;
service – название услуги;
code – артикул;
status_id – ID статус;
status_name – название статуса;
serv_num – последовательный номер услуги;
barcode – штрих код;
price – цена из прайс листа;
qty – количество;
kfx – коэффициент;
discount – скидка;
nursery_id – ID детской наценки;
nurseries_name – наименование детской наценки;
nurseries_discount – скидка детской наценки;
serv_weight – ширина;
dirty_id – ID наценки за загрязнение;
dirty_name – название наценки за загрязнение;
dirty_kfx – коэффициент наценки за загрязнение;
kredit – сумма услуги;
ext_info - описание;
shop_description – описание склада;
addons – массива дополнительных реквизитов услуги;
id – ID дополнительного реквизита;
descr – наименование;
value_type – тип реквизита;
aos_id – ID значения реквизита;
aos_value – значение реквизита.


Квитанция. ReceiptOnline

Команда: ReceiptOnline

Получение квитанции по заказу.

Метод отправки: GET

Заголовок запроса (Header): не требуется.

Формат запроса: ReceiptOnline={"dor_id":"12345", "typeExport": "png"}&SessionID=

Строка запроса:

.../api/?ReceiptOnline=%7B%22dor_id%22:%2212345%22%7D&SessionID=...

где
dor_id – ID заказа, обязательный параметр;
typeExport – тип формата файла, pdf (по умолчанию), png, svg, не обязательный параметр;
sign – если указан, то при наличии квитанции с подписью, вернется квитанция в формате svg (работает только в паре с параметром typeExport=svg);
SessionID - ID сессии, обязательный параметр.

В зависимости от typeExport будет содержать определенный документ с соответствующим Content-Type.
Для typeExport=pdf, Content-Type=application/pdf;
typeExport=png, Content-Type=image/png;
typeExport=svg, Content-Type=image/svg+xml.

В ответ возвращаются двоичные данные


Квитанция. Receipt

Команда: Receipt

Получение квитанции по заказу. Устаревший вариант, больше не поддерживается.

Метод отправки: GET

Заголовок запроса (Header): не требуется.

Формат запроса: Receipt={"dor_id":"12345", "typeExport": "png"}

Строка запроса:

.../api/?Receipt=%7B%22dor_id%22:%2212345%22%7D&SessionID=...

где
dor_id – ID заказа, обязательный параметр;
typeExport – тип формата файла, pdf (по умолчанию), png, svg, не обязательный параметр;
SessionID - ID сессии, обязательный параметр.

Ответ json:

{
  "error": 0, 
  "png": "EB831E9B-472E-4D30-9AAF-20296E6D0017",
  "dor_id": "12345" 
}

Где
png – имя документа png.

Стандартный путь открытия квитанции:
https://www.himinfo.ru/upload_files/EB831E9B-472E-4D30-9AAF-20296E6D0017.pdf


Подписанная квитанция. SingReceipt

Команда: SignReceipt

Получение подписанной квитанции по заказу

Метод отправки: GET

Формат запроса: SignReceipt={"id":"12345"}&SessionID=

Строка запроса:

.../api/?SignReceipt=%7B%22id%22:%2212345%22%7D&SessionID=...

где
id – ID подписанной квитанции, обязательный параметр. Можно получить из команды FullOrderInfo;
SessionID - ID сессии, обязательный параметр.

Ответ будет содержать документ с соответствующим Content-Type: image/svg+xml


Фотографии заказа. OrderImages

Команда: OrderImages

Фотографии заказа.

Метод отправки: GET

Формат запроса: OrderImages={"dor_id":"12345"}&SessionID=

Строка запроса:

.../api/?OrderImages=%7B%22dor_id%22:%2212345%22%7D&SessionID=...

где
dor_id – ID заказа;
SessionID - ID сессии, обязательный параметр.

Ответ json:

{
  "error": 0,
  "img": [
  ]
}

где
img – массив строк картинок в Base64.


Фотографии по заказу. OrderImagesModern

Команда: OrderImagesModern

Обновленная команда получения всех картинок по заказу.

Метод отправки: GET

Формат запроса: OrderImagesModern={"dor_id":"12345"}&SessionID=

Строка запроса:

.../api/?OrderImagesModern=%7B%22dor_id%22:%2212345%22%7D&SessionID=...

где
dor_id – ID заказа, обязательный параметр;
SessionID - ID сессии, обязательный параметр.

Ответ json:

{
  "error": 0,
  "photos": [
    {
      "dos_id": "100229859",
      "photo_id": "1004",
      "img": ""
    }
  ]
}

где
photos – массив картинок:
dos_id - ID услуги;
photo_id - ID картинки;
img – фото услуги закодированная в Base64.


Оплата депозитом. DepositPay

Команда: DepositPay

Оплата заказа депозитом.

Метод отправки: GET

Формат запроса: DepositPay={"dor_id":"123","amount":"12"}&SessionID=

Строка запроса:

.../api/?DepositPay=%7B%22dor_id%22%3A%221001490%22,%22amount%22%3A%2212%22%7D&SessionID=...

где
dor_id – ID заказа, обязательный параметр;
amount - сумма депозита, обязательный параметр;
SessionID - ID сессии, обязательный параметр.

Ответ json:

{
  "error": 0,
  "Msg": "%D0%97%D0%B0%D0%BA%D0%B0%D0%B7%20%D0%BE%D0%BF%D0%BB%D0%B0%D1%87%D0%B5%D0%BD"
}


Оплата бонусом. BonusPay

Команда: BonusPay

Оплата заказа бонусом.

Метод отправки: GET

Формат запроса: BonusPay={"dor_id":"123","amount":"12"}&SessionID=

Строка запроса:

.../api/?BonusPay=%7B%22dor_id%22%3A%221001490%22,%22amount%22%3A%2212%22%7D&SessionID=...

где
dor_id – ID заказа, обязательный параметр;
amount - сумма бонуса, обязательный параметр;
SessionID - ID сессии, обязательный параметр.

Ответ json:

{
  "error": 0,
  "Msg": "%D0%97%D0%B0%D0%BA%D0%B0%D0%B7%20%D0%BE%D0%BF%D0%BB%D0%B0%D1%87%D0%B5%D0%BD"
}


Статистика входа в ЛК. Entry

Команда: Entry

Статистика входа в ЛК.

Метод отправки: GET

Формат запроса: Entry={"type":"1"}&SessionID=

Строка запроса:

.../api/?Orders=%7B%22type%22%3A%221%22%7D&SessionID=...

где
type - тип входа в ЛК. 0 - при регистрации, 1 - при авторизации. Обязательный параметр

Ответ json:

{"error":0}


Статистика заходов в ЛК. EntranceSite

Команда: EntranceSite

Статистика заходов в ЛК (Обновление страницы/вход по сохранной сессии, без авторизации).

Метод отправки: GET

Формат запроса: EntranceSite&SessionID=

Строка запроса:

.../api/?EntranceSite&SessionID=...

Ответ json:

{"error":0}


Статистика открытия заказа в ЛК. OpenOrders

Команда: OpenOrders

Статистика открытия заказа в ЛК (получение информации по заказу).

Метод отправки: GET

Формат запроса: OpenOrders=&SessionID=

Строка запроса:

.../api/?OpenOrders&SessionID=...

Ответ json:

{"error":0}


Статистика открытия истории в ЛК. OpenHistory

Команда: OpenHistory

Статистика открытия истории в ЛК (получение информации по заказу).

Метод отправки: GET

Формат запроса: OpenHistory&SessionID=

Строка запроса:

.../api/?OpenHistory&SessionID=...

Ответ json:

{"error":0}


Дополнительные реквизиты. AddonTypes

Команда: AddonTypes

Получение доп. реквизитов.

Метод отправки: GET

Формат запроса: AddonTypes

Строка запроса:

.../api/?AddonTypes

Ответ json:

{
  "error":0,
  "addon_types":[
    {
      "id":"90",
      "group_id":"1",
      "table_name":"DOC_ORDER_SERVICES",
      "descr":"%D0%A1%D0%BB%D0%BE%D0%B6%D0%BD%D0%B0%D1%8F%20(%D1%80%D1%83%D1%87%D0%BD%D0%B0%D1%8F)%20%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0",
      "value_type":"2",
      "default_int":"",
      "default_str":"",
      "default_bool":"0",
      "default_date":"",
      "default_flt":"",
      "is_default_need":"1",
      "if_null_message":"",
      "print_if_empty":"0",
      "change_price":"2",
      "num":"1,5",
      "is_combo":"0",
      "fullcol":"0",
      "multisel":"0",
      "font_color":"",
      "font_bold":"",
      "multipl":"",
      "hide_item_groups":"",
      "auto_item_groups":"",
      "auto_maximize":"",
      "not_manual_editing":"",
      "change_pr_serv":"",
      "dont_disc_value":"",
      "chang_value":"",
      "affect_user":"",
      "show_display":"",
      "show_difaddon":"",
      "specify_wp":"",
      "comments":"",
      "only_manager":"",
      "addon_str_values":[
      ]
    },
    ...
  ],
  ...
}
где
addon_types - Массив объектов доп. реквизитов:
id - ID доп. реквизита;
group_id- ID группы доп. реквизита (1 - Описание изделия, 2 - Дефекты изделия, 3 - Дефекты сырья, 4 - Предупреждения, 5 - Иные дефекты);
descr - наименование доп. реквизита;
value_type - тип доп. реквизита (0 - целое, 1 - строка, 2 - логическое, 3 - дата, 5 - вещественное, 6 - метка, 7 - строковые с ценой и количеством, 8 - Строковые с коэффициентом, 9 - Фигура);
default_int - числовое значение по умолчанию (при value_type = 0);
default_str - сроковое значение по умолчанию (при value_type = 1);
default_bool - логическое значение по умолчанию (при value_type = 2);
default_date - дата по умолчанию (при value_type = 3);
default_flt - вещественное значение по умолчанию (при value_type = 5);
comments - комментарий;
font_color - цвет текста;
font_bold - жирный шрифт;
specify_wp - реквизит для уточнения на рабочем месте;
addon_str_values - Массив для выбора строк у доп. реквизита:
id - ID строки;
value_str - строковое описание;
value_flt - числовое значение.


Комплекты доп. реквизитов. AddonPacks

Команда: AddonPacks

Получение комплектов доп. реквизитов.

Метод отправки: GET

Формат запроса: AddonPacks

Строка запроса:

.../api/?AddonPacks

Ответ json:

{
  "error":0,
  "addon_packs":[
    {
      "id":"60",
      "name":"16.%20%D0%9C%D0%B5%D0%BB%D0%BA%D0%B8%D0%B9%20%D1%80%D0%B5%D0%BC%D0%BE%D0%BD%D1%82%20%D1%88%D0%B2%D0%B5%D0%B9%D0%BD%D1%8B%D1%85%20%D0%B8%D0%B7%D0%B4%D0%B5%D0%BB%D0%B8%D0%B9",
      "addon_types":[
        2,
        109,
        181,
        225,
        226,
        227,
        228
      ]
    },
    ...
  ],
  ...
}
где
addon_packs - массив объектов комплектов:
id - ID комплекта;
name - наименование комплекта;
addon_types - Массив ID доп. реквизитов, входящих в комплект, из команды AddonTypes.


Прайс-лист. PriceList

Команда: PriceList

Получение прайс-листа.

Метод отправки: GET.

Заголовок запроса (Header): не требуется.

Формат запроса: PriceList={"price_id":"12"}

Строка запроса:

.../api/?PriceList=%7B%22price_id%22:%2212%22%7D

где
price_id – ID прайс-листа, необязательный параметр. Если не указан, то по умолчанию выдается розничный прайс-лист;
tovar_type - тип отображаемой позиции, необязательный параметр (0 - все товары и услуги, 1 - только товары, 2 - только услуги).

Ответ json:

{
  "error": 0,
  "price_list":[
    { 
      "id": "1",
      "folder_id": "10026",
      "tovar_type": "2",
      "code": "0",
      "name": "%D0%91%D0%BB%D1%83%D0%B7%D0%BA%D0%B0",
      "unit": "1%20%D1%88%D1%82",
      "price": "132,69",
      "group_p": "%D0%A0%D1%83%D0%B1%D0%B0%D1%88%D0%BA%D0%B8",
      "top_parent":"%D0%A2%D0%B5%D0%BA%D1%81%D1%82%D0%B8%D0%BB%D1%8C",
      "order_addon_pack_id": "5",
      "is_price_editable": "1",
      "is_not_for_discount": "0",
      "is_repair": "0",
      "is_percent_price": "0",
      "additional_text": "",
      "short_name": "",
      "index": "",
      "price_id": "0"
    }
  ]
}

где
price_list - содержит строки прайс-листа:
id – ID услуги/товара в прайс листе;
folder_id – ID группы услуги/товара;
tovar_type - тип позиции (1 - товары, 2 - услуги);
code – артикул;
name – наименование услуги;
unit – единица измерения;
price – цена;
group_c – группа, где лежит услуга;
group_p – родительская группа, группы услуги;
top_parent – верхняя группа;
order_addon_pack_id – номер комплекта доп. реквизитов;
price_id - ID прайс-листа;
is_price_editable - признак цена редактируемая в заказе;
is_not_for_discount - признак не распространять скидки;
is_repair - признак ремонт;
is_percent_price - рассчитывать цену как процент от другой услуги;
additional_text - дополнительная информация;
short_name - краткое наименование;
index - индекс.


Группы прайс-листа. PriceTree

Команда: PriceTree

Группы прайс-листа.

Метод отправки: GET.

Заголовок запроса (Header): не требуется.

Формат запроса: PriceTree={"id":"12"}

Строка запроса:

.../api/?PriceTree=%7B%22id%22:%2212%22%7D

где
id – ID прайс-листа, обязательный параметр.

Ответ json:

{
  "error": 0,
  "error":0,
  "price":[
    {
      "folder_id":"10025",
      "parent":"10024",
      "name":"1.+%D0%9A%D0%BE%D0%B6%D0%B0+(%D0%BF%D0%BE%D0%BA%D1%80%D0%B0%D1%81%D0%BA%D0%B0)",
      "comm":"",
      "sort_index":""
    }
  ]
}

Где
price - содержит строки группы прайс листа:
folder_id – ID группы;
parent – ID родительской группы;
name – название группы;
comm – комментарий.


Склады. ReceptionCenters

Команда: ReceptionCenters

Получение списка складов (приёмные пункты).

Метод отправки: GET

Формат запроса: ReceptionCenters={"with_photo":"1"}

Строка запроса:

.../api/?ReceptionCenters=%7B%22with_photo%22%3A%221%22%7D

где
with_photo - признак получать список приемных пунктов с фото.

Ответ json:

{
  "error":0,
  "list":[
    {
      "id":"1",
      "name":"%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9",
      "address":"%D0%BF%D1%80-%D1%82%20%D0%9C%D0%B5%D1%82%D0%B0%D0%BB%D0%BB%D1%83%D1%80%D0%B3%D0%BE%D0%B2%2043-23",
      "working_hours":"",
      "phone":"999-999-999-999",
      "group":"%D0%92%D0%BD%D0%B5%20%D0%B3%D1%80%D1%83%D0%BF%D0%BF",
      "location":"53.764419,87.117967",
      "cabinet": "0",
      "folder_id":"1"
      "name_for_clients": "%D0%A5%D0%B8%D0%BC%201",
      "use_himinfo": "1",
      "city": "%D0%9D%D0%BE%D0%B2%D0%BE%D0%BA%D1%83%D0%B7%D0%BD%D0%B5%D1%86%D0%BA",
      "comment": "",
      "metro": "",
      "working_days": "1%7C%7C1%7C%7C-%7C%7C-%7C%7C-%7C%7C-%7C%7C%7C2%7C%7C1%7C%7C-%7C%7C-%7C%7C-%7C%7C-%7C%7C%7C3%7C%7C1%7C%7C-%7C%7C-%7C%7C-%7C%7C-%7C%7C%7C4%7C%7C1%7C%7C-%7C%7C-%7C%7C-%7C%7C-%7C%7C%7C5%7C%7C1%7C%7C-%7C%7C-%7C%7C-%7C%7C-%7C%7C%7C6%7C%7C1%7C%7C-%7C%7C-%7C%7C-%7C%7C-%7C%7C%7C7%7C%7C1%7C%7C-%7C%7C-%7C%7C-%7C%7C-",
      "is_work_shop": "0",
      "sclad_is_mobil": "0",
      "sclad_not_automated": "0",
      "photo": ""
    },
    ...
  ],
  ...
}

где
list - массив объектов складов:
id - ID склада;
name - наименование склада;
address - адрес склада;
working_hours - время работы;
phone - телефон склада;
group - группа склада;
location - геолокация, если вкл. определение геолокации;
cabinet - признак склад Чистомат;
folder_id - ID группы склада;
name_for_clients - название склада для ХимИнфо;
use_himinfo - признак отображения склада на Химинфо, значение 0 или 1;
city - город склада;
comment - комментарий по складу;
metro - ближайшее метро до склада;
working_days - рабочие дни склада;
is_work_shop - признак склад является цехом;
sclad_is_mobil - признак мобильный приемный пункт;
sclad_not_automated - признак неавтоматизированный приемный пункт;
photo - фото склада в строке base64.


Регионы (районы). Regions

Команда: Regions

Получение списка регионов.

Метод отправки: GET.

Заголовок запроса (Header): не требуется.

Формат запроса: Regions

Строка запроса:

.../api/?Regions

Ответ json:

{
  "error":0,
  "regions":[
    {
      "id":"1002",
      "name":"test"
    },
    ...
  ]
}

где
regions - массив объектов регионов:
id – ID региона;
name – наименование региона.


Список выездов. Trips

Команда: Trips

Получение списка выездов.

Метод отправки: GET

Заголовок запроса (Header): не требуется.

Формат запроса: Trips={"date":"01.01.2020"}&SessionID=

Строка запроса:

.../api/?Trips=%7B%22date%22%3A%2201.01.2020%22%7D&SessionID=...

где
date – дата, за которую отобразить данные, обязательный параметр;
id – ID региона, необязательный параметр;
detail - отображать выезды с детальной информацией, необязательный параметр;
SessionID - ID сессии, обязательный параметр.

Ответ json:

{
  "error": 0,
  "trips": [
    {
      "hour": "00",
      "engaged": "0"
    },
    {
      "hour": "01",
      "engaged": "0"
    },
    {
      "hour": "02",
      "engaged": "0"
    },
    {
      "hour": "03",
      "engaged": "1"
    }
  ]
}

где
hour – час;
engaged – признак занятости часа(1 – занято, 0 – свободно).

Получение детальных выездов на день:

Формат запроса: Trips={"date":"01.01.2020","detail":"1"}&SessionID=

Строка запроса:

.../api/?Trips=%7B%22date%22%3A%2201.01.2020%22%2C%22detail%22%3A%221%22%7D&SessionID=...

Ответ json:

{
  "error": 0,
  "trips": [
    {
      "id": "10090",
      "dt": "22.04.2021",
      "hr": "7",
      "mn": "0",
      "to_hr": "8",
      "to_mn": "0",
      "tp": "1",
      "contr_id": "100484065",
      "contr_name": "%D0%9A%D0%BE%D1%87%D0%B5%D1%82%D0%BE%D0%B2%20%D0%90%D0%BD%D0%B0%D1%82%D0%BE%D0%BB%D0%B8%D0%B9",
      "contr_tel": "%2B79505840311",
      "contr_adr": "",
      "dor_id": "1001448",
      "scl_name": "%D0%9C%D0%BE%D0%B1%D0%B8%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9%20%D1%81%D0%BA%D0%BB%D0%B0%D0%B4",
      "sclad_plan_name": "",
      "mp_status": "0",
      "car_scl_id": "10010",
      "comment": "%D0%97%D0%B0%D0%BA%D0%B0%D0%B7%20%D0%B8%D0%B7%20%D0%BC%D0%BE%D0%B1%D0%B8%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%B4%D0%BB%D1%8F%20%D0%BA%D1%83%D1%80%D1%8C%D0%B5%D1%80%D0%B0",
      "address": "",
      "region_id": "",
      "region_name": "",
      "doc_num": "000082",
      "dolg": "850",
      "dor_status_id": "1",
      "dor_status_name": "%D0%9D%D0%BE%D0%B2%D1%8B%D0%B9",
      "kredit": "850",
      "debet": "0",
      "contr_fio_text": "",
      "contr_tel_text": "",
      "house": "",
      "room": "",
      "level": "",
      "stamp_num": ""
    },
    ...
  ]
}

где
id - ID выезда;
dt - дата выезда;
hr и mn - час и минута начала выезда;
to_hr и to_mn - час и минута окончания выезда;
tp - тип выезда (0 - забрать, 1 - доставить);
contr_id – связанный ID клиента по бд;
contr_tel - связанный телефон клиента по бд;
contr_adr - связанный адрес клиента по бд;
doc_num - номер заказа, если выезд по заказу;
dor_id - ID заказа, если выезд по заказу;
scl_name - мобильный склад (узнать список можно через команду Cars);
car_scl_id – ID мобильного склада;
sclad_plan_name - склад для выезда, если выезд по складу;
mp_status - статус выезда (0 - новый, 1 – совершен, 2 - отменён);
contr_fio_text – имя клиента, указанное при заполнении выезда;
contr_tel_text – телефон клиента, указанный при заполнении выезда;
region_name – название региона;
region_id – ID региона (команда Regions).


Свободное время начала выезда на дату. TripsHr

Команда: TripsHr

Свободное время начала выезда на дату. Для задания корректного времени параметра hr для команды TripOrder.

Метод отправки: GET

Заголовок запроса (Header): не требуется.

Формат запроса: TripsHr={"date": "01.01.2020", "car_id": "2", "id": "123"}

Строка запроса:

.../api/?TripsHr=%7B%22date%22%3A%2201.01.2020%22%2C%22car_id%22%3A%222%22%2C%22id%22%3A%22123%22%7D

где
date – дата, на которую создается резерв (формат 21.12.2020), обязательный параметр;
id – ID выезда (команда Trips), необязательный параметр. Указывается при редактировании выезда;
region_id – ID региона, необязательный параметр. С учетом по региону;
car_id – мобильный склад, необязательный параметр. С учетом по мобильному складу.

Ответ json:

{
  "error": 0,
  "hr": [
    "00:00",
    "01:00",
    "02:00",
    "03:00",
    "04:00",
    "05:00",
    "06:00",
    "07:00",
    "08:00",
    "12:00",
    "13:00",
    "14:00",
    "15:00",
    "16:00",
    "18:00",
    "19:00",
    "22:00",
    "23:00"
  ]
}

где
hr - массив строк не занятым временем выезда.


Свободное время окончания выезда на дату. TripsHrTo

Команда: TripsHrTo

Свободное время окончания выезда на дату. Для задания корректного времени параметра hr_to для команды TripOrder.

Метод отправки: GET

Заголовок запроса (Header): не требуется.

Формат запроса: TripsHrTo={"date": "01.01.2020", "hr_to": "12:00", "car_id": "2", "id": "123"}

Строка запроса:

.../api/?TripsHrTo=%7B%22date%22%3A%2201.01.2020%22%2C%22hr_to%22%3A%2212%3A00%22%2C%22car_id%22%3A%222%22%2C%22id%22%3A%22123%22%7D

где
date – дата, на которую создается резерв (формат 21.12.2020), обязательный параметр;
hr_to – предполагаемое время окончания (Формат – «10:00», «07:00»), обязательный параметр;
id – ID выезда (команда Trips), необязательный параметр. Указывается при редактировании выезда;
region_id – ID региона, необязательный параметр. С учетом по региону;
car_id – мобильный склад, необязательный параметр. С учетом по мобильному складу.

Ответ json:

{
  "error": 0,
  "hr_to": [
    "12:00",
    "13:00",
    "14:00",
    "15:00",
    "16:00",
    "17:00",
    "18:00",
    "19:00",
    "20:00",
    "21:00",
    "22:00",
    "23:00",
    "23:59"
  ]
}

где
hr_to - массив строк не занятым временем окончания выезда.


Список выездных машин. Cars

Команда: Cars

Список выездных машин (выездные ПП)

Метод отправки: GET

Заголовок запроса (Header): не требуется.

Формат запроса: Cars

Строка запроса:

.../api/?Cars

Ответ json:

{
  "error": 0,
  "cars": [
    {
      "id": "10010",
      "name": "%D0%9C%D0%BE%D0%B1%D0%B8%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9%20%D1%81%D0%BA%D0%BB%D0%B0%D0%B4",
      "address": "",
      "phone": "",
      "price_list_id": ""
    }
  ]
}

где
cars - массив складов/пп:
id – ID склада/пп;
name – название склада/пп;
address - адрес склада/пп;
phone - телефон склада/пп;
price_list_id - ID прайс листа склада/пп.


Создание выезда. TripOrder

Команда: TripOrder

Создание выезда в назначенное время.
Можно создать 5 выездов в день.

Метод отправки: GET

Заголовок запроса (Header): не требуется.

Формат запроса: TripOrder={"tp": "1", "date": "07.07.2020", "hr": "11:00", "hr_to": "12:00", "address": "тест", "region_id": "1", "car_id": "2", "comment": "тест", "fio": "Тест", "tel": "+79876543210", "mp_status": "1"}&SessionID=

Строка запроса:

.../api/?TripOrder=%7B%22tp%22%3A%20%221%22%2C%20%22date%22%3A%20%2207.07.2020%22%2C%20%22hr%22%3A%20%2211%3A00%22%2C%20%22hr_to%22%3A%20%2212%3A00%22%2C%20%22address%22%3A%20%22%D1%82%D0%B5%D1%81%D1%82%22%2C%20%22region_id%22%3A%20%221%22%2C%20%22car_id%22%3A%20%222%22%2C%20%22comment%22%3A%20%22%D1%82%D0%B5%D1%81%D1%82%22%2C%20%22fio%22%3A%20%22%D0%A2%D0%B5%D1%81%D1%82%22%2C%20%22tel%22%3A%20%22%2B79876543210%22%2C%20%22mp_status%22%3A%20%221%22%7D&SessionID=...

где
id - ID выезда, необязательный параметр. Задается для редактирования выезда (команда Trips);
tp - тип выезда (1 - забрать, 2 - доставить по умолчанию), необязательный параметр;
contr_id - ID клиента, необязательный параметр;
date – дата, на которую создается резерв (формат 21.12.2020), обязательный параметр;
hr – время, на которое создается резерв (формат «11:30»), обязательный параметр;
hr_to – время окончания выезда (формат «11:30»), обязательный параметр;
address – адрес выезда, если выезд по клиенту, обязательный параметр;
region_id – ID региона (из команды Regions), необязательный параметр;
car_id - ID мобильного склада, обязательный параметр;
comment – комментарий, необязательный параметр;
tel - телефон клиента, обязательный параметр;
fio - фио клиента, необязательный параметр;
mp_status - статус выезда (0 - новый, 1 – совершен, 2 – завершен), обязательный параметр;
SessionID - ID сессии, обязательный параметр.

Ответ json:

{
  "error":0, 
  "Msg": "%D0%97%D0%B0%D1%80%D0%B5%D0%B7%D0%B5%D1%80%D0%B2%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BE"
}


Создание выездного заказа(курьера). SaveOrder

Команда: SaveOrder

Создание выездного заказа(курьера).
Данный выезд можно найти в программе химчистке в меню Документы – Маркетинг – Сообщения, тип сообщения выездной заказ.
Такое сообщение предварительно вручную обрабатывается приемщиком и на основе него создается заказ.

Метод отправки: GET

Заголовок запроса (Header): не требуется.

Формат запроса: SaveOrder={"zakaz_address_out": "1", "zakaz_address_in": "1", "zakaz_take_away_date": "12.03.2019", "zakaz_take_away_time": "12:23", "zakaz_get_date": "", "zakaz_get_time": "", "services": "1|2|2|||2|3|4|||2|2|1"}&SessionID=

Строка запроса:

.../api/?SaveOrder=%7B%22zakaz_address_out%22%3A%221%22%2C%22zakaz_address_in%22%3A%221%22%2C%22zakaz_take_away_date%22%3A%2212.03.2019%22%2C%22zakaz_take_away_time%22%3A%2212%3A23%22%2C%20%22zakaz_get_date%22%3A%22%22%2C%22zakaz_get_time%22%3A%22%22%2C%22services%22%3A%20%221%7C2%7C2%7C%7C%7C2%7C3%7C4%7C%7C%7C2%7C2%7C1%22%7D&SessionID=...

где
zakaz_address_out – ID адрес забора вещей, обязательный параметр. Из команды AddressContr;
zakaz_address_id - ID адрес доставки вещей, обязательный параметр. Из команды AddressContr;
zakaz_take_away_date - дата забора вещей, обязательный параметр. Формат «21.06.2019»;
zakaz_take_away_time - время забора вещей, обязательный параметр. Формат «11:20»;
zakaz_get_date – дата доставки вещей, не обязательный параметр. Формат «21.06.2019»;
zakaz_get_time – время доставки вещей, не обязательный параметр. Формат «11:20»;
services - список ID услуг, обязательный параметр. Передаются в виде 1|2|2|||2|3|4|||2|2|1, разделитель «|||» разделяет услуги. «|» - внутренний разделитель. 1 цифра - ID товара, 2 цифра - ID прайс листа, 3 цифра - количество;
com - текст сообщения или комментарий для выездного заказа, не обязательный параметр;
source - любой текст, обязательный параметр.

Ответ json:

{
  "error": 0,
  "Msg": "%D0%97%D0%B0%D0%BA%D0%B0%D0%B7%20%D0%BF%D1%80%D0%B8%D0%BD%D1%8F%D1%82"
}


Промо-код. PromoCode

Команда: PromoCode

Проверка промо-кода. Вернет список рабочих адресов для существующего промо-кода, если они указаны.

Метод отправки: GET

Заголовок запроса (Header): не требуется.

Формат запроса: PromoCode={"promo":"123"}

где
promo - проверяемый промо-код.

Строка запроса:

.../api/?PromoCode=%7B%22promo%22%3A%22123%22%7D

Ответ json:

{
  "error": 0,
  "promo_code_id": "10021",
  "working_address": [
    {
      "id": 1004,
      "promo_code_id": 10021,
      "address": "%D0%90%D0%B4%D1%80%D0%B5%D1%81%201"
    },
    {
      "id": 1005,
      "promo_code_id": 10021,
      "address": "%D0%90%D0%B4%D1%80%D0%B5%D1%81%202"
    }
  ]
}

где
id – ID адреса промо-кода;
promo_code_id – ID промо-кода;
address – адрес промо-кода.


Используемый промо-код. PromoCodeUse

Команда: PromoCodeUse

Вернет используемый текущим клиентом промо-код.

Метод отправки: GET

Заголовок запроса (Header): не требуется.

Формат запроса: PromoCodeUse&SessionID=...

Строка запроса:

.../api/?PromoCodeUse&SessionID=...

Ответ json:

{
  "error": 0,
  "promo_code": "123",
  "discount_extrnl": "%D0%B1%D0%BE%D0%BD%D1%83%D1%81%20400",
  "discount": "0",
  "address": ""
}

где
promo_code – промо-код клиента;
discount_extrnl - наименование привязанной ВДС (внешней дисконтной схемы) к промо-коду;
discount - скидка ВДС;
address – выбранный адрес используемого промо-кода.


Активация промо-кода. PromoCodeActivate

Команда: PromoCodeActivate

Активирует промо-код клиенту.

Метод отправки: GET

Заголовок запроса (Header): не требуется.

Формат запроса: PromoCodeActivate={"PromoCode":"123"}&SessionID=...

где
PromoCode - активируемый промо-код.

Строка запроса:

.../api/?PromoCodeActivate=%7B%22PromoCode%22%3A%22123%22%7D&SessionID=...

Ответ json:

{
  "error": 0,
  "Msg": "%D0%9F%D1%80%D0%BE%D0%BC%D0%BE-%D0%BA%D0%BE%D0%B4%20%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD"
}


Список изменившихся ID заказов. LastChangeOrder

Команда: LastChangeOrder

Получение списка изменившихся ID заказов.

Метод отправки: GET

Заголовок запроса (Header): не требуется.

Формат запроса: LastChangeOrder=&SessionID=

Строка запроса:

.../api/?LastChangeOrder&SessionID=...

Ответ json:

{
  "error": 0, 
  "last_orders": 
    [
      {
        "dor_id": "123456", 
        "status_id": "1", 
        "contr_id": "123456789"
        "cur_sclad_id": "12333"
      },
      {
        "dor_id": "258963", 
        "status_id": "3", 
        "contr_id": "1234567"
        "cur_sclad_id": "12334"
      },
      ...
    ]
}

где
last_orders – массив изменившихся заказов:
dor_id – ID заказа;
contr_id – ID клиента;
status_id – статус заказа (1 – новый, 3 – в исполнении, 4 – исполненный, 5 - выданный);
cur_sclad_id – текущий ID склад заказа на момент изменения в заказе.


Подтверждение заказа. OrderConfirm

Команда: OrderConfirm

Подтверждение клиентом заказа. Устаревший вариант, больше не поддерживается.
Обновленная команда OrderAppConfirm.

Метод отправки: GET

Заголовок запроса (Header): не требуется.

Формат запроса: OrderConfirm={"dor_id":"12345"}&SessionID=

Строка запроса:

.../api/?OrderConfirm=%7B%22dor_id%22%3A%2212345%22%7D&SessionID=...

где
dor_id - ID заказа, обязательный параметр;
SessionID - ID сессии, обязательный параметр;

Ответ json:

{
  "error": 0, 
  "Msg": "%D0%9E%D0%BA"
}

где
Msg - сообщение.


Подтверждение заказа. OrderAppConfirm

Команда: OrderAppConfirm

Подтверждение клиентом заказа. Обновленная команда.

Метод отправки: GET

Заголовок запроса (Header): не требуется.

Формат запроса: OrderAppConfirm={"dor_id":"12345"}&SessionID=

Строка запроса:

.../api/?OrderAppConfirm=%7B%22dor_id%22%3A%2212345%22%7D&SessionID=...

где
dor_id - ID заказа, обязательный параметр;
SessionID - ID сессии, обязательный параметр;

Ответ json:

{
  "error": 0, 
  "Msg": "%D0%97%D0%B0%D0%BA%D0%B0%D0%B7%20%D0%BF%D0%BE%D0%B4%D1%82%D0%B2%D0%B5%D1%80%D0%B6%D0%B4%D0%B5%D0%BD"
}

где
Msg - сообщение.


Отмена подтверждения заказа. CancelOrderApp

Команда: CancelOrderApp

Отмена подтверждение клиентом заказа. Обновленная команда.

Метод отправки: GET

Заголовок запроса (Header): не требуется.

Формат запроса: CancelOrderApp={"dor_id":"12345"}&SessionID=

Строка запроса:

.../api/?CancelOrderApp=%7B%22dor_id%22%3A%2212345%22%7D&SessionID=...

где
dor_id - ID заказа, обязательный параметр;
SessionID - ID сессии, обязательный параметр;

Ответ json:

{
  "error": 0, 
  "Msg": "%D0%97%D0%B0%D0%BA%D0%B0%D0%B7%20%D0%BE%D1%82%D0%BC%D0%B5%D0%BD%D1%91%D0%BD"
}

где
Msg - сообщение.


Статус заказа. GetStatusOrder

Команда: GetStatusOrder

Поиск статуса заказа по номеру заказа.

Метод отправки: GET

Заголовок запроса (Header): не требуется.

Формат запроса: GetStatusOrder={"doc_num":"12345"}&SessionID=

Строка запроса:

.../api/?GetStatusOrder=%7B%22doc_num%22%3A%2212345%22%7D&SessionID=...

где
doc_num – номер заказа, обязательный параметр;
SessionID - ID сессии, обязательный параметр.

Ответ json:

{
  "error": 0, 
  "Msg": "%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9",
  "sclad_to": "123",
  "status_id": "4"
}

где
Msg – статус;
sclad_to – склад приема;
status_id – ID статуса.


Отмена заказа. CancelOrder

Команда: CancelOrder

Перевод статуса заказа в отменённый.

Метод отправки: GET

Заголовок запроса (Header): не требуется.

Формат запроса: CancelOrder={"dor_id ":"12345"}&SessionID=

Строка запроса:

.../api/?CancelOrder=%7B%22dor_id %22%3A%2212345%22%7D&SessionID=...

где
dor_id – ID заказа, обязательный параметр;
comment - комментарий, необязательный параметр;
SessionID - ID сессии, обязательный параметр.

Ответ json:

{"error": 0}


Темы обсуждений клиента. TitleMessages

Команда: TitleMessages

Запрос списка тем обсуждений (переписки) по клиенту.

Метод отправки: GET

Заголовок запроса (Header): не требуется.

Формат запроса: TitleMessages&SessionID=

Строка запроса:

.../api/?TitleMessages&SessionID=...

где
SessionID - ID сессии, обязательный параметр.

Ответ json:

{
  "error": 0,
  "Messages": [
    {
      "id": "1001",
      "dor_id": "",
      "doc_num": "",
      "dttm": "07.09.2017 11:03:50",
      "comment": "",
      "user": "1",
      "star": "0",
      "message_type": "7",
      "new_mes_count": "0",
      "status_message": "0"
    }
  ]
}

где
id – ID темы сообщения;
dor_id – номер заказ (если привязан по заказу);
doc_num – номер заказа;
dttm – дата/время создания;
comment – главное сообщение темы;
user – признак кому принадлежит сообщение, 1 – клиент, 0 – сотрудник химчистки;
star – оценка (от 1 до 5);
message_type – тип сообщения (1- отзыв, 2 – жалоба, 3 – пожелание, 4 – некорректные данные, 5 - вопрос);
new_mes_count – количество новых сообщений;
status_message – признак что сообщение новое.


Список сообщений темы. MessageList

Команда: MessageList

Список сообщений темы (переписки) клиента.

Метод отправки: GET

Заголовок запроса (Header): не требуется.

Формат запроса: MessageList={"id":"123"}&SessionID=

Строка запроса:

.../api/?MessageList=%7B%22id%22%3A%22123%22%7D&SessionID=...

где
id – ID переписки;
SessionID - ID сессии, обязательный параметр.

Ответ json:

{
  "error": 0,
  "childNode_comments": [
    {
      "id": 124,
      "dttm": "10.10.2021%2015:47:41",
      "comment": "%D0%A2%D0%B5%D1%81%D1%82%D0%BE%D0%B2%D0%BE%D0%B5%20%D1%81%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D0%B5",
      "user": 1,
      "status_message": 0
    }
  ]
}

где
childNode_comments - массив сообщений темы:
id – ID сообщения;
dttm – дата/время;
comment – текст сообщения;
user – признак кому принадлежит сообщение, 1 – клиент, 0 – сотрудник химчистки;
status_message – признак что сообщение новое.


Количество новых сообщений в теме. CountNewMessages

Команда: CountNewMessages

Количество новых сообщений в теме(переписке).

Метод отправки: GET

Заголовок запроса (Header): не требуется.

Формат запроса: CountNewMessages={"id":"123"}&SessionID=

Строка запроса:

.../api/?CountNewMessages=%7B%22id%22%3A%22123%22%7D&SessionID=...

где
id – ID обсуждения;
SessionID - ID сессии, обязательный параметр.

Ответ json:

{
  "error": 0,
  "count_new": "2"
}

где
count_new – количество новых сообщений оставленных сотрудниками химчистки. Обнулиться после выполнения MessageList.


Отправка сообщения темы. SendMessage

Команда: SendMessage

Отправка сообщения в тему (переписки) или создание новой темы (переписки).

Метод отправки: GET

Заголовок запроса (Header): не требуется.

Новое сообщение в обсуждении:

Формат запроса: SendMessage={"id":"1001","dttm":"21.12.2021 12:00","mes_type":"3","comment":"Проверка"}&SessionID=

Строка запроса:

.../api/?SendMessage=%7B%22id%22%3A%221001%22,%22dttm%22%3A%2221.12.2021%2012%3A00%22,%22mes_type%22%3A%223%22,%22comment%22%3A%22%D0%9F%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B0%22%7D&SessionID=...

Новое обсуждение(отзыв с оценкой):

Формат запроса: SendMessage={"dttm":"21.12.2021 12:00","mes_type":"1","comment":"Проверка","star": "4"}&SessionID=

Строка запроса:

.../api/?SendMessage=%7B%22dttm%22%3A%2221.12.2021%2012%3A00%22,%22mes_type%22%3A%221%22,%22comment%22%3A%22%D0%9F%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B0%22,%22star%22%3A%20%224%22%7D&SessionID=...

где
dttm – дата/время(формат записи «01.01.2015 12:00»), обязательный параметр;
mes_type – тип сообщения(1 – отзыв, 2 – Жалоба, 3 – Пожелание, 4 - Некорректные данные, 5 – Вопрос), обязательный параметр;
comment – текст, обязательный параметр;
dor_id – ID заказа для создания отзыва о заказе, не обязательный параметр;
id – ID переписки, если новое сообщение в обсуждении или без него, если новое обсуждение, не обязательный параметр;
star – оценка (1 – ужасно, 2 – плохо, 3 – средне, 4 – хорошо, 5 – отлично, по умолчанию 0), не обязательный параметр;
call_back_me – просит перезвонить (0 – нет, 1 – да, по умолчанию 0), не обязательный параметр;
SessionID - ID сессии, обязательный параметр.

Ответ json:

{
  "error": 0,
  "fl": 0,
  "id": "123"
}

где
fl – признак, что сообщение было создано как новая переписка (0), либо добавлено в существующую (1);
id – ID нового обсуждения, вернется если было создано новое осуждение.


Список акций. GetActionList

Команда: GetActionList

Получение списка акций.

Метод отправки: GET

Заголовок запроса (Header): не требуется.

Получение списка акций:

Формат запроса: GetActionList={"act":"1"}&SessionID=

Строка запроса:

.../api/?GetActionList=%7B%22act%22%3A%221%22%7D&SessionID=...

где
Обязательный параметр act - тип акции (1 – список акций, 2 – картинка акции сертификата), обязательный параметр;
SessionID - ID сессии, обязательный параметр.

Ответ json:

{
  "error": 0,
  "actions": [
    {
      "action_id": "1003",
      "act_type_id": "1",
      "date_begin": "24.04.2018",
      "date_end": "11.05.2022",
      "name": "1234",
      "short_detail": "%D0%BA%D1%80%D0%B0%D1%82%D0%BA%D0%B8%D0%B9%20%D1%82%D0%B5%D0%BA%D1%81%D1%82",
      "full_detail": "%D0%9F%D0%BE%D1%81%D0%BB%D0%BD%D1%8B%D0%B9%20%D1%82%D0%B5%D0%BA%D1%81%D1%82",
      "sclads_id": "1,1009,10015"
    }
  ]
}

где
action_id – ID акции;
act_type_id – тип акции (1 – распродажи, 2 – сертификаты, 3 – пакеты, 4 – бонусные пакеты);
date_begin – дата начала действия акции;
date_end – дата окончания действия акции;
name – наименование акции;
short_detail – краткое описание;
full_detail – полное описание.

Получение картинки акции сертификата:

Формат запроса: GetActionList={"act":"2","action_id":"123"}&SessionID=

Строка запроса:

.../api/?GetActionList=%7B%22act%22%3A%222%22%2C%22action_id%22%3A%22123%22%7D&SessionID=...

где
act - тип акции (1 – список акций, 2 – картинка акции сертификата), обязательный параметр;
action_id – ID акции для act = 2, обязательный параметр;
SessionID - ID сессии, обязательный параметр.

Ответ json:

{
  "error": 0,
  "actions": [
    {
      "action_id": "1002",
      "act_type_id": "3",
      "photo": ""
    }
  ]
}

где
action_id – ID акции;
act_type_id – тип акции (1 – распродажи, 2 – сертификаты, 3 – пакеты, 4 – бонусные пакеты);
photo – картинка в Base64.


Список сертификатов. Certificate

Команда: Certificate

Получение списка сертификатов.

Метод отправки: GET

Заголовок запроса (Header): не требуется.

Формат запроса: Certificate={"id":"123"}&SessionID=

Строка запроса:

.../api/?Certificate=%7B%22id%22%3A%22123%22%7D&SessionID=...

где
id – ID сертификата, обязательный параметр. Если указан, то будет выбран конкретный сертификат;
SessionID - ID сессии, обязательный параметр.

Ответ json:

{
  "error": 0,
  "certificate": [
    {
      "id": "1002",
      "name": "%D1%82%D0%B5%D1%81%D1%82%D0%BE%D0%B2%D1%8B%D0%B9%20%D1%81%D0%B5%D1%80%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82",
      "dt_first": "03.05.2018",
      "dt_last": "03.05.2022",
      "comments": "",
      "price": "1800",
      "lines": [
        {
          "id": "1003",
          "tov_name": "%D0%91%D0%B5%D1%80%D0%BC%D1%83%D0%B4%D1%8B",
          "discount": "76,6",
          "qty": "2",
          "price_before": "1000",
          "price_after": "234"
        }
      ]
    }
  ]
}

где
certificate - массив сертификатов:
id – ID сертификата;
name – названия сертификата;
dt_first – дата начала действия;
dt_last – дата окончания действия;
comments – комментарий;
price – стоимость (из активирующей услуги);
lines – массив строк сертификатов (5 первых строк попадают):
id – ID строки сертификата;
tov_name – название услуги;
discount – скидка;
qty – количество;
price_before – цена до применения сертификата;
price_after – цена после применения сертификата.


Список строк сертификатов. CertificateLines

Команда: CertificateLines

Получение списка строк сертификатов.

Метод отправки: GET

Заголовок запроса (Header): не требуется.

Формат запроса: CertificateLines ={"id":"123"}&SessionID=

Строка запроса:

.../api/?CertificateLines=%7B%22id%22%3A%22123%22%7D&SessionID=...

где
id – ID сертификата, обязательный параметр;
SessionID - ID сессии, обязательный параметр.

Ответ json:

{
  "error": 0,
  "certificate_lines": [
    {
      "id": "1003",
      "tov_name": "%D0%91%D0%B5%D1%80%D0%BC%D1%83%D0%B4%D1%8B",
      "discount": "76,6",
      "qty": "2",
      "price_before": "1000",
      "price_after": "234"
    }
  ]
}

где
id – ID строки сертификата;
tov_name – название услуги;
discount – скидка;
qty – количество;
price_before – цена до применения сертификата;
price_after – цена после применения сертификата.


Список активных сертификатов. ActiveCertificates

Команда: ActiveCertificates

Получение списка активных сертификатов клиента.

Метод отправки: GET

Заголовок запроса (Header): не требуется.

Формат запроса: ActiveCertificates&SessionID=

Строка запроса:

.../api/?ActiveCertificates&SessionID=...

где
SessionID - ID сессии, обязательный параметр.

Ответ json:

{
  "error": 0,
  "active_certificates": [
    {
      "id": "1002",
      "certificate_id": "1002",
      "promo_code": "9990000999",
      "cer_name": "%D1%82%D0%B5%D1%81%D1%82%D0%BE%D0%B2%D1%8B%D0%B9%20%D1%81%D0%B5%D1%80%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82"
    }
  ]
}

где
id – ID активного сертификата клиента;
certificate_id – ID сертификата;
promo_code – промо-код активного сертификата;
cer_name – название сертификата.


Создание оплаты сертификата. CreatePayCertificate

Команда: CreatePayCertificate

Создание оплаты сертификата на клиента.
При выполнении команды, выбирается активирующая услуга сертификата, создается заказ, в которой будет эта услуга. Увидеть заказ можно через команду Orders.
Оплачивается как обычный заказ на сумму сертификата.
Требуется предварительная настройка сертификата в программе и глобальных опций

Метод отправки: GET

Заголовок запроса (Header): не требуется.

Формат запроса: CreatePayCertificate={"id":"123"}&SessionID=

Строка запроса:

.../api/?CreatePayCertificate=%7B%22id%22%3A%22123%22%7D&SessionID=...

где
id – ID сертификата, обязательный параметр;
SessionID - ID сессии, обязательный параметр.

Ответ json:

{
  "error": 0,
  "dor_id": "10023", 
  "doc_num": "00012-5"
}

где
dor_id – ID заказа, который нужно оплатить;
doc_num – номер заказа, который нужно оплатить.


Рекламные объявления. Advertisment

Команда: Advertisment

Получение списка рекламных объявлений (Акции, Новости, Поздравления, Специальное предложение).

Метод отправки: GET

Заголовок запроса (Header): не требуется.

Формат запроса: Advertisment={"id":"123"}&SessionID=

Строка запроса:

.../api/?Advertisment=%7B%22id%22%3A%22123%22%7D&SessionID=...

где
id – ID объявления (если указано, то вернется конкретное объявление), не обязательный параметр;
type – тип объявления (1 – Новости, 2 – Акция, 3 - Специальное предложение, 4 - Поздравление), не обязательный параметр;
date_first – начало периода, не обязательный параметр;
date_last – конец периода, не обязательный параметр;
not_load_pic – не выгружать картинки (для быстрой обработки команды можно использовать равным 1, и в ответ не будут добавляться картинки. По-умолчанию 0), не обязательный параметр;
По умолчанию будут возвращены все объявления, которые действуют на сегодняшний день

Ответ json:

{
  "error": 0,
  "advertisments": [
    {
      "id": "10015",
      "type": "1",
      "description": "%D0%9D%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D1%8C%201",
      "mes": "%D0%9D%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D1%8C%201",
      "sub_mes": "%D0%9D%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D1%8C%201",
      "barcode": "0",
      "img": [
        {
          "adv_id": "10015",
          "path": "img1.gif",
          "img64": ""
        }
      ]
    }
  ]
}      

где
advertisments – массив объявлений:
id – ID объявления;
type – тип;
description – описание;
mes – текст в формате HTML (кодированный encodeURIComponent);
sub_mes – дополнительный текст;
barcode – штрихкод;
img – массив картинок:
adv_id – ID объявления, которому принадлежит картинка;
path – название картинки (по этому параметру, можно найти к какому тегу «img» в HTML принадлежит эта картинка);
img64 – картинка (картинка кодирована в строку Base64).


Картинки рекламных объявлений. AdvertismentImg

Команда: AdvertismentImg

Вернет все картинки, которые есть в объявлении.

Метод отправки: GET

Заголовок запроса (Header): не требуется.

Формат запроса: AdvertismentImg={"id":"123"}&SessionID=

Строка запроса:

.../api/?AdvertismentImg=%7B%22id%22%3A%22123%22%7D&SessionID=...

где
id – ID объявления (если указано, то вернется конкретное объявление), обязательный параметр;

Ответ json:

{
  "error": 0,
  "advertisments_img": [
    {
      "adv_id": "10015",
      "path": "img1.gif",
      "img64": ""
    }
  ]
}

где
adv_id – ID объявления, которому принадлежит картинка;
path – название картинки (по этому параметру, можно найти к какому тегу «img» в HTML принадлежит эта картинка);
img64 – картинка (картинка кодирована в строку Base64).


Список команд

Команда Описание
AddressContr Получение списка адресов клиента. Параметры команды отсутствуют.

Обязательный параметр «SessionID». Задаются в карточке клиента.

Пример:

//www.himinfo.ru/cl/{Path}/api/?AddressContr&SessionID=

Ответ в json формате:

{«error»: 0, «address_contr»: [{«id»: «40», «city_id»: «2», «street»: »%D1%82%D0%B5%D1%81%D1%82«, «house»: »%D1%82%D0%B5%D1%81%D1%82«, «housing»: »%D1%82%D0%B5%D1%81%D1%82«, «room»: »%D1%82%D0%B5%D1%81%D1%82«, «office»: »%D1%82%D0%B5%D1%81%D1%82«, «com»: »%D1%82%D0%B5%D1%81%D1%82«}]}

где

id – ID адреса,

city_id – город,

street – удлица,

house – дом,

housing – корпус,

room – квартира,

office – офис,

com – комментарий.
ActionOverAddressContrИзменение адресов клиента. Обязательный параметр команды «type» - тип операции, принимает значения «add» - добавить новый адрес, «change» - изменить текущий адрес, «del» - удалить текущий адрес.

Необязательные параметры «id» - при удалении и изменении указывает, какой адрес используется, «city_id» - город, «street» - улица, «house» - дом, «housing» - корпус, «room» - квартира, «office» - офис, «comment» - комментарий.

Обязательный параметр «SessionID». «source» не обязательный параметр, любой текст.

Пример:

//www.himinfo.ru/cl/{Path}/api/?ActionOverAddressContr={«type»: «add», «city_id»: »«, «street»: »«, «house»: »«, «housing»: »«, «room»: »«, «office»: »«, «comment»: »«}&SessionID=
CityContr Список городов. Устаревшая команда.

Пример:

//www.himinfo.ru/cl/{Path}/api/?CityContr

Ответ в json формате:

{«error»: 0, «city»: [{«id»: «1», «city»: «Moscow»}]}
LastOrders Список заказов за день. Обязательные параметры команды «SessionID».

Пример:

//www.himinfo.ru/cl/{Path}/api/?LastOrders={«inc »: «5», «part»: «day»}&SessionID=

Ответ в json формате:

{«error»: 0, «last_orders»: [{«dor_id»: «157105», «contr_id»: «44381»},{«dor_id»: «157106», «contr_id»: «44381»}]}

где «dor_id» – ID заказа,

«contr_id» – ID клиента.
AddCallInPlan Добавить звонок в журнал запланированных вызовов (Агбис Колцентр)

Пример добавления запланированного звонка:

//www.himinfo.ru/cl/{Path}/api/?AddCallInPlan={«contr_id»:«1»,”phone”:”1”,”comment”:”1”}

Ответ в json формате:

{«error»:0}

где

contr_id – вн. номер контрагента;

phone – номер телефона;

comment – комментарий;
AddFamily Изменить головную организацию у клиента,

Пример:

//www.himinfo.ru/cl/{Path}/api/?AddFamilia= {«only_reg»:«1»,»only_one«:«1»,»not_change«:«1»,»not_parent«:«1»,»phone«:«12345”}&SessionID=1

Ответ в json формате:

{«error»:0,»Msg»:””,«result_number»:«»}

где

only_reg – если 1 то ищем клиента среди ранее зарегистрированных, если 0 – то по базе всех клиентов;

only_one – если 1 то клиент который добавляет к себе в семью не должен быть головной организацией у других клиентов;

not_change – если 1 то мы не изменяем головную организацию у клиента, которого нашли, если у него уже кто то есть в качестве головной организации (т.е. мы не меняем головную организацию у клиента);

not_parent – если 1 то у клиента который добавляет к себе в семью не должно быть указана другой головной организации;

result_number=1 – не прошли проверку only_one

result_number=2 – не прошли проверку not_parent

result_number=3 – не нашли клиента в базе вообще, в этом случае выполняется процедура в базе данных SP_NOTIFY_AFTER_ADDFAMILY у которой в качестве входных параметров: ID контрагента который хотел добавить члена семьи и номер телефона который он добавлял (процедуру можно использовать чтобы запомнить кто кого искал)

result_number=4 – не прошли проверку not_change