5. Коммерческие команды API с пользовательской сессией

Команды сохранения/редактирования клиентов, заказов, оплаты и т.п., для выполнения которых Требуется пользовательская сессия.

Работа с клиентами
Работа с заказами
Работа с услугами
Оплаты заказов

ContragForAll

Команда: ContragForAll

Создание, изменение клиента.

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

Заголовок запроса (Header): Content-type: application/json; charset=UTF-8

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

POST .../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",
    "price_list_id": "0",
  },
  "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), не обязательный параметр;
price_list_id - ID прайс-листа по умолчанию, с версии 24.4;
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).


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=

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

GET.../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=...

где
contr_id – ID клиента(если не указан, то поиск идет по barcode), обязательный параметр если не указан barcode;
barcode – номер карты клиента (если не указан, то поиск идет по contr_id), обязательно поле если не указан contr_id;
amount – сумма бонусов, обязательный параметр;
active_before - бонус действует до этой даты, не обязательный параметр;
max_percent_in_zakaz - максимальный процент оплаты заказа, не обязательный параметр;
bonus_type_id - ID типа бонусного начисления, не обязательный параметр;
comment - комментарий, не обязательный параметр.

Ответ json:

{"error":0}

где
error – статус выполнения (0 – нет ошибки, 1 – ошибка, 2 – не авторизирован, 3 - авторизация просрочена);
Msg – описание ошибки (при error = 1).


SaveOrderForAll

Команда: SaveOrderForAll

Сохранение заказа.

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

Заголовок запроса (Header): Content-type: application/json; charset=UTF-8

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

POST .../api/?SaveOrderForAll

Тело запроса тип json:

{
  "SaveOrderForAll":{
    "Order":{
      "contr_id": "10013",
      "doc_num": "233",
      "bso": "2233344555",
      "doc_date": "29.10.2017",
      "fast_exec": "0",
      "creater_id": "1234",
      "sclad_id": "1003",
      "sclad_out_id": "1005",
      "current_sclad_id": "1234",
      "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",
        "current_sclad_id": "1234",
        "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 - ID приемщика заказа, не обязательный параметр. По умолчанию используется ID авторизованного пользователя;
sclad_id – ID склада принятия, обязательный параметр;
sclad_out_id – ID склада выдачи, обязательный параметр;
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 - ID текущего склада услуги, не обязательный параметр. По умолчанию используется ID склада принятия заказа;

addons – массив объектов доп. реквизитов (обязательный параметр, если не реквизитов для заполнения, указывается пустым []):
addon_id – ID доп. реквизита, обязательный параметр. Узнать можно из команды AddonTypes, см. ниже;
values – значение реквизита (значения перечисляются через разделитель. Для сброса значения реквизита задается пустое значение), обязательный параметр;
Примеры заполнения addons для:

  • 0 - Целые

{
  "addon_id": "123",
  "values": "12"
}

  • 1 - Строковые

{
  "addon_id": "124",
  "values": "%D0%BF%D1%8F%D1%82%D0%BD%D0%B0"
}

  • 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%D1%80%D1%83%D0%B4%D0%BD%D0%BE%D0%B2%D1%8B%D0%B2%D0%BE%D0%B4%D0%B8%D0%BC%D1%8B%D0%B5%20%D0%BF%D1%8F%D1%82%D0%BD%D0%B0"
}

  • 9 - Фигура (1 - Квадрат (Пример: 1|3,3|), 2 - Прямоугольник (Пример: 2|1.3|3|), 3 - Круг (Пример: 3|4,8|2.4|), 4 - Овал (Пример: 4|2,3|4,5|))

{
  "addon_id": "130",
  "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

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

POST .../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",
      "current_sclad_id": "1234",
      "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",
        "current_sclad_id": "1234",
        "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 - 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 - 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": "%D0%BF%D1%8F%D1%82%D0%BD%D0%B0"
}

  • 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": "%D0%BF%D1%8F%D1%82%D0%BD%D0%B0"
}

  • 9 - Фигура (1 - Квадрат (Пример: 1|3,3|), 2 - Прямоугольник (Пример: 2|1.3|3|), 3 - Круг (Пример: 3|4,8|2.4|), 4 - Овал (Пример: 4|2,3|4,5|))

{
  "addon_id": "130",
  "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

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

POST .../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).


SetOrderImagesForAll

Команда: SetOrderImagesForAll

Сохранение фотографий в услуге.

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

Заголовок запроса (Header): Content-type: application/json; charset=UTF-8

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

POST .../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).


PayForAll

Команда: PayForAll

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

Возможна частичная оплата, т.е. часть «оплата по карте», часть «оплата бонусом».

Для выполнения команды необходимо выставить две глобальные настройки на центральной базе клиента.
Значения необходимо согласовать с Химчисткой.

Нажмите, чтобы отобразить

Нажмите, чтобы скрыть

ВАЖНО! : если оплату необходимо фискализировать на ККТ, то необходимо передать параметр is_fiscal
При этом у клиента должна быть настроена фискализации

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

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

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

PayForAll={"dor_id": "1123444", "amount": "123.25", "type_doc": "1"}&SessionID=

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

GET .../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=...

где
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).

Ответ 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=

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

GET .../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=...

где
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).

Ответ json:

{"error":0}
где
error – статус выполнения (0 – нет ошибки, 1 – ошибка, 2 – не авторизирован, 3 - авторизация просрочена);
Msg – описание ошибки (при error = 1).