.reveal{opacity:1!important;transform:none!important}

Прокат от выдачи до возврата

Прокат ведёт ежедневную работу — от выдачи инвентаря до закрытия смены — в одной системе.

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

Заказы связаны с оборудованием и оплатами. Выдача и возврат работают по QR-коду, а спорные платежи можно проверить отдельно.

  • Повторная выдача занятого устройства заблокирована

  • Оплата картой, через СБП или наличными

  • Возвраты, ремонт и закрытие смены в одной системе

Экран оформления заказа на синтетических данныхОткрыть полный экран ↗
Оформление аренды: выбор оборудования и способа оплаты (реконструкция экрана, синтетические данные)На телефоне показан увеличенный фрагмент. Полное изображение откроется в новой вкладке.
Ещё экраны продукта
Обезличенный экран статуса оборудованияОткрыть полный экран ↗
Статус оборудования: доступность, ремонт и заряд батареи (реконструкция экрана, синтетические данные)На телефоне показан увеличенный фрагмент. Полное изображение откроется в новой вкладке.
Обезличенная очередь ручной проверки платежейОткрыть полный экран ↗
Очередь ручной проверки платежей с неопределённым результатом (реконструкция экрана, синтетические данные)На телефоне показан увеличенный фрагмент. Полное изображение откроется в новой вкладке.
Экран смены с синтетическими именами сотрудниковОткрыть полный экран ↗
Смена и персонал точки (реконструкция экрана, имена синтетические)На телефоне показан увеличенный фрагмент. Полное изображение откроется в новой вкладке.
  1. Проверка и оформление

    Сотрудник сканирует QR-код оборудования и формирует заказ с одной или несколькими позициями оборудования и сувенирами.

  2. Оплата

    Клиент платит, а система получает подтверждение от платёжного сервиса.

  3. Проверка спорных оплат

    Если подтверждение задержалось, сотрудник видит операцию в отдельной очереди и может её проверить.

  4. Обслуживание

    Активный заказ можно продлить, отредактировать или завершить; оборудование можно заменить при необходимости.

  5. Закрытие дня

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

Для технической команды: как устроено решение

Веб-приложение обслуживает точки проката и подключается к внешнему платёжному сервису и базе данных; отдельный процесс scheduler один раз в день закрывает смены, обновляет заряд батарей и выгружает отчёты.

  • Веб-приложение для точек проката
  • Внешний платёжный сервис
  • Scheduler ежедневных задач
База данных заказов, оборудования и смен

Надёжность

  • Роли доступа привязаны к конкретной точке; управляющий уровень видит все локации.
  • История обслуживания и ремонта оборудования сохраняется как часть его жизненного цикла.
  • Ежедневные задачи не останавливаются целиком из-за ошибки в одной из них.
  • Возврат оплаты — только полный и только один раз на операцию: система не позволяет вернуть больше, чем было получено.

Решения и ограничения

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

Результат платёжной операции на удалённом устройстве не всегда известен немедленно.

Ошибка сети не приводит к обслуживанию клиента без подтверждённой оплаты и не блокирует точку без причины.

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

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

Повторный возврат не может задвоить сумму клиенту.

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

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

Смены не закрываются повторно, а отчёты не задваиваются при рестарте.

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

Кассовый или платёжный сервис может быть временно недоступен, а точка проката не должна останавливать обслуживание клиентов.

Сбой внешнего сервиса не блокирует работу точки проката.

Новая продажа на устройстве блокируется, если по нему уже есть операция в обработке.

Один и тот же кассовый терминал не должен принимать новую оплату, пока предыдущая операция на нём ещё обрабатывается.

Два платежа на одном терминале не пересекаются и не создают путаницу в кассовых итогах.

Технологии

  • Python
  • Flask
  • PostgreSQL
  • APScheduler
  • Gunicorn

Похожая задача у вас?

Что мешает работать?

Расскажите в двух словах. Техническое задание и готовый бюджет не нужны для первого разговора.

Андрей прочитает сообщение и уточнит задачу. Если видим, чем помочь, предложим следующий шаг.

Написать Андрею напрямую

Отправляя форму, вы принимаете условия обработки данных.