Возврат товара по чеку продажи

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

Кассовое ПО осуществляет контроль возврата позиций. Ранее возвращенные товары исключаются из чека. Сумма чека, количество товаров, скидочные и бонусные воздействия пересчитываются с учетом выполненных ранее возвратов. Если все товарные позиции чека продажи возвращены ранее, то при попытке выполнить возврат по чеку продажи на экран будет выведено сообщение "В документе нет позиций для возврата".

Выбор документа продажи

Для настройки возврата по чеку продажи в утилите администрирования Yuki необходимо:

Подробнее о настройке действий можно прочитать в разделе "Настройка действий".

Для выбора чека продажи действию "Возврат по чеку продажи" задается параметр choiceType, который может принимать следующие значения:

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

Для выполнения возврата по чеку продажи необходимо нажать кнопку "Возврат по чеку продажи" в контексте открытого документа продажи или возврата (документ не открыт). Дальнейший порядок выбора документа-основания (чека продажи) определяется параметром choiceType.

Отображение документов в списке выбора задается параметром showReturned:

В кассовом ПО Artix реализована возможность ограничения возврата по чеку продажи только одним способом: локально или через сервер, при помощи параметра forbidMixedBackBySale в конфигурационном файле /linuxcash/cash/conf/ncash.ini в секции [Misc]:

НаименованиеТип данныхВозможные значенияОписаниеПримечания

forbidMixedBackBySale

логический
  • true
  • false
Ограничить возвраты по чеку продажи одним способомПо умолчанию false


; Ограничить возвраты по чеку продажи одним способом
; При нескольких частичных возвратах, позволяет возвращать только все позиции чека локально или все через сервер
; По умолчанию false
;forbidMixedBackBySale = false

Проверка валюты оплаты

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

Дополнительно может быть задано использование только базовой валюты для чека возврата при помощи параметра useBaseValutForBackBySale в конфигурационном файле /linuxcash/cash/conf/ncash.ini в секции [Check]:

НаименованиеТип данныхВозможные значенияОписаниеПримечания

useBaseValutForBackBySale

логический
  • true
  • false
Использование базовой валюты при возврате по чеку продажиПо умолчанию false


[Check]
;Настройки чека
...
; Использовать базовую валюту при возврате по чеку продажи.
; По умолчанию false
useBaseValutForBackBySale = true

В кассовом ПО Artix реализована возможность выбора валюты для оплаты чека возврата по чеку продажи, задается параметром choiceValutInBackBySale в конфигурационном файле /linuxcash/cash/conf/ncash.ini в секции [Check]:

НаименованиеТип данныхВозможные значенияОписаниеПримечания
choiceValutInBackBySaleлогический
  • true
  • false
Выбор валюты в документе возврата по чеку продажиПо умолчанию false


[Check]
;Настройки чека
...
; Выбор валюты в документе возврата по чеку продажи
; Игнорирует настройку Check:useBaseValutForBackBySale
; По умолчанию false
;choiceValutInBackBySale = false


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

Количество возвратов по одному чеку

Во избежание недоразумений при выполнении возврата по чеку продажи кассир обязан при возврате оставлять чек продажи у себя для ведения отчетности и исключения выполнения повторного возврата. Помимо этого на кассе может быть программно установлен запрет на выполнение нескольких возвратов по чеку. В некоторых ситуациях выполнение повторного возврата нужно разрешить, если покупатель обращается в торговую сеть для возврата различных товаров из чека продажи. Возможность выполнения нескольких возвратов по одному чеку настраивается при помощи параметра allowSeveralBackBySale в конфигурационном файле /linuxcash/cash/conf/ncash.ini в секции [Security.Restrictions]:

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


НаименованиеТип данныхВозможные значенияОписаниеПримечания

allowSeveralBackBySale

логический
  • true
  • false

Выполнение нескольких возвратов по одному чеку

По умолчанию true



[Security.Restrictions]
; Параметры относящиеся к безопасности
...
; Разрешать выполнение нескольких возвратов по одному чеку
; по-умолчанию true
;allowSeveralBackBySale = true

