Разрабатываем системы для розничной торговли под задачу сети
Касса, платёжный контур, товарный учёт, управление сетью, интеграции и поддержка после запуска.
Разработка и внедрение систем для розничной торговли: касса и POS в торговом зале, платёжный терминал, каталог и цены, остатки и склад точки, лояльность, права сотрудников, аналитика и центральная панель управления сетью. Ниже — как устроен каждый модуль, с какими системами и оборудованием он связан и какой процесс закрывает.
Программное обеспечение для ритейла — система, которая ведёт товар от приёмки в магазине до пробитого чека и учтённой выручки, а данные о товаре, цене и остатке держит одинаковыми во всех точках сети.
Снаружи магазин выглядит как полка и касса. Внутри это несколько связанных программ: кассовая программа в зале, товарный учёт точки, платёжный контур, центральная система сети и слой обмена с внешними системами — учётной, складской, CRM, интернет-магазином.
Граница между «кассовой программой» и «системой для ритейла» проходит по числу точек и по тому, где принимается решение. Одна касса обходится локальной программой на кассовом компьютере. Как только магазинов становится больше одного, появляются вопросы, которых у одиночной точки нет: где лежит единственный справочник товаров, кто меняет цену сразу везде, как товар переезжает между магазинами и чей остаток считать правильным.
Контур розничной сети — девять звеньев, связанных данными:
Звенья соединены в обе стороны: справочники и правила спускаются из центральной системы на точки, продажи, движения товара и события оборудования поднимаются обратно. Разрыв в любом месте виден сразу — расхождением цены на полке и в чеке, отрицательным остатком или неучтённой выручкой.
Не страницами и не таблицами, а объектами учёта — записями со своим состоянием, автором и историей:
Как только процесс описан объектами, он становится проверяемым: у каждой цифры в отчёте есть документ, у документа — автор и время, а у спорной ситуации — запись, а не устная версия.
Четыре вопроса, которых у одиночной точки не существует. Ответ на них и отличает систему для сети от кассовой программы:
Шесть задач, ради которых магазин или сеть внедряет ПО для розничной торговли. Пока системы нет, каждая закрывается таблицами, звонками между точками и пересчётом по памяти.
Товары, штрихкоды, цены и правила скидок заводятся один раз и расходятся по точкам. Магазин в центре и магазин на окраине читают один справочник, а не два разных файла с разной историей правок.
Позиция попадает в чек сканированием штрихкода или взвешиванием, цена подставляется правилом, скидка считается системой. Кассир не набирает цену руками — значит, не ошибается и не выбирает её сам.
Продажа списывает товар в момент закрытия чека, приёмка и перемещение — в момент проведения документа. Остаток перестаёт быть цифрой из прошлой инвентаризации и становится рабочим числом для заказа поставщику.
Цена и скидка задаются правилом по группе точек, категории или расписанию. Переоценка тысячи позиций перед акцией занимает минуты и обратима, а не превращается в объезд магазинов с распечатками.
Возврат, отмена, ручная скидка, изменение цены и открытие ящика — записи с автором, временем и прежним значением. Разбор спорной ситуации идёт по журналу, а не по показаниям смены.
Видно, что продаётся в каждой точке и в какие часы, какой товар лежит без движения, где растут возвраты и сколько на самом деле принесла акция с учётом скидки.
Это не одна программа, а набор взаимосвязанных программно-технических компонентов. Каждый отвечает за своё и может обновляться отдельно: кассу в зале не переписывают из-за нового отчёта в центральной панели.
Программа на кассовом компьютере или POS-моноблоке: экран кассира, работа со сканером и весами, расчёт чека, диалог с платёжным терминалом, печать документа, смена. Работает автономно и продолжает обслуживать покупателей при потере связи с сервером.
Физический слой: кассовый компьютер, сканеры, принтер чеков, платёжный терминал, весы, терминалы сбора данных, денежный ящик, экраны. Каждая единица заведена в реестре с привязкой к магазину и рабочему месту.
Контур безналичной оплаты: обмен кассы с платёжным терминалом, состояния платёжной операции, сопоставление платежа с чеком, возвраты, обработка отказов и разрывов, сверка с реестром эквайера.
Приём данных с точек, применение правил, очереди обмена, планировщики заданий и отчётов, рассылка справочников обратно. Масштабируется по числу магазинов, а не переписывается при открытии одиннадцатого.
Хранилище объектов учёта и их истории: товары, цены, остатки, чеки, платежи, документы движения, клиенты, сотрудники, события. Записи операций неизменяемы, резервные копии создаются по расписанию с проверкой восстановления.
Рабочее место управляющего сетью: магазины, ассортимент, цены, остатки, продажи, акции, сотрудники, оборудование, ошибки и ключевые показатели в одном интерфейсе, с правами доступа по ролям.
Там, где они нужны задаче: приложение товароведа для приёмки и инвентаризации со сканированием, приложение руководителя со сводкой по точкам, приложение покупателя с картой лояльности и электронными чеками.
Обмен с внешними системами: учётной, бухгалтерской, складской, CRM, интернет-магазином, платёжными сервисами. Очереди, повторная доставка сообщений, версии формата, журнал обмена, регулярная сверка.
Витрина данных поверх операций: продажи, средний чек, маржа, оборачиваемость, возвраты, эффективность акций, работа кассиров. Считается на копии данных, чтобы тяжёлый отчёт не тормозил кассу в зале.
Компоненты соединены не «по возможности», а обязательными связями: касса не работает без справочника, справочник не имеет смысла без центральной панели, панель бесполезна без данных с точек. Поэтому систему проектируют целиком, а внедряют по частям — в порядке, где каждый шаг опирается на данные предыдущего.
Кассовая программа — рабочее место продавца и одновременно точка, где операция становится документом. Всё, что произошло в зале, попадает в систему только через неё: продажа, возврат, скидка, оплата, внесение и изъятие наличных.
Требование к ней жёстче, чем к любому другому модулю: она обязана работать быстро, при очереди и при обрыве связи с сервером. Поэтому касса держит локальную копию справочника товаров и цен и пишет операции в локальную очередь, а не спрашивает сервер о каждой позиции в чеке.
Что делает кассовая программа:
Требования к фискальной части — печати чека, его составу и передаче данных — задаются законодательством страны и моделью подключённого устройства. Состав и порядок обмена уточняются на этапе обследования, а не декларируются заранее.

