При создании заказа, возможна передача маркировки. Маркировка товара будет использована при печати чека в момент доставки заказа.
Маркировка принимается в двух форматах:
В виде строки, содержащей код товара и его серийный номер, с указанием разделителей 01 и 21, либо (01) и (21). Строка может быть закодирована в Base64 (тогда при передаче нужно указать флаг bar_code в 1), либо передана в исходном состоянии (тогда bar_code = 0).
Передача маркировки, закодированной в Base64, более предпочтительна, т.к. маркировка может содержать символы, которые могут требовать экранирования для корректной передачи (например, &) в теле запроса.
2. В виде строки, подготовленной для передачи в Честный знак.
Правила преобразования указаны в инструкции от Честного знака. Строка может быть закодирована в Base64 (тогда при передаче нужно указать флаг bar_code в 1), либо передана в исходном состоянии (тогда bar_code = 0).
! Маркировка, переданная в любом другом формате, не будет отражена в чеке, и продажа товара не будет зарегистрирована в Честном знаке.
$data = [ 'goods' => [ [ 'articul' => 'Артикул товара 1', 'artname' => 'Название товара 1', // Количество товара 'count' => 1, // Цена товара 'price' => 1350, // Ставка НДС для товара 'nds' => 7, // Вес товара в килограммах 'weight' => 0.34, // Закодирована ли маркировка в base64? Если да, то 1. Иначе - 0 'bar_code' => 1, // Сам код маркировки товара 'bar_code_goods' => 'Код маркировки товара', ] ], // Ключ API 'key' => '_ваш_ключ_API_', // Внутренний номер заказа в вашей ИС 'inner_n' => '_внутренний_номер_заказа_', // Дата доставки 'delivery_date' => '2021-02-10', // Интервал доставки 'delivery_time' => 2, // Нужен ли приём наложенного платежа 'np' => 1, // Имя покупателя 'target_name' => 'Имя покупателя', // Номер телефона покупателя 'target_contacts' => '+79999999999', // Наложенный платёж 'price_client' => 1530, // Стоимость доставки для получателя заказа 'price_client_delivery' => 180, // Объявленная стоимость 'os' => 1200, // Количество мест в заказе 'places_count' => 3, // Вес заказа в кг 'order_weight' => 0.86, // Габариты заказа В САНТИМЕТРАХ // ширина 'dimension_side1' => 50, // длина 'dimension_side2' => 30, // высота 'dimension_side3' => 4, // почтовый индекс 'post_code' => '119334', // Адрес доставки 'addr' => 'Москва, Ленинский проспект 34', // В комментарий добавляется квартира и домофон 'target_notes' => 'кв. 25, домофон 25К8080, позвонить за час', // Опции доставки // отправлять СМС 'sms' => 1, //вскрытие разрешено 'open_option' => 1, // предварительный звонок клиенту не нужен 'call_option' => 0, // нужно вернуть накладную по заказу 'docs_option' => 1, // частичный отказ возможен 'partial_option' => 1, // примерка/проверка электроники разрешена 'dress_fitting_option' => 1, // подъем на этаж крупногабаритного заказа осуществляет покупатель 'lifting_option' => 0, ]; $headers = [ 'Accept: application/json', 'Content-Type: application/json', ]; $ch = curl_init('https://api.logsis.ru/apiv2/createorder'); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); $response = curl_exec($ch); if ($response === false) { throw new \Exception(curl_error($ch)); } $answer = json_decode($response, true); // заказ успешно добавлен if ($answer['status'] == 200) { $trackingNumber = $answer['response']['order_id']; echo 'Заказ добавлен, номер для трекинга: ' . $trackingNumber; } else { // произошла ошибка добавления echo $answer['response']['Error']; }
Данные в формате JSON:
{ "goods": [ { "articul": "Артикул товара 1", "artname": "Название товара 1", "count": 1, "price": 1350, "nds": 7, "weight": 0.34, "bar_code": 1, "bar_code_goods": "Код маркировки товара" } ], "key": "_ваш_ключ_API_", "inner_n": "_внутренний_номер_заказа_", "delivery_date": "2021-02-10", "delivery_time": 2, "np": 1, "target_name": "Имя покупателя", "target_contacts": "+79999999999", "price_client": 1530, "price_client_delivery": 180, "os": 1200, "places_count": 3, "order_weight": 0.86, "dimension_side1": 50, "dimension_side2": 30, "dimension_side3": 4, "post_code": "119334", "addr": "Москва, Ленинский проспект 34", "target_notes": "кв. 25, домофон 25К8080, позвонить за час", "sms": 1, "open_option": 1, "call_option": 0, "docs_option": 1, "partial_option": 1, "dress_fitting_option": 1, "lifting_option": 0 }