Публичное пространство
SetRetail10 ◾️ Продажа товара по штрих-коду уценки
https://crystals.atlassian.net/browse/SRTB-5806
https://crystals.atlassian.net/browse/CR-7040
10.3.11.0
Описание
В некоторых торговых сетях используются уценочные штрих-коды для изменения стоимости уцененных товаров. Уценочный штрих-код содержит штрих-код товара и цену со скидкой, по которой должен быть продан товар. Также штрих-код может содержать количество (вес товара) при продаже весовых товаров.
Для работы функциональности используется плагин ШК-трансформер модуля процессинга штрих-кода. С его помощью можно сформировать свой штрих-код уценки, чтобы касса добавляла товары по настраиваемой маске.
Пример формата штрих-кода
Уценочный штрих-код может иметь следующий формат:
997XXXXXXXXXXXXXVVVVVRRPPPPPPPSS1:
997 – фиксированный префикс
XXXXXXXXXXXXX – Штрих-код товара (EAN-13)
VVVVV - вес товара
RR – причина изменения цены
PPPPPPP – измененная цена
SS – код сотрудника (не используется)
1 – фиксированное значение
Настройка
Для включения плагина выполните скрипт по базе данных set:
UPDATE sales_management_properties SET property_value = 'true'
WHERE module_name = 'CASH_BARCODE_PROCESSOR' AND plugin_name = 'transformer' AND property_key = 'enabled';Для настройки формата штрих-кода выполните скрипт по базе данных set:
Приведен пример маски. Настройте маску в соответствии с вашими бизнес-процессами.
UPDATE sales_management_properties SET property_value = '{
"masks": [
{
"description": "ШК уценки 33 цифры",
"fields": [
{
"name": "prefix",
"value": "997"
},
{
"name": "ean13",
"length": 13
},
{
"name": "quantity",
"length": 5
},
{
"name": "reasonCode",
"length": 2
},
{
"name": "price",
"length": 7
},
{
"name": "_",
"length": 2
},
{
"name": "_",
"value": "1"
}
],
"inputRestrictions": {
"scannerOnly": true
},
"result": {
"productRef": {
"barcode": {
"source": "field",
"value": "ean13"
}
},
"position": {
"price": {
"source": "field",
"value": "price"
},
"quantity": {
"source": "field",
"value": "quantity"
},
"attributes": {
"canChangeQuantity": false,
"allowDiscounts": true
},
"correctionReasonCode": {
"source": "field",
"value": "reasonCode"
}
}
}
}
]
}'
WHERE module_name = 'CASH_BARCODE_PROCESSOR' AND plugin_name = 'transformer' AND property_key = 'config';
UPDATE sales_management_properties SET send_status = 0 WHERE module_name = 'CASH_BARCODE_PROCESSOR' AND plugin_name = 'transformer';Правила настройки маски
1. Можно настроить несколько форматов (масок) штрих-кодов, добавив еще нужное количество в список masks.
2. Порядок масок используется при поиске подходящей маски (первая маска проверяется первой).
3. Каждая маска состоит из списка полей штрих-кода (fields) и результата преобразования штрих-кода (result), а также опциональных ограничений ввода штрих-кода (inputRestrictions).
4. Для каждой маски могут быть указаны ограничения ввода inputRestrictions/scannerOnly, для запрета ручного ввода штрих-кода.
5. В поле fields обязательно должны быть перечислены все поля штрих-кода, покрывающие всю его длину в том порядке, в котором они идут в штрих-коде.
6. Каждое поле маски должно содержать либо фиксированное значение (для констант), либо длину поля (для переменных значений).
7. Поля маски должны иметь имя. Допускается использование символа _ для полей, которые не требуется извлекать из штрих-кода.
8. В поле result должны быть заполнены поля:
productRef/barcode - штрих-код товара в формате EAN13 для поиска.
position/price - цена товара после уценки в копейках.
(опционально) correctionReasonCode/price - код причины коррекции цены (если его нет, то товар добавится в чек с измененной ценой, но без указания причины).
11. Значения в поле result могут быть выражены в виде константы:
{
"fields": [
{
"name": "reasonCode",
"length": 2
}
],
"result": {
"position": {
"correctionReasonCode": 10
}
}
}или значения из поля штрих-кода:
{
"fields": [
{
"name": "reasonCode",
"length": 2
}
],
"result": {
"position": {
"correctionReasonCode": {
"source": "field",
"value": "reasonCode"
}
}
}
}12. В поле position/attributes можно разрешить ручной ввод количества, ручное изменение цены, применение скидок:
"attributes": {
"canChangeQuantity": true,
"canChangePrice": true,
"allowDiscounts": true
}Пример работы
Кассир сканирует штрих-код товара. Касса распознает данные из штрих-кода.
Кассир добавляет товар в чек и нажимает РАСЧЕТ.
Производится расчет скидок, если это предусмотрено условиями маски и действующими акциями. Кассир закрывает чек.
Экспорт чека в ERP
В данных экспорта чека будет отражен код причины коррекции <plugin-property key="changePriceReason" value="10"/>.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<purchases count="1">
<purchase tabNumber="99999" userName="Иванов Пётр " operationType="true" cashOperation="INCOME" operDay="2022-05-31+03:00" shop="42" cash="1" shift="71" number="3" saletime="2022-06-01T11:33:18.698+03:00" begintime="2022-06-01T11:00:50.662+03:00" amount="211.17" discountAmount="11.13" inn="7802781104" fiscalDocNum="222;3" status="REGISTERED">
<plugin-property key="FISCAL_DOC_ID" value="222"/>
<plugin-property key="UID_PURCHASE" value="14d2989d-573d-40b5-ab31-fd97c992f18b"/>
<plugin-property key="KPP" value="780201001"/>
<positions>
<position order="1" departNumber="583" goodsCode="220666" barCode="4607141310048" count="1.235" cost="180.00" nds="10.0" ndsSum="19.20" discountValue="11.13" costWithDiscount="170.99" amount="211.17" dateCommit="2022-06-01T11:00:50.677+03:00" insertType="0">
<plugin-property key="beforeManualPrice" value="234.90"/>
<plugin-property key="countryName" value="Россия"/>
<plugin-property key="salesTax" value="0"/>
<plugin-property key="changePriceReason" value="10"/>
</position>
</positions>
<payments>
<payment typeClass="CashPaymentEntity" amount="220.00" description="Оплата наличными"/>
<payment typeClass="CashChangePaymentEntity" amount="8.83" description=""/>
</payments>
<discount positionId="1" goodCode="220666" amount="11.13" isDiscountPurchase="false" AdvertActGUID="42608" AdvertActExternalCode="SR10_42608" AdvertActDiscountType="5" advertType="DISCOUNT_GOODS" quantity="1.235"/>
<bonuses/>
</purchase>
</purchases>
Корректировка цены на кассе с помощью QR-кода ценника
https://crystals.atlassian.net/browse/SRTB-6994
https://crystals.atlassian.net/browse/CR-8268
10.3.27.0
Описание
Функциональность предоставляет возможность корректировать стоимость товара, отсканировав QR-код ценника, чтобы продать товар по корректной стоимости, указанной на ценнике.
Формат
В QR-код зашивается информация в JSON-формате.
В соответствии с данной маской, JSON с информацией о новой стоимости товара, содержащийся в QR-коде, будет разбираться и добавляться на кассе:
"b": штрих-код"p": цена за единицу товара, руб."k": цена за единицу товара, коп."t": код шаблона ценника
{
"b":"2708437",
"p":59,
"k":90,
"t":13511
}