====== Документация по Api ======
===== Api Личного кабинета версии 1.4 =====
----
===== Оглавление =====
[[#Описание API|Описание API]]\\
[[#Формат команд|Формат команд]]\\
[[#Примеры интеграции]]\\
[[#Коды ошибок API|Коды ошибок API]]\\
[[#Авторизация|Авторизация]]\\
[[#Пример работы с обсуждениями|Пример работы с обсуждениями]]\\
[[#Работа с выездами|Работа с выездами]]\\
[[#Работа со статистикой ЛК|Работа со статистикой ЛК]]\\
[[#Устаревшие команды|Устаревшие команды]]\\
----
[[#Версия API. api_version|Версия API. api_version]]\\
[[#Авторизация. ModernLogin|Авторизация. ModernLogin]]\\
[[#Проверка валидности сессии. ValidSessionID|Проверка валидности сессии. ValidSessionID]]\\
[[#Регистрация. ModernRegistration|Регистрация. ModernRegistration]]\\
[[#Восстановление пароля. ModernRememberPwd|Восстановление пароля. ModernRememberPwd]]\\
[[#Выход из Личного кабинета. Logout|Выход из Личного кабинета. Logout]]\\
[[#Информация по клиенту. ContrInfo|Информация по клиенту. ContrInfo]]\\
[[#Сохранение информации по клиенту. SaveInfo|Сохранение информации по клиенту. SaveInfo]]\\
[[#Сохранение пароля. SavePass|Сохранение пароля. SavePass]]\\
[[#Подтверждение номера телефона. ConfirmCellPhone|Подтверждение номера телефона. ConfirmCellPhone]]\\
[[#Остаток бонусов клиента. Bonus|Остаток бонусов клиента. Bonus]]\\
[[#Остаток депозита клиента. Deposit|Остаток депозита клиента. Deposit]]\\
[[#Список заказов клиента. Orders|Список заказов клиента. Orders]]\\
[[#История заказов клиента. OrdersHistory|История заказов клиента. OrdersHistory]]\\
[[#Полная информация по заказу. FullOrderInfo|Полная информация по заказу. FullOrderInfo]]\\
[[#Краткая информация по услугам заказа. Services|Краткая информация по услугам заказа. Services]]\\
[[#Полная информация по услугам заказа. FullService|Полная информация по услугам заказа. FullService]]\\
[[#Квитанция. ReceiptOnline|Квитанция. ReceiptOnline]]\\
[[#Квитанция. Receipt|Квитанция. Receipt]]\\
[[#Подписанная квитанция. SingReceipt|Подписанная квитанция. SingReceipt]]\\
[[#Список фотографий по заказу. OrderImagesModern|Список фотографий по заказу. OrderImagesModern]]\\
[[#Фотографии по заказу. PhotoOnline|Фотографии по заказу. PhotoOnline]]\\
[[#Оплата депозитом. DepositPay|Оплата депозитом. DepositPay]]\\
[[#Оплата бонусом. BonusPay|Оплата бонусом. BonusPay]]\\
[[#Статистика входа в ЛК. Entry|Статистика входа в ЛК. Entry]]\\
[[#Статистика заходов в ЛК. EntranceSite|Статистика заходов в ЛК. EntranceSite]]\\
[[#Статистика открытия заказа в ЛК. OpenOrders|Статистика открытия заказа в ЛК. OpenOrders]]\\
[[#Статистика открытия истории в ЛК. OpenHistory|Статистика открытия истории в ЛК. OpenHistory]]\\
[[#Дополнительные реквизиты. AddonTypes|Дополнительные реквизиты. AddonTypes]]\\
[[#Комплекты доп. реквизитов. AddonPacks|Комплекты доп. реквизитов. AddonPacks]]\\
[[#Прайс-лист. PriceList|Прайс-лист. PriceList]]\\
[[#Группы прайс-листа. PriceTree|Группы прайс-листа. PriceTree]]\\
[[#Склады. ReceptionCenters|Склады. ReceptionCenters]]\\
[[#Регионы (районы). Regions|Регионы (районы). Regions]]\\
[[#Список выездов. Trips|Список выездов. Trips]]\\
[[#Информация по выезду. Trip|Информация по выезду. Trip]]\\
[[#Свободное время начала выезда на дату. TripsHr|Свободное время начала выезда на дату. TripsHr]]\\
[[#Свободное время окончания выезда на дату. TripsHrTo|Свободное время окончания выезда на дату. TripsHrTo]]\\
[[#Список выездных машин. Cars|Список выездных машин. Cars]]\\
[[#Создание выезда. TripOrder|Создание выезда. TripOrder]]\\
[[#Промо-код. PromoCode|Промо-код. PromoCode]]\\
[[#Используемый промо-код. PromoCodeUse|Используемый промо-код. PromoCodeUse]]\\
[[#Активация промо-кода. PromoCodeActivate|Активация промо-кода. PromoCodeActivate]]\\
[[#Список изменившихся ID заказов. LastChangeOrder|Список изменившихся ID заказов. LastChangeOrder]]\\
[[#Подтверждение заказа. OrderConfirm|Подтверждение заказа. OrderConfirm]]\\
[[#Подтверждение заказа. OrderAppConfirm|Подтверждение заказа. OrderAppConfirm]]\\
[[#Отмена подтверждения заказа. CancelOrderApp|Отмена подтверждения заказа. CancelOrderApp]]\\
[[#Статус заказа. GetStatusOrder|Статус заказа. GetStatusOrder]]\\
[[#Отмена заказа. CancelOrder|Отмена заказа. CancelOrder]]\\
[[#Темы обсуждений клиента. TitleMessages|Темы обсуждений клиента. TitleMessages]]\\
[[#Список сообщений темы. MessageList|Список сообщений темы. MessageList]]\\
[[#Количество новых сообщений в теме. CountNewMessages|Количество новых сообщений в теме. CountNewMessages]]\\
[[#Отправка сообщения темы. SendMessage|Отправка сообщения темы. SendMessage]]\\
[[#Список акций. GetActionList|Список акций. GetActionList]]\\
[[#Список сертификатов. Certificate|Список сертификатов. Certificate]]\\
[[#Список строк сертификатов. CertificateLines|Список строк сертификатов. CertificateLines]]\\
[[#Список активных сертификатов. ActiveCertificates|Список активных сертификатов. ActiveCertificates]]\\
[[#Создание оплаты сертификата. CreatePayCertificate|Создание оплаты сертификата. CreatePayCertificate]]\\
[[#Рекламные объявления. Advertisment|Рекламные объявления. Advertisment]]\\
[[#Картинки рекламных объявлений. AdvertismentImg|Картинки рекламных объявлений. AdvertismentImg]]\\
[[#Список команд|Список команд]]\\
----
==== Устаревшие команды ====
[[#Фотографии заказа. OrderImages|Фотографии заказа. OrderImages]]\\
----
===== Описание API =====
Api позволяет реализовать Личный кабинет клиента, используя клиентскую сессию(авторизованного пользователя) (SessionID), получая информацию только по этому клиенту.\\
На основе полученной сессии, команды возвращают информацию **Только по одному текущем клиенту**.\\
**Время "жизни" клиентской сессии неограниченно.**\\
Api личного кабинета **Не позволяет реализовать синхронизацию всех заказов/клиентов и др. со сторонними сервисами**. Т.к. это может привести к избыточной нагрузке и большому количеству запросов.
Для реализации таких целей, правильно использовать **[[commercial_api]]**.\\
В нем есть поддержка загрузки Изменившихся заказов за период (с выводом подробной информации по заказу), изменившихся клиентов, создание и изменение заказов.
----
==== Схема работы API ====
{{:работа_api.drawio.png?direct&600 |}}\\
===== Формат команд =====
Все команды выполняются методом **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 строкой.
//**В ответе на запрос могут присутствовать поля, не описанные в настоящей документации. Приложению следует их игнорировать.**//
----
===== Примеры интеграции =====
**Пример запросов на php:**
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "//himinfo.ru/cl/{Path}/api/?command=".urlencode('{"param1": "{$param1}", "param2": "{$param2}", "param3": "{$param3}"}'),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_POSTFIELDS => "",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err)
echo "cURL Error #:" . $err;
else
echo $response;
**Пример запросов на JavaScript:**
const data = null;
const xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE)
console.log(this.responseText);
});
xhr.open("GET", '//himinfo.ru/cl/{Path}/api/?command=' + encodeURIComponent('{"param1": "' + param1.val() + '", "param2": "' + param2.val() + '", "param3": "' + param3.val()+ '"}');
xhr.send(data);
**Пример запросов на jQuery:**
Функция __encodeURIComponent__ выполняется для всех значений параметров команды:
'//himinfo.ru/cl/{Path}/api/?command=' + encodeURIComponent('{"param1": "' + param1.val() + '", "param2": "' + param2.val() + '", "param3": "' + param3.val()+ '"}'),
1) в данном случае метод $.ajax сам выполнит encodeURL:
$.ajax({
'url': '//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': '//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",
"condition_id": "",
"condition_name": "",
"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 - если сотрудник химчистки еще не подтвердил заказа, но мы ждем это);\\
//condition_id - ID состояния, с версии Агбис.Химчистки 4.4.0;\\
//condition_name - наименование состояния, с версии Агбис.Химчистки 4.4.0;\\
**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",
"condition_id": "",
"condition_name": "",
"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// – статус заказа.\\
//condition_id - ID состояния, с версии Агбис.Химчистки 4.4.0;\\
//condition_name - наименование состояния, с версии Агбис.Химчистки 4.4.0;\\
**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** – массив выездов по заказу; Только в статусах 0 - новый, 3 - Принял, 4 - В пути\\
//id// - ID выезда;\\
//tp// - тип выезда;\\
//dt// - дата выезда;\\
//hr// - час выезда;\\
//mn// - минуты выезда;\\
//to_hr// - час до которого длится выезд;\\
//to_mn// - минуты до которого длится выезда;\\
//address// - адрес выезда;\\
//comment// - комментарий;\\
//sclad_id// - ID склада выезда;\\
//mp_status_id// - ID статус выезда (0 - новый, 3 - Принял, 4 - В пути);\\
**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**//
----
===== Список фотографий по заказу. OrderImagesModern =====
**Команда:** %%OrderImagesModern%%
Команда получения списка всех картинок по заказу, **использовать с параметром only_photo_id=1**.
Для получения самой фотографии, используется команда [[api#фотографии_по_заказу_photoonline|PhotoOnline]].
Метод отправки: **GET**
Формат запроса: %%OrderImagesModern={"dor_id":"12345"}&SessionID=%%
Строка запроса: .../api/?OrderImagesModern=%7B%22dor_id%22:%2212345%22%7D&SessionID=...
где\\
//dor_id// – ID заказа, **обязательный параметр**;\\
//only_photo_id// - в ответе будет список без картинок (0 - с фотографиями, 1 - без фотографий, **обязательный параметр**;\\
//SessionID// - ID клиентской или пользовательской сессии, **обязательный параметр**.
Ответ **json**:
{
"error":0,
"photos":[
{
"dos_id": "100229859",
"photo_id": "1004",
"img": "R0lGODlhEgAMAOZaACtTezxtnyBEaI2t0lNzlVZ1lzZbgpSz1zJYgJOx1lJ+rS1VfT5ih0p4qIipz1Bwk1Fxkz9voYanzoKkyyxUfFRzlWOLt0BxokdpjTFYfy9WfpCv1GuSvXSZw0Jlik5ukUVojFV0lkRzpEFxonGXwUx6qVZ1lkNzo0l3p46t01qFsn6hyFmEsjhdhDZcgj9jiFSAro+u0zhqnSpSeoeozmKLtzNZgExtkD1unzhdg3GXwFN/rVZ0llN/rl+JtWSNuUlrjn+iykxtkS5WfZKx1jZcg5Kx1Xufx5Kw1TprnVaBr3mdxUh3pzxhhjlehUpsj2OMuFeCsD5iiDdcgylRejpfhSZPeDNmmZWz11d2l////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NjQyQjc1OThCRUJEMTFFNUFDRkVGNDdBMzUyNUUwMjQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NjQyQjc1OTlCRUJEMTFFNUFDRkVGNDdBMzUyNUUwMjQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2NDJCNzU5NkJFQkQxMUU1QUNGRUY0N0EzNTI1RTAyNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2NDJCNzU5N0JFQkQxMUU1QUNGRUY0N0EzNTI1RTAyNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAXSAFoALAAAAAASAAwAAAd6gFZXg4SFhleCATpYjI2OjCQBgxIXUI+PPxcSg1gDKEpElwlRTANYnFhGMA0pjjElO0iMqIw1IzSMDic+B420WB09AStBOAodjqgHFhETR0kySxMRFr2nV1gbCg2mjwMNChvXDiIqCZeMCSwiDoMBHOiPHJKCh/aDVoEAIfkEBTwAWgAsAAAAABIADAAAB3eAAlaDhIWGVoIAIFmMjY6MIACDDwtSj48vCw+DWQQZOQWXBS0ZBFmcWSZTCBWOFTYuPIyojAyajBBDTY60WRhFADdCAAYYvFaNDBQfTzNUQB8UDI2cIQYIpo8ECAYhp1YQGlWhl1kFThoQgwAe5Y8ekoKH84MCgQA7"
}
]
}
где\\
**photos** – массив объектов картинок:\\
//dos_id// - ID услуги;\\
//photo_id// - ID фотографии;\\
//img// – фотография услуги в строке Base64, **устаревший параметр**.
----
===== Фотографии по заказу. PhotoOnline =====
**Команда:** %%PhotoOnline%%
Команда получения фотографии по заказу
Метод отправки: **GET**
Формат запроса: %%PhotoOnline={"photo_id":"12345","dos_id":"1234567"}&SessionID=%%
Строка запроса: .../api/?PhotoOnline=%7B%22photo_id%22:%2212345%22,%22dos_id%22:%221234567%22%7D&SessionID=...
где\\
//photo_id// - ID фото из услуги, **обязательный параметр**;\\
//dos_id// - ID услуги из заказа, **обязательный параметр**;\\
//SessionID// - сессия, **обязательный параметр**.
В ответ вернется картинка с типом заголовка:
//Content-Type: image/png//
----
===== Оплата депозитом. 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": "",
"image_id": "0",
"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// - краткое наименование;\\
//image_id// - ID картинки услуги;\\
//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","folders":"1,2,3","lang_id":"0"}%%
Строка запроса: .../api/?ReceptionCenters=%7B%22with_photo%22%3A%221%22%2C%22folders%22%3A%221%2C2%2C3%22%2C%22lang_id%22%3A%220%22%7D
где\\
//with_photo// - признак получать список приемных пунктов с фото (не обязательный); \\
//folders// - список групп приёмных пунктов (не обязательный);\\
//lang_id// - язык перевода (не обязательный);\\
Ответ **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": "",
"district_id":"1002",
"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// - ближайшее метро до склада;\\
//district_id// - номер района;\\
//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).\\
//user_id// - ID экспедитора;\\
//user_name// - Название экспедитора;\\
----
===== Информация по выезду. Trip =====
**Команда:** %%Trip%%
Получение информации по выезду.
Метод отправки: **GET**
Заголовок запроса (Header): не требуется.
Формат запроса: %%Trip={"id":"1234"}&SessionID=%%
Строка запроса: .../api/?Trip=%7B%22id%22%3A%221234%22%7D&SessionID=...
где\\
//id// - ID выезда.
Ответ **json**:
{
"error": 0,
"id": "10090",
"tp": "2",
"dt": "22.04.2021",
"hr": "7",
"sclad_id": "10010",
"address": "",
"comment": "",
"sclad_plan_to": "",
"kind_id": "1",
"contr_id": "",
"control_user_id": "",
"region_id": "",
"mn": "",
"to_hr": "8",
"to_mn": "",
"house": "",
"room": "",
"level_room": "",
"geo_location": "",
"entrance": "",
"intercom": "",
"contr_address_id": "",
"messages": [
{
"mess_id": "10085",
"parent_id": "",
"user_id": "",
"message_type_id": "7",
"barcode": "45893254",
"dttm": "24.12.2019%2018:05:53",
"comm": "",
"contr_id": "10013",
"sclad_id": "10010",
"firm_id": "",
"warn_group_id": "",
"count_things": "",
"sms_tel": "",
"dor_id": "1001091"
}
],
"orders": [
{
"dor_id": "1001448",
"debet": "0",
"kredit": "850",
"date_out": "22.04.2021%2017:00:00",
"kind_id": "3",
"order_num": "",
"status_id": "1",
"sclad_kredit_id": "10010",
"message_id": "",
"doc_num": "000082",
"contragent_id": "100484065",
"firm_id": "11"
}
]
}
где\\
//id// - ID выезда;\\
//tp// - тип выезда (0 - забрать, 1 - доставить);\\
//dt// - дата выезда;\\
//hr// и //mn// - час и минута начала выезда;\\
//to_hr// и //to_mn// - час и минута окончания выезда;\\
//sclad_id// – ID мобильного склада;\\
//address// - адрес выезда;\\
//comment// - комментарий к выезду;\\
//sclad_plan_to// – ID склада для выезда;\\
//kind_id// - тип выезда (1 - Выезд по заказу, 2 - выезд по клиенту, 3 - выезд по складу);\\
//contr_id// – ID клиента;\\
//control_user_id// - ID диспетчера;\\
//region_id// – ID региона (команда Regions);\\
//house// - дом;\\
//room// - квартира;\\
//level_room// - этаж;\\
//geo_location// - координаты;\\
//entrance// - подъезд;\\
//intercom// - домофон;\\
//contr_address_id// - ID адреса клиента;\\
**messages** - информация по мешкам у выезда, массив объектов:\\
//mess_id// - ID мешка;\\
//user_id// - ID пользователя;\\
//message_type_id// - тип сообщения (7 - мешок);\\
//barcode// - номер мешка;\\
//dttm// - дата принятия мешка;\\
//comm// - комментарий;\\
//contr_id// - ID клиента;\\
//sclad_id// - ID склада;\\
//firm_id// - ID фирмы;\\
//warn_group_id// - группа предупреждения;\\
//count_things// - количество вещей;\\
//sms_tel// - телефон клиента из заказа;\\
//dor_id// - ID заказа;\\
**orders** - список заказов, массив объектов:\\
//dor_id// - ID заказа;\\
//kredit// - сумма заказа;\\
//debet// - оплачено;\\
//date_out// - дата выдачи;\\
//kind_id// – тип заказа (0 – заказ химчистки, 1- прачечный заказ, 2 – продажа товаров, 4 – выездной заказ);\\
//order_num// - номер БСО;\\
//status_id// – ID статуса заказа (1 – новый, 3 – в исполнении, 4 – исполненный, 5 - выданный);\\
//sclad_kredit_id// - ID склад приема заказа;\\
//message_id// - ID сообщения, на основе которого создан заказ;\\
//doc_num// - номер заказа;\\
//contragent_id// - ID клиента;\\
//firm_id// - ID фирмы.
----
===== Свободное время начала выезда на дату. 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", "dor_id":"12345"}&SessionID=...%%
где\\
//PromoCode// - активируемый промо-код, **обязательный параметр**;\\
//dor_id// – ID заказа (для проверки кол-ва заказов клиента), **необязательный параметр**.\\
Строка запроса: .../api/?PromoCodeActivate=%7B%22PromoCode%22%3A%22123%22%7D&%7B%22dor_id%22%3A%2212345%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).
----
====== Устаревшие команды ======
В данном разделе находятся уже устаревшие команды, но еще работающие.
Через несколько лет они будут удалены.
Для избежания поломки уже интегрированных устаревших команд, рекомендуется сделать переход на соответствующую актуальную команду.
----
===== Фотографии заказа. 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.
----
====== Список команд ======
|**Команда** |**Описание**|
|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" - удалить текущий адрес.\\ Обязательный параметр: "city_id" - город \\ \\ Необязательные параметры "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 |