За 2 месяца создали сервис чайной подписки Нитка с рекуррентными платежами и личным кабинетом на Laravel
Нитка — русская чайная, авторский проект Андрея Колбасинова о возрождении русской чайной традиции. Уже открыто две чайных в Москве и одна в Туле, в скором времени готовится к открытию чайная в Нижнем Новгороде, работает онлайн-магазин.
В 2023 году чайная «Нитка» выиграла премию «Сделано в России» издания «Сноб». Заведение признано лучшим гастрономическим проектом года.
Задача
Клиент пришел к нам с задачей — разработать сервис чайной подписки, который позволял бы пользователям подписаться онлайн на ежемесячную доставку чая, а владельцам бизнеса — управлять, анализировать и рассылать офлайн письма почтой по всей России.
Аналогов такому еще не было, поэтому наша команда активно включилась в создание этого проекта вместе с клиентом.
Как работает. Каждый месяц подписчик получает по почте небольшую пачку чая с историей. С каждой подпиской можно попробовать что-то новое: новинки ассортимента, чаи с разных концов света, разной обработки и разных вкусовых особенностей. Создатели отвечает своим именем за качество продукта.
Идея проекта. Познакомить жителей страны с лучшими образцами чая и чайными историями. У каждой подписки есть собственная тема. В красиво оформленном конверте вместе с чаем вложена открытка с изображением и текстом о соответствующем явлении русской культуры.
Концепция. Коллекция чая, открыток и историй, которая в вольной форме рассказывает о людях и явлениях, составляющих Россию.
Результат
- Два месяца потребовалось на реализацию основного функционала чайной подписки с рекуррентными платежами.
- За два месяца подписка выросла на 800 человек.
- 1956 человек со всей России подписаны на чайную рассылку сегодня. Это число постоянно растет.
- Все самое интересное и важное создатели чайной подписки анонсируют по электронной почте через сервис Unisender, который встроен в функционал админки.

Этапы работы
1 этап. Проектирование функционала по бизнес-идее клиента, разработка основного проекта
Спроектировали, как работает подписка. Сервис дает пользователям возможность регистрироваться и оформлять подписки на рассылки чая. Пользователь может оформить рассылку как на себя, так и на любого человека, родственника, знакомого, коллегу.
Разработали юзерфлоу процесса подписки.
Сразу исходили из условия, что чайная подписка работает отдельно от интернет-магазина.
Разработали дизайн. Подготовили эскиз главной страницы с информацией о подписке, формы подписки, личного кабинета, добавления подарочного сертификата для мобильной и десктопной версий.

Настроили авторизацию по номеру телефона с защитой от спама. Авторизация происходит через отправку смс на номер телефона. Задержка между отправкой — 60 секунд.
Для защиты от спама настроен учет отправки сообщений и блокировок. Можно получить не более 5 сообщений за один час. Если с одного IP-адреса идут попытки отправить смс на один номер, то отправка блокируется.
Настроена форма авторизации. Поле для ввода номера телефона, кнопка отправить смс с таймером до следующей попытки, поле ввода кода подтверждения, кнопка подтвердить код.
Если пользователя нет, он создается автоматически на основании номера телефона.
Спроектировали, как происходят нотификации. Разработали функционал оповещений о различных ситуациях, например, о предстоящем или неудачном платеже, передаче оплаченной посылки в Почту России для доставки.
Реализовали списание денежных средств с карты пользователя. За подписку происходит списание средств с карты пользователя. Ее можно оформить на 1, 3, 6 или 12 месяцев.
Внедрили биллинг-систему для управления автопатежами и заказами — настроили логику, механизм повторного списания в случае неудачи. Дата списания — 1 число месяца, следующего за истечением срока оплаченной подписки. Повторные попытки списать средства происходят 2 и 3 числа.
Данные с успешными оплатами сохраняются в документ Excel для привязки к интерактивному дашборду.
Для формирования рассылок в Почту России выгружается список активных адресатов в виде .csv файла с разбивкой по городам.
Интегрировали внешнюю библиотеку DaData для автоподстановки адреса получателя. Подстановка и анализ адреса получения происходит с использованием внешней библиотеки DaData с парсером данных в виде КЛАДР и разбиением по полям: индекс, город, улица, дом, квартира.
Настроили печать конвертов для рассылки с адресами получателей. Чтобы напечатать этикетку, генерируется PDF-файл, который включает в себя листы с уникальными реквизитами. В дальнейшем он отправляется на печать.

Интегрировали проект с сервисом рекуррентных платежей Юкасса. Взаимодействие сервиса происходит через API с настроенными уведомлениями в случае возникновения ошибок и формированием листа неуспешных списаний.
Реализовали сервис реферальной системы. Система реализована в качестве отдельного сервиса. Взаимодействие сайта и сервиса происходит по средствам REST API.
Функциональность реферальной системы обеспечивается посредством промокодов.
Обязанности сервиса реферальной системы:
- хранение и обработка данных аффилиатов и рефералов,
- формирование уникальных промокодов для пользователя,
- фиксация данных о заказах пользователя,
- работа с балансом аффилиата (расчет, начисление и списание),
- формирование отчета о начислениях и списаниях пользователя.
Это работает так: у аффилиатов есть персональные промокоды, которые позволяют подписаться на чайную посылку в первый месяц за 1 рубль, за 49 или за 99 рублей. Аффилиаты распространяют свои промокоды среди подписчиков. Реферальная система позволяет отследить, от какого аффилиата приходит подписчик.

