Щенок Игруля — интернет-магазин премиального корма
Интернет-магазин с ЮKassa, СДЭК Fulfillment (FBS), Telegram-уведомлениями и админкой: от карточки товара до автоматической отправки заказа на склад.
- маркетплейс → свой сайтКасаний для заказа
- 0 ручных действий на отправку (СДЭК FBS)
- 54-ФЗ фискализация и чеки ЮKassa
Задача
Клиент продаёт премиальный корм-холистик для собак. До этого товар был доступен только на Ozon — маржу съедала комиссия маркетплейса, а контроль над воронкой и брендом отсутствовал.
Нужен собственный интернет-магазин с полным циклом: витрина товара, корзина, онлайн-оплата с фискализацией по 54-ФЗ, автоматическая доставка через СДЭК и админ-панель для управления заказами. При этом — минимум ручных действий: после оплаты заказ должен сам уходить на склад СДЭК.
Решение
Витрина
Главная страница — карточка товара с галереей фотографий (Swiper.js, lightbox при клике), развёрнутым составом и бейджами «Гипоаллергенный», «Холистик», «Без глютена». Основная кнопка — «Добавить в корзину», рядом — альтернативная ссылка «Купить на Ozon» для тех, кому удобнее маркетплейс.
Корзина и чекаут
Корзина с управлением количеством, динамическим пересчётом суммы и встроенным виджетом СДЭК. Покупатель выбирает пункт выдачи на интерактивной карте или курьерскую доставку — стоимость пересчитывается в реальном времени на основе веса и габаритов товаров. Форма получателя: ФИО, телефон с маской +7, email.
Оплата ЮKassa
Интеграция с ЮKassa REST API v3 с полным соблюдением 54-ФЗ:
- Формирование чека с позициями товаров и доставки
- Idempotence-Key для защиты от дублирования платежей при повторных запросах
- Верификация вебхуков: IP whitelist (весь пул ЮKassa) + подтверждение статуса через серверный API-запрос
- Защита от гонки состояний:
SELECT ... FOR UPDATEпри обновлении статуса заказа - Страница успеха с HMAC-подписью — номер заказа виден только для оплаченных заказов
СДЭК Fulfillment (FBS)
После подтверждения оплаты сервер автоматически создаёт заказ в системе СДЭК Fulfillment:
Оплата подтверждена (webhook)
→ Создание заказа в СДЭК (OAuth + FBS API)
→ Получение трек-номера (polling 3 сек)
→ Сохранение в БД
→ Синхронизация статусов через СДЭК webhooks
Статусы СДЭК автоматически транслируются в статусы заказа: CREATED → В обработке, SHIPPED → Отправлен, DELIVERED → Доставлен. Админ видит трек-номер (кликабельная ссылка на cdek.ru) и текущий статус в реальном времени.
Telegram-уведомления
При каждой успешной оплате админ мгновенно получает форматированное HTML-сообщение в Telegram: номер заказа, ФИО, телефон, товары с количеством, стоимость товаров и доставки, способ получения и комментарий покупателя.
Админ-панель
Защищённая JWT-авторизацией панель с тремя разделами:
- Заказы — таблица с фильтрацией по статусу, дате, типу доставки; поиск по имени, телефону, email. Детали заказа с данными СДЭК Fulfillment (UUID, трек-номер, тип доставки)
- Товары — управление каталогом: фото (drag & drop, reorder), видео, состав, бейджи, привязка к SKU на складе СДЭК, вес и габариты для расчёта доставки
- Настройки — смена пароля (rate limit), Telegram Chat ID и токен бота
Безопасность
- JWT в httpOnly-cookie (secure + SameSite strict)
- IP whitelist для вебхуков ЮKassa + серверная верификация через API
- Загрузка файлов: MIME + расширение + magic bytes + лимит 5 МБ
- Rate limiting: авторизация, смена пароля, расчёт доставки
- CSP, HSTS, X-Frame-Options, Referrer-Policy
- Zod-валидация на всех API-эндпоинтах
Результат
| Показатель | До | После |
|---|---|---|
| Канал продаж | Только Ozon (комиссия) | Свой сайт + Ozon как альтернатива |
| Обработка заказа | Вручную | Автоматически (ЮKassa → СДЭК FBS → Telegram) |
| Фискализация | Через маркетплейс | 54-ФЗ, собственные чеки ЮKassa |
| Контроль над воронкой | Нет | Полный (админка, аналитика, уведомления) |
| Доставка | Ручной ввод в СДЭК | Автосоздание + трекинг через API |
Нужен интернет-магазин с оплатой и автоматической доставкой? Напишите — обсудим задачу.
Спасибо большое Владиславу за оперативную качественную разработку. На время проекта мы стали настоящей командой: Владислав неоднократно предлагал новшества и помогал в реализации всех моих задумок. Специалисту характерны умение слушать и слышать. Обязательно обращусь ещё!
Полностью автоматизированный цикл: оформление заказа → оплата ЮKassa → СДЭК создаёт отправление → админ получает уведомление в Telegram.