Как мы настроили систему лояльности на Tilda: наш опыт с бонусами и внешним сервером
Недавно к нам пришел клиент с задачей: нужно сделать систему лояльности на сайте, который уже работает на Tilda. Tilda больше заточена под стильные лендинги и простые магазины, чем под сложные функции вроде бонусов и скидок, но переезжать на другую платформу клиент не хотел, да и бюджет был ограниченный. Мы решили попробовать и в итоге всё получилось. Делимся опытом, как можно провернуть такое на Tilda, если других вариантов нет.
Что сложного с Tilda и системами лояльности
Tilda не даёт прямого доступа к серверной части — у неё нет встроенного бэкенда, чтобы хранить данные пользователей, их бонусные балансы или историю покупок. Из коробки есть только формы для сбора данных и корзина с промокодами. А нам нужно было:
- Хранить инфу о клиентах и их бонусах.
- Начислять бонусы за покупки.
- Давать возможность тратить бонусы на скидки.
Если бы проект предполагал что-то масштабное, мы бы предложили WordPress или Битрикс — там такие задачи решаются проще. Но раз сайт уже на Tilda, решили работать с тем, что есть. И вот как мы это сделали.
Наше решение: JavaScript + внешний сервер
Поскольку Tilda не даёт сервер для хранения данных, мы использовали связку из JavaScript на стороне клиента и отдельного сервера для всей логики. Расскажем по шагам, как это устроили.
1. Собираем данные через JavaScriptНа сайте клиента мы поставили форму регистрации: имя, email, телефон ��� всё стандартно. Но чтобы данные не просто улетали в Google Sheets, мы добавили JavaScript, который отправляет их на наш сервер. Скрипт вставили через настройки сайта в разделе для дополнительных скриптов.
2. Храним данные на своём сервереДля хранения мы настроили отдельный сервер, где хранятся все данные о пользователях. Когда человек регистрируется, его инфа записывается в базу: имя, email, телефон и начальный бонусный баланс (например, 0). Дальше мы можем с этим работать: начислять бонусы, обновлять баланс и так далее.
3. Начисляем бонусы после покупокПосле покупки через корзину Tilda мы отправляем данные о заказе на сервер: email клиента и сумма заказа. На сервере считаем, сколько бонусов начислить (допустим, 5% от суммы), и добавляем их к балансу пользователя. Для этого используем JavaScript, который срабатывает после успешной оплаты — Tilda позволяет к этому событию привязаться.
4. Передаём данные с сервера на сайт через APIЧтобы сайт мог получать данные с сервера (например, текущий баланс бонусов пользователя или доступные промокоды), мы настроили на сервере API. Это такой интерфейс, который позволяет сайту запрашивать данные и получать ответы. Например, когда пользователь заходит в личный кабинет или хочет потратить бонусы, JavaScript на сайте отправляет запрос к нашему API (по сути, это просто адрес вроде https://our-backend.com/get-bonuses), передавая, например, email клиента. Сервер отвечает: сколько у него бонусов, какие скидки доступны и так далее. Всё это происходит в реальном времени, без перезагрузки страницы.
5. Списываем бонусы через промокодыТеперь про скидки. Мы решили не генерировать промокоды на лету, потому что на Tilda удобнее заранее создать их в настройках корзины. Так и сделали:
- Создали несколько промокодов с фиксированными скидками (например, 100, 200, 500 рублей).
- На сервере храним список этих промокодов и связываем их с бонусами клиента.
Когда пользователь хочет потратить бонусы, мы через JavaScript запрашиваем его баланс через API, показываем, сколько у него есть, и предлагаем выбрать скидку. Потом подставляем подходящий промокод в скрытое поле формы оплаты. Работает просто и без лишних сложностей.
Как это выглядит для клиента
- Пользователь регистрируется через форму на сайте.
- Его данные сохраняются на нашем сервере, он получает начальный баланс бонусов.
- После покупки ему начисляются бонусы (например, 5% от суммы).
- Когда он хочет потратить бонусы, мы через API запрашиваем его баланс, показываем доступные суммы скидок и подставляем нужный промокод в корзину.
Что получилось в итоге
Плюсы
- Всё работает, как и хотел клиент: пользователи получают бонусы, могут их тратить через промокоды.
- Не пришлось переделывать сайт с нуля.
- Для небольшого проекта с ограниченным бюджетом — вполне годное решение.
Минусы
- Нужно было повозиться с настройкой сервера и API.
- Промокоды на Tilda приходится создавать заранее, если номиналы скидок часто меняются — это не очень удобно.
- Если пользователей станет много, такая система может потребовать доработки.
Когда лучше выбрать другую платформу
Если проект изначально предполагает сложную систему лояльности с кучей функций, мы бы посоветовали WordPress или Битрикс. Там есть встроенные инструменты для работы с пользователями, базами данных и бонусами — меньше возни. Но если у вас уже есть сайт на Tilda и хочется добавить базовую систему лояльности без глобальных переделок, то наш подход вполне рабочий.