Описание

Начиная с версии 10.2.96.0 реализована возможность с помощью специального плагина Mastercard и только для карт данного типа производить выдачу наличных денежных средств на кассе покупателю вместе с транзакцией оплаты покупки.

Настройка

Добавление процессинга на сервере

1. Перейдите в Интеграция → кликните Внешние процессинги → кликните .

2. Наберите наличн → клинките Процессинги товаров → установите флажок Наличные с покупкой → кликните .

3. Кликните по плагину Наличные с покупкой.

4. Установите настройки работы плагина на вкладках ОБЩИЕ:

Для разных магазинов торговой сети могут использоваться разные настройки плагина (телефон платежного агента, банковские реквизиты и т.д.).


5. Так как услуга снятия наличных будет добавляться в чек как обычный товар, установите настройки поведения для него, как и для других товаров на вкладках ТОВАР:

6. Кликните .

7. Перейдите в Кассовый модуль → кликните Шаблоны касс → кликните  → выберите Редактировать.

8. Перейдите на вкладку ПРОЦЕСС ТОРГОВЛИ → введите в строку поиска Mastercard → установите флажок для типа товара  Плагин CashOut-Mastercard → кликните .

9. Все настройки отправятся на кассы. Для применения их применения перезагрузите кассовый модуль.

Особенности настройки добавления товара выдачи наличных на кассе SetTouch

Добавление товара для выдачи наличных на кассе SetTouch производится только двумя способами. В ручную ввод штрихкода услуги товара выдачи наличных невозможен на кассе SetTouch. 

Подробнее в главе Указание штрих-кода в плитках меню SetTouch.

1. Например, если у Вас есть существующий шаблон меню, перейдите в Кассовый модуль → кликните Настройки меню Set Touch → кликните  → выберите Редактировать.

2. Кликните по любому дню → выберите Редактировать.

4. Установите тип шаблона По умолчанию → введите название вкладки меню → кликните по плитке → установите флажок  Ввести в ручную → введите штрихкод услуги товара выдачи наличных → кликните .

Кассу перезагружать не нужно. Меню обновиться автоматически.

Операционный день

После процесса продажи чек выдачи наличных и чек продажи товара отображаются в разделе Операционный день → Чеки.

Чек продажи с авторизацией банковской карты

Чек продажи с обычным товаром в операционном дне будет первее чека с товаром-услугой выдачи.

В нем будет отображаться обычная товарная позиция.

На вкладке ОПЛАТЫ будет отображена только сумма, оплаченная за эту товарную позицию.

При этом общая сумма банковской транзакции будет отображатсья на вкладке ТРАНЗАКЦИИ ОПЛАТЫ именно чека с товарной позицией.

Чек выдачи наличных

Чек продажи с товаром-услугой выдачи наличных в операционном дне будет после чека с товарной позицией.

В нем будет отображаться позиция товара-услуги выдачи наличных.

При этом артикул товара будет с кодом CASHOUT.

На вкладке ОПЛАТЫ будет отображена сумма к выдаче с наличным типом оплаты.

На вкладке ТРАНЗАКЦИИ операция по списанию с карты не отображается в данном типе чека.


Экспорт данных в ERP

Экспорт чеков и Z-отчетов в ERP производится согласно интеграционной документации по выгрузке:

Чек продажи с авторизацией банковской карты

В чеке продажи с обычным товаром производится экспорт данных о транзакции выдачи наличных с плагинным свойством <plugin-property key="cashout.amount" value="100000"/>.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<purchases count="1">
    <purchase tabNumber="123123" userName="Иванова Ксения Ивановна" operationType="true" operDay="2021-03-23+03:00" shop="234" cash="9" shift="79" number="21" saletime="2021-03-23T16:45:15.925+03:00" begintime="2021-03-23T16:44:49.151+03:00" amount="28.8" discountAmount="0.0" inn="7802781104" qrcode="t=20210323T1645&s=28.80&fn=null&i=541&fp=2974060208&n=1">
        <plugin-property key="UID_PURCHASE" value="f22c29e1-d779-42bd-9f8b-680b429b1099"/>
        <positions>
            <position order="1" departNumber="583" goodsCode="45033" barCode="4607141310331" count="1.0" cost="28.8" nds="10.0" ndsSum="2.62" discountValue="0.0" costWithDiscount="28.8" amount="28.8" dateCommit="2021-03-23T16:44:49.161+03:00" insertType="3">
                <plugin-property key="countryName" value="Россия"/>
            </position>
        </positions>
        <payments>
            <payment typeClass="BankCardPaymentEntity" amount="28.8" description="Оплата по банковской карте">
                <plugin-property key="card.hash" value="320CBC12375D73A50F00B5DB36E977B779A5EC70"/>
                <plugin-property key="cash.transaction.id" value="495105"/>
                <plugin-property key="terminal.number" value="00689949"/>
                <plugin-property key="cash.transaction.date" value="2021-03-23 16:45:13.404"/>
                <plugin-property key="bank.id" value="Сбербанк"/>
                <plugin-property key="ref.number" value="161650712390"/>
                <plugin-property key="card.type" value="Mastercard"/>
                <plugin-property key="auth.code" value="06I200"/>
                <plugin-property key="cashout.amount" value="100000"/>
                <plugin-property key="bank.type" value="SBERBANK"/>
                <plugin-property key="card.number" value="************2380"/>
            </payment>
        </payments>
    </purchase>
