Согласно требованиям законодательства в кассовом чеке должен быть указан телефон или электронная почта покупателя для тех случаев, когда кассовый чек передается в электронной форме. Отправку чеков на адрес покупателя осуществляет ОФД.
Отправка чека и отказ от печати чека доступны для ФР Атол, Штрих и Пирит. При подключении 2 ФР запрос об отказе от печати чека выводится всегда, если хотя бы один из ФР поддерживает эту функцию.
При печати чека на ФР Штрих и ФР Пирит на чеке печатается адрес покупателя, на ФР Атол адрес покупателя не печатается.
Отправка чека на адрес покупателя
Активация плагина для отправки чека определяется параметром customerAddress, который задается в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/customeraddress.ini в секции [plugins].
| Наименование | Тип данных | Возможные значения | Описание | Примечания |
|---|---|---|---|---|
| customerAddress | строковый |
| Отправка чека на адрес покупателя | По умолчанию on |
[plugins] ; Отправка чека на адрес покупателя ; по умолчанию on customerAddress = on
Настройка плагина отправки чека на адрес покупателя производится в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/customeraddress.ini в секции [CustomerAddress].
| Наименование | Тип данных | Возможные значения | Описание | Примечания |
|---|---|---|---|---|
| inputAddress | логический |
| Ввод адреса покупателя при закрытии чека | По умолчанию false |
printCheck | строковый |
| Печатать ли чек при закрытии:
| По умолчанию choice |
| emailRegex | строковый | Регулярное выражение для валидации email адресов |
[CustomerAddress]
; Настройки плагина отправки чека на адрес покупателя
; Ввод адреса покупателя при закрытии чека
; По умолчанию false
;inputAddress = false
; Печатать ли чек при закрытии
; Возможные значения: print, notprint, choice, choiceOnAutofill
; По умолчанию choice
;printCheck = choice
; Регулярное выражение для валидации email адресов
;emailRegex = "^([a-zA-Z0-9!#$%&'*+\/=?^_`{|}~-]+(\.[a-zA-Z0-9!#$%&'*+\/=?^_`{|}~-]+)*|"([\x21\x23-\x5b\x5d-\x7e]|\\[\x21-\x7e \t])*")@([a-zA-Z0-9!#$%&'*+\/=?^_`{|}~-]+(\.[a-zA-Z0-9!#$%&'*+\/=?^_`{|}~-]+)*|\[([\x21-\x5a\x5e-\x7e]|\\[\x21-\x7e \t])*\])$"
Возможность печати чека при закрытии может быть задана одним из способов:
- с помощью настройки
printCheckплагинаcustomerAddress, с помощью параметра
printCheckкомандыCOMMAND_TOTAL.Параметр
printCheckкомандыCOMMAND_TOTAL:- может принимать только значения
printиnotprint, - имеет приоритет над настройкой
printCheckплагинаcustomerAddress.
- может принимать только значения
Добавление адреса покупателя в чек продажи осуществляется несколькими способами:
по клавише "Добавить адрес покупателя" с командой
COMMAND_CUSTOMER_ADDRESS_ADD:
О настройке действий подробнее можно прочитать в разделе "Настройка действий".
- при добавлении в чек карты покупателя, в карточке клиента которой указана электронная почта,
- принудительный ввод электронной почты покупателя при закрытии чека, который регулируется параметром
inputAddress:- при значении
trueпри закрытии чека на экран будет выведен диалог "Введите адрес покупателя", - при значении
falseввод электронной почты покупателя не требуется. Значение по умолчанию.
- при значении
Введенный адрес покупателя сохраняется в БД Documents таблицу Document в поле сustomeraddress. Электронная копия документа будет отправлена на указанный адрес.
Отправка чека покупателю средствами Artix
В кассовом ПО Artix реализована возможность отправки ссылки на чек продажи покупателю средствами Artix, настройка отправки осуществляется в конфигурационном файле /linuxcash/cash/conf/ncash.ini/customeraddress.ini в секции [CustomerAddress.SendCheckByArtix].
Возможность отправки чека покупателю средствами Artix определяется параметром sendCheck:
- при значении
notSendссылка на чек не будет отправлена, - при значении
sendNotPrintedссылка на чек будет отправлена, если покупатель отказался от печати чека, - при значении
sendAllссылка на чек будет отправлена, даже если покупатель отказался от печати чека.
| Наименование | Тип данных | Возможные значения | Описание | Примечания |
|---|---|---|---|---|
| sendCheck | строковый |
| Отправлять ли чек покупателю средствами Artix | По умолчанию notSend |
| url | строковый | Адрес сервиса | По умолчанию http://localhost | |
| timeout | числовой | Таймаут ожидания ответа от сервиса в секундах | По умолчанию 10 | |
| message | строковый | Сообщение покупателю при отправке чека | По умолчанию "Вы совершили покупку. Для просмотра чека перейдите по ссылке: %1" | |
| checkReferenceMask | строковый | Маска ссылки для просмотра чека | По умолчанию https://yourofd.ru/ticket?t=%(fiscalInfo.fnDate[yyyyMMddThhmm])&s=%(fiscalInfo.sum[.2f])&fn=%(fiscalInfo.fnNumber[s] | |
| phoneMask | строковый | Маска для получения номера телефона без кода страны | По умолчанию ^[+]?[78]?(?<phone>[0-9]{10})$ | |
| settingsKey | Указывается наименование ключа, соответствующее типу СМС шлюза | Ключ настройки СМС шлюза | По умолчанию Если значение не указано, то всегда используется ключ СМС шлюза | |
| gateways | строковый |
| Cписок шлюзов для отправки чека покупателю | По умолчанию Ссылка на чек отправляется пользователю через тот шлюз, который указан в настройках. В настройках может быть указано несколько шлюзов через запятую, приоритетным является тот, который в списке указан самым первым. Если какой-то из шлюзов недоступен, то для отправки ссылки на чек будет выбран другой из списка. Если все указанные шлюзы недоступны, то ссылка на чек пользователю отправлена не будет. |
[CustomerAddress.SendCheckByArtix]
; Настройки отправки чека покупателю средствами Artix
; Отправлять ли чек покупателю средствами Artix
; По умолчанию notSend
; Возможные значения: notSend, sendNotPrinted, sendAll
;sendCheck = notSend
; Адрес сервиса
; По умолчанию "http://localhost"
;url = "http://localhost"
; Таймаут ожидания ответа от сервиса в секундах
; По умолчанию 10 секунд
;timeout = 10
; Сообщение покупателю при отправке чека
; По умолчанию "Вы совершили покупку. Для просмотра чека перейдите по ссылке: %1"
;message = "Вы совершили покупку. Для просмотра чека перейдите по ссылке: %1"
; Маска ссылки для просмотра чека
; По умолчанию "https://yourofd.ru/ticket?t=%(fiscalInfo.fnDate[yyyyMMddThhmm])&s=%(fiscalInfo.sum[.2f])&fn=%(fiscalInfo.fnNumber[s]
;checkReferenceMask = "https://yourofd.ru/ticket?t=%(fiscalInfo.fnDate[yyyyMMddThhmm])&s=%(fiscalInfo.sum[.2f])&fn=%(fiscalInfo.fnNu
; Маска для получения номера телефона без кода страны
; По умолчанию "^[+]?[78]?(?<phone>[0-9]{10})$"
;phoneMask = "^[+]?[78]?(?<phone>[0-9]{10})$"
; Ключ настройки СМС шлюза
; По умолчанию ""
;settingsKey = ""
; Cписок шлюзов для отправки чека покупателю
; По умолчанию "TELEGRAM"
;gateways = "TELEGRAM
Добавление адреса покупателя в чек продажи по клавише "Добавить адрес покупателя"
В кассовом ПО Artix реализована возможность добавления телефона или электронной почты покупателя в чек продажи.
Для добавления адреса покупателя в чек необходимо на клавишу настроить действие "Добавить адрес покупателя" с командой COMMAND_CUSTOMER_ADDRESS_ADD. О настройке действий подробнее можно прочитать в разделе "Настройка действий".
Адрес покупателя может быть добавлен в чек продажи в режимах формирования чека, оплаты и сдачи. При вызове команды добавления адреса покупателя выполняется проверка на наличие в чеке карты покупателя и наличие в карточке клиента телефона и электронной почты:
| Данные в чеке | Поведение на кассе |
|---|---|
| В чеке нет карты клиента | На экран будет выведен диалог для ввода адреса покупателя, необходимо ввести телефон или электронную почту. |
| В чеке есть карта клиента, но данные не заполнены | |
| В чеке есть карта клиента, но заполнен только телефон или электронная почта | На экран будет выведен диалог для ввода адреса покупателя, телефон или электронная почта автоматически подставляется в поле ввода в диалог, адрес покупателя можно подтвердить или отредактировать. |
| В чеке есть карта клиента, заполнены телефон и электронная почта | На экран будет выведен диалог с возможностью выбора телефона или электронной почты. Выбранное значение подставляется в поле ввода в диалог и может быть отредактировано. |
Валидация данных
При вводе адреса покупателя данные будут интерпретированы как электронная почта при выполнении следующих условий:
- присутствует знак "@",
- до и после знака "@" есть текст,
- наличие не менее двух символов после последней точки.
Пробелов в электронной почте не должно быть. Допускаются символы "-", "+", "_", ".".
Если хотя бы одно из условий не выполнено, то на экран будет выведено предупреждение "Неверный формат адреса".
Введена электронная почта: "user@mailru".
Предупреждение на экране: "Неверный формат адреса".
Если введенный адрес не содержит знак "@", то данные будут интерпретированы как телефон, который будет приведен к стандарту "+7ХХХХХХХХХХ".
Введенные данные форматируются следующим образом:
- лишние символы (дефисы, пробелы и круглые скобки) обрезаются,
- 7 и 8 в начале номера телефона удаляются.
К полученному 10-значному номеру телефона в начале добавляется "+7".
Если телефон будет иметь менее/более 10 цифр, то на экран будет выведено предупреждение "Неверный формат адреса".
Введен телефон: "511118".
Предупреждение на экране: "Неверный формат адреса".
Введен телефон: "8-(913)-123-4567".
Телефон будет записан в базу данных в виде "+79131234567".
При вводе электронной почты покупателя дополнительно осуществляется проверка данных с учетом регулярного выражения, указанного в настройке emailRegex.
Добавление адреса покупателя в чек продажи при добавлении в чек карты покупателя
При добавлении в чек карты покупателя для отправки чека будет использован адрес электронной почты из карточки клиента, если в карточке клиента установлены признаки "отправлять чек на e-mail" и "e-mail подтвержден".
Если в карточке клиента установлены признаки "отправлять чек на e-mail" и "e-mail подтвержден", то выбор печатать или не печатать чек не предоставляется.
Если электронная почта покупателя была введена по команде COMMAND_CUSTOMER_ADDRESS_ADD, а затем была добавлена карта, в которой поле с электронной почтой уже заполнено и установлены признаки "отправлять чек на e-mail", "e-mail подтвержден", то для отправки чека будет использован адрес, введенный по команде.
Если в карточке клиента установлен один из признаков "отправлять чек на e-mail" или "e-mail подтвержден", то для отправки чека на электронную почту покупателя необходим вызов действия с командой COMMAND_CUSTOMER_ADDRESS_ADD.
Добавление адреса покупателя в чек продажи при закрытии чека
В кассовом ПО Artix реализована возможность принудительного ввода электронной почты покупателя при закрытии чека. Данная возможность предоставляется, если электронная почта не была введена с помощью команды COMMAND_CUSTOMER_ADDRESS_ADD. Принудительный ввод регулируется параметром inputAddress.
| Данные в чеке | Поведение на кассе |
|---|---|
| В чеке нет карты клиента | На экран будет выведен диалог для ввода электронной почты. |
| В чеке есть карта клиента, но данные не заполнены | |
| В чеке есть карта клиента, заполнена электронная почта | Если в карточке клиента не установлен хотя бы один из признаков "отправлять чек на e-mail" или "e-mail подтвержден", то при закрытии чека на экран будет выведен диалог для ввода электронной почты, электронная почта автоматически подставляется в поле ввода в диалог, электронную почту можно отредактировать. Для отправки чека необходимо подтвердить ввод. Если в карточке клиента установлены признаки "отправлять чек на e-mail" и "e-mail подтвержден", то отправка чека на электронную почту осуществляется автоматически. |
При вводе электронной почты покупателя осуществляется валидация данных.
Печать чека регулируется параметром printCheck.