Выбор товара для возврата

В ПО Artix реализована возможность выбора товара при возврате по чеку продажи, которая позволяет выбирать из чека продажи только тот товар, который нужно вернуть, а также изменять количество возвращаемого товара. Эта функция дает возможность упростить процесс формирования чека возврата и ускорить работу пользователей. Возможность выбора возвращаемых товаров активируется через параметр editPositionBackBySale в конфигурационном файле /linuxcash/cash/conf/ncash.ini в секции [Check]:

Товар для возврата может быть выбран не только вручную, но и при помощи сканера штрих-кода. При сканировании товара сканером позиция с товаром выделяется в форме выбора товаров для последующего возврата. Если количество проданного товара больше 1, то после сканирования штрих-кода программа вернет диалог для ввода количества товара, который следует вернуть, с указанием проданного товара. В случае, когда возвращается весовой товар, то пользователю предлагается диалог с указанием проданного количества товара и возможностью изменить значение.

В кассовом ПО Artix предусмотрена возможность ограничения количества позиций в чеке возврата по чеку, задается параметром positionsLimitInBackCheck в конфигурационном файле /linuxcash/cash/conf/ncash.ini в секции [Check]. Если лимит позиций в чеке возврата превышен, то при переходе в подытог на экран будет выведено предупреждение “Превышен лимит позиций в чеке возврата (N шт.)", где N – количество позиций, указанное в настройке.

НаименованиеТип данныхВозможные значенияОписаниеПримечания

editPositionBackBySale

логический
  • true
  • false
Выбор позиций для возврата по чеку продажиПо умолчанию true
positionsLimitInBackCheckчисловой
Лимит позиций в чеке возвратаПо умолчанию -1


[Check]
;Настройки чека
...
; Редактировать позиции при возврате по чеку продажи.
; При возврате, после выбора чека продажи если значение установлено в true, 
; появляется окно для выбора позиций, которые будут возвращены и редактирования их количества.
; Если значение false, то сразу создается чек со всеми позициями (кроме EGAIS и сертификатов)
; По умолчанию – true(редактировать)
; editPositionBackBySale = true
...
; Лимит позиций в чеке возврата
; По умолчанию -1(нет лимита)
; positionsLimitInBackCheck = -1

Возврат товара по чеку продажи на другой кассе

При работе торговой сети не всегда имеется возможность вернуть товар на той кассе, на которой он был куплен. В ПО Artix реализована возможность возврата по чеку продажи, который был создан на другой кассе. Формирование чека возврата осуществляется аналогично возврату по чеку продажи

Для выполнения возврата по чеку продажи на другой кассе должна быть настроена связь между кассой и кассовым сервером. Подробнее об этом можно прочитать в разделе "Обмен Касса — Кассовый сервер".


Ограничения для акцизных товаров:

  • Если акцизный товар (алкоголь, табак, обувь) был возвращен на другой кассе, то невозможна повторная продажа этого товара на кассе, на которой он был продан изначально.
  • Возврат по чеку продажи на другой кассе не может быть использован для возврата алкогольной продукции до версии 4.6.144 включительно.

Место поиска чека продажи определяется настройками кассового сервера:

Для возврата по чеку продажи на другой кассе необходимо в утилите администрирования Yuki на клавишу настроить действие "Возврат по чеку продажи" с командой COMMAND_BACKBYSALE. О настройке действий подробнее можно прочитать в разделе "Настройка действий".

Время ожидания ответа от кассового сервера задается параметром timeout команды COMMAND_BACKBYSALE (по умолчанию 10 секунд).

Учет ранее возвращенных товаров

В ряде случаев возможно возникновение проблем дублирования данных о возвратах в БД кассового сервера. Это связано с тем, что информация о ранее возвращенных товарах не учитывается, либо не успевает выгрузиться на кассовый сервер к моменту возврата этих товаров на другой кассе.

