Продажа маркированных товаров
До сих пор мы разбирали продажу обычных товаров. Рассмотрим теперь специфику передачи данных о маркированных товарах.
Коды маркировки нужны, чтобы товар можно было отследить по всей цепочке от производителя до конечного покупателя. Данные о лекарствах собирает ИС МДЛП, а об остальных маркированных товарах — система «Честный знак».
Данные о маркировке передаются вместе с данными о товаре в POST-запросе создания сделки:
{base_url}/v5/orgs/{org_guid}/deals/sales
base_url
— адрес сервиса. Возможные значения:
https://api-dev.life-pos.ru
— тестовый API,https://api.life-pos.ru
— рабочий API.
За данные о товаре отвечает массив positions
. В нём с маркировкой связаны следующие поля:
markable_as
— тип маркированного товара. Возможные значения:NotMarkable
,Tobacco
,Medicines
,Shoes
,Tires
,FurCoats
,PhotoCamerasAndFlashLamps
,LightIndustryGoods
,PerfumeAndToiletWater
,DairyProducts
,Wheelchairs
,Bicycles
,PackagedWater
,BeerAndBeerDrinks
,Other
.good_codes
— код товара. Должен содержать строго 14 знаков. Используйтеitf14
— числовой штрихкод.marking_attributes
— массив данных о маркированном товаре.
В массиве marking_attributes
передаются следующие поля:
marking_code
— код маркировки.is_part_of_package_of
— параметр используется, если позиция является частью упаковки: пачка сигарет в блоке или бутылка воды в палете. Параметр нужен, чтобы показать связь между единицей товара и упаковкой. Позиции для этого не подходят: каждую единицу маркированного товара нужно передавать как отдельную позицию. Это обусловлено с тем, что коды маркировки уникальные и являются атрибутом позиции, а не единицы товара.checking_result
— результат проверки кода маркировки. Проверка происходит при фискализации покупки. Результат проверки выставляется на основании данных, полученных от фискального регистратора. Возможные значения:KMChecked
,KPKMCorrect
,OISMStatusChecked
,OISMStatusCorrect
,KPKMCheckedAutonomously
.mark_scanning_was_skipped
— флаг, указывающий на то, что марка не была отсканирована. При продаже товара код маркировки обязательно сканировать. Поле нужно, чтобы товар можно было добавить в сделку до того, как покупатель за него заплатит. В этом случае код маркировки передаётся в систему LIFE POS не со сканера, а из вашей товарной базы. Перед оплатой товара код маркировки всё равно нужно будет отсканировать.
Чтобы код маркировки правильно обрабатывался во всех системах, он должен включать следующие элементы, перечисленные в порядке вхождения:
- AI 01 (2 знака) — специальный символ, который указывает, что закодированная последовательность является кодом GS1.
- Код GTIN (14 знаков).
- AI 21 (2 знака).
- Серийный номер (13 знаков + 1 специальный символ <GS>).
- AI 91.
- Ключ проверки (4 знака +1 специальный символ <GS>).
- AI 92.
- Электронная подпись, предоставляемая оператором системы в составе кода проверки (88 знаков: цифры, строчные и прописные буквы латинского алфавита, а также специальные символы). Подробнее о правильной передаче кодов маркировки
Пример позиции с правильно переданным кодом маркировки. Специальные символы и разделители, необходимые для правильного чтения кода GS1 (AI 21, AI 91, AI 92), выделены цветом:
"markable_as":"Tobacco",
"good_codes": {
"itf14": "44945504353068"
},
"marking_attributes": {
"marking_code": "014494550435306821QXYXSALGLMYQQ\u001D91EE06\u001D92YWCXbmK6SN8vvwoxZFk7WAY8WoJNMGGr6Cgtiuja04c="
}
Сравните с примером неправильно переданного кода маркировки:
"markable_as": "Tobacco"
"good_codes": {
"ean13": "4780004443794"
},
"marking_attributes": {
"marking_code": "0104780004443794(21)5YEEO;93dGVz"
}
Готово! Вы зарегистрировали сделку с маркированным товаром. В следующей статье поговорим о том, как работать с агентскими реквизитами.