600 000
Электронная коммерция
Декабрь 2025
Контекст и проблема
Компания запустила витрину на Tilda, но стандартного функционала конструктора оказалось недостаточно для реальной e-commerce-операции: сложный каталог с вариантами дозировок, учёт остатков, предзаказы на отсутствующие позиции, оформление заказов через мессенджеры, партнёрская программа, промокоды и подарочные сертификаты, интеграция с CRM SendPulse. Заказы дублировались, данные о товарах расходились с Tilda, менеджеры тратили время на ручной перенос заявок в мессенджеры и CRM.
Бизнес-задача
Спроектировать и реализовать кастомную backend-платформу и набор виджетов, которые расширяют Tilda до полноценного интернет-магазина: синхронизация каталога, приём заказов, управление складом, предзаказы, промо-механики, партнёрский кабинет и админ-панель для операционной команды.
Функциональные требования
1. Витрина и каталог (Tilda + кастомизация)
— Дизайн и UX на Tilda Store: главная, каталог ~40 SKU, карточки товаров с вариантами
— Кастомные стили (custom.css): кнопки, табы, статусы «Ожидаем поставку»
— SEO: sitemap, метатеги, адаптивная вёрстка
2. Синхронизация каталога с backend
— JS-виджет синхронизации товаров, вариантов, цен и остатков из DOM Tilda в БД
— Защита от дублей (стабильные UID, фильтрация локализованных подписей)
— Поддержка двух витрин: RU и KZ
3. Оформление заказа через мессенджеры
— Виджет выбора канала связи (Telegram, WhatsApp и др.) прямо в корзине
— Копирование текста заказа в буфер, подтверждение без лишних редиректов
— Защита от повторной отправки одного заказа
— Webhook приёма заказов с витрины
4. Промо, рефералы, сертификаты
— Промокоды, реферальные ссылки (?ref=, ?promo=)
— Подарочные сертификаты (QR, deep-link ?bg_cert=)
— Валидация промо на backend, персональные скидки, программа лояльности
5. Предзаказы
— Кастомная форма предзаказа для товаров «нет в наличии» (iframe + postMessage)
— Админка: список предзаказов, уведомления о поступлении, рассылки, интеграция SendPulse
6. Админ-панель (271 API-эндпоинт)
— Заказы: статусы, оплата, трекинг, экспорт, сверка с SendPulse
— Склад: остатки, движения, отчёты (дефицит, закупки, оценка)
— Клиенты, промо, партнёры и комиссии
— Inbox/CRM: переписка с клиентами, шаблоны, привязка к заказам
— Турниры/акции, калькулятор дозировок пептидов
7. Партнёрский кабинет
— Регистрация, авторизация, статистика, экспорт заказов, комиссии
8. Интеграции
— SendPulse (CRM, сделки, канбан)
— Pact (мессенджеры)
— Webhook-шина для заказов и обновлений
Нефункциональные требования
— Backend: Python/FastAPI, REST API, OpenAPI
— Хостинг: Railway (production)
— Надёжность: health-check, идемпотентность webhook, fail-open логика в виджетах
— Безопасность: JWT для admin/partner, аудит-лог
— Мультисайтовость: site_id ru/kz
Ограничения
Нельзя отказаться от Tilda как витрины — backend и виджеты должны встраиваться в существующий магазин без миграции на другой CMS. Критична стабильность checkout в мобильных браузерах и мессенджерах.
Итог проекта
Команда реализовала полноценную e-commerce-платформу BeGlow поверх Tilda: публичные витрины https://be-glow.ru и https://be-glow.kz, backend с 271 REST API-эндпоинтом, набор JS-виджетов и админ-панель для операций, маркетинга и склада.
Архитектура
— Витрина: Tilda Store (каталог, корзина, доставка, оплата)
— Кастомный слой: custom.css + 4+ JS-виджета в HEAD сайта
— Backend: FastAPI (Railway), OpenAPI 3.1, PostgreSQL
— Интеграции: SendPulse CRM, Pact (inbox), webhooks заказов
Реализованные компоненты витрины
1. Дизайн и UX на Tilda
Главная страница с УТП, каталог пептидов (~40 товаров), карточки с вариантами дозировок, блоки «О нас», доставка по РФ от 24 ч и СНГ 3–10 дней. Кастомный custom.css: стилизация кнопок каталога, табов описания, счётчика корзины, замена «Sold out» на «Ожидаем поставку».
2. Product Sync Widget (v4)
Автосинхронизация каталога Tilda → backend: названия, варианты, цены, остатки. Антидублирование по data-product-uid, игнорирование локализованных подписей и китайских рендеров, сканирование только основного каталога. Поддержка site_id: ru / kz.
3. Promo Widget (v31)
Реферальные ссылки, промокоды, подарочные сертификаты (QR и deep-link), сохранение в localStorage, применение в корзине Tilda.
4. Contact Channel Widget (v23)
Выбор мессенджера в корзине, валидация контакта, копирование текста заказа, inline-подтверждение без потери transient activation на мобильных, защита от дублирования submit через fingerprint корзины.
5. Preorder Form
Кастомная форма предзаказа через iframe + postMessage для товаров не в наличии; передача контекста товара, варианта, фото и URL карточки.
Backend и админ-панель (ключевые модули)
— Заказы: приём webhook, статусы, оплата, трекинг, экспорт, сверка SendPulse, twin-detection
— Предзаказы: CRUD, рассылки о поступлении, дедупликация, push в CRM
— Каталог и склад: продукты, варианты, категории, остатки, движения, 8 типов отчётов
— Промо и лояльность: промокоды, персональные скидки, tier-программа, сертификаты
— Партнёры: регистрация, комиссии, выплаты, экспорт
— Inbox/CRM: диалоги, шаблоны, привязка к заказам/предзаказам, Pact sync, SSE stream
— Турниры и акции: рейтинги, розыгрыши, антифрод, выдача сертификатов
— Калькулятор пептидов: рецепты дозировок, blend-формулы
— Аудит-лог, feature flags, brand settings
Партнёрский API
Отдельный кабинет: login/register, статистика, экспорт заказов, история комиссий.
Публичное API
Каталог, валидация промо, предзаказы, статус заказов, публичные турниры, QR конфигурация сертификатов.
Интеграции
SendPulse: импорт клиентов и заказов, канбан, webhook deal-updated, reconcile-runner. Pact: каналы мессенджеров, inbox webhook
— Запущены две витрины: be-glow.ru и be-glow.kz
— Каталог ~40 SKU с вариантами, актуальные остатки в backend
— Checkout через мессенджеры без дублей и потери заказов на мобильных
— Предзаказы и автоуведомления о поступлении
— Партнёрская и промо-программа из коробки
— Операционная команда работает в единой админке вместо разрозненных таблиц и CRM вручную
Статус: платформа в продакшене, витрина принимает заказы, backend обрабатывает синхронизацию, промо, предзаказы и интеграции с CRM.