Публичное пространство
Маркировка и МРЦ ◾️ Разливное пиво с использованием SetMark Centrum
Поддержка на версиях:
- SetMark 2.14.1 и выше.
- SetRetail 10.3.30.3 и выше.
Данные КМ при сканировании ШК товара берутся из SetMark из ранее загруженных в него данных по кегам.
Поддержка на всех доступных моделях ККТ согласно списку поддерживаемого оборудования.
- SRTB-7406Получение подробных данных проблемы… СТАТУС
- SRTB-7337Получение подробных данных проблемы… СТАТУС
- SRTB-7694Получение подробных данных проблемы… СТАТУС
- SCOC-1218Получение подробных данных проблемы… СТАТУС
- CR-10488Получение подробных данных проблемы… СТАТУС
- SCOC-1225Получение подробных данных проблемы… СТАТУС
- CR-9886Получение подробных данных проблемы… СТАТУС
Глоссарий
- КМ - код маркировки, который нанесен на кег, и который также наносится на тару для последующего сканирования при добавлении.
- ЧЗ - сервис проверки кодов маркировки Честный Знак.
- Кег - пластиковая или металлическая ёмкость (обычно из стали), используемая для хранения и транспортировки пива и других алкогольных или безалкогольных напитков, газированных или простых, обычно под давлением (Википедия).
- Правильное употребление в русском языке только через склонение в мужском роде.
Описание
С 15 января 2024 года будет запрещена продажа (вывод из оборота) немаркированного пива и слабоалкогольных напитков в кегах.
При продаже разливного пива, осуществляется:
Передача в ККТ КМ кега.
Передача в ККТ объем реализуемого пива (1л и 0,5л).
Включение
Включение функциональности осуществляется согласно инструкции Маркировка и МРЦ ◾️ Включение режима продажи для маркированных товаров.
Состав марки
Источник Честный Знак.
45. Средство идентификации пива и слабоалкогольных напитков, средство идентификации групповой упаковки содержат в себе код маркировки, включающий в себя 3 группы данных, из которых первая и вторая группы образуют код идентификации или код идентификации групповой упаковки, третья группа данных образует код проверки. При этом в начале строки кода маркировки должен присутствовать признак символики GS1 Data Matrix FNC1 (ASCII 232):
первая группа данных идентифицируется идентификатором применения AI="01", состоит из 14 цифр и содержит код товара;
вторая группа данных (идентификатор применения (21) - индивидуальный серийный номер товара (упаковки товара), который состоит из 7 символов (цифр, строчных и прописных букв латинского алфавита, а также специальных символов (! ” % & " * + - . / _ , : ; = < > ?). В качестве первого символа указывается идентификатор государства, в котором этот код был эмитирован (5 - Российская Федерация). В качестве завершающего символа для данной группы используется специальный символ-разделитель, имеющий код 29 в таблице символов ASCII;
третья группа идентифицируется идентификатором применения AI=′93′, состоит из 4 символов (цифр, строчных и прописных букв латинского алфавита, а также специальных символов) и содержит код проверки.
После третьей группы данных кода маркировки производителями и импортерами может быть включена дополнительная группа данных об объеме продукции (в случае если объем различается у разных единиц продукции с одним кодом товара), дополнительная группа данных идентифицируется идентификатором применения AI = ′335Y′ (где Y - позиция десятичной точки в значении объема продукции), состоит из 6 символов и содержит объем продукции в литрах. Если после третьей группы данных указывается дополнительная группа данных об объеме продукции, то третья группа данных завершается символом-разделителем GS (ASCII 29), после которого указывается идентификатор применения AI = ′335Y′.
Настройка в SetRetail/SetCentrum
На сервере в настройках процессинга SetMark (Интеграция → Внешние процессинги → Сервер валидации SetMark Centrum) установите флажок Продавать маркированный товар по артикулу товара.
Логика работы
- При подключенном SetMark Centrum запроса КМ на кассе не производится.
- Данные по КМ берутся из SetMark.
- После продажи происходит выбытие из кега проданного количества разливного пива.
Импорт в SetMark
Методы и примеры
Важно!
Во всех запросах марки указываются вместе с криптохвостом.
Если артикул товара item
соответствует полю item
из базы данных SetMark, то сканирование будет производиться без запроса марки.
Добавление/удаление кега | |
Метод | POST |
Параметр | /add_keg |
В данном случае указывается productType
для разливного пива.
{ "id": 1, "version": 1, "operationType": 1, "productType": 18, "data": [ { "mark": "018599222324252428jhdhyhf93KK&g", "volume": 25000, "shop": 152, "item": "45045", "expireDate": 1706509126000 }] }
Типы данных в запросе по добавлению/удалению кега
Название | Тип данных | Обязательный | Описание |
id | bigint | Да | Уникальный идентификатор для каждого запроса. Не должен повторяться. |
version | int | Да | Версия пакета. В настоящий момент поддерживается только версия 1. |
operationType | int | Да | Тип операции добавление/удаление: 1 - для добавления кега. |
productType | int | Да | Тип продукта. В настоящий момент поддерживается только 18 тип (разливное пиво). |
mark | text | Да | Контрольная марка кега, обязательно полная с криптохвостом. |
volume | bigint | Да | Объем кега, передается в миллилитрах. |
shop | bigint | Да | Номер магазина. |
item | text | Да | Артикул товара. Если соответствует артикулу из SetRetail10, то продажа на кассе по штрихкоду будет проходить без запроса марки. |
expireDate | bigint | Нет | Срок годности в миллисекундах с 00:00 01.01.1970 г. В настоящее время не используется, но импортируется. |
Замена кега на кране (добавление/удаление) | |
Метод | POST |
Параметр | /replace_keg |
Осуществляется по КМ старого кега или идентификатору крана. Заменяет активный кег на новый вручную. В случае, если у старого кега вышел срок годности или он получил повреждение. В других случаях этот метод использовать не обязательно, SetMark сам будет списывать данные из следующего кега. |
{ "id": 12345, "version": 1, "operationType": 1, "productType": 18, "data": [ { "newMark": "018899222324252621aaabbbc93ddas", "oldMark": "018899222324252621jhdhyhf93KK&g" } ] }
Типы данных в запросе по замене кега (добавлению/удалению)
Название | Тип данных | Обязательный | Описание |
id | bigint | Да | Уникальный идентификатор для каждого запроса. Не должен повторяться. |
version | int | Да | Версия пакета. В настоящий момент поддерживается только версия 1. |
operationType | int | Да | Всегда 1 |
productType | int | Да | Тип продукта. В настоящий момент поддерживается только 18 тип (разливное пиво). |
newMark | text | Да | Контрольная марка нового кега, на который хотим заменить, обязательно полная с криптохвостом . |
oldMark | text | Да | Контрольная марка старого кега, который хотим заменить, обязательно полная с криптохвостом . |
Обновление данных кега | |
Метод | PUT |
Параметр | /update_keg |
Обновление артикула/магазина/срока годности по КМ. Отправляются только те данные, которые надо обновить. |
{ "id": 12345, "version": 1, "operationType": 1, "data": [ { "mark": "018899222324252621aaabbbc93ddas", "item": "45045", "shop": 62, "volume": 30000, "expireDate": 1706509126000 } ] }
Типы данных в запросе по обновлению данных кега
Название | Тип данных | Обязательный | Описание |
id | bigint | Да | Уникальный идентификатор для каждого запроса. Не должен повторяться. |
version | int | Да | Версия пакета. В настоящий момент поддерживается только версия 1. |
operationType | int | Да | Всегда 1 |
Mark | text | Да | Контрольная марка кега, информацию которого хотим обновить, обязательно полная с криптохвостом. |
volume | bigint | Да | Новый объем кега, передается в миллилитрах. |
shop | bigint | Да | Новый номер магазина |
item | text | Да | Новый артикул товара. Если соответствует артикулу из SetRetail10, то продажа на кассе по штрихкоду будет проходить без запроса марки. |
expireDate | bigint | Нет | Новый срок годности в миллисекундах с 00:00 01.01.1970 г. Если не предать, то значение будет NULL. В настоящее время не используется, но импортируется. |
Просмотр загрузки информации о кеге в SetMark
Выполните скрипт в базе данных set_mark для просмотра информации о кеге.
SELECT * FROM public.keg_item_relation kir
Просмотр выбытия из SetMark
Выполните скрипт в базе данных set_mark для просмотра выбытия после продажи. Оно будет отображено в столбце remaining_volume
SELECT * FROM public.active_marks_volumed;
Импорт из ERP
Импорт разливного пива осуществляется согласно интеграционной документации:
- Разливное пиво выгружается только в сочетании алкогольный тип товара
<product-type>ProductSpiritsEntity</product-type>
. и типом маркиmark-type=DRAFT_BEER
. Только при таком сочетании работает проверка возраста, и запрос марки на кассе, и, а также автозаполнение тегов 1212 и 2108. - Дополнительная загрузка значения в элемент
ffd_tag_2108
не требуется. В значениях: 0.33, 0.5, 1, 1.5 литра разливного пива.
- Значение передаётся в атрибуте количество
<
штрих-кода.count>
Указанное количество передается в поле количество как есть
Указанное количество с КМ передается в ККТ и ОФД.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <goods-catalog> <good marking-of-the-good="99916"> <name>Пиво Корона светлое разливное 0,33 л.</name> <bar-code code="85989924435525" marked="true"> <default-code>true</default-code> <count>0.33</count> </bar-code> <mark-type>DRAFT_BEER</mark-type> <product-type>ProductSpiritsEntity</product-type> <price-entry price="250.00"> <begin-date>2011-07-23T00:00:00.000</begin-date> <end-date>2075-07-09T00:00:00.000</end-date> <number>1</number> <department number="582"> <name>Алкоголь</name> </department> </price-entry> <vat>20.0</vat> <group id="5"> <name>Разливное пиво</name> </group> <measure-type id="л"> <name>л</name> </measure-type> <country id="RU"> <name>Россия</name> </country> <plugin-property key="deny-print-to-documents" value="false"/> <plugin-property key="precision" value="0.001"/> <plugin-property key="alcoholic-content-percentage" value="5.0"/> </good> </goods-catalog>
После импорта в карточку товара, отобразится значение в штриховых кодах и объем в литрах из тега <count>0.33</count>
.
Если <count>
отсутствует, тогда по умолчанию проставляется количество = 1 и при сканировании штрих-кода или КМ всегда будет добавляться количество 1.
Передача информации о продаже в ОФД
Производится отправка информации:
- Учитывается в проверке в ККТ (ОИСМ), что это маркированное разливное пиво с частичным выбытием.
Проверяется поведение ККТ при одинаковых марках в чеке.
Пример экспорта чека в ERP
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <purchases count="1"> <purchase tabNumber="1" userName="Иванов Иван Иванович" operationType="true" cashOperation="INCOME" operDay="2023-11-24+03:00" shop="8234" cash="1" shift="56" number="4" saletime="2023-11-24T16:30:06.546+03:00" begintime="2023-11-24T16:29:07.296+03:00" amount="84.00" discountAmount="0.00" factorynum="414760012092935" inn="7802781104" kpp="780201001" qrcode="t=20231124T163000&s=168.00&fn=9999078902015352&i=272&fp=835611532&n=1" fiscalDocNum="271;4" status="REGISTERED" cashType="POS" fiscalnum="414760012092935"> <plugin-property key="externalSystemId" value="82340011700832585861"/> <plugin-property key="PROMO_PRINT_DISABLED" value="true"/> <plugin-property key="FN_DOC_NUM_IN_SHIFT" value="4"/> <plugin-property key="FISCAL_DOC_ID" value="272"/> <plugin-property key="CASHIER_NAME" value="Иванов Иван Иванович"/> <plugin-property key="UID_PURCHASE" value="ac4ceac9-2c70-4ff2-81f8-db3dc7bb6a4b"/> <plugin-property key="KPP" value="780201001"/> <plugin-property key="CASH_TIME_ZONE" value="+03:00"/> <positions> <position order="2" departNumber="582" goodsCode="99916" barCode="88992223242528" count="0.500" cost="84.00" nds="20.0" ndsSum="7.00" discountValue="0.00" costWithDiscount="84.00" amount="42.00" dateCommit="2023-11-24T16:29:31.634+03:00" insertType="0"> <plugin-property key="countryName" value="Россия"/> <plugin-property key="markValidationResult" value="{"fiscalResult":{"input":{"mark":"018599222324252621jhdhyhf\u001D93KK&g"},"tag2106":5,"tag2005":5,"tag2105":2},"status":"VALID"}"/> <plugin-property key="ffdTag2108" value="41"/> <plugin-property key="salesTax" value="0"/> <plugin-property key="minimalPrice" value="-1"/> <plugin-property key="excise-token" value="018599222324252621jhdhyhf"/> <plugin-property key="marktype" value="DRAFT_BEER"/> </position> </positions> <payments> <payment order="1" typeClass="CashPaymentEntity" amount="168.00" description="Оплата наличными"> <plugin-property key="pay.frcode" value="1"/> </payment> </payments> </purchase> </purchases>
Часто задаваемые вопросы
Как будет производиться продажа разливного пива в офлайн, если SetMark недоступен?
Если SetMark недоступен, то при сканировании штрих-кода, касса попросит считать КМ кега.
Продажа будет проходить по процессу, когда SetMark отсутствует в торговой сети.
Как будет осуществляться продажа позиции разливного пива, когда закончился доступный объем кега в SetMark?
На кассе появится сообщение: Не хватает доступного объема.
Примеры сообщений
Клавиатурная касса
После сканирования штрих-кода появится сообщение о том, что происходит попытка продажи объема больше, чем осталось в кеге.
SetTouch
CSI-K (семейство SCO)
1. На кассе появится сообщение о том, что нужно подождать помощника.
2. После сканирования карты доступа, на экране помощника отобразится сообщение о том, что количество в кеге меньше.
В каком порядке происходит выбытие, если загружено несколько кегов?
Списание происходит в порядке загрузки данным по кегам в SetMark.
Если в текущем кеге не хватит объема, то значение спишется из следующего кега.
Пример работы
Клавиатурная касса
Добавление товарной позиции разливного пива производится только по штрих-кодам, при этом происходит запрос в SetMark данных КМ, поэтому касса не запрашивает сканирование КМ.
SetTouch
Добавление товарной позиции разливного пива производится только по штрих-кодам, при этом происходит запрос в SetMark данных КМ, поэтому касса не запрашивает сканирование КМ.
CSI-K (семейство SCO)
Добавление товарной позиции разливного пива производится только по штрих-кодам, при этом происходит запрос в SetMark данных КМ, поэтому касса не запрашивает сканирование КМ.
Ограничения
В чеке могут быть два одинаковых товара и более из категории "разливное пиво" с одинаковым КМ.
Разливное пиво не может состоять в промо-наборах (и раньше не состояло).
Так как маркированные товары нельзя объединять между собой, комплекты с пивом не будут схлопываться в позициях чека на кассе в ERP, и в ОФД.
Чтобы избежать путаницы, для какого товара считывается КМ, считается, что в комплекте может быть только один маркированный товар.
Добавление маркированного пива через SetKit не поддерживается.
Частичный возврат маркированного разливного пива запрещен. Нельзя вернуть 0,5л из 1л. Деления позиций не производится.
- Количество изменить нельзя. Так как тут может быть и 1л и 0,5л и 1,5л считается, что значение должно быть загружено в ШК, чтобы мы уже знали объем на этапе проверки КМ в сервисах.
- Ручной ввод количества запрещен.
Продажа разливного пива кегом сразу по КМ запрещена.
Официальные документы
© 1994-2023, ООО «Кристалл Сервис Интеграция».
Все права защищены..