Вся эта работа до запуска проекта заняла два месяца. Далее совершенствовали чайную подписку и улучшали ее работу.
2 этап. Внедрение email-рассылки и создание админпанели с дашбордами
Внедрили email-рассылку Unisender. Для работы почты с большим количеством писем через API настроена интеграция с почтовым сервисом Unisender, т. к. стандартные сервера имеют ограничение на 500 писем в день, чего не достаточно.
Уведомления по почте отправляются по событиям оплаты:
- успешное списание по автоплатежу,
- ошибка списания по автоплатежу,
- отключение подписки при попытке автоплатежа,
- 5 числа каждого месяца: письмо формируется в доставку,
- 10 числа каждого месяца: письмо передано в доставку.
Инициация и формирование списка рассылок происходит на стороне сайта Нитки, после чего направляется запрос в Unisender, в котором сохранены основные шаблоны рассылок. После этого письма отправляются в зависимости от выбранного сценария. Отправка письма со стороны сайта автоматизирована, но может быть инициирована и в ручную.
Сложность реализации заключалась в том, что Unisender не дает возможности отправлять отдельные письма по отдельным шаблонам с указанными параметрами, он может только запустить массовую рассылку по одному шаблону, данные в которые могут подставляться из полей пользователя. Так как у одного пользователя может быть оформлено несколько подписок на разные адреса, разработали решение, которое позволяет присылать уведомления по разным адресам на одну электронную почту.

Создали админпанель с дашбордами для администраторов. Доступна пользователям с ролью «админ» или «менеджер» с разным уровнем прав. В админпанели можно формировать и просматривать подробные отчеты по реферальной системе, использованию сертификатов, общему количеству активных подписок по регионам и Москве, а также выгружать их из системы на внешние облачные сервисы.
3 этап. Доработка личного кабинета
Реализовали возможность управлять банковскими картами для оплаты подписок. У пользователя появилась возможность привязать несколько карт или удалить ненужную через личный кабинет.
Доработали личный кабинет. Появилась возможность редактировать персональные данные, адреса доставок, сделали отображение истории рассылок.
Добавили возможность оплаты подписки бонусными и подарочными сертификатами. Сертификат продлевает подписку на срок, соответствующий номиналу. Деньги за подписку начинают списываться только после того, как срок сертификата закончился. Подарочный сертификат номиналом от 1 до 12 месяцев можно приобрести в подарок, а бонусный сертификат клиент использует для маркетинговых активностей.

Доработали реферальную систему. Добавили возможность создания и управления уникальными реферальными ссылками для рефералов, по которым они могут отслеживать количество переходов, заказов и сумму вознаграждения за приведенных пользователей.
Ввели сущность грейдов в зависимости от количества приведенных подписчиков с уникальными условиями для рефералов на каждом уровне.
В админпанели создан раздел для отображения статистики по рефералам и аффилиатам, добавлена возможность управлять и создавать отчеты реферальной программы, создавать промо реферальные коды и отслеживание переходов по ним.
4 этап. Создание функционала самовывоза
Появилась возможность вместо доставки по почте в личном кабинете выбрать самовывоз в чайных собственной сети или у партнеров. Для этого была переработана вся логика формирования подписки, т. к. до этого она была сделана под Почту России.
Для функции самовывоза разработан функционал сервиса с возможностью изменить способ получения заказа (по почте или самовывоз), выбрать пункт получения в случае самовывоза.
Для приема пакета с письмами для подписчиков и выдачи заказов получателям в точке выдачи разработан чат-бот в Телеграме, который позволяет заменить специализированное ПО.
Это работает так: сотрудник пункта самовывоза получает пакет с чайной подпиской. Через чат-бота он проводит сверку писем с помощью QR-кода. В админке происходит подтверждение получения отправителем. Подписчикам рассылается электронное письмо с информацией, что чайная подписка доставлена в выбранный пункт самовывоза и готова к выдаче. Получить письмо можно по номеру телефона, на который оформлена подписка, или показав QR-код в личном кабинете.

Что дальше
Вместе с клиентом планируем:
- доработать и оптимизировать реферальную систему и личный кабинет с целью повышения удобства для рефералов,
- добавить полноценный раздел с возможностью приобрести сертификат чайной подписки в подарок,
- настроить пакетную отправку и трекинг писем через Почту России для ускорения и упрощения логистики,
- расширить функционал аналитических инструментов и формирование новых видов отчетности,
- упростить функционал авторизации в личном кабинете для пользователей,
- оптимизировать функционал бота для выдачи конвертов в Телеграм для быстрого масштабирования партнерской сети,
- проработать возможности масштабирования чайной подписки на другие страны.