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

### Запрос списка упаковочных материалов (GET /api/lite/products)

/api/lite/products

Дублирует [https://wiki.kak2c.ru/books/kaktus-dlya-razrabotchikov/page/apiliteproducts ](https://wiki.kak2c.ru/books/kaktus-dlya-razrabotchikov/page/apiliteproducts)

Описание полей аналогичное запросу товаров.

Существует 4 типа упаковочных материалов:

<table border="1" id="bkmrk-%D0%A3%D0%BF%D0%B0%D0%BA%D0%BE%D0%B2%D0%BE%D1%87%D0%BD%D1%8B%D0%B5-%D0%BA%D0%BE%D1%80%D0%BE%D0%B1%D0%B0-p" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 50%;">Упаковочные короба</td><td style="width: 50%;">PACKING\_MATERIAL\_BOXES</td></tr><tr><td style="width: 50%;">Другие виды расходных материалов</td><td style="width: 50%;">PACKING\_MATERIAL\_OTHER</td></tr><tr><td style="width: 50%;">Допвложения для упаковки</td><td style="width: 50%;">PACKING\_MATERIAL\_ATTACHMENT</td></tr><tr><td style="width: 50%;">Общие материалы</td><td style="width: 50%;">COMMON\_PACKING\_MATERIA</td></tr></tbody></table>

Запросить можно через параметр запроса filters=SKU\_TYPE:

#### **Пример результата запроса**:

/api/lite/products?size=2&amp;filters=SKU\_TYPE:COMMON\_PACKING\_MATERIAL

```JSON
{
    "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&amp;size=100

<p class="callout info">Максимальное количество продуктов - 100. Даже если указано значение более 100</p>

Также, для отображение пейджинации следует анализировать параметр recordsTotal, возвращающий общее количество записей (с учетом примененной фильтрации, если она есть).

#### **Сортировка**

Для сортировки задается параметр order, принимающий код поля для сортировки и направление сортировки (asc, desc), отделенное символом плюса.

Пример сортировки по имени (**возрастание**): `/api/lite/products?order=shortname+<strong>asc</strong>`

Пример сортировки по имени (**убывание**): `/api/lite/products?order=shortname+<strong>desc</strong>`

Доступные коды сортировки:

- shortname
- article
- price
- amount
- <div>stockUpdateFrom</div>

Пример вызова с одновременной фильтрацией, пейджинацией и сортировкой:

`/api/lite/products?query=Поло&order=shortname+asc&page=0&size=200`

### Создание/обновление упаковочных материалов (POST /api/lite/products)

/api/lite/products

Создает или обновляет продукт.

Если id указан - проводится обновление продукта с указанным id, если не указан - создается новый.

Если проводится обновление продукта (или варианта) - то обновляются все поля на те, что переданы. Если какие то поля в продукте были непустые, а в запросе они не переданы - то после обновления поля очищаются.

Опционально можно передавать список вариантов товара для обновления, в поле variantsToUpdate. Обновление продукта выполняется первым, если успешно - то начинается обновление вариантов.

Этот список не означает, что коллекция вариантов данного продукта будет приведена к виду в переданном списке вариантов. Будет выполнено только обновление указанных вариантов, безотносительно остальных вариантов их продукта.

Если передан список вариантов - то в ответе в поле variantsResult будет список результатов обновления по каждому варианту, для сопоставления на вызывающей стороне (по полям productId + variantId)

<table class="relative-table wrapped confluenceTable tablesorter tablesorter-default" id="bkmrk-%D0%9F%D0%BE%D0%BB%D0%B5-%D0%A2%D0%B8%D0%BF-%2F-%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82-%D0%9E%D0%BF-0" role="grid" style="height: 256px;"><tbody aria-live="polite" aria-relevant="all"><tr style="height: 35px;"><td style="width: 171.175px; height: 35px;">**Поле**</td><td style="width: 125px; height: 35px;">**Тип / формат**</td><td style="width: 512px; height: 35px;">**Описание**

</td></tr><tr role="row" style="height: 57px;"><td class="confluenceTd" style="width: 171.175px; height: 47px;">id</td><td class="confluenceTd" style="width: 125px; height: 47px;">string</td><td class="confluenceTd" style="width: 512px; height: 47px;">Идентификатор продукта. Если не указан, создается новый продукт. Если указан, обновляется продукт с данным id<span style="color: #999999;"> или создаётся новый продукт с пользовательским id.</span>

</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="width: 171.175px; height: 29px;">extId</td><td class="confluenceTd" style="width: 125px; height: 29px;">string</td><td class="confluenceTd" style="width: 512px; height: 29px;">Дополнительный идентификатор продукта</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="width: 171.175px; height: 29px;">shortName</td><td class="confluenceTd" style="width: 125px; height: 29px;">string</td><td class="confluenceTd" style="width: 512px; height: 29px;">Наименование продукта</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="width: 171.175px; height: 29px;">description</td><td class="confluenceTd" style="width: 125px; height: 29px;">string</td><td class="confluenceTd" style="width: 512px; height: 29px;">Описание (может содержать html)</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="width: 171.175px; height: 29px;">deleted</td><td class="confluenceTd" style="width: 125px; height: 29px;">boolean</td><td class="confluenceTd" style="width: 512px; height: 29px;">Архивная карточка</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="width: 171.175px; height: 29px;">type</td><td class="confluenceTd" style="width: 125px; height: 29px;">enum</td><td class="confluenceTd" style="width: 512px; height: 29px;">Тип упаковочного материала</td></tr><tr role="row" style="height: 29px;"><td class="confluenceTd" style="width: 171.175px; height: 29px;">variantsToUpdate</td><td class="confluenceTd" style="width: 125px; height: 29px;">объект</td><td class="confluenceTd" style="width: 512px; height: 29px;">Объект варианта товара (см. [POST /api/lite/products/variants](http://wiki.kak2c.ru/books/kaktus-dlya-razrabotchikov/page/apiliteproductsvariants))</td></tr></tbody></table>

####  

#### **Пример вызова:**

<div id="bkmrk-%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B0">Пример запроса</div>```JSON
{
    "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"
        }
    ]
}
```

#### **Пример положительного ответа:**

```JSON
{
    "id": "10106",
    "success": true,
    "variantsResult": [
        {
            "productId": "10106",
            "success": true,
            "variantId": "10234659"
        }
    ]
}
```

####  

#### **Пример положительного ответа с ошибкой сохранения по указанному варианту:**

<div id="bkmrk-%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80-%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D0%B0">Пример ответа</div>```JSON
{
    "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](https://wiki.kak2c.ru/books/kaktus-dlya-razrabotchikov/page/apiliteproducts)

Упаковочные материалы можно добавить к каждому товару в списке 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"
          }
        ]
      }
    }
  ]
}
```

#### **Пример полного вызова:**

<div id="bkmrk-%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B0-0">Пример запроса</div>```JSON
{
    "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"
    }
}
```

#### **Пример положительного ответа:**

```JSON
{
    "c": "825f47b4-fd58-24ce-65e0-2f3cf116caa0",
    "orderId": "5669-232434357",
    "status": "ORDER_INFO_NEED_CONFIRM",
    "success": true
}
```

В запросе информации по заказу по методу GET /api/lite/orders информация по упаковочным материалам отображается аналогично, в виде приведенных выше списков

####  

####  