# Требования к передаче заказов

При передаче неполной информации о товарах или заказах, во время подтверждения заказа могут возникать ошибки, мешающие его автоматической обработке. Ниже представлен список данных, которые обязательно должны быть заполнены для того, чтобы обеспечить безошибочную работу в Кактусе.

<p class="callout info">Это абсолютный минимум необходимых данных. Вероятнее всего, вам потребуется указать больше данных как о товаре, так и в заказе. Пожалуйста, опирайтесь на приложенные инструкции, которые помогут вам в работе.</p>

#### 1. Товары

Перед созданием заказа необходимо создать карточки товаров. Для этого можете воспользоваться данными инструкциями:

Инструкция по заведению товаров в ЛК [вручную](http://wiki.kak2c.ru/books/instruktsiya-kaktusa/page/zavedenie-tovarov) и [с помощью импорта](http://wiki.kak2c.ru/books/instruktsiya-kaktusa/page/import-tovarov)

[API для работы с товарами](http://wiki.kak2c.ru/books/kaktus-dlya-razrabotchikov/chapter/%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D1%8B)

В товарах обязательно должны быть заполнены данные (более подробные примеры передачи данных полей по API вы найдёте в приложенной выше инструкции):

- ID продукта (productId), ID товара (variantId)
- Наименование (shortName)
- Штрихкод (barcodes)
- Вес (weight) и габариты (dimensions)
- Если товар требует учёта по ЧЗ: заполнить [учёт товара по уникальным номерам](http://wiki.kak2c.ru/books/instruktsiya-kaktusa/page/uchet-tovara-po-unikalnym-nomeram) (accountingAttributes с кодом chestnyznak, значением \*)
- Если вы отгружаете товары на маркетплейсы: [внешний код для данного МП](http://wiki.kak2c.ru/books/instruktsiya-kaktusa/page/fbs) (extId в eshopSettings), галка enabled: true)
- [Если планируете отгружать заказы за рубеж:](http://wiki.kak2c.ru/books/instruktsiya-kaktusa/page/kak-sozdat-zakaz-za-granitsu) ТНВЭД (tnvedCode), описание на английском (internationalDescription), страна происхождения (countryOfOrigin)

После создания товара и после изменения данных в нём обязательно [выгружать товар на фулфилмент](http://wiki.kak2c.ru/books/kaktus-dlya-razrabotchikov/page/apiliteproductsexport_ff).

На момент подтверждения заказа для выгрузки его на упаковку остатки товаров должны быть ненулевыми (т.е., требуется принятая поставка).

Цену в карточке товара указывать не обязательно, но важно передать её в заказе.

#### 2. Заказы

[Инструкция по работе с заказами в ЛК Кактус](http://wiki.kak2c.ru/books/instruktsiya-kaktusa/page/zakazy)

[API для работы с заказами](http://wiki.kak2c.ru/books/kaktus-dlya-razrabotchikov/chapter/%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D1%8B)

Обязательно указать (более подробные примеры передачи данных полей вы найдёте в приложенной выше инструкции):

- Номер заказа (id)
- Резерв (needReserve) -- по умолчанию true; для схемы работы по кроссдоку -- false
- Сумма заказа (totalOrderSum) и сумма страховки/оценочная стоимость (insuranceSum). Для заказов по России оценочная стоимость обязательно должна быть ненулевой. Сумма заказа строится из цен товаров и доставки
- Статус оплаты (paymentStatus), способ оплаты (paymentMethodCode). Если вы передаёте по АПИ предоплаченные заказы, в paymentMethodCode указывать no-cod и статус оплаты PAID
- Статус подтверждения заказа (confirmStatus). Для автоматического подтверждения заказа передавать статус APPROVED
- Данные о доставке (delivery).   
    \- Обязательно передать code.   
    \- Если доставка в ПВЗ -- указать pickupPointId (код ПВЗ).   
    \- Желательно заполнить адрес наиболее полно по имеющимся полям и обязательно указать фиасы; для доставки в ПВЗ -- достаточно будет указать страну, регион и город (с фиасами), без улицы и дома.   
    \- Для доставки Почтой России обязательно в дополнение к другим полям адреса указывать индекс.
- Данные покупателя (receiver).   
    \- Желательно заполнить ФИО наиболее полно. Действует ограничение при подтверждении: если ФИО меньше 3 символов, заказ не будет подтверждён.   
    \- Для доставки за рубеж Почтой России обязательно указать ФИО латиницей.   
    Обязательно указать актуальный телефон покупателя. Электронную почту -- тоже желательно, т.к. в некоторых службах доставки есть ограничения, требующие указания почты.
- Товары (items): порядковый номер товара в заказе (num, начиная с 1), variantId, название (name), количество (quantity), цена (price), ставка НДС (vatRate), а также доставка как отдельный товар (variantId=delivery) с теми же требуемыми данными (название, количество, цена, НДС). Цену товара указать обязательно.
- Название склада отгрузки (warehouseName) или код склада (warehouseCode).

##### Пример запроса на создание заказа с минимальными данными

/api/lite/orders

```JSON
{ 
            "id": "34567870",
            "totalOrderSum": 999,
            "insuranceSum": 999,
            "needReserve": true,
            "insuranceSumAutoCalculation": true,
            "paymentStatus": "PAID",
            "paymentMethodCode": "no-cod",
            "needCustomerPayment": true,
            "confirmStatus": "NEED_CONFIRM",
            "delivery": {
                "code": "0c985ad8-39dd-4d06-b36b-fb6042b092fd",
                "pickupPointId": "", #обязательное для доставки в ПВЗ
                "address": {
                    "country": "Россия",
                    "countryCode": "RU",
                    "region": "Алтайский",
                    "area": null,
                    "city": "Барнаул",
                    "settlement": null,
                    "street": "Комсомольская",
                    "house": "1",
                    "block": "",
                    "building": "",
                    "flat": "",
                    "fullAddress": "Алтайский, Барнаул",
                    "fullCity": null,
                    "rawData": null,
                    "zip": "",
                    "regionFias": "8276c6a1-1a86-4f0d-8920-aba34d4cc34a",
                    "areaFias": null,
                    "cityFias": "d13945a8-7017-46ab-b1e6-ede1e89317ad",
                    "settlementFias": null
                },
                "receiver": {
                    "name": "Петр",
                    "surname": "толстой 2",
                    "phone": "89011111111",
                    "email": "petr@petr.net"
                }
            },
            "items": [
                {
                    "num": 1,
                    "variantId": "demo1024",
                    "variantExtId": null,
                    "name": "Компьютер (демо товар)",
                    "quantity": 1,
                    "price": 522,
                    "vatRate": "VAT_10"
                },
                {
                    "num": 2,
                    "variantId": "delivery",
                    "name": "Доставка",
                    "quantity": 1,
                    "price": 35,
                    "vatRate": "VAT_20"
                }
            ],         
            "warehouseName": "Свой склад"
        }
```