Связь с сервером — не условие продажи. Касса продолжает пробивать чеки на локальном справочнике, складывая операции в очередь; когда канал возвращается, очередь досылается пакетом. У каждой операции есть ключ, поэтому повторная отправка не создаёт второй чек и не списывает остаток дважды.
Ограничения при этом честно называются: пока связи нет, касса не видит изменения цены, сделанного центральной системой минуту назад, и не может проверить баланс баллов на сервере. Что именно разрешено в автономном режиме — решение проекта: например, продажа разрешена, а списание баллов отложено до восстановления связи.
Смена — не «рабочий день кассира», а документ с началом, концом, кассиром, кассой и итогами. К ней привязаны все чеки, платежи, возвраты и движения наличных за период.
Программа в магазине не работает изолированно: почти каждая операция начинается или заканчивается на физическом устройстве. Ниже — оборудование, с которым взаимодействует кассовое и учётное ПО, и что именно система от него получает или ему передаёт.

Устройство, на котором работает кассовая программа. Система знает его как рабочее место: к нему привязаны касса, смена, набор подключённой периферии и права входа. Замена железа не ломает историю продаж — рабочее место остаётся тем же объектом учёта.
Основной способ ввода позиции в чек и в складской документ. Одной товарной позиции может соответствовать несколько штрихкодов — от поставщика, собственный, упаковочный. Нераспознанный код не теряется: он попадает в очередь на привязку к товару, а не в «товар не найден».
Печать документа продажи и возврата. Состав чека, порядок его формирования и передачи данных определяются требованиями страны и моделью устройства; конкретный набор уточняется на обследовании. Неотпечатанный или непереданный документ фиксируется как незакрытая операция.
Приём безналичной оплаты. Касса передаёт сумму, терминал ведёт диалог с держателем карты и возвращает результат. Терминал — не периферия, а вторая система со своим состоянием, поэтому ему отведён отдельный раздел ниже.
Работа с весовым товаром: позиция попадает в чек с фактической массой, цена считается за килограмм. Весы бывают кассовые — масса приходит прямо в чек, и фасовочные — печатается этикетка со штрихкодом, в который зашиты код товара и масса; касса разбирает такой код и подставляет позицию.
Приёмка, инвентаризация, перемещение и переоценка со сканированием прямо в зале и на складе точки. Устройство работает без постоянной связи: документ собирается локально и выгружается в систему целиком, с проверкой на расхождения.
Ящик открывается программой в момент операции с наличными. Каждое открытие — событие с временем, кассиром и причиной; открытие без продажи попадает в список наблюдаемых операций. Сюда же относится вспомогательная периферия рабочего места — клавиатуры, считыватели карт сотрудников.
Дисплей у кассы показывает состав чека, скидку и итог по мере сканирования — покупатель видит цену до оплаты, а не после. Экраны в зале выводят акции, подборки и цены из того же справочника, что и касса, поэтому расхождений между экраном и чеком не возникает.
Там, где они установлены, ценники получают цену из той же системы, что и касса. Это снимает главный источник конфликта в зале — расхождение цены на полке и на кассе после переоценки. Возможность подключения зависит от того, какой интерфейс управления отдаёт наружу конкретная система ценников.
Мы не заявляем заранее поддержку конкретных марок и моделей оборудования. Набор подключаемых устройств определяется на обследовании по документации производителя и по тому, какой интерфейс устройство отдаёт наружу; там, где готового интерфейса нет, вопрос решается отдельно и до начала работ, а не обещанием совместимости.
Платёжный терминал — единственное место, где покупка становится оплаченной, и единственный узел магазина, который работает с деньгами напрямую. Поэтому он описан здесь не строкой в перечне оборудования, а отдельным контуром.
Главная сложность в том, что касса и терминал — две независимые системы. У кассы своё представление о чеке, у терминала — своя платёжная операция, которая живёт в контуре эквайера и не подчиняется кассовой программе. Совпадение этих двух картин не гарантировано физикой: между «деньги списаны» и «чек напечатан» всегда есть промежуток, в который может попасть обрыв связи, отключение питания или зависание.
Что закрывает интеграция кассы с платёжным терминалом:
Мы не называем банк, модель терминала и платёжный протокол: состав интеграции определяется тем, какой интерфейс обмена предоставляет конкретный терминал и что допускает договор с эквайером. Это выясняется на обследовании и фиксируется в проекте.

