/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
Пример результата запроса
{
"purchaseOrders": [
{
"confirmStatus": "APPROVED",
"currency": "RUB",
"date": "2025-11-24 12:28:52",
"factItems": [
{
"article": "dvn",
"barcode": "127351263",
"batchAccountingAttributes": {
"batchAccountingNumber": "1-4",
"expirationDate": "2025-10-01",
"productionDate": "2022-10-02",
"useBatchAccounting": true,
"useExpiration": true
},
"factBatchAccountingAttributes": [
{
"batchAccountingNumber": "1-4",
"expirationDate": "2025-10-01",
"productionDate": "2022-10-02",
"useBatchAccounting": true,
"useExpiration": true
}
],
"name": "Маска для волос Davines",
"num": 1,
"productId": "1256636009",
"quantity": 0,
"quantityDefective": 0,
"quantityFact": 20,
"quantityRaw": 20,
"skuType": "SKU",
"sum": 0,
"variantId": "566335809"
}
],
"files": [
{
"fileExt": "pdf",
"fileName": "mx1.pdf",
"fileSource": "FULFILLMENT",
"fileType": "PDF",
"id": "e65bdeb6-a966-d0fd-3765-441334a536d9",
"success": true,
"url": "https://storage.yandexcloud.net/cactuswms/3b808083-7b6c-43ae-aa3e-48f5c161240d.pdf"
},
{
"fileExt": "pdf",
"fileName": "torg2.pdf",
"fileSource": "FULFILLMENT",
"fileType": "PDF",
"id": "19f46185-8fe7-f352-660e-b65aae210ad6",
"success": true,
"url": "https://storage.yandexcloud.net/cactuswms/c04781b1-4127-4a33-905f-5efe98d816f3.pdf"
}
],
"finishDate": "2025-11-24 12:31:54",
"hasLinkedOrders": false,
"id": "1006896419",
"isTakeInDiff": true,
"items": [
{
"article": "dvn",
"barcode": "127351263",
"batchAccountingAttributes": {
"batchAccountingNumber": "1-4",
"expirationDate": "2025-10-01",
"productionDate": "2022-10-02",
"useBatchAccounting": true,
"useExpiration": true
},
"factBatchAccountingAttributes": [
{
"batchAccountingNumber": "1-4",
"expirationDate": "2025-10-01",
"productionDate": "2022-10-02",
"useBatchAccounting": true,
"useExpiration": true
}
],
"name": "Маска для волос Davines",
"num": 1,
"productId": "1256636009",
"quantity": 0,
"quantityDefective": 0,
"quantityFact": 20,
"quantityRaw": 20,
"skuType": "SKU",
"sum": 0,
"variantId": "566335809"
}
],
"planItems": [
{
"article": "dvn",
"barcode": "876543",
"factBatchAccountingAttributes": [],
"multiplicity": 10,
"name": "Маска для волос Davines (Квант 10 шт)",
"num": 1,
"optionsUsed": [],
"price": 2000.00,
"productId": "1256636009",
"quantity": 20,
"quantityDefective": 0,
"quantityFact": 0,
"quantityRaw": 0,
"skuType": "SKU",
"sum": 400000.00,
"variantId": "566335810",
"vatRate": "NO_VAT"
}
],
"purchaseArrivalDate": "2025-11-24 12:29:50",
"status": "COMPLETED_WITH_DIFFERENCE",
"supplier": {
"id": "096e2fba-3cf9-2df1-f83c-50f51f1ffef4",
"name": "Романова Виктория",
"person": {
"address": {
"area": "",
"block": "",
"building": "",
"city": "",
"country": "Россия",
"countryCode": "RU",
"flat": "",
"house": "",
"region": "",
"settlement": "",
"street": "",
"zip": ""
},
"alternativePhone": "",
"fullName": "Романова Виктория",
"name": "Виктория",
"passport": {},
"phone": "79999999999",
"surname": "Романова"
},
"type": "PERSON"
},
"takeInType": "STANDARD",
"totalFactOrderSum": 0,
"totalFactQuantity": 20,
"totalFactVATSum": 0,
"totalOrderSum": 400000.00,
"totalQuantity": 200,
"totalVATSum": 0.00,
"updateTs": "2025-11-24 12:32:33.610",
"warehouseCode": "21ad85be-09a9-c4f8-72e1-4976f9d5bda6",
"warehouseFFExportError": false,
"warehouseFFExported": true,
"warehouseFFSync": true,
"warehouseFFSyncDate": "2025-11-24 12:28:55",
"warehouseName": "NEW WMS!"
}
],
"recordsTotal": 1,
"success": true
}
Ниже — официальное дополнение к текущей инструкции.
Текст оформлен так, чтобы его можно было напрямую вставить в существующий документ (рекомендуемое место — после раздела «Точечное описание некоторых полей» или перед примерами ответов).
Дополнение. Плановые и фактические позиции поставки (planItems, factItems)
В ответе метода
GET /api/lite/purchase_orders
(при использовании параметра full_info=true) для поставки могут возвращаться дополнительные наборы товарных строк:
-
planItems -
factItems
Данные поля предназначены для разделения плановых данных клиента и фактических данных складской приемки.
Общая схема данных поставки
Для одной поставки система может возвращать до трёх наборов товарных позиций:
| Поле | Описание |
|---|---|
planItems |
План поставки — данные, переданные клиентом |
factItems |
Фактическая приемка — данные, зафиксированные складом |
items |
Текущее агрегированное состояние поставки |
planItems — план поставки
planItems содержит плановые позиции поставки, сформированные на основании данных, переданных клиентом при создании или редактировании заказа поставщику (POST /api/lite/purchase_orders).
Характеристики planItems
-
Формируются только из данных клиента
-
Не изменяются складом
-
Фиксируют исходные плановые количества и цены
-
Используются как эталон для сравнения с фактической приемкой
-
До начала приемки:
-
quantityFact = 0 -
quantityRaw = 0
-
Назначение
-
Анализ плановых поставок
-
Сравнение план / факт
-
Выявление расхождений при приемке
Пример planItems
"planItems": [
{
"num": 1,
"variantId": "566335837",
"productId": "1256636029",
"barcode": "25704_1",
"name": "Плакат 25704",
"quantity": 2000,
"price": 5.00,
"vatRate": "NO_VAT",
"quantityFact": 0,
"quantityRaw": 0,
"quantityDefective": 0,
"sum": 10000.00,
"skuType": "PACKING_MATERIAL_OTHER",
"factBatchAccountingAttributes": [],
"optionsUsed": []
}
]
factItems — факт приемки поставки
factItems содержит фактически принятые складом товарные позиции.
Характеристики factItems
-
Формируются автоматически складской системой
-
Наполняются в процессе приемки, по мере сканирования и учета товара
-
Могут отличаться от
planItemsпо количеству -
Используются для расчета фактических итогов и расхождений
Поведение factItems во времени
| Этап поставки | Состояние factItems |
|---|---|
| До начала приемки | Отсутствуют или пустые |
| Приемка в процессе | Частично заполнены |
| Приемка завершена | Полностью отражают фактически принятый товар |
Пример factItems
"factItems": [
{
"num": 1,
"variantId": "566335837",
"productId": "1256636029",
"barcode": "25704_1",
"name": "Плакат 25704",
"quantity": 2000,
"quantityFact": 2000,
"quantityRaw": 2000,
"quantityDefective": 0,
"price": 5.00,
"vatRate": "NO_VAT",
"sum": 10000.00,
"skuType": "PACKING_MATERIAL_OTHER"
}
]
items — текущее состояние поставки
Поле items отражает текущее агрегированное состояние товарных строк поставки.
Правила формирования
-
До начала приемки — соответствует
planItems -
В процессе приемки — отражает частично принятые данные
-
После завершения приемки — как правило совпадает с
factItems
Рекомендации
-
Для отображения текущего состояния поставки использовать
items -
Для анализа и контроля расхождений использовать
planItemsиfactItems
Связь с статусами поставки
| Статус поставки | planItems | factItems |
|---|---|---|
NEW |
Есть | Нет |
READY_TO_TAKE_IN |
Есть | Нет |
TAKE_IN_PROCESS |
Есть | Заполняются |
COMPLETED |
Есть | Есть |
COMPLETED_WITH_DIFFERENCE |
Есть | Есть (есть расхождения) |
DIFFERENCE |
Есть | Есть |
CANCELED |
Есть | Нет |
Пример запроса по списку поставок:
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
|
Объект | да | Текущее агрегированное состояние поставки |
| planItems | Объект | да | План поставки — данные, переданные клиентом |
|---|---|---|---|
| factItems | Объект | да | Фактическая приемка — данные, зафиксированные складом |
| 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.tag | string | нет | Тег, присвоенный товару |
| searchColumnType | enum: HUMANID - дефолтный, можно не передавать, если не требуется другой, EXTID, ARTICLE, BARCODE |
Обязательный, если нужен поиск не по variantId | |
| items.orderDocId | string | нет | Для согласованных кроссдок поставок - номер привязанного заказа |
| items.batchAccountingAttributes | Объект | нет | Атрибуты партии для данного товара |
| confirmStatus |
enum CANCELED |
нет | Статус подтверждения. Только если статус = APPROVED - поставка выгружается на склад для приемки. |
| comment | string | нет | Комментарий к поставке для склада |
| dateOfDeliveryPlan | DateTime | нет | Ориентровочная дата поступления поставки |
| externalId - externalId5 | string | нет | Внешние коды поставки из клиенстких систем |
Пример запроса:
{
"id": "1006896489",
"items": [
{
"article": "dvn",
"barcode": "876543",
"factBatchAccountingAttributes": [],
"multiplicity": 10,
"name": "Маска для волос Davines (Квант 10 шт)",
"num": 1,
"optionsUsed": [],
"price": 2000,
"productId": "1256636009",
"quantity": 20,
"quantityDefective": 0,
"quantityFact": 0,
"quantityRaw": 0,
"skuType": "SKU",
"sum": 400000,
"variantId": "566335810",
"vatRate": "NO_VAT"
}
],
"paymentStatus": "NOT_PAID",
"planItems": [
{
"num": 1,
"variantId": "566335810",
"productId": "1256636009",
"name": "Маска для волос Davines ",
"quantity": 20,
"quantityRaw": 0,
"price": 2000,
"vatRate": "NO_VAT",
"article": "dvn",
"skuType": "SKU",
"orderDocId": null,
"shortName": "Маска для волос Davines"
},
{
"num": 2,
"variantId": "121220209",
"productId": "34563121212",
"name": "Крем для волос Davines ",
"quantity": 1,
"quantityRaw": 0,
"price": 3500,
"vatRate": "NO_VAT",
"article": "dvnwow6",
"skuType": "SKU",
"orderDocId": null,
"shortName": "Крем для волос Davines"
}
В ответ возвращается:
{
"success": true,
"orderId": "111",
"c": "2b92b631-7f1b-c52a-897e-30bc628f87e5"
}
Ошибка:
{
"success": false,
"errors": [
{
"code": 0,
"message": "Текст ошибки"
}
]
}