Учет ранее возвращенных товаров при возврате по чеку продажи определяется параметром getBack команды COMMAND_BACKBYSALE:

Выгрузка чеков продажи и чеков возврата по чеку продажи на кассовый сервер выполняется при закрытии смены. 

Чтобы производить выгрузку чаще, необходимо:

Возврат по программному идентификатору чека

Для выполнения возврата по чеку продажи на другой кассе используется идентификатор документа (чека продажи). Идентификатор по умолчанию создается в виде <код магазина><код кассы><номер смены><номер документа><время открытия чека>, где:

Значение идентификатора чека продажи хранится в поле identifier таблицы Document в БД Documents. На основе идентификатора чека продажи формируется идентификатор чека возврата по чеку продажи, который записывается в поле sourceidentifier в таблицу Document в БД Documents и выгружается в формате AIF.

Идентификатор чека, созданного при условиях магазин №1, касса №1, смена №27, чек №2, время открытия чека 17:11:36, будет выглядеть следующим образом: 00010100270000002171136.

Формат записи идентификатора может быть изменен при помощи параметра checkIdentifierMask в конфигурационном файле /linuxcash/cash/conf/ncash.ini в секции [Check]

НаименованиеТип данныхВозможные значенияОписаниеПримечания
checkIdentifierMask строковыйЗначение задается с помощью макросовШаблон идентификатора чекаПо умолчанию задается с помощью макроса "%(document.shopCode[04d])%(document.cashCode[02d])%(document.shift[04d])%(document.num[07d])%(document.dateTimeBeg[hhmmss])"


[Check]
;
; Настройки чека
;
; Шаблон идентификатора чека
; По умолчанию "%(document.shopCode[04d])%(document.cashCode[02d])%(document.shift[04d])%(document.num[07d])%(document.dateTimeBeg[hhmmss])"
;checkIdentifierMask = "%(document.shopCode[04d])%(document.cashCode[02d])%(document.shift[04d])%(document.num[07d])%(document.dateTimeBeg[hhmmss])"

Для настройки возврата по чеку продажи на другой кассе необходимо в утилите администрирования Yuki на клавишу настроить действие "Возврат по чеку продажи" с командой COMMAND_BACKBYSALE. О настройке действий подробнее можно прочитать в разделе "Настройка действий". 

Для выбора чека продажи действию "Возврат по чеку продажи" задаются следующие параметры:

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

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

Для печати идентификатора в общем чеке необходимо добавить блок печати идентификатора в шаблон чека. Если печать идентификатора в чеке не планируется, то этот блок следует удалить из шаблона. 

<select query="SELECT identifier FROM document WHERE documentid = $document.id$">
<text align="left">ИДЕНТИФИКАТОР ЧЕКА</text>><var align="right" name="identifier" padding="1" maxwidth="all"/><br/>
</select>

О правилах формирования шаблона чека можно прочитать в разделе "Описание шаблона <report>".

Возврат по фискальному идентификатору чека

Для выполнения возврата по чеку продажи на другой кассе может быть использован фискальный идентификатор документа. Идентификатор по умолчанию создается в виде <номер фискального документа><номер фискального накопителя>.

Значение идентификатора записывается в поле fiscalidentifier в таблицу Document в БД Documents и выгружается в формате AIF.

Для настройки возврата по чеку продажи на другой кассе необходимо в утилите администрирования Yuki на клавишу настроить действие "Возврат по чеку продажи" с командой COMMAND_BACKBYSALE. О настройке действий подробнее можно прочитать в разделе "Настройка действий". 

Для выбора чека продажи действию "Возврат по чеку продажи" задаются следующие параметры:

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

Возврат по номеру карты лояльности

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

Для настройки возврата по чеку продажи на другой кассе необходимо в утилите администрирования Yuki на клавишу настроить действие "Возврат по чеку продажи" с командой COMMAND_BACKBYSALE. О настройке действий подробнее можно прочитать в разделе "Настройка действий". 

Для выбора чека продажи действию "Возврат по чеку продажи" задаются следующие параметры:

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

