Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Для работы с заказами

Оглавление

Описание

Сервер заказов предназначен для промежуточного хранения заказов покупателей, подготовленных во внешних системах (в т.ч. с интернет-заказами) в состав кассовой системы УКМ 5 входит отдельный сервер заказов, в который заказы из внешних систем загружаются через web-сервисы.

Image Removed

API сервера заказов можно найти в интеграционной документации УКМ 5.

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

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

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

Структура списка пользователей, поддерживаемая сервером заказов:

- идентификатор;

- фамилия;

- имя;

- отчество;

- код (login);

- пароль (password).

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

- номер заказа;

- статус заказа (возможные значения: ожидает предоплаты, предоплата получена, oжидает выкупа, выкуплен, ожидает возврата предоплаты, предоплата возвращена, ожидает возврата, возвращен, отменен);

- дата/время регистрации заказа;

- тип заказа (продажа или возврат);

- идентификатор магазина, в котором будет получен заказ;

- ФИО покупателя;

- телефон покупателя;

- номер карты покупателя;

- дата/время доставки заказа;

- описание (любая доп. информация по заказу);

- статус сборки (возможные значения: не собран, заказ собирается, сформирован, согласовано с покупателем);

- идентификатор сборщика заказа.

Сервер заказов может передавать следующую информацию о товарных позициях:

- номер позиции в заказе;

- количество (исходно заказанное);

- цена товара в заказе;

- минимальная цена;

- политика применения скидок;

- КИЗ для позиции.

Об оплате могут передаваться следующие данные:

- тип платежа;

- сумма платежа;

- RRN и код авторизации (только для оплат банковской картой).

Заказы могут быть двух видов:

     1) оплата и получение одновременно;

     2) получение 100% предоплаты и выдача после сборки.

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

Когда покупатель приходит за заказом, касса УКМ 5 получает с сервера заказов информацию о составе заказа и его предоплате (если она была внесена). Изменять или удалять товары, входящие в заказ, нельзя – вне зависимости от статуса обработки заказа. На них также не распространяются скидки кассовой системы. К товарам из заказа в статусе Ожидает предоплаты нельзя добавить товары из магазина. Когда статус заказа меняется на Ожидает выкупа, в чек можно добавлять товары из магазина, на которые будут распространяться скидки кассы. Карту лояльности покупателя также можно предъявить в момент формирования чека по заказу (если на не была зарегистрирована в процессе формирования заказа). По завершении чека, на карту лояльности будут начислены бонусы, а чек через сервер заказов будет выгружен во внешнюю систему. При работе с заказами также возможны операции возврата предоплаты и возврата выкупленного товара. В случае возврата по заказу, перерасчет бонусных средств покупателя полностью осуществляет внешняя система (интернет-магазин).магазин, служба доставки) перед началом их обработки на кассе УКМ 5.

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

Далее описан функционал сервера заказов для оплаты на кассах заказов, подготовленных во внешних системах (интернет-заказы).

Поддержаны следующие сценарии:

- прием на кассе предоплаты/аванса по заказу;

- выдача на кассе заказа, по которому ранее была получена предоплата;

- выкуп на кассе ранее неоплаченного заказа;

- возврат денежных средств по заказам:

   - за которые получена предоплата;

   - переданным покупателю (как с предоплатой, так и без нее).

Сервер заказов является подчиненной системой по отношению к внешней системе. Это означает, что внешняя система может произвольно изменять/удалять ранее загруженные заказы, в том числе изменять их статус и содержимое. Сервер заказов никак не контролирует эти изменения.

Касса никогда не изменяет состав заказа, она может только изменить его статус в результате успешного выполнения операции.

Для внешней системы доступны следующие операции:

- загрузить заказ в сервер заказов – POST /api/v1.0/order;

- изменить заказ в сервере заказов – PUT /api/v1.0/order/{number};

- удалить заказ в сервере заказов – DELETE /api/v1.0/order/{number};

- запросить статус заказа – GET /api/v1.0/order/{number}/status;

- изменить статус заказа – POST /api/v1.0/order/{number}/status.

API сервера заказов описано здесь.

Статус заказа

Касса определяет, какую операцию необходимо выполнить над заказом, на основании его статуса (параметр status в запросах и в базе данных). Возможны следующие значения статусов заказа:

Значение устанавливает внешняя система

Значение устанавливает касса

 'WaitsPrepayment' (ожидает предоплаты)

'Prepaid' (предоплата получена)

'WaitsPurchase' (oжидает выкупа)

'Purchased' (выкуплен)

'WaitsPrepaymentReturn' (ожидает возврата предоплаты)

'PrepaymentReturned' (предоплата возвращена)

'WaitsReturn' (ожидает возврата)

'Returned' (возвращён)

'Cancelled' (отменен)


Если на кассе вводится номер заказа, который находится в одном из статусов, указанных в правой колонке, а также в статусе 'Cancelled', то касса выведет сообщение о невозможности его обработать и укажет его текущий статус.

Содержание заказа

- товары в заказе могут отсутствовать в базе кассы в момент загрузки заказа в сервер заказов, но должны быть в ней, когда заказ будет обрабатываться на кассе;

- в заказе могут быть позиции с одинаковыми товарами и ценами.

