НазначениеВалидация и расчет стоимости заказа в ресторане
Тип запросаасинхронный/синхронный
Поддерживаемая версия агентаv2
PluggetSystemType RKMid
{
  "taskType": " ValidateOrder",
  "params": {
    "sync": {
      "objectId": number,
       "timeout": number,
       "systemName": "string"
    },
     "order": {
        "products": [
           { // простой вариант
             "id": number,
             "name": "string",
             "price": "string", // в кассе смотрят на цену из кассы, параметр не обязателен
             "quantity": number,
             "comment": "string"
          },
          { // вариант с модификаторами или комбо
             "id": number,
             "name": "string",
             "price": number, // в кассе смотрят на цену из кассы, параметр не обязателен
             "quantity": number,
             "comment": "string"
             "ingredients": [ //массив модификаторов или элементов комбо
               {
                  "id": number,
                  "name": "string",
                  "quantity": number,
                  "price": number // в кассе смотрят на цену из кассы, параметр не обязателен
               }
             ]
          }
        ],
        "comment": "string",
        "tableCode": number,
        "orderCategoryCode": number,
        "orderTypeCode": number
      }
  }
}
CODE
ПараметрТипОбязательный ОписаниеЗначение по умолчание
async
-Асинхронный вызов метода (либо синхронный, либо асинхронный)
sync
-Синхронный вызов метода (либо синхронный, либо асинхронный)
timeoutint-Время ожидания ответа от агента в секундах120 секунд
objectIdintдаКод ресторана в системе лицензирования
systemNamestringнетУказание конкретной подключенной системы, для которой выполняется запрос
order
да

productsarray-Состав заказа (может быть не указанным при бронировании стола)
|- idintдаИдентификатор блюда
|- namestring-Название блюда
|- pricemoney-Цена за одно блюдо. Разделителем целой и дробной части суммы должна быть точка.
|- quantitymoneyдаКол-во блюд
|- commentstring-Комментарий к блюду. 
|- ingredientsarray-Ингредиенты или состав комбо-блюда
     |- idintдаИдентификатор ингредиента
     |- namestring-Название модификатора или комбо-компонета
     |- quantitymoney-Количество
     |- pricemoney-Цена
     |- ingredientsarray-Массив модификаторов для комбо-компонетов.
         |- idintдаИдентификатор модификатора
         |- namestring-Название модификатора
         |- quantitymoney-Количество
         |- pricemoney-Цена
tableCodeint-Код стола. Если не указан, берется из настроек по умолчанию
orderCategoryCodeint-Код категории заказа. Если не указан, берется из настроек по умолчанию
orderTypeCodeint-Код типа заказа. Если не указан, берется из настроек по умолчанию

Формат синхронного ответа

// Успешный ответ, заказ принят на кассе
{
  "taskResponse": {
     "order": {
         .....//Состав заказа и стоимость
     }
  },
  "responseCommon": {
    "taskGuid": "guid",
    "taskType": "ValidateOrder",
    "objectId": number
  }
}
 
// Ответ с ошибкой
{
  "responseCommon": {
    "taskGuid": "string",
    "taskType": "ValidateOrder",
    "objectId": number
  },
  "error": {
    "wsError": {
      "code": "string",
      "desc": "string"
    },
    "agentError": {
      "code": string,
      "desc": "string"
    }
  }
}
CODE



Параметр

Тип параметра

Обязательный

Описание

orderobject+Информация о заказе с рассчитанной стоимостью на кассе
errorstring enum-Контейнер ошибок, см. Описание ошибок

{
    "taskType": "ValidateOrder",
    "params": {
        "sync": {
            "objectId": "199990246",
            "timeout": 120
        },
        "order": {            
            "products": [
                {
                    "id": "1000016",
                    "name": "Борщ",
                    "quantity": 1
                },
                {
                    "id": "1000016",
                    "name": "Борщ",
                    "quantity": 1
                },
                {
                    "id": "1000017",
                    "name": "Сало",
                    "quantity": 1
                },
                {
                    "id": 1000056,
                    "name": "БСС",
                    "quantity": 1,
                    "price": 150,
                    "ingredients": [
                        {
                            "id": 1000047,
                            "name": "Борщ",
                            "price": 150,
                            "quantity": 1,
                            "ingredients": [
                                {
                                    "id": 1000066,
                                    "name": "Майонез",
                                    "price": 0,
                                    "quantity": 1
                                },
                                {
                                    "id": 1000065,
                                    "name": "Сметана",
                                    "price": 0,
                                    "quantity": 1
                                }
                            ]
                        }
                    ]
                },
                {
                    "id": 1000056,
                    "name": "БСС",
                    "quantity": 1,
                    "price": 150
                }
            ],
            "comment": "основной комментарий"
        }
    }
}

С ошибкой

{
    "responseCommon": {
        "taskGuid": "1dfcf4ea-6533-447e-b1f6-e8c6dea04567",
        "taskType": "ValidateOrder",
        "objectId": 199990246,
        "agentGuid": "d564619a-50c3-3d87-0816-de67ed9c8e18"
    },
    "error": {
        "agentError": {
            "code": "WsaOrderCreationDishNotFound",
            "desc": "WsaOrderCreationDishNotFound: Блюдо \"Борщ\" с ID 1010016 не найдено в меню"
        }
    }
}


Успешно

{
    "taskResponse": {
        "order": {
            "products": [
                {
                    "id": 1000016,
                    "name": "Борщ",
                    "price": 117,
                    "quantity": 1,
                    "ingredients": [],
                    "kdsState": "None",
                    "discountIds": []
                },
                {
                    "id": 1000016,
                    "name": "Борщ",
                    "price": 117,
                    "quantity": 1,
                    "ingredients": [],
                    "kdsState": "None",
                    "discountIds": []
                },
                {
                    "id": 1000017,
                    "name": "Сало",
                    "price": 50,
                    "quantity": 1,
                    "ingredients": [],
                    "kdsState": "None",
                    "discountIds": []
                },
                {
                    "id": 1000056,
                    "name": "БСС",
                    "price": 150,
                    "quantity": 1,
                    "ingredients": [
                        {
                            "id": 1000047,
                            "name": "Борщ",
                            "price": 150,
                            "quantity": 1,
                            "ingredients": [
                                {
                                    "id": 1000066,
                                    "name": "Майонез",
                                    "price": 0,
                                    "quantity": 1,
                                    "ingredients": [],
                                    "kdsState": "None"
                                },
                                {
                                    "id": 1000065,
                                    "name": "Сметана",
                                    "price": 0,
                                    "quantity": 1,
                                    "ingredients": [],
                                    "kdsState": "None"
                                }
                            ],
                            "kdsState": "None"
                        }
                    ],
                    "kdsState": "None",
                    "discountIds": []
                },
                {
                    "id": 1000056,
                    "name": "БСС",
                    "price": 150,
                    "quantity": 1,
                    "ingredients": [
                        {
                            "id": 1000047,
                            "name": "Борщ",
                            "price": 150,
                            "quantity": 1,
                            "ingredients": [],
                            "kdsState": "None"
                        }
                    ],
                    "kdsState": "None",
                    "discountIds": []
                }
            ],
            "price": {
                "total": 584,
                "sumToPay": 584
            }
        }
    },
    "responseCommon": {
        "taskGuid": "9f974f18-1727-4800-947c-2ca7ec215631",
        "taskType": "ValidateOrder",
        "objectId": 199990246,
        "agentGuid": "d564619a-50c3-3d87-0816-de67ed9c8e18"
    }
}