====== Коммерческое API ======
===== Административное API версии 1.0 =====
==== Описание API ====
%%API%% позволяет реализовать создание и редактирование заказов, добавление оплаты в заказ, создание и изменение клиентов, получение изменившихся заказов и клиентов и др.
----
==== Схема работы API ====
{{:работа_api.drawio.png?direct&600 |}}\\
----
==== Формат команд ====
Все значения параметров команд должны быть преобразованы, **через js encodeURIComponent, через php urlencode или подобные функции**.
**Пример:**
//himinfo.ru/cl/{Path}/api/?command={"key":"value"}&SessionID=...&callback=...
**Преобразованный пример:**
//himinfo.ru/cl/{Path}/api/?command=%7B%22key%22%3A%22value%22%7D&SessionID=...&callback=...
где:\\
* //{Path}// - имя для Химчистки. Для получения этого параметра обратитесь в Клиентский сервис;
* //command// - название выполняемой команды;
* //{"key": "value"}// - параметры команды (значение=ключ). Представляет собой текстовую аналогию записи объекта на JS;
* //SessionID// - __в зависимости от команды **обязательный** параметр__. Указывает ID сессии для выполнения команды. Выдается при выполнении команды авторизации;
* //callback// - необязательный параметр. Указывает на имя процедуры для jsonP, которое вернется в ответе с json строкой.
//**В ответе на запрос могут присутствовать поля, не описанные в настоящей документации. Приложению следует их игнорировать.**//
----
=== Коды ошибок API ===
|**Код ошибки**|**Текст ошибки** |**Описание** |
|100 |Ошибка подключения к БД1 | |
|101 |Ошибка выполнения запроса1| |
|102 |Слишком частые запросы | |
|103 |Отсутствуют команды на выполнение. |Не правильно была сформирована API команда или такой не существует.|
|104 |Отсутствуют параметры команды |Не правильно указаны параметры в команде API. |
|105 |Некорректные данные |Не правильный формат данных в параметрах команды API. |
|106 |Недействительный SessionID | |
1 - обратиться к разработчикам Агбис.
----
===== Команды =====
----
[[#Авторизация. Login|Авторизация. Login]]\\
[[#Проверка валидности сессии. ValidSessionID|Проверка валидности сессии. ValidSessionID]]\\
[[#Обновление ID сессии. RefreshSession|Обновление ID сессии. RefreshSession]]\\
[[#Выход. Logout|Выход. Logout]]\\
[[#Просмотр статистики количества выполненных запросов через записывающие команды API. ExecutedApiCount|Просмотр статистики количества выполненных запросов через записывающие команды API. ExecutedApiCount]]\\
----
==== Справочная информация ====
[[#Группы клиентов. ContrTree|Группы клиентов. ContrTree]]\\
[[#Прайс-лист. PriceList|Прайс-лист. PriceList]]\\
[[#Группы прайс-листа. PriceTree|Группы прайс-листа. PriceTree]]\\
[[#Дополнительные реквизиты. AddonTypes|Дополнительные реквизиты. AddonTypes]]\\
[[#Комплекты доп. реквизитов. AddonPacks|Комплекты доп. реквизитов. AddonPacks]]\\
[[#Регионы (районы). Regions|Регионы (районы). Regions]]\\
[[#Списки ВДС и ДС. GetListsVdsDsForAll|Списки ВДС и ДС. GetListsVdsDsForAll]]\\
[[#Списки срочности, виды детской одежды и наценки. GetListsOrderTNDForAll|Списки срочности, виды детской одежды и наценки. GetListsOrderTNDForAll]]\\
----
==== Работа с клиентами ====
[[#Создание, изменение клиента. ContragForAll|Создание, изменение клиента. ContragForAll]]\\
[[#Информация по клиенту. ContrInfoForAll|Информация по клиенту. ContrInfoForAll]]\\
[[#Информации по клиенту. ContragInfoForAll|Информации по клиенту. ContragInfoForAll]]\\
[[#Пополнение бонусного счета клиента. AddBonusForAll|Пополнение бонусного счета клиента. AddBonusForAll]]\\
[[#Список бонусов клиента за период. BonusesBetweenForAll|Список бонусов клиента за период. BonusesBetweenForAll]]\\
----
==== Работа с заказами ====
[[#Сохранение заказа. SaveOrderForAll|Сохранение заказа. SaveOrderForAll]]\\
[[#Изменение заказа. UpdateOrderForAll|Изменение заказа. UpdateOrderForAll]]\\
[[#Изменение статуса заказа. ChangeStatusOrdersForAll|Изменение статуса заказа. ChangeStatusOrdersForAll]]\\
[[#Создание выезда. TripOrder|Создание выезда. TripOrder]]\\
[[#Информация по выезду. Trip|Информация по выезду. Trip]]\\
[[#Информация по заказу. OrderInfoForAll|Информация по заказу. OrderInfoForAll]]\\
[[#Квитанция. Receipt|Квитанция. Receipt]]\\
[[#Квитанция. ReceiptOnline|Квитанция. ReceiptOnline]]\\
[[#Список заказов за период. OrdersBetweenForAll|Список заказов за период. OrdersBetweenForAll]]\\
[[api#фотографии_по_заказу_photoonline|Фотографии по заказу. PhotoOnline]].
----
==== Работа с услугами ====
[[#Сохранение фотографии в услуге. SetOrderImagesForAll|Сохранение фотографии в услуге. SetOrderImagesForAll]]\\
[[#Накладные в пути. DocsInWayBetweenForAll|Накладные в пути. DocsInWayBetweenForAll]]\\
----
==== Оплаты заказов ====
[[#Оплата заказа. PayForAll|Оплата заказа. PayForAll]]\\
[[#Возврат средств. ReturnPayForAll|Возврат средств. ReturnPayForAll]]\\
[[#Список оплат за период. OrderPaysBetweenForAll]]
----
==== Статистическая информация ====
[[#Получение изменившихся заказов и клиентов|Получение изменившихся заказов и клиентов]]\\
[[#Получения списка заказов, измененных в указанный промежуток времени. OrderByDateTimeForAll|Получения списка заказов, измененных в указанный промежуток времени. OrderByDateTimeForAll]]\\
[[#Получения списка клиентов измененные в указанный промежуток времени. ClientsByDateTimeForAll|Получения списка клиентов измененные в указанный промежуток времени. ClientsByDateTimeForAll]]\\
[[#Список изменившихся ID заказов. LastChangeOrder|Список изменившихся ID заказов. LastChangeOrder]]\\
----
==== Устаревшие команды ====
[[#Получение фотографий услуг. GetOrderImagesForAll|Получение фотографий услуг. GetOrderImagesForAll]]\\
----
===== Авторизация. Login =====
**Команда:** %%Login%%
**Только для Коммерческого API**\\
Общая команда авторизации.\\
__Команда возвращает //Session_id//, который используется в большинстве команд API.__
Метод отправки: **GET**
Заголовок запроса (Header): не требуется.
Формат запроса: %%Login={"User": "Пользователь", "Pwd": "40bd001563085fc35165329ea1ff5c5ecbdbbeef", "AsUser": "1"}%%
Строка запроса:
.../api/?Login=%7B%22User%22%3A+%22%D0%9F%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%22%2C+%22Pwd%22%3A+%2240bd001563085fc35165329ea1ff5c5ecbdbbeef%22%2C+%22AsUser%22%3A+%221%22%7D
где\\
//User// – имя пользователя, **обязательный параметр**;\\
//Pwd// – пароль пользователя (преобразованный через SHA-1) , **обязательный параметр**;\\
**__В качестве User / Pwd используются данные (логин/пароль) пользователя Агбис.Химчистка__** (в программе Агбис.Химчистка, меню «Справочники»-«Пользователи»).\\
{{ :1111111.png?direct&600 |}}
__Рекомендуется создать отдельного пользователя для работы с API.__\\
//AsUser// – признак пользователя коммерческого api (равен 1), **обязательный параметр**.
Ответ **json**:
{
"error": 0,
"Session_id": "0BE170AB-86AF-441F-8523-8C960EA3EC4E",
"Refresh_id": "D1FE260A-1EE3-4DE8-B854-6B68AA44E4A4",
"User_ID": "123"
}
где\\
//Session_id// – ID сессии. Время жизни сессии 10 минут;\\
//Refresh_id// – ключ обновления сессии без авторизации;\\
//User_ID// – ID пользователя.
Сессия активна в течении **10 мин**. После будет возвращен код ошибки error = 3, после чего нужно выполнить команду **RefreshSession** и повторить команду снова.
----
===== Проверка валидности сессии. ValidSessionID =====
**Команда:** %%ValidSessionID%%
Проверка валидности SessionID.
Метод отправки: **GET**
Формат запроса: %%ValidSessionID&SessionID=%%
Строка запроса: .../api/?ValidSessionID&SessionID=...
где\\
//SessionID// – GUID проверяемой сессии.
Ответ **json**:
{
"error": 0,
"user_id": "123"
}
где\\
//user_id// – ID пользователя, которому принадлежит сессия.
----
===== Обновление ID сессии. RefreshSession =====
**Команда:** %%RefreshSession%%
Метод отправки: **GET**
Заголовок запроса (Header): не требуется.
Формат запроса: %%RefreshSession={"Refresh_ID": "D1FE260A-1EE3-4DE8-B854-6B68AA44E4A4"}%%
Строка запроса: .../api/?RefreshSession=%7B%22Refresh_ID%22%3A+%22D1FE260A-1EE3-4DE8-B854-6B68AA44E4A4%22%7D
где\\
//Refresh_ID// – берется из команды Login, **обязательный параметр**.
Ответ **json**:
{
"error": 0,
"Session_id": "0BE170AB-86AF-441F-8523-8C960EA3EC4E",
"Refresh_id": "D1FE260A-1EE3-4DE8-B854-6B68AA44E4A4"
}
где\\
//Session_id// – новый ID сессии;\\
//Refresh_id// – новый ключ обновления сессии без авторизации.
----
===== Выход. Logout =====
**Команда:** %%Logout%%
Выход, завершение работы сессии
Метод отправки: **GET**
Формат запроса: %%Logout&SessionID=%%
Строка запроса: .../api/?Logout&SessionID=...
где\\
//SessionID// - ID сессии, **обязательный параметр**. Возвращает команда авторизации //Login//.
Ответ **json**:
{"error": 0}
где\\
//error// - код выполнения, 0 - успешно, 1 - ошибка;
//Msg// - текст сообщения в случае ошибки.
----
===== Просмотр статистики количества выполненных запросов через записывающие команды API. ExecutedApiCount =====
**Команда:** %%ExecutedApiCount%%
Общая команда просмотра статистики количества выполненных запросов через записывающие команды API.
Метод отправки: **GET**
Заголовок запроса (Header): не требуется.
Формат запроса: //%%ExecutedApiCount%%//
Строка запроса: …/api/?ExecutedApiCount
Ответ **json**:
{
"error": 0,
"date_list": [
{
"date": "02.12.2017",
"count": "15"
},
{
"date": "03.12.2017",
"count": "35"
},
{
"date": "04.12.2017",
"count": "5"
}
]
}
где\\
//date// – дата;\\
//count// – количество запросов.
----
===== Группы клиентов. ContrTree =====
**Команда:** %%ContrTree%%
Получение списка групп клиентов.
Используется, например, если необходимо воспроизвести группы клиентов из Агбис.Химчистка
Метод отправки: **GET**
Заголовок запроса (Header): не требуется.
Формат запроса: %%ContrTree%%
Строка запроса: .../api/?ContrTree
Ответ **json**:
{
"error": 0,
"list": [
{
"folder_id": "21",
"parent_id": "",
"name": "%D0%9A%D0%BB%D0%B8%D0%B5%D0%BD%D1%82%D1%8B"
},
{
"folder_id": "24",
"parent_id": "21",
"name": "%D0%A7%D0%B0%D1%81%D1%82%D0%BD%D1%8B%D0%B5%20%D0%BB%D0%B8%D1%86%D0%B0"
},
{
"folder_id": "25",
"parent_id": "21",
"name": "%D0%9E%D1%80%D0%B3%D0%B0%D0%BD%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8"
}
]
}
где\\
//folder_id// – ID группы;\\
//parent_id// – ID родителя группы;\\
//name// – наименование группы.
----
===== Прайс-лист. PriceList =====
**Команда:** %%PriceList%%
Получение прайс-листа.
Метод отправки: **GET**
Заголовок запроса (Header): не требуется.
Формат запроса: %%PriceList={"price_id":"12"}%%
Строка запроса: .../api/?PriceList=%7B%22price_id%22:%2212%22%7D
где\\
//price_id// – ID прайс-листа, **необязательный параметр**. Если не указан, то по умолчанию выдается розничный прайс-лист;\\
//tovar_type// - тип отображаемой позиции, **необязательный параметр** (0 - все товары и услуги, 1 - только товары, 2 - только услуги).
Ответ **json**:
{
"error": 0,
"price_list":[
{
"id": "1",
"folder_id": "10026",
"tovar_type": "2",
"code": "0",
"name": "%D0%91%D0%BB%D1%83%D0%B7%D0%BA%D0%B0",
"unit": "1%20%D1%88%D1%82",
"price": "132,69",
"group_p": "%D0%A0%D1%83%D0%B1%D0%B0%D1%88%D0%BA%D0%B8",
"top_parent":"%D0%A2%D0%B5%D0%BA%D1%81%D1%82%D0%B8%D0%BB%D1%8C",
"order_addon_pack_id": "5",
"is_price_editable": "1",
"is_not_for_discount": "0",
"is_repair": "0",
"is_percent_price": "0",
"additional_text": "",
"short_name": "",
"index": "",
"price_id": "0"
}
]
}
где\\
**price_list** - содержит строки прайс-листа:\\
//id// – ID услуги/товара в прайс листе;\\
//folder_id// – ID группы услуги/товара;\\
//tovar_type// - тип позиции (1 - товары, 2 - услуги);\\
//code// – артикул;\\
//name// – наименование услуги;\\
//unit// – единица измерения;\\
//price// – цена;\\
//group_c// – группа, где лежит услуга;\\
//group_p// – родительская группа, группы услуги;\\
//top_parent// – верхняя группа;\\
//order_addon_pack_id// – номер комплекта доп. реквизитов;\\
//price_id// - ID прайс-листа;\\
//is_price_editable// - признак цена редактируемая в заказе;\\
//is_not_for_discount// - признак не распространять скидки;\\
//is_repair// - признак ремонт;\\
//is_percent_price// - рассчитывать цену как процент от другой услуги;\\
//additional_text// - дополнительная информация;\\
//short_name// - краткое наименование;\\
//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// – комментарий.
----
===== Дополнительные реквизиты. AddonTypes =====
**Команда:** %%AddonTypes%%
Получение доп. реквизитов.
Метод отправки: **GET**
Формат запроса: %%.../api/?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** - Массив для выбора строк у доп. реквизита (при value_type = 1 и 7):\\
//id// - ID строки;\\
//value_str// - строковое описание;\\
//value_flt// - числовое значение.
----
===== Комплекты доп. реквизитов. AddonPacks =====
**Команда:** %%AddonPacks%%
Получение комплектов доп. реквизитов.
Метод отправки: **GET**
Формат запроса: %%.../api/?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**.
----
===== Регионы (районы). Regions =====
**Команда:** %%Regions%%
Получение списка регионов.
Метод отправки: **GET**
Заголовок запроса (Header): не требуется.
Формат запроса: %%Regions%%
Строка запроса: .../api/?Regions
Ответ **json**:
{
"error":0,
"regions":[
{
"id":"1002",
"name":"test"
},
...
]
}
где\\
**regions** - массив объектов регионов:\\
//id// – ID региона;\\
//name// – наименование региона.
----
===== Списки ВДС и ДС. GetListsVdsDsForAll =====
**Команда:** %%GetListsVdsDsForAll%%
Получение списков активных Внешних дисконтных схем (ВДС) и дисконтных схем (ДС), которые __доступны для всех клиентов.__
Метод отправки: **GET**
Заголовок запроса (Header): не требуется.
Формат запроса: %%GetListsVdsDsForAll&SessionID=%%
Строка запроса: .../api/?GetListsVdsDsForAll&SessionID=
Ответ **json**:
{
"error": 0,
"vds": [
{
"id": "100100100183",
"title": "100100100183",
"type_of_scheme": "0",
"type_of_action": "0",
"comment": "",
"is_active": "1",
"type_of_zeroing": "0",
"forbid_reuse": "0",
"block_used_bar": "0",
"action_time": "3",
"active_with": "",
"active_to": "",
"condition_id": "1",
"summ_discount": "0",
"is_add_bonus_ones": "0",
"bonus_end_dt": "",
"bonus_active_before": "",
"bonus_day_active": "",
"max_percent_in_zakaz": "",
"select_vds_id": "",
"bonus_one_time": "0",
"bonus_tp": "0",
"bonus_summ": "",
"is_for_sclads": "1",
"discount": "0",
"is_disc_for_folders": "1",
"is_for_tovar": "1",
"active_times": [
{
"day_of_week": "2",
"is_active": "1",
"time_first": "00%3A00%3A00",
"time_last": "23%3A59%3A00"
},
{
"day_of_week": "3",
"is_active": "1",
"time_first": "00%3A00%3A00",
"time_last": "23%3A59%3A00"
},
{
"day_of_week": "4",
"is_active": "1",
"time_first": "00%3A00%3A00",
"time_last": "23%3A59%3A00"
},
{
"day_of_week": "5",
"is_active": "1",
"time_first": "00%3A00%3A00",
"time_last": "23%3A59%3A00"
},
{
"day_of_week": "6",
"is_active": "1",
"time_first": "00%3A00%3A00",
"time_last": "23%3A59%3A00"
},
{
"day_of_week": "7",
"is_active": "1",
"time_first": "00%3A00%3A00",
"time_last": "23%3A59%3A00"
},
{
"day_of_week": "1",
"is_active": "1",
"time_first": "00%3A00%3A00",
"time_last": "23%3A59%3A00"
}
],
"sclads": ["10010","10013"],
"discounts_service_groups": [
{
"folder_id": "10015",
"parent": "",
"discount": "44"
}
],
"discounts_services": [
{
"tovar_id": "10018",
"discount": "10",
"price_before": "1000",
"price_after": "900",
"fix_price": "0"
}
],
"promo_codes": [
{
"promo_code_id": "10021",
"code": "10334",
"price_list_id": "",
"is_active": "1"
}
]
}
],
"ds": [
{
"id": "4",
"title": "3%25%20%D0%9D%D0%B0%D0%BA%D0%BE%D0%BF%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F%203-15%25"
}
]
}
где\\
//error// – статус выполнения (0 – нет ошибки, 1 – ошибка, 2 – не авторизирован, 3 - авторизация просрочена);\\
**vds** – массив строк внешних дисконтных схем:\\
//id// - ID ВДС;\\
//title// - наименование ВДС;\\
//type_of_scheme// - тип схемы ВДС (0 - Скидка, 1 - Начисление бонуса);\\
//type_of_action// - вид действия ВДС (0 - По префиксу штрих-кода в заказе, 1 -По штрихкоду в заказе, 2 - При начислении депозита);\\
//forbid_reuse// - запретить повторное использование ВДС разными клиентами;\\
//block_used_bar// - блокировать повторное использование ШК;\\
//comment// - комментарий;\\
//is_active// - активность ВДС;\\
//type_of_zeroing// - тип обнуления (0 - Не обнулять, 1 - Для всех услуг, 2 - Для тех услуг, которые участвуют);\\
//action_time// - действие ВДС (0 - Всегда, 1 - Только раз в месяц, 2 - Только раз, 3 - В период времени);\\
//active_with// - действует ВДС начиная с указанной даты, при //action_time// - 3;//
//active_to// - действует ВДС заканчивая до указанной даты, при //action_time// - 3;//
//condition_id// - применяется к Ко всем клиентам и заказам - 1, К клиентам, которые созданы сегодня - 2, В течение дня создания первого заказа - 3, На первый заказ - 4;\\
//summ_discount// - вид суммирования (0 - Использовать глобальные настройки, 1 - Суммировать, 2 - Не суммировать);\\
//is_add_bonus_ones// - признак начислять бонус 1 раз каждому клиенту;\\
//bonus_end_dt// - начислять бонусы до указанной даты;\\
//bonus_active_before// - начисленные бонусы действуют до указанной даты;\\
//bonus_day_active// - или действуют несколько дней с момента активации, вместо //bonus_active_before//;\\
//max_percent_in_zakaz// - максимальный процент оплаты заказа;\\
//select_vds_id// - оплачивать при выбранной ВДС (ID ВДС);\\
//bonus_one_time// - только разовое использование для начисленных бонусов;\\
//bonus_tp// - начислять бонус: С фиксированной суммой - 0, При выдаче заказа как процент от суммы заказа - 1, Дифференцированное начисление бонуса(цена) - 2, Дифференцированное начисление бонуса(процент) - 3, При выдаче заказа, рассчитанный по скрипту - 4;\\
//bonus_summ// - сумма бонуса;\\
//is_for_sclads// - действует только для складов;\\
//discount// - скидка по умолчанию на все группы услуг;\\
//is_disc_for_folders// - разная скидка по группам услуг;\\
//is_for_tovar// - Скидка по услугам;\\
**active_times** - массив строк времени действия:\\
//day_of_week// - день недели;\\
//is_active// - активено;\\
//time_first// - время начала;\\
//time_last// - время окончания;\\
**sclads** - Массив ID складов, где применяется ВДС;\\
**discounts_service_groups** - массив строк скидок по группам услуг:\\
//folder_id// - ID группы услуги;\\
//parent// - ID родителя группы услуги //folder_id//;\\
//discount// - скидка применяемая на группу услуги;\\
**discounts_services** - массив строк скидок по услугам:\\
//tovar_id// - ID услуги/товара;\\
//discount// - скидка;\\
//fix_price// - фиксированная цена;\\
//price_before// - цена до применения скидки;\\
//price_after// - цена после применения скидки;\\
**promo_codes** - массив строк промо-кодов ВДС:\\
//promo_code_id// - ID промокода;\\
//code// - промо-код;\\
//price_list_id// - ID прайс-листа промо-кода;\\
//is_active// - активность промо-кода;\\
**ds** – массив строк дисконтных схем:\\
//id// - ID ДС;\\
//title// - наименование ДС.\\
----
===== Списки срочности, виды детской одежды и наценки. GetListsOrderTNDForAll =====
**Команда:** %%GetListsOrderTNDForAll%%
Получение всех списков срочности, видов детской одежды и наценки.
Метод отправки: **GET**
Заголовок запроса (Header): не требуется.
Формат запроса: %%GetListsOrderTNDForAll&SessionID=%%
Строка запроса: .../api/?GetListsOrderTNDForAll&SessionID=...
где\\
//SessionID// - Сессия, **обязательный параметр**.
Ответ **json**:
{
"error": 0,
"order_dirties": [
{
"id": "1001",
"name": " %D0%9E%D1%87%D0%B5%D0%BD%D1%8C%20%D1%81%D0%B8%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F%20%D0%B7%D0%B0%D0%B3%D1%80%D1%8F%D0%B7%D0%BD%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D1%8C"
},
{
"id": "1005",
"name": "%D0%A1%D0%B8%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F%20%D0%B7%D0%B0%D0%B3%D1%80%D1%8F%D0%B7%D0%BD%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D1%8C"
}
],
"order_nurseries": [
{
"id": "1001",
"name": "%D0%94%D0%B5%D1%82%D1%81%D0%BA%D0%B0%D1%8F"
},
{
"id": "1002",
"name": "%D0%9D%D0%B5%20%D0%B4%D0%B5%D1%82%D1%81%D0%BA%D0%B0%D1%8F"
}
]
"order_times": [
{
"id": "1002",
"name": "%D0%9D%D0%B5%20%D1%81%D1%80%D0%BE%D1%87%D0%BD%D1%8B%D0%B9"
},
{
"id": "1004",
"name": "%D0%A1%D1%80%D0%BE%D1%87%D0%BD%D1%8B%D0%B9%2024%20%D1%87%D0%B0%D1%81%D0%B0"
}
]
}
где\\
//error// – статус выполнения (0 – нет ошибки, 1 – ошибка, 2 – не авторизирован, 3 - авторизация просрочена);\\
//order_dirties// – массив строк наценки услуг;\\
//order_nurseries// – массив строк видов детской одежды для услуг;\\
//order_times// – массив строк типов срочности заказа;\\
//Msg// – описание ошибки (при error = 1).
----
====== Работа с клиентами ======
===== Создание, изменение клиента. ContragForAll =====
**Команда:** %%ContragForAll%%
Создание, изменение клиента.
Метод отправки: **POST**
Заголовок запроса (Header): **Content-type: application/json; charset=UTF-8**
Строка запроса: .../api/?ContragForAll
Тело запроса тип **json**:
{
"ContragForAll":{
"name": "%D0%A2%D0%B5%D1%81%D1%82%20%D0%90%D0%9C%D0%9E",
"fullname": "%D0%A2%D0%B5%D1%81%D1%82%20%D0%90%D0%9C%D0%9E%20%D0%9A%D0%BE%D0%BD%D1%82%D1%80%D0%B0%D1%81%D1%82",
"teleph_cell": "%2B79990009915",
"barcode": "778855522211",
"gender": "1",
"address": "%D1%82%D0%B5%D1%81%D1%82%201",
"email": "example%40example.com",
"discount": "23,4",
"birthday": "15.02.1980",
"scheme_id": "1001"
},
"SessionID": "0BE170AB-86AF-441F-8523-8C960EA3EC4E"
}
где\\
//contr_id// – ID клиента, если указано поле, то будет поиск этого клиента для изменения, **не обязательный параметр**.\\
//name// – короткое имя (например: Иванов И.И.), **обязательный параметр**;\\
//fullname// – полное имя (например: Иванов Иван Иванович), **обязательный параметр**;\\
//contrag_type// – тип клиента (1 – организации; 2 – частные лица; 3 – Организации по договорам; по умолчанию 1), **не обязательный параметр**;\\
//teleph_cell// – сотовый телефон (обязательно в начале должен присутствовать символ +, кодируется символами - %2B), **не обязательный параметр**;\\
//telephone// – городской телефон, **не обязательный параметр**;\\
//barcode// – номер карты, **не обязательный параметр**;\\
//gender// – пол клиента (0-мужской, 1-женский), **не обязательный параметр**;\\
//address// – адрес, **не обязательный параметр**;\\
//email// – элек. почта, **не обязательный параметр**;\\
//discount// - скидка(разделитель запятая), **не обязательный параметр**;\\
//birthday// – день рождения (формат dd.mm.yyyy), **не обязательный параметр**;\\
//agree_to_receive_sms// – согласие на отправку сервисных смс, **не обязательный параметр**;\\
//agree_to_receive_adv_sms// – согласие на отправку рекламных смс, **не обязательный параметр**;\\
//agree_to_receive_adv_email// - согласие на отправку рекламных email, **не обязательный параметр**;\\
//scheme_id// – ID ДС, (берется из команды GetListsVdsDsForAll, массив строк ds), **не обязательный параметр**;\\
//SessionID// – ID сессии.
Для всех значений ключей json строки делается URI кодирование (например, можно использовать метод javascript **encodeURIComponent**).
Ответ **json**:
{
"error": 0,
"contr_id": "12345",
"WasNew": "1"
}
где\\
//error// – статус выполнения (0 – нет ошибки, 1 – ошибка, 2 – не авторизирован, 3 - авторизация просрочена);\\
//contr_id// – ID созданного клиента в Агбис;\\
//WasNew// – признак добавления клиента (1 – добавлен как новый, 0 – обновленсуществующий).\\
//Msg// – описание ошибки (при error = 1).
----
===== Информация по клиенту. ContrInfoForAll =====
**Команда:** %%ContrInfoForAll%%
Получение информации по клиенту.
Метод отправки: **GET**
Заголовок запроса (Header): не требуется.
Формат запроса: %%ContrInfoForAll={"contr_id":"12345"}&SessionID=BBAB6C13-A9BE-4159-8A0C-332F813A7B49%%
Строка запроса: .../api/?ContrInfoForAll=%7B%22contr_id%22:%2212345%22%7D&SessionID=BBAB6C13-A9BE-4159-8A0C-332F813A7B49
где\\
//contr_id// – ID клиента, **обязательный параметр**.
Ответ **json**:
{
"error": 0,
"png": "EB831E9B-472E-4D30-9AAF-20296E6D0017",
"dor_id": "12345",
"contr_id":"10013",
"name":"%D0%90%D0%B3%D0%B1%D0%B8%D1%81+%D0%A2%D0%B5%D1%81%D1%82+%D0%A2%D0%B5%D1%81%D1%82%D0%BE%D0%B2%D0%B8%D1%87","short_name":"%D0%90%D0%B3%D0%B1%D0%B8%D1%81",
"fone":"",
"fone_cell":"%2B79990009900",
"email":"test@test.com",
"folder_id": "24",
"agree_to_receive_sms":"1",
"agree_to_receive_adv_sms":"1",
"address":"%D0%9D%D0%BE%D0%B2%D0%BE%D0%BA%D1%83%D0%B7%D0%BD%D0%B5%D1%86%D0%BA,+123-+4",
"barcode":"1600000100138",
"discount":"0",
"scheme_id": "",
"discount_scheme_name": "",
"is_family": "0",
"gender":"0",
"sp":"2",
"source":"",
"last_discount":"15",
"region_id":"",
"full_orders_cost":"693942,49",
"order_not_pay":"72",
"order_count":"114",
"deposit":"0",
"bonus":"1237,75",
"dolg":"520504,4",
"promo_code":"P2HZ3",
"lng":"RU",
"need_confirm_contract":"0",
"version_contract":"0",
"birth_day":"01.10.1974",
"addresses":[],
"date_last_ds": "28.06.2022 13:52:08"
}
Где\\
//error// - успешность выполнения команды;\\
//contr_id// – ID клиента;\\
//name// - имя клиента;\\
//fone// - обычный телефон;\\
//fone_cell// - сотовый телефон;\\
//email// - электронная почта;\\
//folder_id// - ID группы клиента;\\
//address// - адрес клиента;\\
//agree_to_receive_sms// - согласен получать СМС о готовности заказов;\\
//agree_to_receive_adv_sms// - согласен получать рекламные и поздравительные СМС;\\
//barcode// - номер карточки клиента;\\
//discount// - процент скидки клиента;\\
//scheme_id// - ID дисконтной схемы;\\
//discount_scheme_name// - Наименование дисконтной схемы;\\
//is_family// - признак семейная скидка;\\
//source// - любой текст;\\
//agree_save_card_pay// – согласие клиента на сохранение карты оплаты;\\
//birth_day// – дата рождения;\\
//bonus// – остаток бонуса клиента;\\
//deposit// – остаток депозита клиента;\\
//dolg// – сумма долга клиента;\\
//gender// – пол клиента (0-мужской, 1-женский);\\
//order_count// – количество заказов;\\
//order_not_pay// – количество не оплаченных заказов;\\
//promo_code// – используемый промо-код;\\
//region_id// – район;\\
//sp// – тип клиента (1- организация, 2- физическое лицо);\\
//date_last_ds// - дата присвоения последней ДС.
----
===== Информации по клиенту. ContragInfoForAll =====
**Команда:** %%ContragInfoForAll%%
Получение информации о клиенте по телефону.
Метод отправки: **GET**
Заголовок запроса (Header): не требуется.
Формат запроса: %%ContragInfoForAll={"teleph_cell":"+79990009900"}&SessionID=%%
Строка запроса: .../api/?ContragInfoForAll=%7B%22teleph_cell%22%3A%22%2B79990009900%22%7D&SessionID=...
где\\
//teleph_cell// - номер телефона, **обязательный параметр**.
Ответ **json**:
{
"error": 0,
"contr_id": "10057",
"fullname": "%D0%A2%D0%B5%D1%81%D1%82+%D0%90%D0%9C%D0%9E+%D0%9A%D0%BE%D0%BD%D1%82%D1%80%D0%B0%D1%81%D1%82",
"name": "%D0%A2%D0%B5%D1%81%D1%82+%D0%90%D0%9C%D0%9E",
"teleph_cell": "%2B79990009917",
"email": "example@example.com",
"folder_id": "24",
"address": "%D1%82%D0%B5%D1%81%D1%82+1",
"barcode": "778855522212",
"discount": "23,4",
"gender": "1",
"birthday": "15.02.1980"
}
где\\
//contr_id// – ID клиента;\\
//name// – короткое имя;\\
//fullname// – полное имя;\\
//teleph_cell// – сотовый телефон (обязательно в начале должен присутствовать символ +, кодируется символами - %2B);\\
//barcode// – номер дисконтной карты;\\
//gender// – пол клиента (0-мужской, 1-женский);\\
//address// – адрес;\\
//email// – электронная почта;\\
//folder_id// - ID группы клиента;\\
//discount// - скидка(разделитель запятая);\\
//birthday// – день рождения (формат dd.mm.yyyy);\\
//SessionID// – ID сессии.
----
===== Пополнение бонусного счета клиента. AddBonusForAll =====
**Команда:** %%AddBonusForAll%%
Начисляет на клиента бонусы по ID клиента или по номеру карты.
Может использоваться, например, вознаграждение за первый заказ или регистрацию на сайте
Метод отправки: **GET**
Заголовок запроса (Header): не требуется.
Формат запроса: %%AddBonusForAll={"contr_id":"12345","amount":"125.85","active_before":"25.05.2022","max_percent_in_zakaz":"12.4","bonus_type_id":"1001","comment":"Тест"}&SessionID=%%
где\\
//contr_id// – ID клиента(если не указан, то поиск идет по //barcode//), **обязательный параметр** если не указан barcode;\\
//barcode// – номер карты клиента (если не указан, то поиск идет по //contr_id//), **обязательно поле** если не указан //contr_id//;\\
//amount// – сумма бонусов, **обязательный параметр**;\\
//active_before// - бонус действует до этой даты, **не обязательный параметр**;\\
//max_percent_in_zakaz// - максимальный процент оплаты заказа, **не обязательный параметр**;\\
//bonus_type_id// - ID типа бонусного начисления, **не обязательный параметр**;\\
//comment// - комментарий, **не обязательный параметр**.
Строка запроса: .../api/?AddBonusForAll=%7B%22contr_id%22%3A%2212345%22%2C%22amount%22%3A%22125.85%22%2C%22active_before%22%3A%2225.05.2022%22%2C%22max_percent_in_zakaz%22%3A%2212.4%22%2C%22comment%22%3A%22%D0%A2%D0%B5%D1%81%D1%82%22%7D&SessionID=
Ответ **json**:
{"error":0}
где\\
//error// – статус выполнения (0 – нет ошибки, 1 – ошибка, 2 – не авторизирован, 3 - авторизация просрочена);\\
//Msg// – описание ошибки (при error = 1).
----
===== Список бонусов клиента за период. BonusesBetweenForAll =====
**Команда:** %%BonusesBetweenForAll%%
Получение списка бонусов клиента в указанный промежуток времени.
Данная команда с большими периодами может долго выполнятся, из за большого количества возвращаемых данных и вылетать по timeout!
Рекомендуется в таких случаях уменьшать период.
Метод отправки: **POST**
Заголовок запроса (Header):\\
**Content-type: application/json; charset=UTF-8** - **обязательный параметр**\\
**Accept-Encoding: deflate** - сжатие возвращаемого ответа, **не обязательный параметр**.
Строка запроса: .../api/?BonusesBetweenForAll
Тело запроса тип **json**:
{
"BonusesBetweenForAll":{
"contr_id": "10013",
"StartDate": "01.03.2021",
"StopDate": "30.03.2021"
},
"SessionID": "0BE170AB-86AF-441F-8523-8C960EA3EC4E"
}
где\\
//contr_id// - ID клиента;\\
//StartDate// – дата начала, **обязательный параметр**;\\
//StopDate// – дата окончания, **обязательный параметр**.
Ответ **json**:
{
"error": 0,
"bonuses": [
{
"bonus_id": "100624",
"parent_bonus_id": "",
"doc_date": "03.03.2021",
"doc_time": "11:47:36",
"kredit": "150",
"already_payed": "10",
"bonus_rest": "140",
"active_before": "",
"max_percent_in_zakaz": "",
"one_time": "0",
"comment": "",
"bonus_type_id": "1001",
"bonus_type_name": "1222"
}
],
"bonus_payments": [
{
"id": "100604",
"bonus_id": "100624",
"doc_date": "23.03.2021",
"doc_time": "11:10:21",
"debet": "10",
"dor_id": "1001490",
"doc_num": "000124"
}
]
}
где\\
**bonuses** – массив объектов начислений бонусов;\\
//bonus_id// - ID бонуса;\\
//parent_bonus_id// - ID родительского бонуса, в связке c bonus_id;\\
//doc_date// - Дата начисления бонусов;\\
//doc_time// - Время начисления бонусов;\\
//kredit// - Сумма начисления бонуса;\\
//already_payed// - Потрачено бонуса;\\
//bonus_rest// - Остаток бонуса;\\
//active_before// - Дата до которой действуют бонусы;\\
//max_percent_in_zakaz// - Максимальный процент оплаты бонусами;\\
//one_time// - Признак только разовое использование;\\
//comment// - Комментарий;\\
//bonus_type_id// - ID типа бонусного начисления;\\
//bonus_type_name// - Наименование типа бонусного начисления;\\
**bonus_payments** – массив объектов оплат бонусами;\\
//id// - ID оплаты бонусом;\\
//bonus_id// - ID бонуса, которым оплачивали;\\
//doc_date// - Дата оплаты бонусом;\\
//doc_time// - Время оплаты бонусом;\\
//debet// - Сумма оплаты бонусом;\\
//dor_id// - ID заказа;\\
//doc_num// - номер заказа.
----
====== Работа с заказами ======
===== Сохранение заказа. SaveOrderForAll =====
**Команда:** %%SaveOrderForAll%%
Сохранение заказа.
Метод отправки: **POST**
Заголовок запроса (Header): **Content-type: application/json; charset=UTF-8**
Строка запроса: .../api/?SaveOrderForAll
Тело запроса тип **json**:
{
"SaveOrderForAll":{
"Order":{
"contr_id": "10013",
"doc_num": "233",
"bso": "2233344555",
"doc_date": "29.10.2017",
"fast_exec": "0",
"sclad_id": "1003",
"sclad_out_id": "1005",
"price_id": "2",
"date_out": "30.10.2017 15:25:00",
"vds_id": "1001",
"status_id": "1",
"is_not_confirmed": "0",
"waiting_confirm": "1",
"get_confirm_link": "1"
},
"Services":[
{
"tovar_id": "10018",
"count": "1",
"barcode_serv": "1270000000001",
"kfx": "1",
"discount": "10",
"ext_info": "%D1%82%D0%B5%D1%81%D1%82",
"nursery_id": "3",
"dirty_id": "1",
"status_id": "1",
"addons": [
{
"addon_id":"100243",
"values": "20,3.3,2"
},
{
"addon_id":"100245",
"values": "2|1.3|3|"
}
]
},
{
"tovar_id": "10027",
"count": "2",
"addons": [
{
"addon_id": "111",
"values": "%D0%91%D0%B5%D0%B6%D0%B5%D0%B2%D1%8B%D0%B9%2C%20%D0%96%D1%91%D0%BB%D1%82%D1%8B%D0%B9%2C%20%D0%9A%D0%B0%D1%88%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D1%8B%D0%B9"
},
{
"addon_id": "239",
"values": "EL%20-%20%D1%8D%D0%BB%D0%B0%D1%81%D1%82%D0%B0%D0%BD%2C%20SE%20-%20%D1%88%D0%B5%D0%BB%D0%BA"
},
{
"addon_id": "82",
"values": "1"
},
{
"addon_id": "181",
"values": "%D1%82%D0%B5%D1%81%D1%82%201"
}
]
},
{
"dos_id":"1",
"tovar_id":"10018",
"count":"1",
"is_recalc_disc":"1",
"addons":[]
},
{
"parent_id":"1",
"tovar_id":"10016",
"count":"1",
"addons":[]
},
{
"dos_id":"2",
"tovar_id":"10018",
"count":"1",
"addons":[]
},
{
"parent_id":"2",
"tovar_id":"10016",
"count":"1",
"addons":[]
},
{
"parent_id":"2",
"tovar_id":"100305",
"count":"1",
"addons":[]
}
],
"Comments": [
"%D1%82%D0%B5%D1%81%D1%82%201",
"%D1%82%D0%B5%D1%81%D1%82%202"
]
},
"SessionID": "AFF2413A-CCD9-4392-A0EA-D35DEAD3C84D"
}
где\\
**Order** – объект переменных заказа:\\
//contr_id// – ID клиента, **обязательный параметр**;\\
//doc_num// – номер заказа, **не обязательный параметр**. Номер должен быть вида: XXXX-YY, где XXXX - порядковый номер заказа, YY – номер подразделения; на основе номера заказа формируется автоматически номер бирки услуг; //**без особой необходимости, данный параметр не нужно заполнять**//;\\
**При использовании этого параметра, контроль правильности и последовательности формирования номера заказа ложится на разработчика**;
//bso// – номер для налоговой, **не обязательный параметр**;\\
//doc_date// – дата принятия заказа (формат dd.mm.yyyy), **не обязательный параметр**;\\
//fast_exec// – ID срочности, **не обязательный параметр**. Берется из команды GetListsOrderTNDForAll, массив строк order_times;\\
"creater_id": "1234",<- перенести выше в пример в порядке следования описания, убрав отсюда\\
//creater_id// - ID приемщика заказа, **не обязательный параметр**. По умолчанию используется ID авторизованного пользователя;\\
//sclad_id// – ID склада принятия, **обязательный параметр**;\\
//sclad_out_id// – ID склада выдачи, **обязательный параметр**;\\
"current_sclad_id": "1234",<- перенести выше в пример в порядке следования описания, убрав отсюда\\
//current_sclad_id// - ID текущего склада заказа, **не обязательный параметр**. По умолчанию используется ID склада принятия заказа;\\
//price_id// – ID прайс-листа, **не обязательный параметр**. По умолчанию 0 - "Розничный прайс лист";\\
//date_out// – дата выдачи (формат dd.mm.yyyy HH:MM:SS), **не обязательный параметр**;\\
//vds_id// – ID внешней дисконтной схемы, **не обязательный параметр**. Берется из команды GetListsVdsDsForAll, массив строк vds;\\
//status_id// – ID статус заказа, **не обязательный параметр**. Принимает значения 1 – новый, 3 – в исполнении, 4 – исполненный, 5 – выданный, 7 - отмененный;\\
//waiting_confirm// – признак подтверждения заказа от клиента, **не обязательный параметр**. Принимает значения 0 - не требует подтверждения, по умолчанию; 1- требует подтверждения от клиента; 2 – клиент согласился, подтвержден; 3 - клиент НЕ согласился, отменен;\\
//is_not_confirmed// - признак подтверждения сотрудником химчистки, **не обязательный параметр**. Принимает значения 0 - если сотрудник химчистки уже подтвердил заказ или мы не ждем подтверждения от него, по умолчанию; 1 - если сотрудник химчистки еще не подтвердил заказа, но мы ждем это;\\
//get_confirm_link// - признак получения ссылки на подтверждение заказа вида %%https://agb.is/...%%. Для генерации ссылки должны быть указаны параметры waiting_confirm равным 1 и is_not_confirmed равным 0;\\
//only_with_main_calc_price// - разрешает работу опции "Рассчитывать цену как процент от другой услуги" из карточки номенклатуры в услуге, **не обязательный параметр**;
**Services** – массив объектов услуг (**обязательный параметр**, без услуг создать заказ нельзя):\\
//dos_id// - порядковый номер основной услуги (1, 2, и т.д.), **не обязательный параметр**. Служит **только** для определения привязки дочерней услуги (**комплектной или ремонтной**) к основной по параметру **parent_id**;\\
//parent_id// - порядковый номер родительской услуги (1, 2, и т.д.), **не обязательный параметр**. Служит **только** для определения привязки дочерней услуги (**комплектной или ремонтной**) к основной по параметру **dos_id**;\\
Примеры заполнения **dos_id** и **parent_id** при сохранении нового заказа:\\
{
"dos_id": "1",
"tovar_id": "10018",
"count": "1",
...
},
{
"dos_id": "2",
"parent_id": "1",
"tovar_id": "10018",
"count": "1",
...
},
...
//tovar_id// – ID услуги из прайс-листа (узнать можно из прайс-листа командой PriceList, **см. ниже**), **обязательный параметр**;\\
//count// – кол-во, **обязательный параметр**;\\
//barcode_serv// – ШК услуги, **не обязательный параметр**; **без особой необходимости, данный параметр не нужно заполнять**;\\
**При использовании этого параметра, контроль правильности и последовательности формирования номера ШК услуги ложится на разработчика**;
//kfx// – коэффициент, **не обязательный параметр**;\\
//discount// – скидка услуги, **не обязательный параметр**. Применяется как ручная скидка;\\
//is_recalc_disc// - счет скидки услуги в зависимости от скидки клиента, ДС, распродаж, **не обязательный параметр**. Расчет скидки происходит на стороне сервера, без учета параметра discount;\\
//ext_info// – описание, **не обязательный параметр**;\\
//nursery_id// – ID детской скидки, **не обязательный параметр**. Берется из команды GetListsOrderTNDForAll, массив строк order_nurseries;\\
//dirty_id// – ID наценки, **не обязательный параметр**. Берется из команды GetListsOrderTNDForAll, массив строк order_dirties;\\
//status_id// – ID статус услуги, **не обязательный параметр**. Принимает значения 1 – новый, 3 – в исполнении, 4 – исполненный, 5 – выданный, 7 - отмененный;
"current_sclad_id": "1234",<- перенести выше в пример в порядке следования описания, убрав отсюда\\
//current_sclad_id// - ID текущего склада услуги, **не обязательный параметр**. По умолчанию используется ID склада принятия заказа;\\
**addons** – массив объектов доп. реквизитов (**обязательный параметр**, если не реквизитов для заполнения, указывается пустым []):\\
//addon_id// – ID доп. реквизита, **обязательный параметр**. Узнать можно из команды AddonTypes, **см. ниже**;\\
//values// – значение реквизита (значения перечисляются через разделитель. Для сброса значения реквизита задается пустое значение), **обязательный параметр**;\\
Примеры заполнения **addons** для:\\
* 0 - Целые
{
"addon_id": "123",
"values": "12"
}
* 1 - Строковые
{
"addon_id": "124",
"values": "%D1%82%D0%B5%D1%81%D1%82%201"
}
* 2 - Булевы (1/0)
{
"addon_id": "125",
"values": "1"
}
* 3 - Дата
{
"addon_id": "126",
"values": "12.03.2022"
}
* 5 - С плавающей запятой
{
"addon_id": "127",
"values": "12,3"
}
* 7 - Строковые с ценой и количеством
{
"addon_id": "128",
"values": "20,3.3,2" // Перечисление значений по порядку, через запятую
}
* 8 - Строковые с коэффициентом
{
"addon_id": "129",
"values": "%D1%82%D0%B5%D0%BA%D1%81%D1%82%201"
}
* 9 - Фигура (1 - Квадрат (Пример: 1|3,3|), 2 - Прямоугольник (Пример: 2|1.3|3|), 3 - Круг (Пример: 3|4,8|2.4|), 4 - Овал (Пример: 4|2,3|4,5|))
{
"addon_id": "129",
"values": "2|1.3|3|" // где -> тип|длина|ширина|
}
**Comments** – массив строк комментариев по заказу (**не обязательный параметр**, если комментариев нет, то оставляем пустым []), перечисляются через запятую.
Для всех значений ключей json строки делается URI кодирование (например, можно использовать метод javascript **encodeURIComponent**).
Команда работает через **авторизацию пользователем**.
Ответ **json**:
{
"error": 0,
"dor_id": "12345",
"confirm_link": "https:\/\/agb.is\/..."
}
где\\
//error// – статус выполнения (0 – нет ошибки, 1 – ошибка, 2 – не авторизирован, 3 - авторизация просрочена);\\
//dor_id// – ID созданного заказа в Агбис;\\
//confirm_link// - ссылка на подтверждение заказа, при указанном параметре get_confirm_link = 1;\\
//Msg// – описание ошибки (при error = 1).
----
===== Изменение заказа. UpdateOrderForAll =====
**Команда:** %%UpdateOrderForAll%%
Изменение существующего заказа.
Метод отправки: **POST**
Заголовок запроса (Header): **%%Content-type: application/json; charset=UTF-8%%**
Строка запроса: .../api/?UpdateOrderForAll
Тело запроса тип **json**:
{
"UpdateOrderForAll":{
"Order":{
"dor_id": "55454441",
"doc_num": "233",
"bso": "2233344555",
"doc_date": "29.10.2017",
"fast_exec": "0",
"sclad_id": "1003",
"sclad_out_id": "1005",
"price_id": "2",
"date_out": "30.10.2017 15:25:00",
"vds_id": "1001",
"status_id": "3"
},
"Services":[
{
"tovar_id": "10018",
"count": "1",
"barcode_serv": "1270000000001",
"kfx": "1",
"discount": "10",
"ext_info": "%D1%82%D0%B5%D1%81%D1%82",
"nursery_id": "3",
"dirty_id": "1",
"status_id": "1",
"addons": [
{
"aos_id":"10030547",
"values": ""
},
{
"aos_id":"10030548",
"values": "4|2,3|4,5|"
},
{
"aos_id":"10030549",
"values": "20,3.3,2"
}
]
},
{
"tovar_id": "10027",
"count": "2",
"addons": [
{
"addon_id": "111",
"values": "%D0%91%D0%B5%D0%B6%D0%B5%D0%B2%D1%8B%D0%B9%2C%20%D0%96%D1%91%D0%BB%D1%82%D1%8B%D0%B9%2C%20%D0%9A%D0%B0%D1%88%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D1%8B%D0%B9"
},
{
"addon_id": "239",
"values": "EL%20-%20%D1%8D%D0%BB%D0%B0%D1%81%D1%82%D0%B0%D0%BD%2C%20SE%20-%20%D1%88%D0%B5%D0%BB%D0%BA"
},
{
"addon_id": "82",
"values": "1"
},
{
"addon_id": "181",
"values": "%D1%82%D0%B5%D1%81%D1%82%201"
}
]
},
{
"tovar_id": "10018",
"count": "1",
"barcode_serv": "1270000000001",
"kfx": "1",
"discount": "10",
"ext_info": "%D1%82%D0%B5%D1%81%D1%82",
"nursery_id": "3",
"dirty_id": "1",
"addons": []
},
{
"dos_id": "12344422",
"count": "2",
"addons": []
},
{
"dos_id":"1",
"tovar_id":"10018",
"count":"1",
"addons":[]
},
{
"parent_id":"1",
"tovar_id":"10016",
"count":"1",
"addons":[]
},
{
"dos_id":"2",
"tovar_id":"10018",
"count":"1",
"addons":[]
},
{
"parent_id":"2",
"tovar_id":"10016",
"count":"1",
"addons":[]
},
{
"parent_id":"2",
"tovar_id":"100305",
"count":"1",
"addons":[]
},
{
"parent_id":"100231208",
"tovar_id":"10016",
"count":"1",
"addons":[]
}
],
"Comments": [
"%D1%82%D0%B5%D1%81%D1%82%201",
"%D1%82%D0%B5%D1%81%D1%82%202"
]
},
"SessionID": "AFF2413A-CCD9-4392-A0EA-D35DEAD3C84D"
}
где\\
**Order** – объект переменных заказа:\\
//dor_id// – ID заказа, **обязательный параметр**;\\
//doc_num// – номер заказа, **не обязательный параметр**. Номер должен быть вида: XXXX-YY, где XXXX - порядковый номер заказа, YY – номер подразделения; на основе номера заказа формируется автоматически номер бирки услуг; **без особой необходимости, данный параметр не нужно заполнять**;\\
**При использовании этого параметра, контроль правильности и последовательности формирования номера заказа ложится на разработчика**;
//bso// – номер для налоговой, **не обязательный параметр**;\\
//doc_date// – дата принятия заказа (формат dd.mm.yyyy), **не обязательный параметр**;\\
//fast_exec// – ID срочности, **не обязательный параметр**. Берется из команды GetListsOrderTNDForAll, массив строк order_times;\\
//sclad_id// – ID склада принятия, **не обязательный параметр**;\\
//sclad_out_id// – ID склада выдачи, **не обязательный параметр**;\\
"current_sclad_id": "1234",<- перенести выше в пример в порядке следования описания, убрав отсюда\\
//current_sclad_id// - ID текущего склада заказа, **не обязательный параметр**. По умолчанию используется ID склада принятия заказа;\\
//price_id// – ID прайс-листа, **не обязательный параметр**;\\
//date_out// – дата выдачи (формат dd.mm.yyyy HH:MM:SS), **не обязательный параметр**;\\
//vds_id// – ID внешней дисконтной схемы, **не обязательный параметр**. Берется из команды GetListsVdsDsForAll, массив строк vds;\\
//status_id// – статус заказа, **не обязательный параметр**. Принимает значения 1 – новый, 3 – в исполнении, 4 – исполненный, 5 – выданный, 7 - отмененный;\\
//waiting_confirm// – признак подтверждения заказа от клиента, **не обязательный параметр**. Принимает значения 0 - не требует подтверждения, по умолчанию; 1- требует подтверждения от клиента; 2 – клиент согласился, подтвержден; 3 - клиент НЕ согласился, отменен;\\
//is_not_confirmed// - признак подтверждения сотрудником химчистки, **не обязательный параметр**. Принимает значения 0 - если сотрудник химчистки уже подтвердил заказ или мы не ждем подтверждения от него, по умолчанию; 1 - если сотрудник химчистки еще не подтвердил заказа, но мы ждем это;\\
//get_confirm_link// - признак получения ссылки на подтверждение заказа вида %%https://agb.is/...%%. Для генерации ссылки должны быть указаны параметры waiting_confirm равным 1 и is_not_confirmed равным 0;\\
//only_with_main_calc_price// - разрешает работу опции «Рассчитывать цену как процент от другой услуги» из карточки номенклатуры услуге, **не обязательный параметр**;
**Services** – массив объектов услуг (**обязательный параметр**, если нет услуг на изменение оставляется пустым []):\\
//dos_id// - ID услуги заказа (11234 или 1, 2, и т.д.), **не обязательный параметр**. Если не указан параметр, услуга будет добавлена в существующий заказ как новая. Если параметр указан как порядковый номер, то служит **только** для определения привязки дочерней услуги (**комплектной или ремонтной**) к основной по параметру parent_id и услуга будет добавлена в существующий заказ как новая;\\
//parent_id// - порядковый номер или для привязки к существующему ID в заказе родительской услуги (11234 или 1, 2, и т.д.), **не обязательный параметр**. Служит **только** для определения привязки дочерней услуги (**комплектной или ремонтной**) к основной по параметру dos_id;\\
Примеры заполнения **dos_id** и **parent_id** при сохранении существующего заказа:
{
"dos_id": "1",
"parent_id": "10016",
"tovar_id": "10018",
"count": "1",
...
},
{
"dos_id": "2",
"tovar_id": "10018",
"count": "1",
...
},
{
"dos_id": "10022",
"tovar_id": "10018",
"count": "1",
...
},
...
//tovar_id// – ID услуги из прайс-листа, если указан dos_id, то поле игнорируется, **не обязательный параметр**. \\
//count// – кол-во, обязательный параметр;\\
//barcode_serv// – ШК услуги, не обязательный параметр; **без особой необходимости, данный параметр не нужно заполнять**;\\
**При использовании этого параметра, контроль правильности и последовательности формирования номера ШК услуги ложится на разработчика**;
//kfx// – коэффициент, не обязательный параметр;\\
//discount// – скидка услуги, не обязательный параметр;\\
//is_recalc_disc// - счет скидки услуги в зависимости от скидки клиента, ДС, распродаж, **не обязательный параметр**. Расчет скидки происходит на стороне сервера, без учета параметра discount;\\
//ext_info// – описание, **не обязательный параметр**;\\
//nursery_id// – ID детской скидки, **не обязательный параметр**. Берется из команды GetListsOrderTNDForAll, массив строк order_nurseries;\\
//dirty_id// – ID наценки, **не обязательный параметр параметр**. Берется из команды GetListsOrderTNDForAll, массив строк order_dirties;\\
//status_id// – ID статус услуги, **не обязательный параметр**. Принимает значение 1 – новый, 3 – в исполнении, 4 – исполненный, 5 – выданный, 7 - отмененный;\\
"current_sclad_id": "1234",<- перенести выше в пример в порядке следования описания, убрав отсюда\\
//current_sclad_id// - ID текущего склада услуги, **не обязательный параметр**. По умолчанию используется ID склада принятия заказа;\\
**addons** – массив объектов доп. реквизитов (**обязательный параметр**, если нет реквизитов на изменение, то оставляется пустым []):\\
//aos_id// – ID строки доп реквизита в заказе в существующей услуге, **не обязательный параметр**. Если не указан, то реквизит будет добавлен как новый;\\
//addon_id// – ID доп. реквизита в новой услуге, если указан aos_id, то поле игнорируется, **не обязательный параметр**. Узнать можно из команды AddonTypes, **см. ниже**;\\
//values// – значение реквизита (значения перечисляются через разделитель. Для сброса значения реквизита задается пустое значение), **обязательный параметр**;\\
Примеры заполнения **addons** для:\\
* 0 - Целые
{
"addon_id": "123",
"values": "12"
}
* 1 - Строковые
{
"addon_id": "124",
"values": "%D1%82%D0%B5%D1%81%D1%82%201"
}
* 2 - Булевы (1/0)
{
"addon_id": "125",
"values": "1"
}
* 3 - Дата
{
"addon_id": "126",
"values": "12.03.2022"
}
* 5 - С плавающей запятой
{
"addon_id": "127",
"values": "12,3"
}
* 7 - Строковые с ценой и количеством
{
"addon_id": "128",
"values": "20,3.3,2" // Перечисление значений по порядку, через запятую
}
* 8 - Строковые с коэффициентом
{
"addon_id": "129",
"values": "%D1%82%D0%B5%D0%BA%D1%81%D1%82%201"
}
* 9 - Фигура (1 - Квадрат (Пример: 1|3,3|), 2 - Прямоугольник (Пример: 2|1.3|3|), 3 - Круг (Пример: 3|4,8|2.4|), 4 - Овал (Пример: 4|2,3|4,5|))
{
"addon_id": "129",
"values": "2|1.3|3|" // где -> тип|длина|ширина|
}
**Comments** – массив строк комментариев по заказу (**не обязательный параметр**, если комментариев нет, то оставляем пустым []), перечисляются через запятую.
Для всех значений ключей json строки делается URI кодирование (например, можно использовать метод javascript encodeURIComponent);
Команда работает через **авторизацию пользователем**.
Ответ **json**:
{
"error": 0,
"dor_id": "12345",
"confirm_link": "https:\/\/agb.is\/..."
}
где\\
//error// – статус выполнения (0 – нет ошибки, 1 – ошибка, 2 – не авторизирован, 3 - авторизация просрочена);\\
//dor_id// – ID созданного заказа в Агбис;\\
//confirm_link// - ссылка на подтверждение заказа;\\
//Msg// – описание ошибки (при error = 1).
----
===== Изменение статуса заказа. ChangeStatusOrdersForAll =====
**Команда:** %%ChangeStatusOrdersForAll%%
Изменение статуса заказа.
Метод отправки: **POST**
Заголовок запроса (Header): **Content-type: application/json; charset=UTF-8**
Строка запроса: .../api/?ChangeStatusOrdersForAll
Тело запроса тип **json**:
{
"ChangeStatusOrdersForAll":{
"Orders": [
{
"dor_id": "100182",
"status_id": "3"
}
]
},
"SessionID": "BBAB6C13-A9BE-4159-8A0C-332F813A7B49"
}
где\\
//Orders// – массив заказов (**обязательный параметр**):\\
//dor_id// – ID существующего заказа, **обязательный параметр**;\\
//status_id// – ID нового статуса заказа, **обязательный параметр**. Принимает значения 1 – новый, 3 – в исполнении, 4 – исполненный, 5 – выданный, 7 - отмененный.
Ответ **json**:
{"error":0}
где\\
//error// – статус выполнения (0 – нет ошибки, 1 – ошибка, 2 – не авторизирован, 3 - авторизация просрочена);\\
//Msg// – описание ошибки (при error = 1).
----
===== Создание выезда. TripOrder =====
**Команда:** %%TripOrder%%
Создание выезда в назначенное время.\\
Временные интервалы задаются обязательными параметрами //hr// и //hr_to//. \\
Метод отправки: **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 - Отменён,3 - Принял,4 - В пути,5 - Приехал,6 - Пересогласование), **обязательный параметр**;\\
//user_id// - экспедитор, **не обязательный параметр**;\\
//control_user_id// - диспетчер, **не обязательный параметр**;\\
//SessionID// - ID сессии, **обязательный параметр**.
Ответ **json**:
{
"error":0,
"TripID":12345,
"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"
}
----
===== Информация по выезду. 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 фирмы.
----
===== Информация по заказу. OrderInfoForAll =====
**Команда:** %%OrderInfoForAll%%
Команда просмотр информации о конкретном заказе по dor_id
Метод отправки: **GET**
Заголовок запроса (Header): не требуется.
Формат запроса: %%OrderInfoForAll={"dor_id":"12345"}&SessionID=BBAB6C13-A9BE-4159-8A0C-332F813A7B49%%
Строка запроса: .../api/?OrderInfoForAll=%7B%22dor_id%22%3A%2210013%22%7D&SessionID=BBAB6C13-A9BE-4159-8A0C-332F813A7B49
где\\
//dor_id// – ID заказа, **обязательный параметр**.
Ответ **json**:
{
"error": 0,
"order": {
"dor_id": "100182",
"doc_num": "000233",
"kredit": "4000",
"debet": "0",
"doc_date": "29.11.2017",
"date_out": "",
"date_out_fact": "",
"status_id": "3",
"photo_exist": "1",
"discount": "0",
"fast_execute": "0",
"sclad_id": "12455",
"sclad_to": "12455",
"current_sclad_id": "1003",
"kind_id": "3",
"vds_id": "1001",
"contr_id": "10013",
"waiting_confirm": "0",
"is_not_confirmed": "0",
"sclad_name": "",
"sclad_adr": "",
"sclad_hours": "",
"condition_id": "",
"condition_name": "",
"Srvices": [
{
"dos_id": "100229858",
"parent_id": "100229857",
"tov_id": "10018",
"service": "%D0%91%D0%B5%D1%80%D0%BC%D1%83%D0%B4%D1%8B",
"code": "01.18",
"status_id": "3",
"status_name": "%D0%92+%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B8",
"serv_num": "1",
"barcode": "272102000000071001",
"barcode_read": "%5B2%5D%207%20(1)",
"price": "1000",
"qty": "1",
"kfx": "1",
"discount": "0",
"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": "1000",
"ext_info": "",
"shop_description": "",
"group_tov": "1.+%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+%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B0",
"contr_provider_id": "10072",
"contr_provider_name": "%D0%9F%D0%BE%D0%B4%20%D0%BE%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F",
"contr_provider_inn": "1234-1234-1234-1234",
"nds_name": "%D0%91%D0%B5%D0%B7%20%D0%9D%D0%94%D0%A1",
"addons": []
},
{
"dos_id": "100229859",
"tov_id": "10027",
"service": "%D0%92%D0%BE%D0%B4%D0%BE%D0%BB%D0%B0%D0%B7%D0%BA%D0%B0",
"code": "01.27",
"status_id": "3",
"status_name": "%D0%92+%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B8",
"barcode": "271700000002331002",
"price": "1500",
"qty": "2",
"kfx": "1",
"discount": "0",
"fast_execute": "0",
"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": "3000",
"ext_info": "",
"shop_description": "",
"group_tov": "1.+%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+%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B0",
"contr_provider_id": "",
"contr_provider_name": "",
"contr_provider_inn": "",
"nds_name": "",
"addons": [
{
"addon_id": "111",
"descr": "%D0%A6%D0%B2%D0%B5%D1%82",
"value_type": "1",
"aos_id": "1001787",
"aos_value": "%D0%91%D0%B5%D0%B6%D0%B5%D0%B2%D1%8B%D0%B9,+%D0%96%D1%91%D0%BB%D1%82%D1%8B%D0%B9,+%D0%9A%D0%B0%D1%88%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D1%8B%D0%B9"
},
{
"addon_id": "239",
"descr": "%D0%A1%D0%BE%D1%81%D1%82%D0%B0%D0%B2+%D1%82%D0%BA%D0%B0%D0%BD%D0%B8",
"value_type": "1",
"aos_id": "1001788",
"aos_value": "EL+-+%D1%8D%D0%BB%D0%B0%D1%81%D1%82%D0%B0%D0%BD,+SE+-+%D1%88%D0%B5%D0%BB%D0%BA"
},
{
"addon_id": "82",
"descr": "%D0%91%D0%B5%D0%BB%D0%B5%D1%81%D0%BE%D1%81%D1%82%D1%8C",
"value_type": "2",
"aos_id": "1001789",
"aos_value": "1"
},
{
"addon_id": "181",
"descr": "%D0%94%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F",
"value_type": "1",
"aos_id": "1001790",
"aos_value": "%D1%82%D0%B5%D1%81%D1%82+1"
}
]
}
],
"Tovars":[
{
"dol_id":"10043",
"tov_id":"100300",
"tovar_name":"%D0%A2%D0%BE%D0%B2%D0%B0%D1%80%20%D1%81%D0%BE%D0%BF%D1%83%D1%81%D1%82%D0%B2%D1%83%D1%8E%D1%89%D0%B8%D0%B9",
"code":"0",
"group_tov":"%D0%A2%D0%BE%D0%B2%D0%B0%D1%80%D1%8B",
"barcode":"",
"price":"5",
"qty":"1",
"kfx":"1",
"discount":"5",
"kredit":"4,75",
"ext_info":"sdddd%20sdg%20sgs",
"tovar_descr":"fsdf%20sfs%20cfsd%20g%20wge%20w%D1%8B%20sg%20swgwg%20%D0%B4%D0%BE%D0%BB%D1%82%20kkkk%20k",
"monger_id":"1",
"monger_name":"%D0%90%D0%B3%D0%B1%D0%B8%D1%81"
}
]
}
}
где\\
**orders** – массив объектов заказов:\\
//dor_id// – ID заказа;\\
//doc_num// – номер заказа\\
//kredit// – сумма заказа,\\
//debet// – оплачено;\\
//doc_date// – дата заказа;\\
//date_out// – дата выдачи заказа;\\
//date_out_fact// – дата выдачи заказа фактическая;\\
//status_id// – статус заказа (1 – новый, 3 – в исполнении, 4 – исполненный, 5 - выданный). поле status - устаревшее;\\
//status_name// – наименование статуса;\\
//photo_exist// – признак присутствия в заказе фотографий;\\
//discount// – скидка;\\
//fast_execute// – ID срочности (берется из команды GetListsOrderTNDForAll, массив строк order_times);\\
//sclad_id// – ID склада приема;\\
//sclad_to// – ID склада выдачи;\\
//current_sclad_id// – ID текущего склада;\\
//kind_id// – тип заказа (0 – заказ химчистки, 1- прачечный заказ, 2 – продажа товаров, 4 – выездной заказ);\\
//vds_id// – ID внешней дисконтной схемы;\\
//waiting_confirm// – признак подтверждения заказа от клиента, **не обязательный параметр**. Принимает значения 0 - не требует подтверждения, по умолчанию; 1- требует подтверждения от клиента; 2 – клиент согласился, подтвержден; 3 - клиент НЕ согласился, отменен;\\
//is_not_confirmed// - признак подтверждения сотрудником химчистки, **не обязательный параметр**. Принимает значения 0 - если сотрудник химчистки уже подтвердил заказ или мы не ждем подтверждения от него, по умолчанию; 1 - если сотрудник химчистки еще не подтвердил заказа, но мы ждем это;\\
//sclad_name// - наименования склада выдачи;\\
//sclad_adr// - адрес склада выдачи;\\
//sclad_hours// - время работы склада выдачи;\\
//condition_id// - ID состояния, с версии Агбис.Химчистки 4.4.0;\\
//condition_name// - наименование состояния, с версии Агбис.Химчистки 4.4.0;\\
**Srvices** – массив объектов услуг:\\
//dos_id// – ID услуги в заказе;\\
//parent_id// – ID родительской услуги;\\
//tov_id// – ID услуги;\\
//service// – наименование;\\
//status_id// – статус услуги (1 – новый, 3 – в исполнении, 4 – исполненный, 5 – выданный, 7 - отмененный);\\
//serv_num// – порядковый номер услуги;\\
//barcode// – ШК услуги;\\
//barcode_read// - ШК для чтения;\\
//price// – цена услуги из прайс листа;\\
//qty// – кол-во;\\
//kfx// – коэффициент;\\
//discount// – скидка по услуге;\\
//nursery_id// – ID детской скидки (берется из команды GetListsOrderTNDForAll, массив строк order_nurseries);\\
//nurseries_name// – наименование детской скидки;\\
//nurseries_discount// – значение детской скидки;\\
//dirty_id// – ID наценки параметр (берется из команды GetListsOrderTNDForAll, массив строк order_dirties);\\
//dirty_name// – наименование наценки;\\
//dirty_kfx// – коэффициент наценки;\\
//kredit// – сумма услуги в заказе;\\
//ext_info// – описание;\\
//shop_description// – описание цеха;\\
//group_tov// – наименование группы услуги;\\
//contr_provider_id// - ID агента;\\
//contr_provider_name// - название агента;\\
//contr_provider_inn// - ИНН агента;\\
//nds_name// - применяемая НДС;\\
**addons** - массив объектов доп. реквизитов услуг:\\
//addon_id// – ID доп. реквизита;\\
//descry// – наименование доп. реквизита;\\
//value_type// – тип доп. реквизита;\\
//aos_id// – ID реквизита в заказе;\\
//aos_value// – значение доп. реквизита.
**Tovars** – массив объектов товаров:\\
//dol_id// – ID товара в заказе;\\
//tov_id// - ID товара из прайс-листа;\\
//tovar_name// – наименование товара;\\
//group_tov// – наименование группы товара;\\
//barcode// – ШК товара;\\
//price// – цена товара из прайс листа;\\
//qty// – кол-во;\\
//kfx// – коэффициент;\\
//discount// – скидка по товару;\\
//kredit// – сумма товара в заказе;\\
//ext_info// – описание;\\
//tovar_descr// – описание товара;\\
//monger_id// – ID продавца (пользователя);\\
//monger_name// – Имя продавца (пользователя).
----
===== Квитанция. 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, **не обязательный параметр**.
Ответ **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%%
----
===== Квитанция. ReceiptOnline =====
**Команда:** %%ReceiptOnline%%
Получение квитанции по заказу.\\
Можно выполнять в любой момент заказа, после создания заказа.
Метод отправки: **GET**
Заголовок запроса (Header): не требуется.
Формат запроса: %%ReceiptOnline={"dor_id":"12345", "typeExport": "png"}%%
Строка запроса: .../api/?ReceiptOnline=%7B%22dor_id%22:%2212345%22%7D&SessionID=
где\\
//dor_id// – ID заказа, **обязательный параметр**;\\
//typeExport// – тип формата файла, **pdf (по умолчанию)**, png, svg, **не обязательный параметр**;\\
В зависимости от typeExport будет содержать определенный документ с соответствующим Content-Type.\\
Для typeExport=pdf, Content-Type=application/pdf;\\
typeExport=png, Content-Type=image/png;\\
typeExport=svg, Content-Type=image/svg+xml.\\
//sign// – если указан, то при наличии квитанции с подписью, вернется квитанция в формате svg (работает только в паре с параметром typeExport=svg).
В ответ возвращаются двоичные данные
----
===== Список заказов за период. OrdersBetweenForAll =====
**Команда:** %%OrdersBetweenForAll%%
Получения списка заказов за указанный период.
Данная команда с большими периодами может долго выполнятся, из за большого количества возвращаемых данных и вылетать по timeout!
Рекомендуется в таких случаях уменьшать период.
Метод отправки: **POST**
Заголовок запроса (Header):\\
**Content-type: application/json; charset=UTF-8** - **обязательный параметр**\\
**Accept-Encoding: deflate** - сжатие возвращаемого ответа, **не обязательный параметр**.
Строка запроса: .../api/?OrdersBetweenForAll
Тело запроса тип **json**:
{
"OrdersBetweenForAll":{
"StartDate": "01.03.2018",
"StopDate": "30.03.2018",
"callback_address":"https://test.com/test.php"
},
"SessionID": "0BE170AB-86AF-441F-8523-8C960EA3EC4E"
}
где\\
//StartDate// – дата начала, **обязательный параметр**;\\
//StopDate// – дата окончания, **обязательный параметр**;\\
//callback_address// – адрес на который нужно вернуть ответ, **не обязательный параметр**. Если команда будет возвращать ответ дольше чем 29сек, то на этот адрес будет отправлен сформированный ответ.
Ответ **json**:
{
"error": 0,
"order": [
{
"dor_id":"100228",
"doc_num":"000034",
"contr_id":"10088",
"kredit":"11",
"debet":"11",
"dolg":"0",
"doc_date":"23.01.2018",
"doc_time":"11:10:00",
"date_out":"24.01.2018+17:00:00",
"date_out_fact": "",
"status":"1",
"status_name":"%D0%9D%D0%BE%D0%B2%D1%8B%D0%B9",
"photo_exist":"0",
"discount":"0",
"sclad_id":"1",
"sclad_to":"1",
"current_sclad_id":"1",
"fast_execute":"0",
"kind_id":"0",
"vds_id":"",
"waiting_confirm": "0",
"is_not_confirmed": "0",
"condition_id": "",
"condition_name": "",
"Srvices": [,
{
"dos_id":"100229911",
"parent_id":"100229910",
"tov_id":"100295",
"service":"%D0%91%D1%80%D1%8E%D0%BA%D0%B8+%D0%BA%D0%BE%D0%B6%D0%B0%D0%BD%D1%8B%D0%B5+(%D0%BF%D0%BE%D0%BA%D1%80%D0%B0%D1%81%D0%BA%D0%B0)",
"code":"01.11",
"status_id":"1",
"status_name":"%D0%9D%D0%BE%D0%B2%D1%8B%D0%B9",
"serv_num":"1",
"barcode":"271800000000341001",
"price":"6",
"qty":"1",
"kfx":"1",
"discount":"0",
"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":"6",
"ext_info":"",
"shop_description":"",
"group_tov":"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)",
"contr_provider_id": "10072",
"contr_provider_name": "%D0%9F%D0%BE%D0%B4%20%D0%BE%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F",
"contr_provider_inn": "1234-1234-1234-1234",
"nds_name": "%D0%91%D0%B5%D0%B7%20%D0%9D%D0%94%D0%A1",
"addons":[
{
"addon_id":"110",
"descr":"%D0%9F%D0%BE%D0%BB",
"value_type":"1",
"aos_id":"1003462",
"aos_value":""
},
]
}
],
"payments":[
{
"date_pay":"18.12.2017+16:02:55",
"document":"%D0%9E%D0%BF%D0%BB%D0%B0%D1%82%D0%B0+%D0%B1%D0%B0%D0%BD%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%BE%D0%B9+%D0%BA%D0%B0%D1%80%D1%82%D0%BE%D0%B9",
"debet":"150",
"kredit":"0",
"kassa_name":"%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%B0%D1%8F"
}
]
}
]
}
где\\
**Orders** – массив объектов заказов;\\
//dor_id// – ID заказа;\\
//doc_num// – номер заказа;\\
//contr_id// – ID клиента;\\
//kredit// – сумма заказа;\\
//debet// – сумма оплаты заказа;\\
//dolg// – долг по заказу;\\
//doc_date// – дата принятия заказа;\\
//doc_time// – время принятия заказа;\\
//date_out// – дата выдачи заказа;\\
//date_out_fact// – дата выдачи заказа фактическая;\\
//status// – ID статуса;\\
//status_name// – наименование статуса;\\
//photo_exist// – признак присутствия в заказе фотографий;\\
//discount// – скидка;\\
//sclad_id// - склад принятия;\\
//sclad_to// – склад выдачи;\\
//current_sclad_id// – текущий склад;\\
//fast_execute// – ID срочности;\\
//kind_id// – тип заказа (0 – заказ химчистки, 1- прачечный заказ, 2 – продажа товаров, 4 – выездной заказ);\\
//vds_id// – ID ВДС;\\
//waiting_confirm// – признак подтверждения заказа от клиента. Принимает значения 0 - не требует подтверждения, по умолчанию; 1- требует подтверждения от клиента; 2 – клиент согласился, подтвержден; 3 - клиент НЕ согласился, отменен;\\
//is_not_confirmed// - признак подтверждения сотрудником химчистки. Принимает значения 0 - если сотрудник химчистки уже подтвердил заказ или мы не ждем подтверждения от него, по умолчанию; 1 - если сотрудник химчистки еще не подтвердил заказа, но мы ждем это;\\
//condition_id// - ID состояния, с версии Агбис.Химчистки 4.4.0;\\
//condition_name// - наименование состояния, с версии Агбис.Химчистки 4.4.0;\\
**Srvices** – массив объектов услуг;\\
//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// – описание цеха;\\
//group_tov// – наименование группы услуги;\\
//contr_provider_id// - ID агента;\\
//contr_provider_name// - название агента;\\
//contr_provider_inn// - ИНН агента;\\
//nds_name// - применяемая НДС;\\
**addons** – массив объектов доп. реквизитов;\\
//addon_id// – ID доп. реквизита;\\
//descr// – наименование доп. реквизита;\\
//value_type// - тип доп. реквизита;\\
//aos_id// - ID реквизита в заказе;\\
//aos_value// - значение доп. реквизита;\\
**payments** – массив объектов оплат;\\
//date_pay// – дата оплаты;\\
//document// –документ оплаты;\\
//debet// – сумма прихода;\\
//kredit// – сумма расхода;\\
//kassa_name// – наименование кассы.\\
----
====== Работа с услугами======
===== Сохранение фотографии в услуге. SetOrderImagesForAll =====
**Команда:** %%SetOrderImagesForAll%%
Сохранение фотографий в услуге.
Метод отправки: **POST**
Заголовок запроса (Header): **Content-type: application/json; charset=UTF-8**
Строка запроса: .../api/?SetOrderImagesForAll
Тело запроса тип **json**:
{
"SetOrderImagesForAll":{
"dos_id": "100229859",
"img": "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"
},
"SessionID": "AFF2413A-CCD9-4392-A0EA-D35DEAD3C84D"
}
где\\
//dos_id// – ID услуги, **обязательный параметр**;\\
//img// – Jpeg картинка в строке base64, **обязательный параметр**.
Ответ **json**:
{"error": 0}
где\\
//error// – статус выполнения (0 – нет ошибки, 1 – ошибка, 2 – не авторизирован, 3 - авторизация просрочена);\\
//Msg// – описание ошибки (при error = 1).
----
===== Накладные в пути. DocsInWayBetweenForAll =====
**Команда:** %%DocsInWayBetweenForAll%%
Получения списка накладных в пути, в указанный промежуток времени.
Метод отправки: **POST**
Заголовок запроса (Header): **Content-type: application/json; charset=UTF-8**
Строка запроса: .../api/?DocsInWayBetweenForAll
Тело запроса тип **json**:
{
"DocsInWayBetweenForAll":{
"StartDate": "01.03.2018",
"StopDate": "30.03.2018",
},
"SessionID": "0BE170AB-86AF-441F-8523-8C960EA3EC4E"
}
где\\
//StartDate// – дата начала, **обязательный параметр**;\\
//StopDate// – дата окончания, **обязательный параметр**.
Ответ **json**:
{
"error": 0,
"docs_in_way": [
{
"id":"100625",
"doc_date":"27.12.2017",
"doc_num":"000030",
"diw_status_id":"3",
"diw_status_name":"%D0%9F%D1%80%D0%B8%D0%BD%D1%8F%D1%82%D0%B0",
"from_sclad_id":"1",
"to_sclad_id":"1007",
"by_way_of_sclad_id":"10010",
"from_sclad_name":"%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9",
"to_sclad_name":"%D0%9F%D0%9F%20%D0%9E%D1%80%D1%8B%D0%BD%D0%B1%D0%BE%D1%80.%20%D0%A8%D0%BA%D0%B0%D1%84",
"by_way_of_sclad_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",
"from_user_id":"1",
"accomp_id":"1",
"to_user_id":"1",
"from_user_name":"%D0%90%D0%B3%D0%B1%D0%B8%D1%81",
"accomp_name":"%D0%90%D0%B3%D0%B1%D0%B8%D1%81",
"to_user_name":"%D0%90%D0%B3%D0%B1%D0%B8%D1%81",
"qty_places":"",
"barcode":"250000000000100625",
"sclad_group_id":"",
"sclad_group_name":"",
"comments":"",
"docs_in_way_serv":[
{
"id":"100121",
"dos_id":"100229872",
"doc_in_way_id":"100625",
"barcode":"271700000001711003",
"barcode_read":"%5B0%5D%20171%20(3)",
"doc_num":"000171",
"doc_date":"25.12.2017",
"dor_id":"100186",
"date_out":"25.12.2017%2017:00:00",
"tovar_id":"100288",
"tovar_name":"%D0%94%D1%83%D0%B1%D0%BB%D0%B5%D0%BD%D0%BA%D0%B0%202%2F4%20(%D0%BF%D0%BE%D0%BA%D1%80%D0%B0%D1%81%D0%BA%D0%B0)",
"qty_kredit":"1",
"status_id":"4",
"status_name":"%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9",
"date_in":"27.07.2018",
"time_in":"15:07:20",
"user_id_in":"1",
"user_in_name":"%D0%90%D0%B3%D0%B1%D0%B8%D1%81",
"ext_info":"",
"sclad_to":"1007",
"sclad_to_name":"%D0%9F%D0%9F%20%D0%9E%D1%80%D1%8B%D0%BD%D0%B1%D0%BE%D1%80.%20%D0%A8%D0%BA%D0%B0%D1%84",
"contr_id":"10013",
"contr_name":"%D0%90%D0%B3%D0%B1%D0%B8%D1%81",
"sclad_id_in":"1",
"sclad_id_in_name":""
}
]
}
]
}
где\\
**docs_in_way** – массив объектов накладных в пути;\\
//id// – ID накладной в пути;\\
//doc_date// – дата накладной;\\
//doc_num// – номер накладной;\\
//diw_status_id// – ID статус накладной (1 - Готова к отгрузке, 2 - В пути, 3 - Принята, 4 - Принята не полностью);\\
//diw_status_name// – наименования статуса;\\
//from_sclad_id// – ID склада, «с какого клада накладная»;\\
//to_sclad_id// – ID склада, «на какой склад накладная»;\\
//by_way_of_sclad_id// – ID мобильного склада, «через мобильный склад»;\\
//from_sclad_name// – наименование, «с какого клада накладная»;\\
//to_sclad_name// – наименование, «на какой склад накладная»;\\
//by_way_of_sclad_name// – наименование, «через мобильный склад»;\\
//from_user_id// – ID пользователя, «отгрузил»;\\
//accomp_id// – ID пользователя, «экспедитор»;\\
//to_user_id// – ID пользователя, «принял»;\\
//from_user_name// – наименование, «отгрузил»;\\
//accomp_name// – наименование, «экспедитор»;\\
//to_user_name// – наименование, «принял»;\\
//qty_places// – кол-во мест;\\
//barcode// – штрихкод;\\
//sclad_group_id// – ID группы складов, «на группу складов»;\\
//sclad_group_name// – наименование, «на группу складов»;\\
//comments// – комментарий;\\
**docs_in_way_serv** – массив объектов услуг в накладной;\\
//id// – ID строки услуги в накладной;\\
//dos_id// – ID услуги в заказе;\\
//doc_in_way_id// – ID накладной;\\
//barcode// – штрихкод услуги;\\
//barcode_read// – штрихкод услуги, для чтения;\\
//doc_num// – номер заказа;\\
//doc_date// – дата заказа;\\
//dor_id// – ID заказа;\\
//date_out// – дата выдачи заказа;\\
//tovar_id// – ID услуге в прайс-листе;\\
//tovar_name// – наименование услуги;\\
//qty_kredit// – количество услуги;\\
//status_id// – статус услуги;\\
//status_name// – наименование статуса услуги;\\
//date_in// – дата принятия;\\
//time_in// – время принятия;\\
//user_id_in// – ID пользователя;\\
//user_in_name// – наименование пользователя;\\
//ext_info// – описание услуги;\\
//sclad_to// – ID склад выдачи заказа;\\
//sclad_to_name// – наименование склад выдачи заказа;\\
//contr_id// – ID клиента;\\
//contr_name// – ФИО клиента;\\
//sclad_id_in// – ID cклада принятия услуги в накладной;\\
//sclad_id_in_name// – наименование склада принятия услуги в накладной.
----
====== Работа с оплатами ======
===== Оплата заказа. PayForAll =====
**Команда:** %%PayForAll%%
Для выполнения команды необходимо выставить две глобальные настройки на центральной базе клиента.\\
Значения необходимо согласовать с Химчисткой.\\
{{:anydesk_2023-07-20_09-08-46.png?direct&600 |}}
{{:anydesk_2023-07-20_09-09-16.png?direct&600 |}}
\\
Передача информации об оплате заказа (//dor_id//) из внешней системы.\\
На внешнем сервисе может быть реализована любая Платежная система, в Агбис необходимо передать краткую информацию по оплате.\\
__Возможна частичная оплата__, т.е. часть "оплата по карте", часть "оплата бонусом".\\
**ВАЖНО! : если оплату необходимо фискализировать на ККТ, то необходимо передать параметр //is_fiscal// \\
При этом у клиента должна быть настроена фискализации**
Метод отправки: **GET**\\
Заголовок запроса (Header): не требуется.\\
Формат запроса: %%PayForAll={"dor_id": "1123444", "amount": "123.25", "type_doc": "1"}&SessionID=%%\\
где\\
//dor_id// – ID заказа, **обязательный параметр**;\\
//amount// – сумма оплаты, **обязательный параметр**;\\
//type_doc// – тип документа возврата (1 – Оплата по карте, по умолчанию; 2- оплата по кассе, 3 – оплата по банку, 4 – оплата бонусом, 5 – оплата депозитом) , **обязательный параметр**;\\
//is_fiscal// - признак, что оплату по карте или по кассе нужно фискализировать (0 - без фискализации; 1 - требуется фискализировать), **не обязательный параметр**.\\
Для работы этого параметра требуется настроенная онлайн касса https://doc.agb.is/internal/agent_kassa_online в новом режиме и выставить настройку "Фискализировать оплаты коммерческого API PayForAll и ReturnPayForAll" (Будут фискализироваться оплаты совершенные через коммерческое API).
Строка запроса: .../api/?PayForAll=%7B%22dor_id%22%3A%20%221123444%22%2C%20%22amount%22%3A%20%22123.25%22%2C%20%22type_doc%22%3A%20%221%22%7D&SessionID=
Ответ **json**:
{"error":0}
где\\
//error// – статус выполнения (0 – нет ошибки, 1 – ошибка, 2 – не авторизирован, 3 - авторизация просрочена);\\
//Msg// – описание ошибки (при error = 1).
----
===== Возврат средств. ReturnPayForAll =====
**Команда:** %%ReturnPayForAll%%
Возврат средств в заказе.
Метод отправки: **GET**
Заголовок запроса (Header): не требуется.
Формат запроса: %%ReturnPayForAll={"dor_id": "1123444", "amount": "123.25", "type_doc": "1"}&SessionID=%%
где\\
//dor_id// – ID заказа, **обязательный параметр**;\\
//amount// – сумма возврата, **обязательный параметр**;\\
//type_doc// – тип документа возврата (1 – Возврат по карте, по умолчанию; 2- возврат по кассе, 3- возврат по банку), **обязательный параметр**;\\
//is_fiscal// - признак, что оплату по карте или по кассе нужно фискализировать (0 - без фискализации; 1 - требуется фискализировать), **необязательный параметр**.\\
Для работы этого параметра требуется настроенная онлайн касса https://doc.agb.is/internal/agent_kassa_online в новом режиме и выставить настройку "Фискализировать оплаты коммерческого API PayForAll и ReturnPayForAll" (Будут фискализироваться оплаты совершенные через коммерческое API).
Строка запроса: .../api/?ReturnPayForAll=%7B%22dor_id%22%3A%20%221123444%22%2C%20%22amount%22%3A%20%22123.25%22%2C%20%22type_doc%22%3A%20%221%22%7D&SessionID=
Ответ **json**:
{"error":0}
где\\
//error// – статус выполнения (0 – нет ошибки, 1 – ошибка, 2 – не авторизирован, 3 - авторизация просрочена);\\
//Msg// – описание ошибки (при error = 1).
----
===== Список оплат за период. OrderPaysBetweenForAll =====
**Команда:** %%OrderPaysBetweenForAll%%
Получения списка оплат заказов за указанный период.
Данная команда с большими периодами может долго выполнятся, из за большого количества возвращаемых данных и вылетать по timeout! Рекомендуется в таких случаях уменьшать период.
Метод отправки: **POST**
Заголовок запроса (Header): **Content-type: application/json**
Строка запроса: .../api/?OrderPaysBetweenForAll
Тело запроса тип **json**:
{
"OrderPaysBetweenForAll":{
"StartDate": "01.03.2018",
"StopDate": "30.03.2018"
},
"SessionID": "0BE170AB-86AF-441F-8523-8C960EA3EC4E"
}
где\\
//StartDate// – дата начала, **обязательный параметр**;\\
//StopDate// – дата окончания, **обязательный параметр**.
Ответ **json**
{
"error": 0,
"order_pays": [
{
"dor_id": "102221",
"doc_num": "00019-2",
"contr_id": "10013",
"contr_name": "%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",
"teleph_cell": "%2B79990009900",
"doc_date": "03.12.2021",
"date_out": "03.12.2021",
"status_id": "1",
"kredit": "4501",
"debet": "270",
"pay_date": "20.01.2022",
"pay_kassa_id": "54",
"doc_type": "3",
"pay_debet": "123",
"pay_kredit": "0"
}
]
}
где\\
**order_pays** – массив оплат:\\
//dor_id// – ID заказа;\\
//doc_num// – номер заказа;\\
//contr_id// – ID клиента;\\
//contr_name// – ФИО клиента;\\
//teleph_cell// – номер телефона;\\
//doc_date// – дата приема заказа;\\
//date_out// - дата выдачи заказа;\\
//status_id// – ID статуса заказа (1 – новый, 3 – в исполнении, 4 – исполненный, 5 – выданный, 7 - отмененный);\\
//kredit// – сумма заказа;\\
//debet// – полная сумма оплаты заказа;\\
//pay_date// – дата платежа;\\
//pay_kassa_id// – ID кассы платежа;\\
//doc_type// – тип платежа (3 - Кассовый документ, 4 - Банковский документ, 9 - Оплата банковской картой, 31 - Кассовый чек (оплата покупателем), 32 - Кассовый чек (возврат денег покупателю),
91 – Бонус, 92 - Оплата депозитом);\\
//pay_debet// – сумма прихода платежа;\\
//pay_kredit// – сумма возврата платежа.
----
====== Статистическая информация ======
===== Получение изменившихся заказов и клиентов =====
Для получения списка изменившихся заказов, правильнее воспользоваться командами - [[#Получения списка заказов, измененных в указанный промежуток времени. OrderByDateTimeForAll|OrderByDateTimeForAll]], [[#Список изменившихся ID заказов. LastChangeOrder|LastChangeOrder]].\\
Для получения списка изменившихся клиентов, использовать команду [[#Получения списка клиентов измененные в указанный промежуток времени. ClientsByDateTimeForAll|ClientsByDateTimeForAll]].
----
===== Получения списка заказов, измененных в указанный промежуток времени. OrderByDateTimeForAll =====
**Команда:** %%OrderByDateTimeForAll%%
Получения списка информации по заказам, измененных в указанный промежуток времени.
Метод отправки: **POST**
Заголовок запроса (Header): **Content-type: application/json; charset=UTF-8**
Строка запроса: .../api/?OrderByDateTimeForAll
Тело запроса тип **json**:
{
"OrderByDateTimeForAll":{
"StartDate": "01.03.2018 10:00",
"StopDate": "01.03.2018 12:00"
},
"SessionID": "0BE170AB-86AF-441F-8523-8C960EA3EC4E"
}
где\\
//StartDate// – дата начала, **обязательный параметр**;\\
//StopDate// – дата окончания, **обязательный параметр**.
Ответ **json**:
{
"error": 0,
"order": [
{
"update":"16.03.2018+17:53:58",
"dor_id":"100228",
"doc_num":"000034",
"contr_id":"10088",
"kredit":"11",
"debet":"11",
"dolg":"0",
"doc_date":"23.01.2018",
"date_out":"24.01.2018+17:00:00",
"date_out_fact":"",
"status":"1",
"status_name":"%D0%9D%D0%BE%D0%B2%D1%8B%D0%B9",
"photo_exist":"0",
"discount":"0",
"sclad_id":"1",
"sclad_to":"1",
"current_sclad_id":"1",
"fast_execute":"0",
"kind_id":"0",
"vds_id":"",
"user_id": "1",
"user_name": "%D0%90%D0%B3%D0%B1%D0%B8%D1%81",
"firm_id": "10023",
"firm_name": "%D0%9E%D0%9E%D0%9E%20%22%D0%9A%D0%BE%D0%BC%D0%BF%D0%B0%D0%BD%D0%B8%D1%8F%20%D0%90%D0%B3%D0%B1%D0%B8%D1%81%22",
"price_list_id": "10023",
"price_list_name": "%D0%94%D0%BE%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%20%E2%84%96000008%20%D0%BE%D1%82%2002.09.2019",
"waiting_confirm": "0",
"is_not_confirmed": "0",
"condition_id": "",
"condition_name": "",
"Srvices": [
{
"dos_id":"100229911",
"parent_id":"100229910",
"tov_id":"100295",
"service":"%D0%91%D1%80%D1%8E%D0%BA%D0%B8+%D0%BA%D0%BE%D0%B6%D0%B0%D0%BD%D1%8B%D0%B5+(%D0%BF%D0%BE%D0%BA%D1%80%D0%B0%D1%81%D0%BA%D0%B0)",
"code":"01.11",
"status_id":"1",
"status_name":"%D0%9D%D0%BE%D0%B2%D1%8B%D0%B9",
"serv_num":"1",
"barcode":"271800000000341001",
"price":"6",
"qty":"1",
"kfx":"1",
"discount":"0",
"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":"6",
"ext_info":"",
"shop_description":"",
"group_tov":"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)",
"current_sclad_id": "1003",
"contr_provider_id": "10072",
"contr_provider_name": "%D0%9F%D0%BE%D0%B4%20%D0%BE%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F",
"contr_provider_inn": "1234-1234-1234-1234",
"nds_name": "%D0%91%D0%B5%D0%B7%20%D0%9D%D0%94%D0%A1",
"addons":[
{
"addon_id":"110",
"descr":"%D0%9F%D0%BE%D0%BB",
"value_type":"1",
"aos_id":"1003462",
"aos_value":""
},
]
}
] ,
"Tovars":[
{
"dol_id":"10043",
"tov_id":"100300",
"tovar_name":"%D0%A2%D0%BE%D0%B2%D0%B0%D1%80%20%D1%81%D0%BE%D0%BF%D1%83%D1%81%D1%82%D0%B2%D1%83%D1%8E%D1%89%D0%B8%D0%B9",
"code":"0",
"group_tov":"%D0%A2%D0%BE%D0%B2%D0%B0%D1%80%D1%8B",
"barcode":"",
"price":"5",
"qty":"1",
"kfx":"1",
"discount":"5",
"kredit":"4,75",
"ext_info":"sdddd%20sdg%20sgs",
"tovar_descr":"fsdf%20sfs%20cfsd%20g%20wge%20w%D1%8B%20sg%20swgwg%20%D0%B4%D0%BE%D0%BB%D1%82%20kkkk%20k",
"monger_id":"1",
"monger_name":"%D0%90%D0%B3%D0%B1%D0%B8%D1%81"
}
],
"payments":[
{
"date_pay":"18.12.2017+16:02:55",
"document":"%D0%9E%D0%BF%D0%BB%D0%B0%D1%82%D0%B0+%D0%B1%D0%B0%D0%BD%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%BE%D0%B9+%D0%BA%D0%B0%D1%80%D1%82%D0%BE%D0%B9",
"debet":"150",
"kredit":"0",
"kassa_name":"%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%B0%D1%8F"
}
]
}
]
}
где\\
**Orders** – массив объектов заказов;\\
//update// – дата изменения;\\
//dor_id// – ID заказа;\\
//doc_num// – номер заказа;\\
//contr_id// – ID клиента;\\
//kredit// – сумма заказа;\\
//debet// – сумма оплаты заказа;\\
//dolg// – долг по заказу;\\
//doc_date// – дата принятия заказа;\\
//date_out// – дата выдачи заказа;\\
//date_out_fact// – дата выдачи заказа фактическая;\\
//status// – ID статуса (1 – новый, 3 – в исполнении, 4 – исполненный, 5 – выданный, 7 - отмененный);\\
//status_name// – наименование статуса;\\
//photo_exist// – признак присутствия в заказе фотографий;\\
//discount// – скидка;\\
//sclad_id// - склад принятия;\\
//sclad_to// – склад выдачи;\\
//current_sclad_id// – текущий склад;\\
//fast_execute// – ID срочности;\\
//kind_id// – тип заказа (0 – заказ химчистки, 1- прачечный заказ, 2 – продажа товаров, 4 – выездной заказ);\\
//vds_id// – ID ВДС;\\
//user_id// - ID пользователя;\\
//user_name// - Имя пользователя;\\
//waiting_confirm// – признак подтверждения заказа от клиента, **не обязательный параметр**. Принимает значения 0 - не требует подтверждения, по умолчанию; 1- требует подтверждения от клиента; 2 – клиент согласился, подтвержден; 3 - клиент НЕ согласился, отменен;\\
//is_not_confirmed// - признак подтверждения сотрудником химчистки, **не обязательный параметр**. Принимает значения 0 - если сотрудник химчистки уже подтвердил заказ или мы не ждем подтверждения от него, по умолчанию; 1 - если сотрудник химчистки еще не подтвердил заказа, но мы ждем это;\\
//condition_id// - ID состояния, с версии Агбис.Химчистки 4.4.0;\\
//condition_name// - наименование состояния, с версии Агбис.Химчистки 4.4.0;\\
**Srvices** – массив объектов услуг;\\
//dos_id// – ID услуги;\\
//parent_id// – ID родительской услуги;\\
//tov_id// – ID услуги в прайс-листе;\\
//service// – наименование услуги;\\
//code// – артикул услуги;\\
//status_id// – ID статуса (1 – новый, 3 – в исполнении, 4 – исполненный, 5 – выданный, 7 - отмененный);\\
//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// – описание цеха;\\
//group_tov// – наименование группы услуги;\\
//current_sclad_id// – ID текущего склада услуги;\\
//contr_provider_id// - ID агента;\\
//contr_provider_name// - название агента;\\
//contr_provider_inn// - ИНН агента;\\
//nds_name// - применяемая НДС;\\
**addons** – массив объектов доп. Реквизитов;\\
//addon_id// – ID доп. реквизита;\\
//descr// – наименование доп. Реквизита;\\
//value_type// - тип доп. реквизита;\\
//aos_id// - ID реквизита в заказе;\\
//aos_value// - значение доп. Реквизита;\\
**Tovars** – массив объектов товаров:\\
//dol_id// – ID товара в заказе;\\
//tov_id// - ID товара в прайс-листе;\\
//tovar_name// – наименование товара;\\
//group_tov// – наименование группы товара;\\
//barcode// – ШК товара;\\
//price// – цена товара из прайс-листа;\\
//qty// – кол-во;\\
//kfx// – коэффициент;\\
//discount// – скидка по товару;\\
//kredit// – сумма товара в заказе;\\
//ext_info// – описание;\\
//tovar_descr// – описание товара;\\
//monger_id// – ID продавца (пользователя);\\
//monger_name// – Имя продавца (пользователя);\\
**payments** – массив объектов оплат;\\
//date_pay// – дата оплаты;\\
//document// –документ оплаты;\\
//debet// – Сумма прихода;\\
//kredit// – сумма расхода;\\
//kassa_name// – наименование кассы.
----
===== Получения списка клиентов измененные в указанный промежуток времени. ClientsByDateTimeForAll =====
**Команда:** %%ClientsByDateTimeForAll%%
Получения списка клиентов измененные в указанный промежуток времени.
Метод отправки: **POST**
Заголовок запроса (Header): **Content-type: application/json; charset=UTF-8**
Строка запроса: .../api/?ClientsByDateTimeForAll
Тело запроса тип **json**:
{
" ClientsByDateTimeForAll":{
"StartDate": "01.03.2018 10:00",
"StopDate": "30.03.2018 20:00"
},
"SessionID": "0BE170AB-86AF-441F-8523-8C960EA3EC4E"
}
где\\
//StartDate// – дата начала, **обязательный параметр**;\\
//StopDate// – дата окончания, **обязательный параметр**.
Ответ **json**:
{
"error":0,
"clients":[
{
"update": "16.11.2021%2015:30:36",
"contr_id": "10013",
"fullname": "%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",
"name": "%D0%90%D0%B3%D0%B1%D0%B8%D1%81%20%D0%A2.%20%D0%A2.",
"telephone": "",
"teleph_cell": "%2B79990009900",
"email": "test@test.ru",
"folder_id": "24",
"address": "%D1%82%D0%B5%D1%81%D1%82",
"barcode": "1600000100138",
"discount": "12",
"gender": "0",
"is_active": "1",
"is_deleted": "0",
"source": "",
"agree_to_receive_sms": "1",
"agree_to_receive_adv_sms": "0",
"sp": "2",
"region_id": "",
"date_create": "30.03.2017%2010:57:41",
"first_order_date": "22.06.2017",
"save_token_pay": "0",
"last_order_date": "13.07.2022",
"previous_order_date": "08.06.2022",
"scheme_id": "",
"schem_name": "",
"is_family": "0",
"dics_block_reason": "",
"contr_block_reason": "",
"address_post": "",
"okpo": "",
"inn": "",
"kpp": "",
"ogrn": "",
"account": "",
"bank_name": "",
"birth_day": "",
"order_not_pay": "380",
"order_count": "599",
"dolg": "1399165,42",
"bonus": "5459,6",
"deposit": "36",
"enter_count": "208",
"pay_rest": "-1310113,31",
"date_avg": "2",
"pay_summ": "1780109,24",
"disc_rest": "%D0%9E%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%BE%D1%82%D1%81%D1%83%D1%82%D1%81%D1%82%D0%B2%D1%83%D0%B5%D1%82",
"promo_code": "P2HZ3",
"date_last_ds": "28.06.2022 13:52:08"
}
]
}
где\\
**clients** – массив объектов клиентов;\\
//update// – дата изменения клиента;\\
//contr_id// – ID клиента;\\
//fullname// – полное ФИО;\\
//name// – краткое ФИО;\\
//telephone// – обычный телефон;\\
//teleph_cell// – сотовый телефон;\\
//email// – электронная почта;\\
//folder_id// - ID группы клиента;\\
//address// – адрес клиента;\\
//barcode// – штрихкод клиента;\\
//discount// – скидки клиента;\\
//gender// – пол клиента (0-мужской, 1-женский);\\
//is_active// – признак активности;\\
//is_deleted// – признак удаления;\\
//source// – произвольный текст;\\
//agree_to_receive_sms// – согласие получать СМС о готовности заказов;\\
//agree_to_receive_adv_sms// – согласие получать рекламные и поздравительные СМС;\\
//sp// – тип клиента (1- организация, 2- физическое лицо);\\
//region_id// – регион;\\
//date_create// – дата создания;\\
//first_order_date// – дата первого заказа;\\
//last_order_date// – дата последнего заказа;\\
//previous_order_date// – дата предпоследнего заказа;\\
//scheme_id// - ID дисконтной схемы;\\
//schem_name// - наименование ДС;\\
//is_family// - признак семейная скидка;\\
//agree_save_card_pay// – признак согласия сохранять карту оплаты;\\
//birth_day// – дата рождения;\\
//order_not_pay// – количество не отплаченных заказов;\\
//order_count// – количество заказов;\\
//deposit// – остаток депозита клиента;\\
//bonus// – остаток бонусов клиента;\\
//dolg// – сумма долга;\\
//enter_count// – количество посещений;\\
//pay_rest// – нерастраченные авансовые платежи;\\
//date_avg// – среднее кол-во дней между заказами;\\
//pay_summ// – сумма заказов за весь период;\\
//disc_rest// – остаток по дисконтной схеме;\\
//promo_code// – промо-код;\\
//date_last_ds// - дата присвоения последней ДС.
----
===== Список изменившихся ID заказов. LastChangeOrder =====
**Команда:** %%LastChangeOrder%%
Получение списка изменившихся ID заказов.
Метод отправки: **GET**
Заголовок запроса (Header): не требуется.
Формат запроса: %%LastChangeOrder=&SessionID=%%
Строка запроса: .../api/?LastChangeOrder&SessionID=...
Ответ **json**:
{
"error": 0,
"last_orders":
[
{
"cur_id": "123",
"dttm": "15.01.2019 12:23",
"dor_id": "123456",
"status_id": "1",
"contr_id": "123456789"
"cur_sclad_id": "12334",
"sclad_to": "12333",
"sclad_kredit_id": "12345"
},
{
"cur_id": "124",
"dttm": "15.01.2019 12:24",
"dor_id": "258963",
"status_id": "3",
"contr_id": "1234567",
"cur_sclad_id": "12334",
"sclad_to": "12333",
"sclad_kredit_id": "12345"
},
...
]
}
где\\
**last_orders** – массив изменившихся заказов:\\
//cur_id// - порядковый номер изменения;\\
//dttm// - дата и время изменения;\\
//dor_id// – ID заказа;\\
//contr_id// – ID клиента;\\
//status_id// – статус заказа (1 – новый, 3 – в исполнении, 4 – исполненный, 5 - выданный);\\
//cur_sclad_id// – текущий ID склад заказа на момент изменения в заказе;\\
//sclad_to// - ID склада выдачи;\\
//sclad_kredit_id// - ID склада приема;
----
====== Устаревшие команды ======
В данном разделе находятся уже устаревшие команды, но еще работающие.
Через несколько лет они будут удалены.
Для избежания поломки уже интегрированных устаревших команд, рекомендуется сделать переход на соответствующую актуальную команду.
----
===== Получение фотографий услуг. GetOrderImagesForAll =====
**Команда:** %%GetOrderImagesForAll%%
**Устаревшая команда**. Команда просмотра фотографий заказа.\\
Для просмотра списка фотографий, рекомендуется использовать актуальную команду [[api#фотографии_по_заказу_orderimagesmodern|OrderImagesModern]].
Для получения самой фотографии, используется команда [[api#фотографии_по_заказу_photoonline|PhotoOnline]].
Метод отправки: **GET**
Заголовок запроса (Header): не требуется.
Формат запроса: %%GetOrderImagesForAll={"dor_id": "11223334"}&SessionID=%%
Строка запроса: .../api/?GetOrderImagesForAll=%7B%22dor_id%22%3A%20%2211223334%22%7D&SessionID=…
где\\
//dor_id// – ID заказа, **обязательно поле**.
Ответ **json**:
{
"error":0,
"photos":[
{
"dos_id": "100229859",
"photo_id": "1004",
"img": "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"
}
]
}
где\\
//photos// – массив фотографий;\\
//dos_id// – ID услуги заказа;\\
//photo_id// – ID фотографии;\\
//img// – фотография в строке base64.
----