Упаковочные материалы
Запрос списка упаковочных материалов (GET /api/lite/products)
/api/lite/products
Дублирует https://wiki.kak2c.ru/books/kaktus-dlya-razrabotchikov/page/apiliteproducts
Описание полей аналогичное запросу товаров.
Существует 4 типа упаковочных материалов:
Упаковочные короба | PACKING_MATERIAL_BOXES |
Другие виды расходных материалов | PACKING_MATERIAL_OTHER |
Допвложения для упаковки | PACKING_MATERIAL_ATTACHMENT |
Общие материалы | COMMON_PACKING_MATERIA |
Запросить можно через параметр запроса filters=SKU_TYPE:
Пример результата запроса:
/api/lite/products?size=2&filters=SKU_TYPE:COMMON_PACKING_MATERIAL
{
"products": [
{
"available": true,
"deleted": false,
"id": "COMMON_PACK_Birka",
"images": [
{
"id": "COMMON_PACK_Birka",
"pos": "1.000000000000000",
"success": true
}
],
"shortName": "Бирка + биркодержатель (цвет белый)",
"type": "COMMON_PACKING_MATERIAL",
"variants": [
{
"article": "COMMON_PACK_Birka",
"id": "COMMON_PACK_Birka",
"type": "COMMON_PACKING_MATERIAL",
"vat": "NO_VAT"
}
],
"vat": "NO_VAT"
}
],
"recordsTotal": 41,
"success": true
}
Фильтрация по полям товара
Можно задавать фильтр параметром ?query=test - для фильтрации по полям article, humanId, shortName, fullName, description
Дополнительно можно фильтровать по конкректному продукту параметром ?id=1000
Имеется поддержка фильтрации и по другим полям:
- по Id варианта - ?variantId=1001
- по ШК (штрихкоду товара) - ?barcode=0000000000001
- по названию, артикулу - ?query=короб1
Пейджинация
Для пейджинации используются параметры page и size: size - заказов на странице, page - номер страницы.
Пример: /api/lite/products?page=0&size=200
Если параметры не переданы, то дефолтные значения page=0&size=100
Максимальное количество продуктов - 100. Даже если указано значение более 100
Также, для отображение пейджинации следует анализировать параметр recordsTotal, возвращающий общее количество записей (с учетом примененной фильтрации, если она есть).
Сортировка
Для сортировки задается параметр order, принимающий код поля для сортировки и направление сортировки (asc, desc), отделенное символом плюса.
Пример сортировки по имени (возрастание): /api/lite/products?order=shortname+asc
Пример сортировки по имени (убывание): /api/lite/products?order=shortname+desc
Доступные коды сортировки:
- shortname
- article
- price
- amount
-
stockUpdateFrom
Пример вызова с одновременной фильтрацией, пейджинацией и сортировкой:
/api/lite/products?query=Поло&order=shortname+asc&page=0&size=200
Создание/обновление упаковочных материалов (POST /api/lite/products)
/api/lite/products
Создает или обновляет продукт.
Если id указан - проводится обновление продукта с указанным id, если не указан - создается новый.
Если проводится обновление продукта (или варианта) - то обновляются все поля на те, что переданы. Если какие то поля в продукте были непустые, а в запросе они не переданы - то после обновления поля очищаются.
Опционально можно передавать список вариантов товара для обновления, в поле variantsToUpdate. Обновление продукта выполняется первым, если успешно - то начинается обновление вариантов.
Этот список не означает, что коллекция вариантов данного продукта будет приведена к виду в переданном списке вариантов. Будет выполнено только обновление указанных вариантов, безотносительно остальных вариантов их продукта.
Если передан список вариантов - то в ответе в поле variantsResult будет список результатов обновления по каждому варианту, для сопоставления на вызывающей стороне (по полям productId + variantId)
Поле | Тип / формат |
Описание |
id | string |
Идентификатор продукта. Если не указан, создается новый продукт. Если указан, обновляется продукт с данным id или создаётся новый продукт с пользовательским id. |
extId | string | Дополнительный идентификатор продукта |
shortName | string | Наименование продукта |
description | string | Описание (может содержать html) |
deleted | boolean | Архивная карточка |
type | enum | Тип упаковочного материала |
variantsToUpdate | объект | Объект варианта товара (см. POST /api/lite/products/variants) |
Пример вызова:
{
"id": "10106",
"shortName": "Новый упаковочный короб 1",
"type": "PACKING_MATERIAL_BOXES",
"variantsToUpdate": [
{
"weight": 1000,
"dimensions": {
"width": 10,
"height": 10,
"depth": 10
},
"article": "242343",
"barcodes": [
{
"isDefault": true,
"type": "COMMON",
"value": "342424655"
}
],
"productId": "10106",
"variantId": "10234659"
}
]
}
Пример положительного ответа:
{
"id": "10106",
"success": true,
"variantsResult": [
{
"productId": "10106",
"success": true,
"variantId": "10234659"
}
]
}
Пример положительного ответа с ошибкой сохранения по указанному варианту:
{
"id": "10107",
"success": true,
"variantsResult": [
{
"errors": [
{
"code": 0,
"message": "Штрихкод 3424246755 уже используются в варианте [10234659] Новый упаковочный короб 1, артикул: 242343, ШК: 3424246755 "
}
],
"productId": "10107",
"success": false,
"variantId": "10234654"
}
]
}
Создание/обновление заказа с упаковочными материалами (POST/api/lite/orders)
/api/lite/orders
Дублирует https://wiki.kak2c.ru/books/kaktus-dlya-razrabotchikov/page/apiliteorders
Упаковочные материалы можно добавить к каждому товару в списке items (кроме товара доставки) в заказе списком packingMaterials,
который содержит в себе 2 дополнительных списка:
commonMaterials - передаются только общие упаковочные материалы
customMaterials - 3 других типа упаковочных материалов
{
"id": "5669-232434357",
"items": [
{
"article": "78787878",
"barcode": "4254345564",
"name": "Кактус",
"productId": "10040",
"quantity": 3,
"variantId": "10040",
"packingMaterials": {
"commonMaterials": [
{
"id": "COMMON_PACK_Birka",
"shortName": "Бирка + биркодержатель (цвет белый)",
"type": "COMMON_PACKING_MATERIAL",
"variants": [
{
"article": "COMMON_PACK_Birka",
"id": "COMMON_PACK_Birka",
"type": "COMMON_PACKING_MATERIAL",
"vat": "NO_VAT"
}
],
"quantity": 1,
"variantId": "COMMON_PACK_Birka"
}
],
"customMaterials": [
{
"id": "10058",
"shortName": "тест_ДВ",
"type": "PACKING_MATERIAL_ATTACHMENT",
"variants": [
{
"article": "66456456",
"barcodes": [
{
"isDefault": true,
"type": "COMMON",
"value": "6564645456"
}
],
"dimensions": {
"depth": 10,
"height": 10,
"width": 10
},
"id": "1023402",
"type": "PACKING_MATERIAL_ATTACHMENT",
"weight": 1000
}
],
"quantity": 1,
"variantId": "1023402"
},
{
"id": "10059",
"shortName": "тест 44 апап",
"type": "PACKING_MATERIAL_OTHER",
"variants": [
{
"barcodes": [
{
"isDefault": true,
"type": "COMMON",
"value": "441441441441441441"
}
],
"dimensions": {
"depth": 0,
"height": 0,
"width": 0
},
"id": "1023403",
"type": "PACKING_MATERIAL_OTHER",
"weight": 0
}
],
"quantity": 1,
"variantId": "1023403"
},
{
"id": "10042",
"shortName": "Короб 01",
"type": "PACKING_MATERIAL_BOXES",
"variants": [
{
"barcodes": [
{
"isDefault": true,
"type": "COMMON",
"value": "34523465"
}
],
"dimensions": {
"depth": 0,
"height": 0,
"width": 0
},
"id": "1023386",
"type": "PACKING_MATERIAL_BOXES",
"weight": 0
}
],
"quantity": 1,
"variantId": "1023386"
}
]
}
}
]
}
Пример полного вызова:
{
"confirmStatus": "NEED_CONFIRM",
"createTs": "2025-02-10 17:41:47.618",
"crossdockEditable": true,
"currency": "RUB",
"customerPaymentInProcess": false,
"date": "2025-02-10 17:41:47",
"delivery": {
"address": {
"fullAddress": "",
"region": ""
},
"deliveryPrice": 0,
"desiredDeliveryTimeFrom": "09:00",
"desiredDeliveryTimeTo": "18:00",
"pvzComment": "",
"receiver": {
"address": {
"fullAddress": "",
"region": ""
},
"alternativePhone": "",
"passport": {},
"personType": "CUSTOMER",
"phone": ""
}
},
"fbmWithFile": false,
"id": "5669-232434357",
"insuranceSum": 0,
"insuranceSumAutoCalculation": true,
"items": [
{
"article": "78787878",
"barcode": "4254345564",
"expirationDays": 180,
"expirationMode": "USE_EXPIRATION",
"itemDimensions": {
"depth": 0,
"height": 0,
"width": 0
},
"itemWeight": 0,
"name": "Кактус",
"num": 1,
"price": 0,
"productId": "10040",
"productVariantCount": 1,
"quantity": 3,
"quantityAvailable": 0,
"skuType": "SKU",
"variantId": "10040",
"vatRate": "VAT_5",
"vatSkuProduct": "VAT_5",
"packingMaterials": {
"commonMaterials": [
{
"id": "COMMON_PACK_Birka",
"shortName": "Бирка + биркодержатель (цвет белый)",
"type": "COMMON_PACKING_MATERIAL",
"variants": [
{
"article": "COMMON_PACK_Birka",
"id": "COMMON_PACK_Birka",
"type": "COMMON_PACKING_MATERIAL",
"vat": "NO_VAT"
}
],
"quantity": 1,
"variantId": "COMMON_PACK_Birka"
}
],
"customMaterials": [
{
"id": "10058",
"shortName": "тест_ДВ",
"type": "PACKING_MATERIAL_ATTACHMENT",
"variants": [
{
"article": "66456456",
"barcodes": [
{
"isDefault": true,
"type": "COMMON",
"value": "6564645456"
}
],
"dimensions": {
"depth": 10,
"height": 10,
"width": 10
},
"id": "1023402",
"type": "PACKING_MATERIAL_ATTACHMENT",
"weight": 1000
}
],
"quantity": 1,
"variantId": "1023402"
},
{
"id": "10059",
"shortName": "тест 44 апап",
"type": "PACKING_MATERIAL_OTHER",
"variants": [
{
"barcodes": [
{
"isDefault": true,
"type": "COMMON",
"value": "441441441441441441"
}
],
"dimensions": {
"depth": 0,
"height": 0,
"width": 0
},
"id": "1023403",
"type": "PACKING_MATERIAL_OTHER",
"weight": 0
}
],
"quantity": 1,
"variantId": "1023403"
},
{
"id": "10042",
"shortName": "Короб 01",
"type": "PACKING_MATERIAL_BOXES",
"variants": [
{
"barcodes": [
{
"isDefault": true,
"type": "COMMON",
"value": "34523465"
}
],
"dimensions": {
"depth": 0,
"height": 0,
"width": 0
},
"id": "1023386",
"type": "PACKING_MATERIAL_BOXES",
"weight": 0
}
],
"quantity": 1,
"variantId": "1023386"
}
]
}
},
{
"barcode": "",
"name": "Доставка",
"num": 2,
"price": 0,
"quantity": 1,
"skuType": "SERVICE",
"variantId": "delivery",
"vatRate": "NO_VAT"
}
],
"legalEntity": {
"id": "15d72385-dadf-a591-fefe-86c65661463f",
"name": " Розничный покупатель",
"type": "COMPANY"
},
"manualDiscount": {
"appliedDiscountValue": 0,
"discountType": "FIX",
"discountValue": 0,
"isActive": false
},
"needCustomerPayment": false,
"needReserve": true,
"onlinePaymentSum": 0,
"orderType": "STANDARD",
"packingOptions": [
{
"packSpecialsToSeparatePackingPlace": false
}
],
"paymentMethodCode": "no-cod",
"paymentMethodName": "Без наложенного платежа",
"paymentMethodType": "NO_COD",
"paymentStatus": "NOT_PAID",
"status": "ORDER_INFO_NEED_CONFIRM",
"totalOrderSum": 0,
"updateTs": "2025-02-10 17:41:48.025",
"warehouseCode": "21ad85be-09a9-c4f8-72e1-4976f9d5bda6",
"warehouseFFExportError": false,
"warehouseFFExported": false,
"warehouseFFSync": false,
"warehouseName": "NEW WMS!",
"warehouseShippingOptions": {
"packingType": "MIX_PACKINGS"
}
}
Пример положительного ответа:
{
"c": "825f47b4-fd58-24ce-65e0-2f3cf116caa0",
"orderId": "5669-232434357",
"status": "ORDER_INFO_NEED_CONFIRM",
"success": true
}
В запросе информации по заказу по методу GET /api/lite/orders информация по упаковочным материалам отображается аналогично, в виде приведенных выше списков