SetRetail10 ◾️ Продажа товара по штрих-коду уценки

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

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-коде, будет разбираться и добавляться на кассе:

  1. "b": штрих-код

  2. "p": цена за единицу товара, руб.

  3. "k": цена за единицу товара, коп.

  4. "t": код шаблона ценника

{ "b":"2708437", "p":59, "k":90, "t":13511 }