Процесс ‘Расчёт скидок’

Данный процесс является неотъемлемой частью основных кассовых процессов заполнения и оплаты чека.

Условно процесс делится на четыре этапа:

  • Регулярный расчёт скидок по чеку
  • Запрос у покупателя количества баллов для оплаты чека
  • Финальный расчёт чека
  • Создание чека в SP

Этапы процесса выполняются при следующих условиях:

  • включён обмен с SP (заполнены параметры в карточке компании, по этим параметрам получен токен для запросов в SP, имеется связь с SP)
  • магазин является участником программы лояльности (заполнен параметр в карточке магазина)
  • чек не является оформлением покупки по интернет-заказу (кассир не запрашивал номер интернет-заказа)

Для запроса баллов и расчёта скидок за баллы дополнительно требуется успешная идентификация покупателя. Если покупатель не идентифицирован как участник программы лояльности, то баллы не запрашиваются.

Регулярный расчёт скидок по чеку

После каждого изменения содержания чека (добавление и удаление товаров, изменение количества) касса отправляет в SP запрос marketing-actions/calc. Число баллов в запросе равно 0, чтобы SP при расчёте скидок не учитывал баллы. В случае положительного ответа от SP касса разбирает ответ и изменяет фактические цены товаров. Если SP не ответил или вернул отрицательный ответ, то цены не меняются.

При отсутствии связи с SP на экране красным цветом загорается соответствующий сигнальный символ. Если связь прервалась после предыдущего успешного запроса, то на экране высвечивается сообщение для кассира ‘Сервер лояльности недоступен’. Если на предыдущий запрос также не было ответа, то повторно сообщение не высвечивается.

Запрос баллов

Выполняется только при условии успешной Идентификации покупателя.

В процессе Идентификации SP вернул число баллов. Эти баллы можно потратить для оплаты чека – на товары может быть рассчитана дополнительная скидка в рублях, равная числу баллов.

После перехода в режим оплаты на экране появляется окно с предложением ввести количество баллов для оплаты чека. По умолчанию в поле находится имеющееся значение баллов. Кассир по согласованию с покупателем может уменьшить это число. В форме имеются две кнопки: ‘Подтвердить’ и ‘Отмена’. Если кассир нажал ‘Подтвердить’, то число баллов для оплаты принимается равным введённому значению. Выбор кнопки ‘Отмена’ означает отказ от списания баллов.

Финальный расчёт чека

Выполняется только при условии успешной Идентификации покупателя, после запроса баллов. Касса отправляет в SP финальный запрос для расчёта скидок marketing-actions/calc. В запросе должен быть заполнен тег с числом балов, чтобы SP при расчёте скидок учитывал баллы. Значение числа баллов берётся из ответа на предыдущий запрос (calc) баллов в SP.

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

Если покупатель отказывается от оплаты и возвращается в редактирование чека, то следует сбросить расчёт с учётом баллов. Для этого касса отправляет в SP запрос на расчёт чека с нулевым количеством баллов.

Подтверждение оплаты чека

Выполняется после полного оформления чека, когда покупатель оплатил покупку и чек отправлен на ФР.

Касса отправляет в SP запрос purchases/new для создания покупки. Чтобы не передавать все товары, используется идентификатор корзины в базе SP (cart_id). Этот идентификатор возвращает marketing-actions/calc.

Если SP вернул ошибку, то повторяем расчёт чека (marketing-actions/calc) и ещё раз создание покупки (purchases/new). Если опять ошибка, то чек сохраняется в списке неотправленных чеков.

Если связь с SP отсутствует, то чек также сохраняется в списке неотправленных чеков.

Список неотправленных чеков нужен только для тех чеков, по которым был выполнен расчёт скидок, покупатель оплатил чек, но информация о покупке в SP не была передана. Т.е. SP расчёты выполнил, но запрос на создание покупки не получил.

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