При создании заказа, возможна передача маркировки. Маркировка товара будет использована при печати чека в момент доставки заказа.
Маркировка принимается в двух форматах:
-
В виде строки, содержащей код товара и его серийный номер, с указанием разделителей 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
}