Внешняя система может управлять правилами применения скидок (в том числе по карте покупателя). Для этого в заказе предназначен параметр discountPolicy (для каждой позиции в отдельности) со следующими возможными значениями:

   None – скидки не применяются;

   Bonuses – применяется только оплата бонусами;

   Front – применяются только фронтальные скидки (т.е. все, кроме оплаты бонусами);

   All – применяются любые скидки.

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

Получение предоплаты

Внешняя система выгружает заказ в статусе  'WaitsPrepayment' , в котором перечислены товары, за которые должна быть получена предоплата, с указанием их конечной стоимости продажи.

Касса особым образом зарегистрирует эти товары в ККТ (установит признак получения предоплаты, заменит НДС 20% на ставку 20/120 и 10% на 10/110).

Чек выгружается во внешнюю систему (через API или XML-конвертор) с указанием заказа, на основании которого он был создан (доп.свойство  properties. "id" : "ORDER_NUM", к позициям чека привязывается доп.свойство с номером соответствующей позиции в заказе - properties. "id" : "ORDER_POSITION"). Кроме того, сохраняется значение статуса заказа, в котором он поступил на кассу properties. "id" : "ORDER_ STATUS ".

Торговая система не должна рассматривать чеки с получением предоплаты как реализацию. «Узнать» такие чеки можно по привязанному к ним доп.свойству properties. "id" : "ORDER_ STATUS = WaitsPrepayment  (ожидает предоплаты). Все товары, в таких чеках не являются реализацией.

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


Когда придет время получать товары по этому заказу на кассе, то внешняя система должна выгрузить заказ со статусом 'WaitsPurchase' с тем же номером и тем же товарным составом, с указанием  что для него была получена предоплата.

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

Полученная сумма предоплаты будет зафиксирована в ККТ с типом оплаты «ранее полученные авансы».

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

Касса и Сервер заказов не контролируют товарный состав заказов и их суммы, по которому была получена предоплата, и заказов, по которым произошла передача товаров покупателю.

Авансовые платежи:

Для получения авансов за неопределенный перечень товаров или за товары, которых нет в товарном справочнике, в качестве содержания заказа со статусом 'WaitsPrepayment' внешняя система должна указать товар, который имеет в товарном справочнике кассы атрибут «аванс». Там же к этому товару должна быть привязана налоговая группа с НДС 20/120.

Стоимость этого товара должна быть равна сумме аванса и она должна быть равна сумме конечного заказа.

При выгрузке чека с товаром-авансом в торговую систему, к нему также привязано доп.свойство properties. "id" : "ORDER_ STATUS = WaitsPrepayment.

Когда придет время получать товары по этому заказу на кассе, то внешняя система должна выгрузить заказ в статусе 'WaitsPurchase' с этим же номером, но с реальным составом заказа и указанием, что ранее по нему были получена предоплата (аналогично предоплате).


Для заказов в статусе 'WaitsPurchase' (oжидает выкупа) касса разрешает добавлять в чек товары по текущим ценам магазина, к ним могут быть применены и текущие скидки магазина.

Для заказов в статусе  'WaitsPrepayment'  (ожидает предоплаты) добавить товары в чек нельзя.

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

Возвраты

Возможны два режима выполнения возврата товаров, полученных покупателями по заказам:

- возврат только на основании заказов на возврат. В этом случае, касса формирует чек возврата без ссылки на чек продажи (но с ссылкой на заказ на возврат)

- штатный возврат на основании чека на продажу.

Режим определяется настройками в кассовой системе.

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

Для управления правами на создание чеков на возврат (без ссылки на чек продажи), разработаны два «странных» дополнительных «права» - «Возврат без чека на основании заказа» и «Возврат без чека НЕ на основании заказа», которые позволят предоставить возможность рядовым кассирам создавать чеки на возврат на основании заказов, и не позволят им создавать «опасные» чеки на возврат.

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

Если происходит возврат предоплаты, то к позициям чека будет привязан признак, что это не возврат товара (тот же признак, что и при получении предоплаты).

К чеку на возврат будет привязан номер заказа на возврат, по которому сформирован чек на возврат.

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


Ограничения

  1. Касса обрабатывает заказы с предоплатой в размере только 100%.
  2. При обработке заказа на возврат внешняя система должна определить каким средством оплаты (наличные/банк.карта) должен быть сделан возврат на кассе. Возврат не может быть больше, чем одним средством оплаты.
  3. Товары, подлежащие обязательной маркировке должны указываться всегда с количеством 1, даже если для них не указывается содержание марки (КИЗ).
  4. В заказах обрабатываются карты покупателей только системы лояльности Loya, поддержка прочих систем лояльности выполняется при необходимости.
  5. При обработке карты покупателя в выкупаемых заказах, будут выполнены все маркетинговые акции, которые действуют для данного магазина. При этом акции не связанные с уменьшением суммы покупки будут выполнены независимо от указанной политики применения скидок.
  6. Касса не использует параметры заказа:

registrationDate

Дата/время регистрации заказа

deliveryDate

Дата/время доставки заказа

buyerName

ФИО покупателя

buyerPhoneNumber

Моб.тел. покупателя

pickingStatus

Статус сборки

pickerId

Идентификатор сборщика заказа


Функционал кассы при оформлении заказов и возвратов по заказам подробно описан здесь.

...