Публичное пространство

Маркировка и МРЦ ◾️ Разливное пиво с использованием 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. Передача в ККТ КМ кега.

  2. Передача в ККТ объем реализуемого пива (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) установите флажок Продавать маркированный товар по артикулу товара.

Логика работы

  1. При подключенном SetMark Centrum запроса КМ на кассе не производится. 
  2. Данные по КМ берутся из SetMark.
  3. После продажи происходит выбытие из кега проданного количества разливного пива.

Импорт в 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 - для добавления кега.
2 - для удаления кега

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.

Передача информации о продаже в ОФД

Производится отправка информации:

  1. Учитывается в проверке в ККТ (ОИСМ), что это маркированное разливное пиво с частичным выбытием.
  2. Проверяется поведение ККТ при одинаковых марках в чеке.

Пример экспорта чека в 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 данных КМ, поэтому касса не запрашивает сканирование КМ.

Ограничения

  1. В чеке могут быть два одинаковых товара и более из категории "разливное пиво" с одинаковым КМ.

  2. Разливное пиво не может состоять в промо-наборах (и раньше не состояло).

  3. Так как маркированные товары нельзя объединять между собой, комплекты с пивом не будут схлопываться в позициях чека на кассе в ERP, и в ОФД.

  4. Чтобы избежать путаницы, для какого товара считывается КМ, считается, что в комплекте может быть только один маркированный товар.

  5. Добавление маркированного пива через SetKit не поддерживается.

  6. Частичный возврат маркированного разливного пива запрещен. Нельзя вернуть 0,5л из 1л. Деления позиций не производится.

  7. Количество изменить нельзя. Так как тут может быть и 1л и 0,5л и 1,5л считается, что значение должно быть загружено в ШК, чтобы мы уже знали объем на этапе проверки КМ в сервисах.
  8. Ручной ввод количества запрещен.
  9. Продажа разливного пива кегом сразу по КМ запрещена.

Официальные документы


© 1994-2023, ООО «Кристалл Сервис Интеграция».
Все права защищены..

Политика обработки персональных данных