Ручной ввод суммы на терминале — самый дешёвый в разработке и самый дорогой в эксплуатации вариант. Он допускает опечатку в разряде, оплату не той суммы, а главное — разрывает связь между чеком и платежом: сопоставить их потом можно только по времени и сумме, то есть приблизительно.
При программной передаче суммы платёж и чек связаны идентификатором с обеих сторон. Это то, на чём держатся сверка с эквайером, разбор спорной операции и контроль расхождений между выручкой в системе и деньгами на счёте.
Терминал опрашивается не только в момент оплаты. Состояние — отдельные данные, которые нужны до того, как перед кассой встал покупатель:
Каждое состояние — событие в журнале. Терминал, который отвечает медленно или срывает каждую десятую операцию, виден в отчёте по оборудованию задолго до того, как о нём сообщит директор магазина.
Оплата картой — не одно действие, а последовательность состояний, каждое из которых может оборваться. Ниже — как система ведёт операцию и что делает, когда результат неизвестен.
Касса формирует запрос: сумма, валюта, идентификатор операции, ссылка на чек. Пока терминал не ответил, чек находится в состоянии «ожидает оплаты» и не может быть закрыт, изменён или удалён.
Терминал возвращает исход: одобрено, отказано, отменено покупателем, ошибка. При одобрении вместе с результатом приходят реквизиты операции, по которым её потом находят в реестре эквайера.
Идентификатор платёжной операции записывается в чек, номер чека — в запись о платеже. Связь двусторонняя, поэтому по любой из сторон восстанавливается вторая: от чека к платежу и от строки в реестре банка к конкретной продаже.
Возврат средств на карту — отдельная платёжная операция, привязанная к исходной. Система не даст вернуть больше, чем было оплачено, и больше, чем осталось невозвращённым по этому чеку, а результат возврата так же ждёт подтверждения терминала.
Самый важный сценарий: терминал не ответил. Система не считает такую операцию ни успешной, ни неуспешной — она помечает её как требующую выяснения и не даёт закрыть чек молча. Дальше исход уточняется запросом состояния операции или сверкой.
Доступность терминала, доля неуспешных операций, время ответа и незакрытые дни собираются по каждому устройству. Проблемное оборудование видно в отчёте, а не по жалобам из зала.
Кадр экрана системы: числа демонстрационные. Ключевой шаг — второй: пока сумма не передана программно, шестой и седьмой шаги выполняются человеком по бумажным слипам.
| Что произошло | Что делает касса | Состояние |
|---|---|---|
| Отказ по карте | Предлагает повторить или выбрать другой способ оплаты; чек остаётся открытым | штатно |
| Покупатель отменил операцию | Возвращает чек в работу, платёжная операция закрывается как отменённая | штатно |
| Терминал не ответил в срок | Не закрывает чек, запрашивает состояние операции, при неясности — блокирует ручное закрытие | разбор |
| Питание пропало между оплатой и печатью | После запуска восстанавливает незавершённый чек и требует выяснить исход платежа | разбор |
| Оплата прошла, чек не напечатан | Держит операцию открытой, повтор печати без второго списания | разбор |
| Платёж есть в реестре, чека нет в системе | Выносит расхождение в очередь сверки с суммой, временем и терминалом | разбор |
| Терминал требует завершения дня | Сообщает кассиру до начала операции, а не после ввода карты | предупреждение |
Общий принцип: неизвестный исход не превращается ни в успех, ни в отказ. Операция остаётся открытой и попадает в очередь разбора — это дешевле, чем двойное списание у покупателя или неучтённая выручка у магазина.
Конкретный протокол обмена с терминалом, набор доступных способов оплаты, возможность отмены операции и поведение при обрыве связи задаются моделью устройства и правилами эквайера. Мы описываем контур, который строится вокруг них, и уточняем состав на обследовании — не заявляя заранее совместимость с конкретным банком или терминалом.
Каталог в ритейле — это не витрина, а справочник, из которого живёт касса. Ошибка в нём стоит дороже, чем ошибка на сайте: неверный штрихкод останавливает очередь, а дубль позиции разносит остаток одного товара на две карточки.
Из чего состоит товарная позиция:
Массовые операции идут импортом из файла или обменом с учётной системой. Импорт всегда проходит проверку до записи: что будет создано, что изменено, что отклонено и почему. Позиция с дублирующимся штрихкодом не создаётся молча — она попадает в отчёт об отклонениях.
В сети магазины не одинаковы: формат, площадь, район и покупатель у них разные. Ассортиментная матрица отвечает на вопрос, какие позиции из общего каталога продаются в конкретной точке.
Товар в каталоге один, а его состояние в каждой точке своё. Это главное отличие сетевого учёта от учёта одного магазина:
| Магазин | В матрице | Цена | Остаток |
|---|---|---|---|
| Центр | да | 395 | 42 |
| Микрорайон | да | 385 | 7 |
| Трасса | нет | — | 0 |
Числа демонстрационные. Разная цена — не ошибка, а правило: точка на трассе и магазин у дома живут в разных ценовых группах. Ошибкой было бы одно и то же значение, полученное ручной правкой в трёх местах.
Цена в чеке — результат вычисления по правилам, а не число из карточки товара. Поэтому переоценка не требует правки тысяч позиций, а спорная сумма в чеке разбирается по слоям расчёта, а не по памяти кассира.
У позиции одновременно существует несколько цен: базовая, по ценовой группе магазинов, по конкретной точке. Система выбирает применимую в момент пробития. Магазин в центре и магазин на трассе работают по одному справочнику с разными правилами.
Процент или сумма от закупочной цены по категории, поставщику или товарной группе. Приход по новой закупочной цене пересчитывает розничную автоматически, а не оставляет её на уровне прошлой поставки.
Условие срабатывания, механика скидки, даты начала и окончания, повторяющиеся окна. Акция запускается и останавливается сама — сотруднику не нужно быть на месте в полночь, чтобы включить цену выходного дня.
Процент, фиксированная сумма, новая цена, скидка на дешёвый товар в наборе, «второй за половину», подарок при условии, скидка на категорию при сумме чека. Механика задаётся правилом, а не пересчитывается кассиром.
Одиночный код для кампании или партия уникальных кодов под получателей. Проверяются срок, лимит применений, лимит на покупателя, совместимость с действующей акцией. Погашение фиксируется в чеке — по каждому коду видно, где и когда он сработал.
Совместимость скидок задаётся явно: какие складываются, какие взаимоисключаемы. Ограничение минимальной цены не даёт нескольким корректным скидкам вместе увести позицию ниже допустимого порога.
Числа демонстрационные. Строка о несработавшем промокоде важнее остальных: покупатель на кассе должен получить причину отказа, а не «код не действует». Каждый шаг расчёта сохраняется в чеке и доступен при разборе спорной покупки.
Остаток — не справочная величина, а результат всех проведённых документов по позиции в конкретной точке. Если остаток «не сходится», причина всегда в документах: чего-то не провели, провели дважды или провели не там.
Поэтому система не позволяет менять остаток напрямую. Любое изменение — документ с типом, автором, временем и составом позиций.
Документы движения товара:
Каждый документ проходит два состояния: черновик, который можно править, и проведённый, который меняет остаток и правится только сторнирующим документом. Это то, что отличает учёт от таблицы.

