Данный API предназначен для интеграции внешней торговой системы с сервером заказов УКМ 5. Подробное описание функционала и настроек сервера заказов приведены в соответствующей статье.
{
"openapi" : "3.0.1",
"info" : {
"title" : "Сервер заказов"
},
"security" : [ ],
"paths" : {
"/api/v1.0/order/{number}" : {
"get" : {
"tags" : [ "Order" ],
"summary" : "Получение заказа с сервера",
"description" : "Получить по номеру содержимое заказа и его статус с сервера",
"operationId" : "getOrder",
"parameters" : [ {
"name" : "number",
"in" : "path",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Заказ успешно получен",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/Order"
}
}
}
},
"500" : {
"description" : "Ошибка получения заказа",
"content" : {
"text/html(UTF-8)" : {
"schema" : {
"type" : "string"
}
}
}
}
}
},
"put" : {
"tags" : [ "Order" ],
"summary" : "Изменение заказа",
"description" : "Изменить состав ранее загруженного заказа по номеру",
"operationId" : "putOrder",
"parameters" : [ {
"name" : "number",
"in" : "path",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/Order"
}
}
}
},
"responses" : {
"200" : {
"description" : "Заказ успешно изменён",
"content" : {
"text/html(UTF-8)" : {
"schema" : {
"$ref" : "#/components/schemas/Order"
}
}
}
},
"400" : {
"description" : "Неправильный номер заказа",
"content" : {
"text/html(UTF-8)" : {
"schema" : {
"type" : "string"
}
}
}
},
"500" : {
"description" : "Ошибка изменения заказа",
"content" : {
"text/html(UTF-8)" : {
"schema" : {
"type" : "string"
}
}
}
}
}
},
"delete" : {
"tags" : [ "Order" ],
"summary" : "Удаление заказа",
"description" : "Удалить заказ по номеру",
"operationId" : "deleteOrder",
"parameters" : [ {
"name" : "number",
"in" : "path",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Заказ успешно удалён",
"content" : {
"*/*" : { }
}
},
"500" : {
"description" : "Ошибка удаления заказа",
"content" : {
"*/*" : { }
}
}
}
}
},
"/api/v1.0/order/{number}/status" : {
"get" : {
"tags" : [ "Order" ],
"summary" : "Получение статусa заказа с сервера",
"description" : "Получить по номеру статус заказа с сервера",
"operationId" : "getOrderStatus",
"parameters" : [ {
"name" : "number",
"in" : "path",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Статус заказа успешно получен",
"content" : {
"text/html(UTF-8)" : {
"schema" : {
"type" : "string"
}
}
}
},
"500" : {
"description" : "Ошибка получения статуса заказа",
"content" : {
"text/html(UTF-8)" : {
"schema" : {
"type" : "string"
}
}
}
}
}
},
"post" : {
"tags" : [ "Order" ],
"summary" : "Изменение статуса заказа",
"description" : "Изменить статус заказа по номеру",
"operationId" : "postOrder",
"parameters" : [ {
"name" : "number",
"in" : "path",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "newStatus",
"in" : "query",
"description" : "Возможные значения: 'WaitsPrepayment' (ожидает предоплаты), 'Prepaid' (предоплата получена), 'WaitsPurchase' (oжидает выкупа), 'Purchased' (Выкуплен), 'WaitsPrepaymentReturn' (ожидает возврата предоплаты), 'PrepaymentReturned' (предоплата возвращена), 'WaitsReturn' (ожидает возврата), 'Returned' (возвращён)",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Статус заказа успешно изменён",
"content" : {
"text/html(UTF-8)" : {
"schema" : {
"type" : "string"
}
}
}
},
"500" : {
"description" : "Ошибка изменения статуса заказа",
"content" : {
"text/html(UTF-8)" : {
"schema" : {
"type" : "string"
}
}
}
}
}
}
},
"/api/v1.0/order/{number}/pickstatus" : {
"post" : {
"tags" : [ "Order" ],
"summary" : "Изменение статуса сборки заказа",
"description" : "Изменить статус сборки заказа по номеру",
"operationId" : "postOrderPickStatus",
"parameters" : [ {
"name" : "number",
"in" : "path",
"required" : true,
"schema" : {
"type" : "string"
}
}, {
"name" : "newStatus",
"in" : "query",
"description" : " Возможные значения: 'NotPicked' (Не собран), 'Picking' (собирается), 'Complete' (Сформирован), 'ApprovedByBuyer' (Согласовано с Покупателем)",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Статус сборки заказа успешно изменён",
"content" : {
"text/html(UTF-8)" : {
"schema" : {
"type" : "string"
}
}
}
},
"500" : {
"description" : "Ошибка изменения статуса сборки заказа",
"content" : {
"text/html(UTF-8)" : {
"schema" : {
"type" : "string"
}
}
}
}
}
}
},
"/api/v1.0/order/{number}/items" : {
"get" : {
"tags" : [ "Order" ],
"summary" : "Получение состава заказа с сервера",
"description" : "Получить содержимое заказа по номеру",
"operationId" : "getOrderItems",
"parameters" : [ {
"name" : "number",
"in" : "path",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Состав заказа успешно получен",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ItemSeq"
}
}
}
},
"500" : {
"description" : "Ошибка получения состава заказа",
"content" : {
"text/html(UTF-8)" : {
"schema" : {
"type" : "string"
}
}
}
}
}
}
},
"/api/v1.0/orders/{storeId}" : {
"get" : {
"tags" : [ "Orders" ],
"summary" : "Получение списка не собранных заказов для магазина с сервера",
"description" : "Получить список не собранных заказов для конкретного магазина",
"operationId" : "getOrders",
"parameters" : [ {
"name" : "storeId",
"in" : "path",
"description" : "Номер магазина",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"200" : {
"description" : "Список успешно получен",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/HeaderSeq"
}
}
}
},
"500" : {
"description" : "Ошибка получения",
"content" : {
"text/html(UTF-8)" : {
"schema" : {
"type" : "string"
}
}
}
}
}
}
},
"/api/v1.0/order" : {
"post" : {
"tags" : [ "LoadOrder" ],
"summary" : "Загрузка заказа на сервер",
"description" : "Загрузить содержимое заказа и его статус из интернет-магазина или от внешней системы на сервер заказов",
"operationId" : "postLoad",
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/Order"
}
}
}
},
"responses" : {
"200" : {
"description" : "Заказ успешно загружен",
"content" : {
"*/*" : {
"schema" : {
"type" : "string"
}
}
}
},
"500" : {
"description" : "Ошибка загрузки заказа",
"content" : {
"*/*" : {
"schema" : {
"type" : "string"
}
}
}
}
}
}
}
},
"components" : {
"schemas" : {
"SeqPickItem" : {
"required" : [ "traversableAgain" ],
"type" : "array",
"properties" : {
"traversableAgain" : {
"type" : "boolean"
},
"empty" : {
"type" : "boolean"
}
},
"description" : "Товары",
"items" : {
"$ref" : "#/components/schemas/PickItem"
}
},
"HeaderSeq" : {
"type" : "object",
"properties" : {
"orderHeaders" : {
"required" : [ "traversableAgain" ],
"type" : "array",
"properties" : {
"traversableAgain" : {
"type" : "boolean"
},
"empty" : {
"type" : "boolean"
}
},
"description" : "3аказы",
"items" : {
"$ref" : "#/components/schemas/OrderHeader"
}
}
},
"description" : "Список заголовков заказа"
},
"OrderHeader" : {
"required" : [ "number", "status", "storeId", "type" ],
"type" : "object",
"properties" : {
"number" : {
"type" : "string",
"description" : "Номер заказа"
},
"description" : {
"type" : "string",
"description" : "Описание заказа - любая дополнительная информация"
},
"type" : {
"type" : "string",
"description" : "Тип заказа. Возможные значения: 'Sale', 'Return'"
},
"status" : {
"type" : "string",
"description" : "Статус заказа. Возможные значения: 'WaitsPrepayment' (ожидает предоплаты), 'Prepaid' (предоплата получена), 'WaitsPurchase' (oжидает выкупа), 'Purchased' (Выкуплен), 'WaitsPrepaymentReturn' (ожидает возврата предоплаты), 'PrepaymentReturned' (предоплата возвращена), 'WaitsReturn' (ожидает возврата), 'Returned' (возвращён), 'Cancelled' (отменен)"
},
"storeId" : {
"type" : "string",
"description" : "Магазин, в котором будет получен заказ"
},
"loyaltyCard" : {
"type" : "string",
"description" : "Карта клиента"
},
"registrationDate" : {
"type" : "string",
"description" : "Дата/время регистрации заказа"
},
"deliveryDate" : {
"type" : "string",
"description" : "Дата/время доставки заказа"
},
"buyerName" : {
"type" : "string",
"description" : "ФИО покупателя"
},
"buyerPhoneNumber" : {
"type" : "string",
"description" : "Моб.тел. покупателя"
},
"pickingStatus" : {
"type" : "string",
"description" : "Статус сборки. Возможные значения: 'NotPicked' (Не собран), 'Picking' (собирается), 'Complete' (Сформирован), 'ApprovedByBuyer' (Согласовано с Покупателем)"
},
"pickerId" : {
"type" : "string",
"description" : "Идентификатор сборщика заказа"
}
},
"description" : "Заголовок заказа"
},
"Payment" : {
"required" : [ "amount", "type" ],
"type" : "object",
"properties" : {
"type" : {
"type" : "string",
"description" : "Тип платежа. Возможные значения: 'Cash', 'Card'"
},
"amount" : {
"type" : "number",
"description" : "Сумма платежа",
"format" : "double"
},
"rrn" : {
"type" : "string",
"description" : "RRN (только для оплат картой)"
},
"authCode" : {
"type" : "string",
"description" : "Код авторизации (только для оплат картой)"
}
},
"description" : "Платежи заказа"
},
"Item" : {
"required" : [ "discountPolicy", "position", "quantity", "sku" ],
"type" : "object",
"properties" : {
"position" : {
"type" : "integer",
"description" : "Номер позиции в заказе",
"format" : "int32"
},
"sku" : {
"type" : "string",
"description" : "Артикул"
},
"quantity" : {
"type" : "number",
"description" : "Количество",
"format" : "double"
},
"price" : {
"type" : "object",
"description" : "Цена",
"default" : "0"
},
"minPrice" : {
"type" : "object",
"description" : "Минимальная цена",
"default" : "0"
},
"discountPolicy" : {
"type" : "string",
"description" : "Политика применения скидок: None - скидки не применяются, Bonuses - применяется только оплата бонусами, Front - применяются только фронтальные скидки, All - применяются любые скидки"
},
"kiz" : {
"type" : "string",
"description" : "КИЗ для позиции"
}
},
"description" : "Позиция заказа"
},
"ItemSeq" : {
"type" : "object",
"properties" : {
"orderItems" : {
"required" : [ "traversableAgain" ],
"type" : "array",
"properties" : {
"traversableAgain" : {
"type" : "boolean"
},
"empty" : {
"type" : "boolean"
}
},
"description" : "Товары",
"items" : {
"$ref" : "#/components/schemas/PickItem"
}
}
},
"description" : "Список позиций заказа для сборки"
},
"PickItem" : {
"required" : [ "quantity", "sku" ],
"type" : "object",
"properties" : {
"sku" : {
"type" : "string",
"description" : "Артикул"
},
"quantity" : {
"type" : "number",
"description" : "Количество",
"format" : "double"
},
"price" : {
"type" : "object",
"description" : "Цена",
"default" : "0"
}
},
"description" : "Позиция заказа для сборки"
},
"Order" : {
"required" : [ "items", "number", "status", "storeId", "type" ],
"type" : "object",
"properties" : {
"number" : {
"type" : "string",
"description" : "Номер заказа"
},
"description" : {
"type" : "string",
"description" : "Описание заказа - любая дополнительная информация"
},
"type" : {
"type" : "string",
"description" : "Тип заказа. Возможные значения: 'Sale', 'Return'"
},
"status" : {
"type" : "string",
"description" : "Статус заказа. Возможные значения: 'WaitsPrepayment' (ожидает предоплаты), 'Prepaid' (предоплата получена), 'WaitsPurchase' (oжидает выкупа), 'Purchased' (Выкуплен), 'WaitsPrepaymentReturn' (ожидает возврата предоплаты), 'PrepaymentReturned' (предоплата возвращена), 'WaitsReturn' (ожидает возврата), 'Returned' (возвращён), 'Cancelled' (отменен)"
},
"storeId" : {
"type" : "string",
"description" : "Магазин, в котором будет получен заказ"
},
"loyaltyCard" : {
"type" : "string",
"description" : "Карта клиента"
},
"items" : {
"required" : [ "traversableAgain" ],
"type" : "array",
"properties" : {
"traversableAgain" : {
"type" : "boolean"
},
"empty" : {
"type" : "boolean"
}
},
"description" : "Товары",
"items" : {
"$ref" : "#/components/schemas/Item"
}
},
"payments" : {
"type" : "array",
"properties" : {
"traversableAgain" : {
"type" : "boolean"
},
"empty" : {
"type" : "boolean"
}
},
"description" : "Оплаты",
"items" : {
"$ref" : "#/components/schemas/Payment"
}
},
"registrationDate" : {
"type" : "string",
"description" : "Дата/время регистрации заказа"
},
"deliveryDate" : {
"type" : "string",
"description" : "Дата/время доставки заказа"
},
"buyerName" : {
"type" : "string",
"description" : "ФИО покупателя"
},
"buyerPhoneNumber" : {
"type" : "string",
"description" : "Моб.тел. покупателя"
},
"pickingStatus" : {
"type" : "string",
"description" : "Статус сборки. Возможные значения: 'NotPicked' (Не собран), 'Picking' (собирается), 'Complete' (Сформирован), 'ApprovedByBuyer' (Согласовано с Покупателем)"
},
"pickerId" : {
"type" : "string",
"description" : "Идентификатор сборщика заказа"
}
},
"description" : "Заказ"
}
}
}
}