Возврат по номеру телефона

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

Для настройки возврата по чеку продажи на другой кассе необходимо в утилите администрирования Yuki на клавишу настроить действие "Возврат по чеку продажи" с командой COMMAND_BACKBYSALE. О настройке действий подробнее можно прочитать в разделе "Настройка действий". 

Для выбора чека продажи действию "Возврат по чеку продажи" задаются следующие параметры:

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

Возврат по последним 4 цифрам банковской карты

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

Для настройки возврата по чеку продажи на другой кассе необходимо в утилите администрирования Yuki на клавишу настроить действие "Возврат по чеку продажи" с командой COMMAND_BACKBYSALE. О настройке действий подробнее можно прочитать в разделе "Настройка действий". 

Для выбора чека продажи действию "Возврат по чеку продажи" задаются следующие параметры:

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

Возврат товара по чеку продажи на другой кассе в кластерном режиме

Начиная с версии 4.6.141 реализован поиск чеков продажи в БД кассового сервера с учетом кластера.

При использовании кластерного режима возникает необходимость ведения документов отдельно для каждого из клиентов, подключенных к кассовому серверу. В этом случае при возврате по чеку продажи касса отправляет на кассовый сервер запрос, включающий идентификатор документа и идентификатор кластера. При подключении к кассовому серверу в файле настроек sync-агента /linuxcash/cash/sync/properties/cash.ini устанавливается ID кластера.

Поиск документа-основания для возврата по чеку продажи

В кассовое ПО Artix добавлена универсальная форма поиска документа-основания для возврата по чеку продажи.

Поиск документа-основания может осуществляться:

Данный функционал не поддержан для интерфейса tui.

Для настройки универсальной формы необходимо:

  1. Активировать плагин UnifiedBackBySale с помощью параметра unifiedbackbysale, который задается в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/unifiedbackbysale.ini в секции [plugins]:

    НаименованиеТип данныхВозможные значенияОписаниеПримечания
    unifiedbackbysaleстроковый
    • on
    • off
    Активация плагина для универсальной формы возвратаПо умолчанию off


    [plugins] 
    ;Универсальная форма поиска документа-основания 
    ;unifiedbackbysale = off


  2. Настроить секции [UnifiedBackBySale.Type.[0-9]], где цифрами 0-9 регулируется относительный порядок отображения типов данных для возврата в выпадающем списке.

    НаименованиеТип данныхВозможные значенияОписаниеПримечания
    choiceTypeцелочисленный
    • 2
    • 5
    • 6
    • 7

    Тип возврата:

    • 2 – возврат по идентификатору чека с поиском документа в БД кассового сервера,
    • 5 – возврат по номеру карты лояльности с поиском документа в БД кассового сервера,
    • 6 – возврат по номеру телефона с поиском документа в БД кассового сервера,
    • 7 – возврат по последним 4 цифрам банковской карты с поиском документа в БД кассового сервера.


    nameстроковый
    Наименование параметра поиска
    maskстроковый
    Шаблон данныхВ качестве значения используется регулярное выражение


    ;[UnifiedBackBySale.Type.1]
    ;choiceType = 7
    ;name = "4 цифры PAN" 
    ;mask = "[0-9]{4}" 
    
    ;[UnifiedBackBySale.Type.2]
    ;choiceType = 6
    ;name = "Номер телефона" 
    ;mask = "(\+7|8)?[0-9]{10}" 
    
    ;[UnifiedBackBySale.Type.3]
    ;choiceType = 5
    ;name = "Номер карты" 
    ;mask = "[0-9]*" 
    
    ;[UnifiedBackBySale.Type.4]
    ;choiceType = 2
    ;name = "Идентификатор" 
    ;mask = "[0-9a-zA-Z_\-]*" 


  3. В утилите администрирования Yuki на клавишу настроить действие "Возврат по чеку продажи" с командой COMMAND_BACKBYSALE и параметрами:

О настройке действий подробнее можно прочитать в разделе "Настройка действий".