Как M-Social сделал вкусный лендинг для розыгрыша сумки Hermès

Условия
Итак, перед нами стояла задача:
- 10 000 уникальных инвайт-кодов.
- 4 типа призов с разными алгоритмами распределения: промокод 5%, промокод 10%, 200 баллов "Кофемании", главный приз — приглашение на розыгрыш сумки Hermès Birkin.
- Жёсткие временные рамки проведения.
- Удобная для клиента форма отчета для аналитики с информацией по результатам акции.
Участник должен был:
- Купить лимитированный десерт OSKELLY в любом ресторане сети "Кофемания".
- Получить конверт с кодом.
- Зарегистрироваться на сайте.
- Подтвердить номер телефона.
- Получить приз.
— "Окей, звучит просто", — подумали вы.
А вот и вишенка на торте: механизм распределения призов — игра на опережение. Главный приз, приглашение на розыгрыш того самого Hermès, вручался не просто случайному участнику, а первому, кто зарегистрирует код. Всех подробностей раскрыть не можем, но была предусмотрена вариативность выдачи невостребованного призового фонда.
Архитектура решения
Мы использовали следующий стек технологий:
- PHP;
- Laravel;
- Backpack;
- PostgreSQL;
- React + Next.js.
Как мы сделали так, чтобы всё не сломалось
Участник должен ввести:
- Имя и фамилию (только кириллица, без лишних символов).
- Email (латиница, цифры, никаких emoji).
- Телефон (маска "+7 (_) _--", только цифры).
- Код из конверта (уникальный, иначе — хаос).
А ещё три галочки:
- Согласие на обработку данных.
- Согласие на рекламу.
- Согласие с правилами.
После отправки формы участнику приходил код. Но если SMS не приходило:
- Можно было ждать 60 секунд и запросить повторно.
- Или отправить код в WhatsApp (потому что SMS иногда теряются, как носки в стирке).
Но! Только 3 попытки. После этого — "Извините, вы исчерпали лимит. Возможно, в следующий раз повезёт."
Админка — где мы всех контролируем
Мы сделали панель, где можно:
- Смотреть список участников (кто, что выиграл, когда).
- Фильтровать по призам (например, найти всех счастливчиков с Hermès).
- Экспортировать данные в PDF, CSV (или распечатать и повесить на стену как трофей).
Вывод
В итоге мы создали сайт, который:
- Работает как часы (даже когда тысячи людей вбивают коды в одно и тоже время).
- Отправляет SMS и WhatsApp (если SMS решит не приходить).
- Выдаёт призы без ошибок (иначе кто-то останется без Hermès, а это трагедия).
P.S. Когда всё пошло не по плану (в хорошем смысле)
Акция была настолько популярной, что клиент увеличил количество призов — для нас это лучший показатель успеха.
В итоге было роздано:
- 11 850 промокодов 5%;
- 9 022 промокодов 10%;
- 13 052 призов 200 баллов "Кофемании";
- 76 приглашений на розыгрыш главного приза.