Что происходило до внедрения
Кассир зависит от доступности учётной системы: продажа, возврат, аванс и зачёт аванса должны проходить быстро, а чек нельзя потерять.
Решение и его эффект
Собрали альтернативное рабочее место кассира: поиск товаров, сканирование штрихкодов, корзина, оплата, возврат, аванс и зачёт. Данные читаются напрямую из базы, операции повторяют штатную логику. Добавили устойчивость к обрывам, повтор операций и идемпотентность, чтобы исключить дубли чеков.
Как встроили в ИТ-контур
Рабочее место открывается в браузере и на кассе, обмен идёт по защищённому каналу. Фискальный контур остаётся штатным, очередь операций переживает обрыв связи и перезапуск.
Схема упрощена. Полную архитектуру и состав интеграций показываем на встрече по NDA.
Что получил заказчик
- время расчёта покупателя сократилось, кассир реже ждёт ответа системы
- дубликаты чеков исключены на уровне ключей идемпотентности
- единый журнал операций и быстрый разбор спорных чеков
- рабочее место выдерживает обрывы связи и перезапуски
Показатели проекта раскрываем в согласованном диапазоне. Точные данные, имена и архитектуру покажем на встрече по NDA.
Что учли по требованиям заказчика
Фискализацию выполняет штатная касса. Сервис не подменяет оплату, не меняет цены и ведёт журнал операций.
Кассир-помощник
помогает найти товар и собрать чек, не подменяя кассира
Как работает
- Принимает скан штрихкода, фото или название товара.
- Ищет карточку, аналоги и цену, проверяет весовые и возрастные ограничения.
- Собирает корзину, подсказывает скидку и способ оплаты.
- При обрыве связи ставит операцию в очередь и повторяет её идемпотентно.
Границы
- Не подтверждает оплату и не закрывает чек сам.
- Не меняет цену и не обходит правила магазина.
- Финальное действие всегда за кассиром.
Что использовали
У нас похожая задача
Разберём процесс, определим метрику и скажем, подходит ли здесь пилот. Покажем архитектуру этого кейса на встрече по NDA.