Инвентаризация — не «пересчитать всё раз в год». В работающей системе она бывает двух видов, и второй важнее первого.
Список короткий и почти всегда один и тот же. Система не устраняет эти причины сама — она делает их различимыми:
Регулярная выборочная инвентаризация по проблемным категориям находит эти случаи за неделю, а не за год — и разбирает по конкретному документу и ответственному.
Один магазин управляется голосом и тетрадью. Три — таблицей и созвоном. Двадцать — уже нет: к этому моменту никто в компании не может назвать текущую цену позиции во всех точках, не позвонив в каждую. Центральная система нужна не «для порядка», а потому что ручной способ перестаёт масштабироваться на вполне определённом числе точек.

Рост проходит через три состояния, и в каждом ломается своё. Один магазин — данных достаточно на кассе. Несколько магазинов — появляется вопрос, чей справочник главный, и товар начинает переезжать между точками. Десятки и сотни точек — управление становится отдельной работой: без единого экрана директор сети узнаёт о проблеме от магазина, а не от системы. Ниже — что видно и чем управляют из центральной панели.
Реестр точек: формат, адрес, площадь, ценовая группа, ассортиментная матрица, график работы, ответственные, состав оборудования и рабочих мест. Новая точка открывается копированием настроек похожей, а не сборкой с нуля.
Единый каталог и матрицы по группам точек. Ввод и вывод позиции — управляемое действие с датой и охватом: какие магазины затронуты, с какого числа, что делать с остатком выводимой позиции.
Правила ценообразования по ценовым группам и точкам, плановые переоценки с датой вступления, история изменений. Централизованная переоценка описана отдельно ниже — это самая ответственная операция сети.
Остаток по каждой позиции в каждой точке и в целом по сети, товар в пути между магазинами, залежавшиеся позиции, позиции на исходе. Отсюда же инициируется перемещение из магазина с избытком в магазин с дефицитом.
Чеки всех точек в одном потоке: выручка, средний чек, число чеков, продажи по товарным группам, сравнение точек между собой и с их же прошлым периодом.
Кампании с охватом по группам магазинов, расписанием и лимитами. Видно, где акция уже действует, где начнётся, сколько продано по акционной цене и какой она дала результат с учётом скидки.
Учётные записи, роли и права, привязка к точкам, смены и их итоги. Права выдаются ролью, а не персональной настройкой на каждого — иначе в сети из пятидесяти магазинов их невозможно проверить.
Реестр касс, терминалов, весов и прочих устройств с привязкой к рабочим местам, версией программы, состоянием и историей обслуживания. Видно, где стоит устаревшая версия и где устройство регулярно сбоит.
Единая лента отклонений по сети: касса не на связи, терминал не отвечает, обмен не прошёл, документ не проведён, расхождение при инвентаризации. Отклонение адресуется ответственному и имеет срок, иначе это просто журнал.
Безналичные операции всех точек, доля неуспешных, незакрытые дни терминалов, результаты сверки с реестром эквайера и список расхождений, требующих разбора.
Выручка, маржа, средний чек, оборачиваемость, доля возвратов, потери, выполнение плана — по сети, формату, региону и точке. Один набор определений на всех, а не своя формула в каждом отчёте.
Что и когда ушло на точки, что пришло обратно, какие сообщения не доставлены и почему. Магазин, который сутки не отдаёт продажи, виден здесь, а не обнаруживается при закрытии месяца.
Синхронизация — не «общая база на всех». Магазин обязан продавать, когда до центрального сервера нет связи, поэтому у каждой точки есть своя рабочая копия данных, а обмен идёт сообщениями.
Поток вниз, из центра на точки: справочник товаров и штрихкодов, цены и правила ценообразования, акции и промокоды, ассортиментная матрица, настройки оборудования, учётные записи и права, обновления программы кассы.
Поток вверх, с точек в центр: чеки и их состав, платёжные операции, движения товара, итоги смен, события оборудования, результаты инвентаризаций, действия сотрудников.
Правила, по которым это работает:
Самая ответственная операция сети: она затрагивает все точки одновременно и видна покупателю в тот же день. Поэтому она устроена как документ с датой вступления, а не как правка справочника.
Кадр экрана системы: числа демонстрационные. Смысл пятого шага: магазин без связи не выпадает из переоценки и не начинает торговать по старой цене на неопределённый срок. Документ применится позже, но с правильной даты.
Переоценка обратима: документ можно отменить до вступления в силу или перекрыть новым. Прежние значения сохранены по каждой позиции, поэтому возврат к ним — операция, а не восстановление из резервной копии.
Касса и POS
Платёжный контур
Товар и остатки
Управление сетью
Лояльность начинается не с баллов, а с идентификации: пока покупка анонимна, программе не с чем работать. Задача модуля — связать чек с покупателем на кассе за секунды и не задерживать очередь.
Способы идентификации на кассе: пластиковая карта со штрихкодом, номер телефона, QR-код в мобильном приложении, виртуальная карта. Способ выбирается по формату магазина: там, где очередь длинная, ввод номера телефона руками — плохое решение.
Что умеет модуль:
Программа лояльности живёт в зале, а не в маркетинговом отчёте. Требования к ней предъявляет очередь:
Числа демонстрационные. Важна третья строка: ограничение доли оплаты баллами — правило, а не решение кассира. И пятая: баллы начисляются на реально оплаченную деньгами часть, иначе программа начинает начислять сама себе.
Данные о покупках и сегментах — то, что связывает лояльность с аналитикой и с ИИ-сценариями ниже: предложение имеет смысл, когда построено на истории покупок конкретного покупателя, а не на общей рассылке по базе.
В магазине с деньгами и товаром работают люди с разной ответственностью. Права доступа — это не про секретность, а про то, чтобы у каждого действия был автор и чтобы обычная операция не требовала старшего, а рискованная — не выполнялась молча.
Как устроена модель прав: разрешения выдаются роли, роль назначается сотруднику, сотрудник привязывается к точкам. Персональные настройки на каждого работника в сети из пятидесяти магазинов невозможно ни выдать, ни проверить.
Журнал действий — не архив «на всякий случай». Это рабочий инструмент: по нему разбирают спорную покупку, недостачу в смене и жалобу покупателя, и он же питает раздел контроля операций ниже.
Набор операций и распределение по ролям задаются под конкретную сеть. Ниже — типовой каркас, от которого отталкивается настройка:
Последняя строка не ошибка. Право «видеть всё» раздаётся так же осторожно, как право менять цену: директор магазина отвечает за свою точку и видит её, а не соседнюю.
Система не предотвращает злоупотребления автоматически и не выносит приговоров. Она делает операции наблюдаемыми: устанавливает правила, записывает каждое отклонение от них и собирает похожие случаи в очередь на разбор человеком. Это контур контроля, а не «антифрод, который всё поймает».
Доля возвратов считается по кассиру, точке, товарной группе и времени суток. Отклонение от обычного уровня — сигнал: возвраты без покупателя, возвраты в конце смены, повторяющиеся возвраты одной позиции.
Аннулирование чека до закрытия и удаление позиций из чека — нормальные операции, но их частота у конкретного кассира сравнивается с уровнем смены и точки. Резкий перекос попадает в наблюдение.
Скидка, применённая вручную, скидка при каждой покупке одного и того же клиента, скидка на позиции с высокой маржой в конце смены. Каждый случай хранится с автором, основанием и суммой.
Право менять цену на кассе — исключение, а не норма. Там, где оно выдано, каждое применение фиксируется с прежним и новым значением и попадает в отдельный отчёт, а не растворяется в общем журнале.
Профиль работы: средний чек, доля наличных, доля возвратов и отмен, число открытий ящика без продажи, работа в чужую смену. Сравнение идёт с самим кассиром в прошлом и с коллегами на той же точке.
Платёж в реестре эквайера без чека в системе, чек без платёжной операции, разные суммы в чеке и в платеже. Каждое расхождение выносится с суммой, временем, кассой и терминалом.
Продажи вне графика работы точки, чеки с нулевой суммой, повторяющийся чек с одинаковым составом, открытие ящика без продажи, вход под чужой учётной записью.
Неизменяемая запись каждой значимой операции: автор, время, рабочее место, прежнее и новое значение. Хранится отдельно от рабочих данных, поэтому не правится вместе с ними.
Выдача и отзыв прав, изменение правил ценообразования, отключение проверки, ручное закрытие смены, доступ к выгрузке базы клиентов — фиксируются отдельно и попадают к ответственному сразу, а не в конце месяца.
| Сигнал | Что известно системе | Что проверяет человек |
|---|---|---|
| Доля возвратов кассира втрое выше средней по точке | 14 возвратов за смену, 11 — в последний час, все наличными | Записи камер, наличие покупателей, объяснение сотрудника |
| Ручная скидка применена 23 раза | Один кассир, один диапазон сумм, разные товарные группы | Основание скидки, наличие распоряжения, повторяемость клиента |
| Платёж в реестре без чека в системе | Сумма и время совпадают со сменой, чек отсутствует | Сбой связи или неоформленная продажа — по журналу кассы |
| Денежный ящик открывался 40 раз без продажи | Одна касса, одна смена, интервалы по 3–5 минут | Размен, техническая проблема замка или изъятие наличных |
| Инвентаризация: недостача по одной категории | Расхождение только по табачной группе, три точки подряд | Приёмка, перемещения, списания и доступ к месту хранения |
Кадр экрана системы: числа демонстрационные. Ни одна строка не означает нарушения — каждая означает, что цифры отклонились от обычных и это нужно объяснить. Разница принципиальная: правило поднимает вопрос, ответ даёт человек.
Практический смысл контура — в скорости. Без него расхождение обнаруживается при инвентаризации, через месяцы после события, когда ни записей, ни памяти уже нет. С ним отклонение видно на следующий день, а разбор идёт по конкретному чеку, конкретной смене и конкретной операции.
Аналитика в ритейле — не «красивые графики», а ответ на четыре вопроса: сколько заработали, на чём именно, что мешает и что делать с заказом на следующую неделю. Всё остальное — производные.
Считается это на копии операционных данных, а не на боевой базе: тяжёлый отчёт по году не должен замедлять кассу в зале.
Что система считает:
Отдельно — регламентная отчётность: сменные и дневные отчёты по точкам, ведомости для бухгалтерии, сверка с эквайером, данные для учётной системы. У неё расписание и адресаты, поэтому она не требует, чтобы кто-то помнил о ней в конце месяца.

