Бонусная система о которой мечтали владельцы магазинов на inSales
Мы реализовали решение, которого давно не хватало рынку. Разработка заняла год, но результат стоил ожиданий: у нас появилась функция, которую не найти на конкурентных платформах.
Команда проекта:
- Бэкенд и инициатива: наш партнер Дмитрий Рогалев.
- Фронтенд: Emilius Agency.
Проблема: отсутствие гибкости
Раньше на рынке просто не было решений для сложных сценариев скидок. В существующих системах всё было ограничено: либо промокоды не поддерживали нужную функциональность, либо платформы не позволяли комбинировать разные типы скидок.
Нам нужна была система, которая работает одновременно с бонусными программами, подарочными товарами и скидками на категории. Всё в одном интерфейсе.
Что мы построили: «Внешняя скидка»
Мы создали собственный алгоритм расчёта.
Работает это так: клиент формирует корзину на сайте -> сервер получает данные -> система рассчитывает оптимальный размер скидки с учетом множества параметров и применяет её к корзине. Это не просто промокод, а сложная логика условий.
Три главные фичи
- Бонусы + Промокод. Обычно эти вещи взаимоисключающие. У нас они работают вместе: клиент может применить накопленные баллы и ввести промокод в одном заказе.
- Подарки в корзине. Редкая, но желанная функция. Когда клиент выполняет условия (например, сумма заказа), в корзину автоматически добавляется подарочный товар. Он считается отдельным элементом, но его цена уже включена в расчет скидки.
- Комбинирование со скидками на категории. Система позволяет давать скидку не на весь чек или конкретный товар, а на целую категорию товаров, не затрагивая остальные позиции.
Почему это сложно технически
Главная сложность — синхронизация данных на фронтенде. Скидка приходит с сервера, но чтобы корректно отобразить её в интерфейсе, нужно «поженить» данные из нескольких источников:
- данные из основной системы inSales;
- данные из бонусной системы;
- сложные расчёты скидок и применённые правила.
Всё это должно работать без конфликтов. Мы реализовали на фронтенде «виртуальную корзину», которая хранит информацию о скидках и подарках, формируясь на основе ответа от сервера.
Как это выглядит на практике
- Сценарий с подарком: Администратор настраивает правило: «Дарим стикер при заказе от 2000 рублей». Клиент добавляет товары, и как только сумма достигнута — подарок сам появляется в корзине.
- Сценарий с категориями: Администратор устанавливает скидку 100 рублей на категорию «Соусы». Система применит вычет только к соусам, даже если в корзине лежат другие товары.
Что дальше
Бонусную систему мы запустили осенью, и она уже полноценно работает на боевых проектах.
Разработка продолжается: мы допиливаем некоторые сценарии и интеграции. Но уже сейчас наши клиенты получили инструмент, который дает реальное конкурентное преимущество и гибкость, которой нет у других.