Оглавление |
---|
Отображение дочерних |
---|
Описание
Сервер заказов предназначен для промежуточного хранения заказов покупателей, подготовленных во внешних системах (интернет-магазин, служба доставки) перед началом их обработки на кассе УКМ 5.
Помимо этого, сервер заказов, совместно с API сервера заказов поддерживает работу с любым мобильным приложениемСборщик заказов, поддерживает процессы управляющим процессами сборки (включая взаимодействие с заказчиком) и доставки заказа.
Далее описан функционал сервера заказов для оплаты на кассах заказов, подготовленных во внешних системах (интернет-заказы).
...
- выдача на кассе заказа, по которому ранее была получена предоплата;
- выкуп на кассе ранее неоплаченного не оплаченного заказа;
- возврат денежных средств по заказам:
...
API сервера заказов описано здесь.
Статус заказа
Касса определяет, какую операцию необходимо выполнить над заказом, на основании его статуса (параметр status в запросах и в базе данных). Возможны следующие значения статусов заказа:
Значение устанавливает внешняя система | Значение устанавливает касса |
---|---|
'WaitsPrepayment' (ожидает предоплаты) | 'Prepaid' (предоплата |
получена) | |
'WaitsPurchase' (oжидает выкупа) | 'Purchased' (выкуплен) |
'WaitsPrepaymentReturn' (ожидает возврата предоплаты) | 'PrepaymentReturned' (предоплата возвращена) |
'WaitsReturn' (ожидает возврата) | 'Returned' (возвращён) |
'Cancelled' (отменен) |
Если на кассе вводится номер заказа, который находится в одном из статусов, указанных в правой колонке, а также в статусе 'Cancelled', то касса выведет сообщение о невозможности его обработать и укажет его текущий статус.
...
- в заказе могут быть позиции с одинаковыми товарами и ценами;
- для маркированных товаров на сервер заказов также передается их КиЗ, при этом:
- если внешняя система заполняет значение КиЗ, то она должна заполнить его в точности так, как КиЗ нанесен на товар – при регистрации товара в ККТ касса будет регистрировать КиЗ так, как будто его содержание было прочитано сканером кассы. Соответственно, если информация о КиЗ в заказе будет отличаться от стандартной, то информация о маркировке товара либо совсем не будет зарегистрирована, либо может быть зарегистрирована с искажениями;
- если внешняя система не загружает информацию о КиЗ, то в соответствующих запросах API item.kiz должен отсутствовать (не быть пустым – а именно отсутствовать).
Внешняя система может управлять правилами применения скидок (в том числе по карте покупателя). Для этого в заказе предназначен параметр discountPolicy (для каждой позиции в отдельности) со следующими возможными значениями:
...
Независимо от политики применения скидок, информация о карте покупателя, если она указана в заказе, будет передана в систему лояльности LOYA и будет обрабатываться в чеке так же, как будто она была введена в чек в процессе его оформления.
...
Внешняя система выгружает заказ в статусе 'WaitsPrepayment', в котором перечислены товары, за которые должна быть получена предоплата, с указанием их конечной стоимости продажи.
Касса особым образом зарегистрирует эти товары в ККТ (установит признак получения предоплаты, заменит НДС 20% на ставку 20/120 и 10% – на 10/110).
Чек выгружается во внешнюю систему (через API или XML-конверторконвертер) с указанием заказа, на основании которого он был создан (доп. свойство properties properties. "id" : "ORDER_NUM"), к позициям чека привязывается доп. свойство с номером соответствующей позиции в заказе - (properties. "id" : "ORDER_POSITION"). Кроме того, сохраняется значение статуса заказа, в котором он поступил на кассу (properties. "id" : "ORDER_ STATUS ").
Торговая система не должна рассматривать чеки с получением предоплаты как реализацию. «Узнать» Распознать такие чеки можно по привязанному к ним доп. свойству properties. "id" : "ORDER_ STATUS = WaitsPrepayment WaitsPrepayment (ожидает предоплаты). Все товары , в таких чеках не являются реализацией.
В заказ, ожидающий предоплату, на кассе нельзя добавить никакие другие товары.
Примечание. Заказ совсем не обязательно должен проходить стадию приема предоплаты: внешняя система может просто выгрузить заказ для выкупа при получении или только для получения (если ранее по такому заказу уже была получена предоплата – например, во внешней системе). Более того, кассовая система никак не отслеживает связь заказа и получения предоплаты за него – предполагается, что контроль и управление статусами заказа происходит во внешней системе.
Выдача заказа
Когда придет время получать товары по этому заказу на кассе, то внешняя система должна выгрузить заказ со статусом 'WaitsPurchase' с тем же номером и тем же товарным составом, а также с указанием пометкой, что для него была получена предоплата. Для этого в заказе должна быть указана заполнена секция Payment с суммой предоплаты и указанием, какими средствами был получен аванс – наличные/банк.банковская карта.
Полученная сумма предоплаты будет зафиксирована в ККТ с типом оплаты «ранее Ранее полученные авансы»авансы.
Если указанная сумма предоплаты не равна сумме товаров в заказе, то касса не будет обрабатывать заказ и выведет сообщение об ошибке.
Касса и Сервер сервер заказов не контролируют:
- товарный состав заказов и их ;
- суммы, по которому которым была получена предоплата, и заказов, по которым ;
- в каком объеме произошла передача товаров покупателю.
Авансовые платежи
...
Для получения авансов за неопределенный перечень товаров или за товары, которых нет в товарном справочнике, в качестве содержания заказа со статусом 'WaitsPrepayment' внешняя система должна указать товар, который имеет в товарном справочнике кассы атрибут «аванс» Аванс. Там же к этому товару должна быть привязана налоговая группа с НДС=20/120. Стоимость этого товара должна быть равна сумме аванса и ; она также должна быть равна сумме конечного заказа.
При выгрузке чека с товаром-авансом в торговую систему, к нему также привязано доп. свойство properties. "id" : "ORDER_ STATUS = WaitsPrepayment.
Когда придет время получать товары по этому заказу на кассе, то внешняя система должна выгрузить заказ в статусе 'WaitsPurchase' с этим же номером, но с реальным составом заказа и указанием, что ранее по нему были была получена предоплата (аналогично предоплате).
Для заказов в статусе 'WaitsPurchase' (oжидает выкупа) касса разрешает добавлять в чек товары по текущим ценам магазина, к ним могут быть применены и текущие скидки магазина.
Для заказов в статусе 'WaitsPrepayment' (ожидает предоплаты) добавить товары в чек нельзя.
Для товаров, подлежащих обязательной маркировке, в заказе может быть указано содержимое марки (полное содержание – т.е. так, как марка в том виде, в котором марка была считана со средства идентификации), если . Если содержание марки не указано, то касса запросит его ввод. Для штучных товаров, количество в позиции должно быть равно 1, даже , если содержимое марки не указано. Для мерных товаров количество может быть любым значением.
Расформирование заказа
В случае, если текущие акции в магазине более привлекательны для покупателя, есть возможность расформировать заказ, т.е. превратить чек, созданный на основании заказа, в обычный кассовый чек с текущими ценами магазина. Чек может быть произвольно изменен, к нему применятся текущие маркетинговые акции. При этом касса изменит статус заказа в cервере заказов на ‘Cancelled’, а к чеку будет привязан номер заказа и статус ‘Cancelled’ – таким же способом, как и для чеков на основании заказов. Если для товара из заказа в магазине не определена цена, то в чеке останется цена из заказа (раcсчитанная в интернет-магазине).
Функционал применим для заказов в статусе Ожидает выкупа и при отсутствии в них предоплат.
Возвраты
Возможны два режима выполнения возврата товаров, полученных покупателями по заказам:
- 1) возврат только на основании заказов на возврат. В этом случае, касса формирует чек возврата без ссылки на чек продажи (но с ссылкой на заказ на возврат);
- 2) штатный возврат на основании чека на продажу: может быть разрешен или запрещен.
Режим определяется настройками в кассовой системе.
1. В первом режиме, при попытке осуществить возврат по чеку продажи, касса выведет запрещение сообщение о запрете операции.
Для управления правами на создание чеков на возврат (без ссылки на чек продажи), разработаны существует два «странных» дополнительных «права» - «Возврат дополнительных права: Возврат без чека на основании заказа» заказа и «Возврат Возврат без чека НЕ не на основании заказа», которые позволят предоставить возможность рядовым кассирам заказа, благодаря использованию которых рядовые кассиры смогут создавать чеки на возврат на основании заказов, и не позволят им создавать «опасные» чеки без риска создания «опасных» чеков на возврат.
Товарное содержимое заказа на возврат нельзя изменить в чеке. Кроме товарного состава, заказы на возврат должны иметь информацию о средствах оплаты, которыми должен быть выполнен возврат. Если в заказе на возврат сумма средств по средствам оплаты не совпадает с суммой оплатсуммарной стоимостью возвращаемых товаров, то такой заказ касса обрабатывать не будет обрабатывать и выведет сообщение об ошибке.
...
Если чек возврата формировался не на основании заказа, а на основании чека продажи, который был создан по заказу, то информации о заказе продажи в нем не будет.
2. Второй режим является настраиваемым: возврат товаров из заказа на основании чека их продажи может быть как разрешен, так и запрещен. Настройки осуществляются на кассовом сервере по адресу: Магазин – Типы касс нужно выбрать тип кассы и нажать кнопку Настройки: Якорь returnorderbyreceipt returnorderbyreceipt
В конфигурационном файле return_by_receipt.conf (applications\return_by_receipt\return_by_receipt.conf) необходимо установить значение параметра isAllowedRefundReceiptForOrders:
Блок кода | ||||
---|---|---|---|---|
| ||||
ReturnByReceipt: {
subsystems: [
app_return_by_receipt: {
params: {
bl: {
isAllowedRefundReceiptForOrders = true |
При isAllowedRefundReceiptForOrders = true возврат будет разрешен, при isAllowedRefundReceiptForOrders = false – запрещен:
После изменения значения параметра, настройки необходимо сохранить.
Ограничения
1. Касса обрабатывает заказы с предоплатой в размере только 100%.
2. При обработке заказа на возврат внешняя система должна определить, каким средством оплаты (наличные/
...
банковская карта) должен быть сделан возврат на кассе. Возврат не может быть
...
выполнен более, чем одним средством оплаты.
3. Товары, подлежащие обязательной маркировке, должны указываться всегда с количеством 1, даже если для них не указывается содержание марки (
...
КиЗ).
4. В заказах обрабатываются карты покупателей только системы лояльности
...
LOYA, поддержка прочих систем лояльности выполняется при необходимости.
...
5. При обработке карты лояльности покупателя в выкупаемых заказах, будут выполнены все маркетинговые акции, которые действуют для данного магазина. При этом акции, не связанные с уменьшением суммы покупки, будут выполнены независимо от указанной политики применения скидок.
...
6. Касса не использует следующие параметры заказа:
registrationDate | Дата/время регистрации заказа |
deliveryDate | Дата/время доставки заказа |
buyerName | ФИО покупателя |
buyerPhoneNumber | Моб. тел. покупателя |
pickingStatus | Статус сборки |
pickerId | Идентификатор сборщика заказа |
Работа с заказами на кассе
Функционал кассы при оформлении заказов и возвратов по заказам подробно описан здесь.Настройка
Настройки
1. На кассовом сервере по адресу: Магазин – Типы касс нужно выбрать тип кассы и нажать кнопку Настройки:
В файле
Для обеспечения возможности работы с интернет-заказами, в разделе bl файла sale.conf (applications\sale\sale.conf) в раздел bl добавить параметры сервера заказовнужно раскомментировать следующую строку, после чего – сохранить файл:
Блок кода | ||||
---|---|---|---|---|
| ||||
orders: {
url = "http://192.168.10.228:8080/api/v1.0/order"
timeout = 5 seconds
} |
2. На кассовом сервере по адресу: Оборудование – Шаблоны нужно выбрать шаблон оборудования и нажать кнопку Оборудование:
...
include file("conf/applications/sale/order.conf") |
2. В файле order.conf (applications\sale\order.conf) нужно указать актуальный URL сервера заказов и сохранить выполненные изменения, например:
3. На кассовом сервере по адресу: Магазин – Кассы нужно выбрать необходимую кассу и нажать кнопку Оборудование:
В появившемся иерархическом древе в конфигурационном файле keyboard_layout (hardware\keyboard_layout\keyboardLayout.conf) нужно посмотреть, какой тип клавиатуры используется (он должен быть раскомментирован в общем списке):
В конфигурационный файл с актуальной раскладкой клавиатуры по адресу: hardware\keyboard_layout\файл актуальной раскладки необходимо добавить следующий фрагмент, после чего нажать кнопку Сохранить:
...
Примечание. Пункт будет доступен, только если в Init придет параметр useOrder=true, и если чек не открыт.
34. Также можно настроить горячую клавишу поиска заказа на клавиатуре кассы, добавив в конфигурационный файл с актуальной раскладкой клавиатуры по адресу: hardware\keyboard_layout\файл актуальной раскладки следующий фрагмент, после чего нажать кнопку Сохранить:
Блок кода | ||||
---|---|---|---|---|
| ||||
{ code = 119 # F8 type = "FindOrder" params = "" } |
45. Дальнейшие настройки осуществляются через API.5. Включить меню интернет-заказов в список функций на Рабочем столе кассы можно в конфигурационном файле mintukm.config (\mintukm.config) по адресу: Магазин – Типы касс на кассовом сервере.