Самая частая проблема отчётности в сети — не отсутствие цифр, а несколько разных цифр по одному показателю. Выручка «с возвратами» и «без», средний чек «по чекам» и «по покупателям», маржа «по прайсу» и «по факту скидки» дают разные числа, и спор о них съедает больше времени, чем сам анализ.
Поэтому определения показателей задаются в системе один раз и используются всеми отчётами. Изменение определения — управляемое действие с датой, а не правка формулы в чьей-то таблице.
Кадр экрана системы: числа демонстрационные. Порядок плиток выбран не случайно: первыми идут не продажи, а точки, которые не отдали данные — пока их нет, любой процент ниже посчитан по неполной картине.
Розничная система редко бывает единственной в компании: учёт, бухгалтерия, склад и интернет-магазин обычно уже работают. Интеграция нужна не «для галочки», а чтобы одни и те же данные не вводились дважды и не расходились между системами.
Обычно она владеет номенклатурой, поставщиками и закупочными ценами; розничная система владеет продажами, розничными ценами и остатками по точкам. Направление обмена по каждому справочнику фиксируется явно — иначе два «главных» источника начинают переписывать друг друга.
Выгрузка выручки по точкам и юридическим лицам, документов движения товара, актов списания, данных по возвратам и безналичным операциям. Периодичность и состав определяются требованиями учёта, а не удобством выгрузки.
Покупатели, сегменты, история покупок, баллы и персональные предложения. Из розничной системы уходят факты покупок, из CRM приходят сегменты и кампании — на кассе они превращаются в конкретную скидку или предложение.
Там, где у сети есть распределительный центр: заявки магазинов, отгрузки на точки, приёмки, возвраты на склад. Перемещение остаётся операцией с двумя половинами, даже когда половины живут в разных системах.
Общий каталог и цены, остатки точки как источник для самовывоза, заказ, собранный в магазине, возврат онлайн-покупки на кассе. Подробный разбор витрины и заказов — на странице электронной коммерции.
Обмен кассы с терминалом, получение реестра операций для сверки, статусы возвратов. Состав определяется моделью терминала и договором с эквайером и уточняется на обследовании.
Сотрудники, назначение на точки, графики смен. Смена на кассе и смена в табеле перестают быть двумя разными записями, которые сводит человек.
Документированное API системы для сторонних потребителей и подключение внешних сервисов: рассылки, мессенджеры, сервисы чеков и уведомлений, партнёрские программы. Формат версионируется — изменение выходит новой версией, старая продолжает работать.
Асинхронность, повторная доставка с нарастающим интервалом, идемпотентность приёмника, журнал каждого сообщения с телом и результатом, регулярная сверка ключевых чисел. Расхождение становится задачей, а не обнаруживается при закрытии месяца.
Перед разработкой обмена всегда решается один вопрос: какая система владеет каким справочником. Пока на него нет ответа, интеграция превращается в цикл взаимных перезаписей, который невозможно отладить.
Розничная сеть накапливает данные быстрее, чем успевает их читать: чеки по позициям и часам, остатки по точкам, движения товара, действия сотрудников, события оборудования. ИИ здесь — не отдельный продукт, а слой поверх этих данных, который отвечает на вопросы, для которых у человека не хватает времени.
Схема одна и та же во всех сценариях: данные → анализ → результат → действие. Сценарий, у которого нет последнего звена, остаётся демонстрацией.
Практические сценарии:
Граница честная: модель работает на накопленной истории. Пока продажи не пишутся по позициям и по часам, а движения товара оформляются задним числом, прогнозировать нечего — сначала контур учёта, потом аналитика поверх него. Подробный разбор направления — на странице внедрения искусственного интеллекта.