</purchases>

Чек выдачи наличных

В чеке выдачи наличных производится стандартный экспорт данных, но со значением тега о выдачи суммы goodsCode="CASHOUT".

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<purchases count="1">
    <purchase tabNumber="123123" userName="Иванова Ксения Ивановна" operationType="true" operDay="2021-03-23+03:00" shop="234" cash="9" shift="79" number="22" saletime="2021-03-23T16:45:22.276+03:00" begintime="2021-03-23T16:44:49.151+03:00" amount="1000.0" discountAmount="0.0" inn="7802781104" qrcode="t=20210323T1645&s=1000.00&fn=null&i=542&fp=1932320400&n=6">
        <plugin-property key="UID_PURCHASE" value="f22c29e1-d779-42bd-9f8b-680b429b1099"/>
        <positions>
            <position order="1" departNumber="1" goodsCode="CASHOUT" barCode="999777" count="1.0" cost="1000.0" nds="-1.0" ndsSum="0.0" discountValue="0.0" costWithDiscount="1000.0" amount="1000.0" dateCommit="2021-03-23T16:44:54.247+03:00" insertType="2">
                <plugin-property key="cashOutPosition" value="true"/>
            </position>
        </positions>
        <payments>
            <payment typeClass="CashPaymentEntity" amount="1000.0" description="Оплата наличными"/>
        </payments>
    </purchase>
</purchases>

Z-отчет

1. Для экспорта Z-отчета переключите веб-сервис экпорта. Выполните скрипт в базе данных set:

На стороне ERP на версию 1.4:

UPDATE public.sales_management_properties
   SET property_value='1.4'
 WHERE property_key='export.set10wsclient.zreports.version';

На стороне SetRetail на версию 1.4:

UPDATE public.sales_management_properties
   SET property_value='1.4'
 WHERE property_key='export.file.zreports.version';

2. Данные о расходных операциях изъятия будут указаны в следующих полях, согласно интеграционной документации:

