Skip to main content

Упаковочные материалы

Запрос списка упаковочных материалов (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 информация по упаковочным материалам отображается аналогично, в виде приведенных выше списков