Четвёртый шаг обязателен. Рекомендация, которая уходит в заказ без человека, превращает ошибку модели в реальную закупку — а последний шаг превращает эту ошибку в исправление.
Часть товара в магазине хранится в оборудовании, у которого есть режим работы: холодильные витрины, морозильные лари, камеры в подсобном помещении. Отклонение режима не видно в товарном учёте — оно проявляется списанием через несколько дней.
Поэтому к контуру ритейла примыкает мониторинг оборудования: те же точки, те же ответственные, тот же принцип «отклонение адресуется человеку и имеет срок».
Что ставится под наблюдение в магазине:
Связь с ритейлом прямая: температурная история подтверждает режим хранения перед проверяющим и контрагентом, а раннее отклонение сокращает списания — то есть попадает в те же отчёты о потерях, что и недостачи из инвентаризации.

Что физически можно снять с конкретной единицы оборудования — вопрос её контроллера: часть моделей отдаёт значения и ошибки наружу, часть требует внешних датчиков. Это выясняется на обследовании по документации производителя.
Полный разбор направления — датчики и контроллеры, каналы связи, серверная часть, единая панель, уведомления и удалённое управление — на отдельной странице IoT-мониторинга и управления оборудованием.
Состав собирается под задачу: одиночному магазину не нужны матрицы и перемещения между точками, сети из сорока магазинов без них не обойтись. Ниже — полный перечень, из которого набирается конфигурация.
Экран кассира, сборка чека, работа со сканером и весами, оплата, печать документа, отложенные чеки, автономный режим.
Открытие и закрытие смены, промежуточные и итоговые отчёты, внесение и изъятие наличных, расчёт расхождения.
Обмен с платёжным терминалом, состояния операции, сопоставление платежа с чеком, возвраты, разбор незавершённых операций, сверка.
Возврат по номеру чека, частичный возврат, проверка уже возвращённых позиций, возврат средств и баллов, чек возврата.
Позиции, штрихкоды, единицы измерения, весовые товары, категории, поставщики, правила оборота, статусы и архив.
Состав ассортимента по группам точек, ввод и вывод позиций с датой, контроль продаж вне матрицы.
Ценовые группы, правила наценки, плановые переоценки с датой вступления, минимальная цена, история изменений.
Условия срабатывания, механики, расписание, охват по точкам, лимиты, совместимость, генерация и погашение кодов.
Остаток по точке и по сети, товар в пути, резервы, пороги низкого остатка, позиции без движения.
Поступление от поставщика и с распределительного центра, сканирование, сверка с накладной, фиксация расхождений.
Отгрузка и приёмка как две половины операции, товар в пути, контроль незакрытых перемещений.
Бой, порча, срок годности, внутреннее потребление, возврат по браку со ссылкой на исходную приёмку.
Полная и выборочная, пересчёт сканированием, расхождения в штуках и деньгах, утверждение результата.
Реестр магазинов, группы точек, настройки формата, открытие новой точки копированием конфигурации.
Единый экран сети: продажи, остатки, цены, акции, оборудование, ошибки, ключевые показатели, состояние обмена.
Очереди обмена, дата вступления, подтверждение применения, повторная доставка, журнал и сверка.
Идентификация покупателя, баллы, уровни, сроки жизни, сегменты, персональные предложения, коммуникации.
Профили, согласия на обработку данных, история покупок, каналы связи, объединение дублей.
Роли и разрешения, область действия по точкам, подтверждение операций старшим, журнал действий, отзыв доступа.
Правила наблюдения, очередь разбора, отчёты по возвратам, скидкам и отменам, фиксация критических событий.
Кассы, терминалы, весы, сканеры и прочие устройства с привязкой к рабочим местам, версиями и историей обслуживания.
Температура, двери, питание, ошибки контроллеров, потеря связи; события с адресатом и сроком реакции.
Продажи, маржа, оборачиваемость, возвраты, потери, эффективность акций, работа сотрудников, произвольные срезы.
Обмен с ERP, бухгалтерией, CRM, складом, интернет-магазином и внешними сервисами. API, вебхуки, очереди, журнал.
Систему не запускают целиком и сразу во всей сети. Порядок ниже отражает зависимости: каждый шаг опирается на данные, появившиеся на предыдущем, и проверяется на одной точке до тиража.
Текущие процессы, справочники, оборудование на точках, системы-владельцы данных, требования к фискальной части. Результат — схема сущностей, карта интеграций и список ограничений.
Перенос номенклатуры, штрихкоды, цены, приёмка и остатки, кассовое рабочее место с подключённым оборудованием и платёжным терминалом. Запуск на одной точке.
Центральная панель, ассортиментные матрицы, централизованные цены и акции, перемещения между точками, синхронизация и права доступа. Подключение остальных магазинов.
Лояльность, контроль операций, аналитика, мониторинг оборудования, ИИ-сценарии на накопленной истории. Каждый блок — отдельный релиз с измеримым результатом.
Напишите, сколько у вас точек, что уже работает — касса, учётная система, склад, интернет-магазин — и какое оборудование стоит в зале. Разберём процесс, назовём, что переносится, а что придётся строить заново, и предложим порядок внедрения.