Элементы с данными по экспорту о расходных операциях:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<reports count="1">
    <zreport>
        <reportType>ZReport</reportType>
        <shiftNumber>79</shiftNumber>
        <shopNumber>234</shopNumber>
        <docNumber>26</docNumber>
        <cashNumber>9</cashNumber>
        <serialCashNumber>0000000000029350</serialCashNumber>
        <userTabNumber>123123</userTabNumber>
        <userName>Иванова Ксения Ивановна</userName>
        <dateOperDay>2021-03-23+03:00</dateOperDay>
        <dateShiftClose>2021-03-23T17:31:28.475</dateShiftClose>
        <dateShiftOpen>2021-03-23T13:33:44.592</dateShiftOpen>
        <countCashPurchase>0</countCashPurchase>
        <countCashlessPurchase>8</countCashlessPurchase>
        <countPurchase>8</countPurchase>
        <countCashReturn>0</countCashReturn>
        <countCashlessReturn>0</countCashlessReturn>
        <countReturn>0</countReturn>
        <counterIncoming>4</counterIncoming>
        <counterWithdrawal>1</counterWithdrawal>
        <amountByCashPurchase>0.00</amountByCashPurchase>
        <amountByCashlessPurchase>230.40</amountByCashlessPurchase>
        <amountByPurchaseFiscal>230.40</amountByPurchaseFiscal>
        <amountByCashReturn>0.00</amountByCashReturn>
        <amountByCashlessReturn>0.00</amountByCashlessReturn>
        <amountByReturnFiscal>0.00</amountByReturnFiscal>
        <amountCashIn>23.00</amountCashIn>
        <amountCashOut>1500000.00</amountCashOut>
        <amountCashDiscount>0.00</amountCashDiscount>
        <returnDiscountCashPay>0.00</returnDiscountCashPay>
        <incresentTotalStart>155449995</incresentTotalStart>
        <incresentTotalFinish>155473035</incresentTotalFinish>
        <incresentTotalReturnStart>664452</incresentTotalReturnStart>
        <incresentTotalReturnFinish>664452</incresentTotalReturnFinish>
        <factoryCashNumber>0128061140</factoryCashNumber>
        <cashName>Пирит 2Ф</cashName>
        <inn>7802781104</inn>
        <payments>
            <payment typeClass="CashPaymentEntity" amountExpense="11028.80"/>
            <payment typeClass="BankCardPaymentEntity" amountPurchase="230.40"/>
        </payments>
        <reversals>
            <reversal operation="STORNO" amount="0.000" sum="0.00"/>
        </reversals>
        <countExpenseReceipt>8</countExpenseReceipt>
        <countCashExpenseReceipt>8</countCashExpenseReceipt>
        <countCashlessExpenseReceipt>0</countCashlessExpenseReceipt>
        <amountByExpenseReceipt>11028.80</amountByExpenseReceipt>
        <amountByExpenseReceiptFiscal>11028.80</amountByExpenseReceiptFiscal>
        <amountByCashExpenseReceipt>11028.80</amountByCashExpenseReceipt>
        <amountByCashlessExpenseReceipt>0.00</amountByCashlessExpenseReceipt>
        <incresentTotalExpenseStart>18710000</incresentTotalExpenseStart>
        <incresentTotalExpenseFinish>19812880</incresentTotalExpenseFinish>
        <countReturnExpenseReceipt>0</countReturnExpenseReceipt>
        <countCashReturnExpenseReceipt>0</countCashReturnExpenseReceipt>
        <countCashlessReturnExpenseReceipt>0</countCashlessReturnExpenseReceipt>
        <amountByReturnExpenseReceipt>0.00</amountByReturnExpenseReceipt>
        <amountByReturnExpenseReceiptFiscal>0.00</amountByReturnExpenseReceiptFiscal>
        <amountByCashReturnExpenseReceipt>0.00</amountByCashReturnExpenseReceipt>
        <amountByCashlessReturnExpenseReceipt>0.00</amountByCashlessReturnExpenseReceipt>
        <incresentTotalReturnExpenseStart>6560000</incresentTotalReturnExpenseStart>
        <incresentTotalReturnExpenseFinish>6560000</incresentTotalReturnExpenseFinish>
    </zreport>
</reports>

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

Описание процесса

"Наличные с покупкой", составная операция, состоящая из двух частей: приход и расход.

При наличии в чеке услуги "Наличные с покупкой", тип оплаты по умолчанию должен устанавливаться как "банковская карта (Сбербанк)", т.к. функционал работает только с процессингом Сбербанка.

Первая оплата всегда той картой, с которой будут сниматься наличные.

Сумма первой оплаты должна быть не менее чем суммы выдачи наличных + 0,01р.

Доплата может быть выполнена любым типом платежа, в том числе и "банковская карта (сбербанк)", но без выдачи наличных.

Процесс работы плагина


На текущий момент банковский процессинг Сбербанка не поддерживает функцию частичного одобрения транзакции (только оплата), поэтому текущей реализации эта функциональность не реализована.


  1. Касса вызывает плагин оплат (для Сбербанка) и передает ему чек.

  2. Плагин оплат обращается к эквайринговому терминалу (sb_pilot) и передает ему запрос на выдачу наличных с покупкой:

  3. Фискализация после совершения оплаты с выдачей наличных, касса автоматически создает чек расхода и переносит в него услугу "Наличные с покупкой" из чека прихода (продажи) с сохранением всех свойств и атрибутов:
    1. Касса фискализует чек прихода (продажи).
    2. Касса фискализует чек расхода (выдача наличных)
    3. Покупателю передается два фискальных чека и один банковский слип. В слипе содержится сумма совершенной покупки, сумма выданной наличности, общая сумма (слип формируется Сбербанк sb_pilot).

Ограничения

Возвраты

Выполняется в двух вариантах:

Ограничения при возврате наличных

Возврат чека расхода (выдача наличных)

Возврат производится только с помощью команд sb_pilot.

Операция «Возврат» проводится, если требуется вернуть денежные средства на карту клиента.

Операция возврата может быть преобразована в операцию отмены терминалом автоматически, в случае если выполняются следующие условия:

Аннулирование чека

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

В случае аварийной ситуации, когда сделка по выдаче наличных еще не исполнена, то есть. не получен фискальный кассовый чек и/или не деньги не приняты покупателем, или покупатель отказался от покупки (нехватка денежных средств для доплаты, после совершения первого частичного платежа с выдачей наличных), возможно аннулирование чека и отмена банковской транзакции в полном объеме.

Аннулирование чека производится стнадртным способом.

Пример работы

Клавиатурная касса

1. Кассир добавляет товар-услугу вводом штрих-кода.

2. Появляется меню выбора суммы для выдачи.

3. Кассир выбирает сумму → нажимает клавишу ВВОД.

4. Товар-услуга добавился в позиции чека.

5. Следующим этапом добавляет любой другой товар.

  • Выдача наличных возможна только при добавлении любого другого обычного товара в чек.
  • Выдать наличные только с товаром для продажи.

6. Кассир добавляет обычный товар для продажи.

7. Товар для продажи добавился в чек → кассир нажимает РАСЧЕТ.

8. Появляется сообщение о том, что покупка будет разделена на два чека → кассир нажимает клавишу ВВОД.

9. Появляется сообщение о том, что покупатель должен произвести авторизацию банковской карты.

10. На пин-паде появляется вопрос к покупателю с просьбой об авторизации карты.

11. Покупатель прикладывает карту к пин-паду.

12. Вводит пин-код и подтверждает его.

13. Отправляется запрос в банк.

14. В случае успешного ответа, на пин-паде появляется положительный статус.

15. Печатаются чековые документы:

16. Открывается денежный ящик, кассир отдает покупателю наличные, указанные в размере выдачи товара-услуги.

17. Кассир закрывает денежный ящик и продолжает работу.

SetTouch

1. Кассир добавляет обычный товар в чек.

2. Кассир переходит на вкладку меню с товаром-услугой выдачи наличных и нажимает кнопку с этой позицией.

  • Выдача наличных возможна только при добавлении любого другого обычного товара в чек.
  • Выдать наличные только с товаром для продажи.

4. Появляется меню выбора суммы для выдачи → кассир выбирает сумму выдачи и нажимает .

5. Позиция с суммой выдачи добавилась в чек → кассир нажимает .

6. Появляется сообщение о том, что покупка будет разделена на два чека → кассир нажимает клавишу .

7. Появляется итоговая сумма → кассир нажимает .

8. Появляется сообщение о том, что покупатель должен произвести авторизацию банковской карты.

9. На пин-паде появляется вопрос к покупателю с просьбой об авторизации карты.

10. Покупатель прикладывает карту к пин-паду.

11. Покупатель вводит пин-код и подтверждает его.

12. Отправляется запрос в банк.

13. В случае успешного ответа, на пин-паде появляется положительный статус.

11. Печатаются чековые документы:

12. Открывается денежный ящик, кассир отдает покупателю наличные, указанные в размере выдачи товара-услуги.

13. Кассир закрывает денежный ящик и продолжает работу.

Примеры чеков

Вид печатных документов

  1. Чек расхода - выдача наличных.
  2. Чек продажи - продажа обычноготовара.
  3. Банковский слип.

Чеки в ОФД

<Письмо> ФНС России от 13.11.2018 N ЕД-4-20/22064 "О направлении методических указаний"

В ОФД товар-услуга записывается в тег 1030

Признаки расчета записываются во второй чек продажи обычного товара.

Видеодемонстрация

Клавиатурная касса

SetTouch

Дополнительная информация

Пример проведения операции возврата с помощью sb_pilot

Для выполнения операции «Возврат» кассовая программа должна вызвать модуль sb_pilot со следующими параметрами:

sb_pilot 3 <Сумма> <Тип_карты> <Трек2\QSELECT> <RRN> /q=<REQ_ID> /r=<Код_валюты> /d=<Номер_отдела>


Аргументы /d и /r, при их наличии во входных данных, будут использоваться как дополнительные условия при поиске исходных операций. При выполнении операции без карты с выбором исходной транзакции по RRN, терминал копирует из исходной операции код валюты и номер отдела.

Пример вызова модуля sb_pilot для проведения операции «Возврат» на сумму 300 руб. без предъявления карты


sb_pilot 3 30000 0 QSELECT /q=ABCDABCD


Пример вызова модуля sb_pilot для проведения операции «Возврат» на сумму 500 руб. с предъявлением карты

sb_pilot 3 50000 /a=ABCDABCD