Компания задаёт правила
У каждой программы свой тип, статус, условия и показатели того, во что она обошлась.
- Тип и статус у каждой программы
- Стоимость программы на виду

Апселло
Программы, клиентская база, заказы, бонусные операции и аналитика их экономического эффекта — в одном продукте.
Продукт начинался не с технического задания, а с проблемы рынка.
Изучили, как программы лояльности работают в ресторанах и локальном ритейле, и разобрали цикл заказа: начисления, списания, акции, возвраты, корректировки.
Описанные процессы и показателиОпределили сущности, роли, разделение данных между организациями и то, как контуры продукта пользуются общей моделью.
Модель данных и ролиСпроектировали дашборд, конструктор, клиентскую базу и кабинет; собрали frontend на Angular и бизнес-логику на C# поверх PostgreSQL.
Работающий MVPРазработали систему показателей стоимости и результата программы и слой, который принимает данные внешних систем через API и webhook.
Дашборд эффекта и APIЗаказы лежат в кассе, клиенты — в CRM, бонусы — в отдельном сервисе. Бизнес видит количество начисленных бонусов и не видит, окупились ли они.
Апселло проектировался не как ещё один бонусный модуль: программа, заказ, операция, клиент и эффект живут в одной системе.
Правила начисления, списания и совместимости, заданные компанией.
Приходит из кассы, CRM или интернет-магазина через API и webhook.
Расчёт по условиям программы и отдельная запись в истории.
Профиль, баланс, история покупок и участие в программах.
Стоимость лояльности рядом с дополнительной выручкой и средним чеком.
Контуры работают с общей моделью данных, поэтому бизнес-логика не дублируется.
Конструктор механик лояльности, правила начисления и списания, товарные акции и совместимость программ.
Единая клиентская база, история покупок, бонусные операции и личный кабинет покупателя.
Дашборд эффективности, метрики поведения клиентов и подключение внешних систем через API.
Кэшбэк, пороговые уровни, скидки, условия для товаров и категорий, частичная оплата бонусами — всё это настройка, а не отдельная разработка.
Уровни задаются парой чисел. Тем же конструктором собираются скидка на категорию, повышенный кэшбэк на сезонный ассортимент и оплата бонусами с собственным курсом и лимитом.

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

Товары и категории синхронизируются сами — на них настраиваются акции и повышенный кэшбэк.

Оплаченный заказ приходит через API или webhook и связывается с конкретным клиентом.

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

Профиль накапливает заказы, выручку, средний чек, частоту и бонусный баланс.

Если одновременно действуют кэшбэк, товарная акция и скидка, результат зависит от порядка их применения. Мы описали этот порядок явно.
Механики складываются осознанно: так собирают товарную акцию поверх базового кэшбэка.
Программы помечены несовместимыми, и вторая к тому же заказу не применяется.
Одна программа объявлена эксклюзивной и отменяет остальные условия заказа.
Заказ отменяют, товар возвращают, начисление правят вручную — поэтому баланс складывается из операций, а не хранится числом.
В каждой записи — сумма, причина, связанный заказ и дата. У бизнеса остаётся история, которую можно показать клиенту.

Бизнесу не приходится объяснять каждую операцию вручную, а покупатель понимает, откуда взялся его баланс.
Компания настраивает механику под свою экономику и видит, во что она обходится.

Покупатель сам понимает, откуда взялся его баланс и как им воспользоваться.
Апселло
Мои бонусы
1 250бонусов
Действующие программы
История операций
Общая модель: программа, заказ, клиент и бонусная операция
Вопрос не «сколько бонусов мы начислили», а «что бизнес получил взамен».


Дополнительная выручка за вычетом стоимости скидок и начисленных бонусов.

Показатель повторных покупок: ради него программа и запускается.

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