====== Коммерческое 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. ----