Поставка на склад (Заказы поставщику)
- /api/lite/purchase_orders
- /api/lite/purchase_orders/history
- /api/lite/purchase_orders/confirm
- /api/lite/purchase_orders/accept_diff
- /api/lite/purchase_orders/set_in_process
- /api/lite/purchase_orders/completed
- /api/lite/purchase_orders/items/fact
- /api/lite/purchase_orders/file
- /api/lite/purchase_orders/file/edit
- /api/lite/purchase_orders/history/status
/api/lite/purchase_orders
Запрос списка поставок на склад (заказов поставщиков)
/api/lite/purchase_orders
Метод возвращает список заказов с заданной фильтрацией.
Можно использовать как для получения списка, так и единичного заказа.
Фильтрация
Для фильтрации есть следующие возможности:
- id - по номеру заказа
- filter_states - по статусам заказов (можно указывать несколько через зяпятую)
- filter_external_id, filter_external_id_2, filter_external_id_3, filter_external_id_4, filter_external_id_5 - по внешним идентификаторам
- date_from - по дате заказа, от. формат: 2020-02-19T12:35:31
- date_to - по дате заказа, до
- updated_from - по дате/времени изменения. формат: 2020-02-19T12:35:31. Не суммируется с другими параметрами фильтрации
- supllier_id - по id поставщика
- consignor_id - по id грузоотправителя
- date_of_accept_from - по фактической дате приемки, от. формат 2020-02-19T12:35:31
- date_of_accept_to - по фактической дате приемки, до. формат 2020-02-19T12:35:31
- arrival_date_from - по фактической дате прибытия поставки на склад, от. формат 2020-02-19T12:35:31
- arrival_date_to - по фактической дате прибытия поставки на склад, до. формат 2020-02-19T12:35:31
- statuses - список статусов поставки через запятую
Пейджинация
Для пейджинации используются параметры page и size: size - записей на странице, page - номер страницы.
Пример: /api/lite/orders?page=0&size=200
Если параметры не переданы, то дефолтные значения page=0&size=100
Также для отображение пейджинации следует анализировать параметр recordsTotal, возвращающий общее количество записей (с учетом примененной фильтрации, если она есть).
Сортировка
Для сортировки задается параметр order, принимающий код поля для сортировки и направление сортировки (asc, desc), отделенное символом плюса.
Пример сортировки по дате (возрастание): /api/lite/orders?order=date+asc
Пример сортировки по дате (убывание): /api/lite/orders?order=date+desc
Доступные коды сортировки:
- date (дата заказа)
- id (номер заказа)
По умолчанию используется сортировка по дате заказа по убыванию.
Полный комплект данных по заказам будет передан только если в запросе будет параметр full_info=true
Точечное описание некоторых полей, которые возвращает запрос по поставкам
purchaseArrivalDate формат 2021-04-02 15:50:48.032 | фактическая дата прихода поставки на склад |
finishlDate формат 2021-04-02 15:50:48.032 | фактическая дата закрытия поставки |
date формат 2021-04-02 15:50:48.032 | дата создания поставки в лк Кактус |
status | статус поставки |
supplier | объект, содержит информацию о поставщике |
consignor | объект, содержит информацию о грузоотправителе |
files | список объектов, содержит информацию о файлах в поставке |
warehouseName | название склада |
warehouseCode | код склада |
comment | комментарий к поставке |
Пример запроса по одному заказу и полными данными:
GET api/lite/purchase_orders?id=1001&full_info=true
Пример результата запроса
{
"success":true,
"recordsTotal":1,
"purchaseOrders":[
{
"id":"1001",
"externalId":"extId",
"externalId2":"extId2",
"externalId3":"extId3",
"externalId4":"extId4",
"externalId5":"extId5",
"date":"2021-04-02 15:50:41",
"updateTs":"2021-04-02 15:50:48.032",
"status":"COMPLETED",
"totalOrderSum":0,
"comment":"",
"totalQuantity":100,
"supplier":{
"id":"da1686cf-0551-db1d-57b9-c04120309fae",
"type":"PERSON",
"role":null,
"name":"Розничный покупатель",
"organization":null,
"person":{
"name":"",
"surname":"",
"patronymic":"",
"fullName":"Розничный Покупатель",
"phone":"",
"rawPhone":null,
"alternativePhone":"",
"email":null,
"post":null,
"personType":null,
"address":{
"country":null,
"countryCode":null,
"region":null,
"area":null,
"city":null,
"settlement":null,
"street":null,
"house":null,
"block":null,
"building":null,
"flat":null,
"fullAddress":null,
"fullCity":null,
"rawData":null,
"zip":null,
"regionFias":null,
"areaFias":null,
"cityFias":null,
"settlementFias":null
}
}
},
"consignor":{
"id":"11430b37-7f78-1202-f6cf-e4b460d81aca",
"name":"АО \"АРМАДИЛЛО БИЗНЕС ПОСЫЛКА\"",
"organization":{
"address":{
"area":"ГОРОД МОСКВА",
"block":"",
"building":"СТРОЕНИЕ 1",
"city":"ГОРОД МОСКВА",
"country":"Russia",
"countryCode":"RU",
"flat":"",
"fullAddress":"",
"fullCity":"ГОРОД МОСКВА",
"house":"16",
"rawData":"",
"region":"ГОРОД МОСКВА",
"settlement":"",
"street":"УЛИЦА ДОКУКИНА",
"zip":"129226"
},
"fullName":"АКЦИОНЕРНОЕ ОБЩЕСТВО \"АРМАДИЛЛО БИЗНЕС ПОСЫЛКА\"",
"id":"c9066ce2-307b-23db-f22a-f1dcc3742f77",
"inn":"7713215523",
"kpp":"771601001",
"name":"АО \"АРМАДИЛЛО БИЗНЕС ПОСЫЛКА\"",
"ogrn":"1027739074142",
"orgLegalType":"COMPANY",
"phones":"",
"postalAddress":{
}
},
"type":"COMPANY"
},
"items":[
{
"accountingAttributes":[
{
"code":"chestnyznak",
"n":854,
"stringValue":"0104064196826017215uHGtegWyMT;<9100BE92w1NTVrrKUOM1Z2waUb04Nt9Ifc+WOJDV9+fQqtZxZf9D8UssJBIsmx/AVzOP9"
},
{
"code":"chestnyznak",
"n":852,
"stringValue":"0104064196826017215vhGSFBRSK.r69100BE928MYt2IiDvRzfF1HcG9QxbuwtckYc6d5NlzTwweRuKGVM3tyq+1vx35aKDFhsN"
}
],
"article":"1-1-22407-20-508",
"barcode":"4164196826017",
"num":1,
"variantId":"1001",
"productId":"1001",
"name":"товар тест 3",
"quantity":100,
"quantityFact":100,
"quantityRaw":100,
"quantityDefective":0,
"vatRate":"NO_VAT",
"price":0,
"img":"https://storage.yandexcloud.net/images-k2c/05d7a992-1c61-4f39-87c6-1401405055e2.jpg",
"skuType":"SKU",
"barcode":"",
"orderDocId":"5703-1013",
"batchAccountingAttributes":{
"useBatchAccounting":true,
"useExpiration":true,
"expirationDate":"2022-12-01",
"productionDate":"2021-01-01",
"expirationDaysLimit":20,
"expirationDays":500,
"batchAccountingNumber":"abcd-01",
"manufacturer":"ООО Полёт",
"manufacturerRequisites":"ИНН: 123456789"
}
}
],
"files":[
{
"id":"43f79bac-0d82-2d82-f11d-abd1a53b26a0",
"fileType":"PDF",
"fileSource":"FULFILLMENT",
"fileName":"МХ1",
"fileExt":"pdf",
"url":"https://yadi.sk/d/BzKXkRigQZtVnB",
"printWhenPacking":true,
"copiesQty":1
}
],
"warehouseName":"Свой склад",
"warehouseCode":"373b1e28-a6d7-545f-9303-65af3a652d48",
"confirmStatus":"APPROVED",
"warehouseFFExported":false,
"warehouseFFSync":false,
"currency":"RUB"
}
]
}
Пример запроса по списку поставок:
GET /api/lite/purchase_orders
Пример результата запроса:
{
"success": true,
"recordsTotal": 2,
"purchaseOrders": [
{
"id": "1001",
"externalId": "extId",
"externalId2": "extId2",
"externalId3": "extId3",
"externalId4": "extId4",
"externalId5": "extId5",
"date": "2021-04-02 15:50:41",
"updateTs": "2021-04-02 15:50:48.032",
"status": "COMPLETED",
"totalOrderSum": 0,
"comment": "",
"totalQuantity": 100,
"supplier": {
"id": "da1686cf-0551-db1d-57b9-c04120309fae",
"type": "PERSON",
"role": null,
"name": "Розничный покупатель",
"organization": null,
"person": {
"name": "",
"surname": "",
"patronymic": "",
"fullName": "Розничный Покупатель",
"phone": "",
"rawPhone": null,
"alternativePhone": "",
"email": null,
"post": null,
"personType": null,
"address": {
"country": null,
"countryCode": null,
"region": null,
"area": null,
"city": null,
"settlement": null,
"street": null,
"house": null,
"block": null,
"building": null,
"flat": null,
"fullAddress": null,
"fullCity": null,
"rawData": null,
"zip": null,
"regionFias": null,
"areaFias": null,
"cityFias": null,
"settlementFias": null
}
}
},
"items": [
{
"num": 1,
"variantId": "1001",
"productId": "1001",
"name": "товар тест 3",
"quantity": 100,
"quantityFact": 100,
"quantityRaw": 100,
"quantityDefective": 0,
"vatRate": "NO_VAT",
"price": 0,
"img": "https://storage.yandexcloud.net/images-k2c/05d7a992-1c61-4f39-87c6-1401405055e2.jpg",
"skuType": "SKU",
"barcode": "",
"orderDocId": "5703-1013"
}
],
"files": [
{
"id": "43f79bac-0d82-2d82-f11d-abd1a53b26a0",
"fileType": "PDF",
"fileSource": "FULFILLMENT", //ESHOP | USER
"fileName": "МХ1",
"fileExt": "pdf",
"url": "https://yadi.sk/d/BzKXkRigQZtVnB",
"printWhenPacking": true,
"copiesQty": 1
}
],
"warehouseName": "Свой склад",
"warehouseCode": "373b1e28-a6d7-545f-9303-65af3a652d48",
"confirmStatus": "APPROVED",
"warehouseFFExported": false,
"warehouseFFSync": false,
"currency": "RUB"
},
{
"id": "1002",
"date": "2021-04-03 15:50:41",
"updateTs": "2021-04-02 15:50:48.032",
"status": "COMPLETED",
"totalOrderSum": 0,
"comment": "",
"totalQuantity": 100,
"supplier": {
"id": "da1686cf-0551-db1d-57b9-c04120309fae",
"type": "PERSON",
"role": null,
"name": "Розничный покупатель",
"organization": null,
"person": {
"name": "",
"surname": "",
"patronymic": "",
"fullName": "Розничный Покупатель",
"phone": "",
"rawPhone": null,
"alternativePhone": "",
"email": null,
"post": null,
"personType": null,
"address": {
"country": null,
"countryCode": null,
"region": null,
"area": null,
"city": null,
"settlement": null,
"street": null,
"house": null,
"block": null,
"building": null,
"flat": null,
"fullAddress": null,
"fullCity": null,
"rawData": null,
"zip": null,
"regionFias": null,
"areaFias": null,
"cityFias": null,
"settlementFias": null
}
}
},
"items": [
{
"num": 1,
"variantId": "1001",
"productId": "1001",
"name": "товар тест 3",
"quantity": 100,
"quantityFact": 100,
"quantityRaw": 100,
"quantityDefective": 0,
"vatRate": "NO_VAT",
"price": 0,
"img": "https://storage.yandexcloud.net/images-k2c/05d7a992-1c61-4f39-87c6-1401405055e2.jpg",
"skuType": "SKU",
"barcode": ""
}
],
"files": [
{
"id": "43f79bac-0d82-2d82-f11d-abd1a53b26a0",
"fileType": "PDF",
"fileSource": "FULFILLMENT", //ESHOP | USER
"fileName": "МХ1",
"fileExt": "pdf",
"url": "https://yadi.sk/d/BzKXkRigQZtVnB",
"printWhenPacking": true,
"copiesQty": 1
}
],
"warehouseName": "Свой склад",
"warehouseCode": "373b1e28-a6d7-545f-9303-65af3a652d48",
"confirmStatus": "APPROVED",
"warehouseFFExported": false,
"warehouseFFSync": false,
"currency": "RUB"
}
]
}
Возможные статусы заказа:
NEW
READY_TO_TAKE_IN
TAKE_IN_PROCESS
COMPLETED
COMPLETED_WITH_DIFFERENCE
DIFFERENCE
CANCELED
Создание/редактирование поставки (заказа поставщику)
/api/lite/purchase_orders
Создание/редактирование заказа для кабинета.
Если указан параметр id - то система будет пробовать найти заказ с указанным номером и отредактировать его, иначе - создаст новый с указанным id.
Если параметр id не указан - система создаст новый заказ и присвоит внутренний номер.
Поле | Тип | Обязательный | Комментарий |
warehouseCode | string | да | Код склада на который будет поставка, из справочника складов аккаунта |
supplier | Объект | да | Данные о поставщике из справочника контрагентов аккаунта |
supplier.id | string | да |
Код контрагента-поставщика из справочника контрагентов аккаунта. |
consignor | Объект | нет | Данные о грузоотправителе из справочника контрагентов аккаунта |
consignor.id | string | нет | Код контрагента-грузоотправителя из справочника контрагентов аккаунта |
items | Объект | да | Список позиций поставки |
items.num | integer | да | Номер строки (последовательно с 1, без пропусков) |
items.quantity | integer | да | Количество товара (более 0) |
items.price | money | да | Цена за шт |
items.vatRate |
enum Значения: NO_VAT, VAT_0, VAT_10, VAT_20 |
да | Ставка НДС |
items.variantId | string | да (если настроен поиск по этому полю) | Код товара в аккаунте |
items.variantExtId | string | да (если настроен поиск по этому полю) | Внешний код товара в аккаунте |
items.orderDocId | string | нет | Для согласованных кроссдок поставок - номер привязанного заказа |
items.batchAccountingAttributes | Объект | нет | Атрибуты партии для данного товара |
confirmStatus |
enum CANCELED |
нет | Статус подтверждения. Только если статус = APPROVED - поставка выгружается на склад для приемки. |
comment | string | нет | Комментарий к поставке для склада |
dateOfDeliveryPlan | DateTime | нет | Ориентровочная дата поступления поставки |
externalId - externalId5 | string | нет | Внешние коды поставки из клиенстких систем |
Пример запроса:
{
"id": "1001",
"items": [
{
"num": 1,
"variantId": "demo1024",
"productId": "demo1006",
"productExtId": null,
"name": "Компьютер (демо товар) ",
"quantity": 3,
"price": 20000,
"vatRate": "NO_VAT",
"orderDocId": "5703-1013",
"batchAccountingAttributes": {
"useBatchAccounting": true,
"useExpiration": true,
"expirationDate": "2022-12-01",
"productionDate": "2021-01-01",
"expirationDaysLimit": 20,
"expirationDays": 500,
"batchAccountingNumber": "abcd-01",
"manufacturer": "ООО Полёт",
"manufacturerRequisites":"ИНН: 123456789"
}
}
],
"warehouseCode": "373b1e28-a6d7-545f-9303-65af3a652d48",
"supplier": {
"id": "da1686cf-0551-db1d-57b9-c04120309fae"
},
"dateOfDeliveryPlan": "2021-10-08 00:00:00",
"comment": "",
"confirmStatus": "APPROVED",
"externalId": "extId",
"externalId2": "extId2",
"externalId3": "extId3",
"externalId4": "extId4",
"externalId5": "extId5"
}
В ответ возвращается:
{
"success": true,
"orderId": "111",
"c": "2b92b631-7f1b-c52a-897e-30bc628f87e5"
}
Ошибка:
{
"success": false,
"errors": [
{
"code": 0,
"message": "Текст ошибки"
}
]
}
/api/lite/purchase_orders/history
Получение истории по заказу поставщика
/api/lite/purchase_orders/history
Возвращает историю событий по указанному заказу.
Обязательный параметр: id заказа
Пример ответа:
{
"success": true,
"events": [
{
"type": "Документы",
"subType": "Изменения заказа",
"orderDocStage": "Новый",
"eventDate": "2020-01-31 10:12:51.128",
"description": "",
"changeSource": "Пользователь",
"userLogin": "sale@djbag.ru-expert",
"id": "f258808b-a3ee-ccf6-9d1b-30198f94166c",
"level": "INFO",
"eventParameters": null
},
{
"type": "Документы",
"subType": "Изменения заказа",
"orderDocStage": "Новый",
"eventDate": "2020-01-31 10:35:55.144",
"description": "",
"changeSource": "Пользователь",
"userLogin": "sale@djbag.ru-expert",
"id": "94dc3974-f558-239f-c1c4-72b2906120c4",
"level": "INFO",
"eventParameters": null
}
]
}
/api/lite/purchase_orders/confirm
Заказ - подтверждение
/api/lite/purchase_orders/confirm
Проставление статуса Подтверждения у заказа.
Пример запроса:
{
"id":"1234",
"confirmStatus": "APPROVED" // HOLD/CANCELED/NEED_CONFIRM
}
В ответ возвращается
Успех:
{
"success": true,
"confirmStatus": "APPROVED" // HOLD/CANCELED
}
Ошибка:
{
"success": false,
"errors": [
{
"code": 0,
"message": "Текст ошибки"
}
]
}
/api/lite/purchase_orders/accept_diff
Заказ - подтверждение
/api/lite/purchase_orders/accept_diff
Проставление флага согласия с рахождениями приемки
Пример запроса:
{
"id":"1234",
"accept": true // false
}
В ответ возвращается
Успех:
{
"success": true,
"accept": true // false
}
Ошибка:
{
"success": false,
"errors": [
{
"code": 0,
"message": "Текст ошибки"
}
]
}
/api/lite/purchase_orders/set_in_process
Заказ - вернуть в обработку (свой склад)
/api/lite/purchase_orders/set_in_process
Для принятого или отмененного заказа - вернуть на приемку. Убирает с хранения все ранее принятые позиции
Пример запроса:
{
"id":"1234"
}
В ответ возвращается
Успех:
{
"success": true,
"id":"1234"
}
Ошибка:
{
"success": false,
"errors": [
{
"code": 0,
"message": "Текст ошибки"
}
]
}
/api/lite/purchase_orders/completed
Заказ - завершить приемку (свой склад)
/api/lite/purchase_orders/set_in_process
Для заказа по своему складу где есть ранее сформированный приходный ордер - завершает его приемку и добавляет товар на хранение
Пример запроса:
{
"id":"1234"
}
В ответ возвращается
Успех:
{
"success": true,
"id":"1234"
}
Ошибка:
{
"success": false,
"errors": [
{
"code": 0,
"message": "Текст ошибки"
}
]
}
/api/lite/purchase_orders/items/fact
Заказ - задать число принятых товаров (свой склад)
/api/lite/purchase_orders/items/fact
Для заказа на своем складе - простановка количества товаров в приемке перед закрытием
Пример запроса:
{
"id": "1005",
"items": [
{
"num": 1,
"variantId": "1003",
"quantityRaw": 2,
"vatRate": "NO_VAT",
"price": 123
},
{
"num": 2,
"variantId": "1000",
"quantityRaw": 3,
"vatRate": "NO_VAT",
"price": 123
}
]
}
В ответ возвращается
Успех:
{
"success": true,
"id": "1005"
}
Ошибка:
{
"success": false,
"errors": [
{
"code": 0,
"message": "Текст ошибки"
}
]
}
/api/lite/purchase_orders/file
/api/lite/purchase_orders/file
Добавляет файл к заказу.
Параметры передаются как form-data:
upfile | Файл для загрузки |
id | Идентификатор заказа (humanId) |
print_when_packing | Печатать при упаковке |
copies_qty | Кол-во копий |
Пример ответа:
{
"success": true,
"id": "b233372d-cf7b-f07b-446b-128912be7c8a",
"fileType": "JPG",
"fileName": "IMG_20200822_101244",
"fileSource": "USER", //ESHOP | FULFILLMENT
"fileExt": "jpg",
"url": "https://storage.yandexcloud.net/order-files-kak2c/d0f03942-8d75-4456-93af-42ec518ef0a9.jpg",
"printWhenPacking": false,
"copiesQty": 1
}
/api/lite/purchase_orders/file
Удаляет файл
В параметре id передается идентификатор файла.
Пример запроса:
DELETE https://app.kak2c.ru/api/lite/purchase_orders/file?id=b233372d-cf7b-f07b-446b-128912be7c8a
Пример ответа:
{
"success": true
}
/api/lite/purchase_orders/file/edit
/api/lite/purchase_orders/file/edit
Пример запроса:
{
"id": "b9e3efdd-455e-af10-996f-2cf6f03d9775",
"copiesQty": 2,
"printWhenPacking": true
}
Пример ответа:
{
"success": true
}
/api/lite/purchase_orders/history/status
Получение истории смены статусов по заказу поставщика
/api/lite/purchase_orders/history/status
Возвращает историю смены статуса по указанному заказу поставщика
Обязательный параметр: id заказа
Пример ответа:
{
"items": [
{
"date": "2023-07-18 12:31:13.960",
"infoStatus": "COMPLETED"
},
{
"date": "2023-07-18 12:31:09.973",
"infoStatus": "TAKE_IN_PROCESS"
},
{
"date": "2023-07-18 12:30:19.438",
"infoStatus": "READY_TO_TAKE_IN"
},
{
"date": "2023-07-18 12:29:58.319",
"infoStatus": "TAKE_IN_PROCESS"
},
{
"date": "2023-07-18 12:29:48.458",
"infoStatus": "COMPLETED_WITH_DIFFERENCE"
},
{
"date": "2023-07-18 12:29:36.275",
"infoStatus": "TAKE_IN_PROCESS"
},
{
"date": "2023-07-18 12:29:29.321",
"infoStatus": "READY_TO_TAKE_IN"
},
{
"date": "2023-07-18 12:29:28.835",
"infoStatus": "TAKE_IN_PROCESS"
},
{
"date": "2023-07-18 12:29:00.708",
"infoStatus": "READY_TO_TAKE_IN"
},
{
"date": "2023-07-18 12:28:37.077",
"infoStatus": "COMPLETED"
},
{
"date": "2023-07-18 12:28:31.183",
"infoStatus": "TAKE_IN_PROCESS"
},
{
"date": "2023-07-18 12:01:48.748",
"infoStatus": "READY_TO_TAKE_IN"
}
],
"success": true
}