E-commerce / Фармацевтика

Модернизация интернет-аптеки: от legacy-движка к современной архитектуре

Полная переработка интернет-аптеки на устаревшем движке NetCat. Избавились от legacy-кода, внедрили Git, оптимизировали каталог, добавили Telegram-авторизацию и систему бронирования.

12 месяцев
700+ задач
Россия, несколько городов

Исходная ситуация: технический долг

Клиент пришёл с работающей интернет-аптекой на движке NetCat. Сайт функционировал, но архитектурные решения делали развитие практически невозможным.

Технические проблемы

  • Нет Git — код менялся напрямую на продакшене, откат изменений невозможен
  • CSS/JS внутри PHP — стили и скрипты вшиты в шаблоны, нельзя переиспользовать
  • Проприетарные классы NetCat — сложно расширять, нет документации
  • Медленный каталог — долгие загрузки страниц, тяжёлые SQL-запросы
  • Нет фильтров и поиска — клиенты не могут найти нужный товар

Бизнес-проблемы

  • Клиенты уходили из-за медленного сайта
  • Аптеки не получали уведомления о заказах вовремя
  • Нет личного кабинета — клиенты звонили узнать статус
  • SEO-позиции падали из-за технических проблем

Результаты

35K+
товаров в каталоге
700+
задач закрыто за год
Git
контроль версий и код-ревью
TG
уведомления аптекам и клиентам
Показатель Было Стало
Контроль версий Нет Git + Code Review
Уведомления аптекам Email (задержка) Telegram (мгновенно)
Личный кабинет Нет История + статусы
SEO-оптимизация Базовая JSON-LD, YML-фиды

Что сделали

1

Архитектурный рефакторинг

Вынесли CSS/JS из PHP-шаблонов в отдельные файлы. Настроили Git-репозиторий и CI/CD. Разделили монолит на независимые сервисы: CartService, CatalogService, AuthService.

2

Новый каталог v2

Иерархия категорий с изображениями, умные фильтры, хлебные крошки. Оптимизация SQL-запросов и кэширование каталога.

3

Система бронирования

Автоматический подбор аптеки по наличию, резервирование остатков в реальном времени. Telegram-уведомления аптекам и клиентам.

4

Авторизация и ЛК

Telegram-авторизация через OTP (дешевле SMS). Личный кабинет с историей заказов, статусами в реальном времени, повторным заказом в один клик.

5

SEO и интеграции

JSON-LD микроразметка, noindex для пагинации, YML-фиды для Яндекс.Товаров. Интеграция с АСНА, FarmExpert, СМС-Центр.

Технологии

PHP MySQL REST API Git Telegram Bot API FarmExpert API АСНА API JSON-LD YML-фиды

Сложности и решения

Миграция без остановки бизнеса

Нельзя было остановить сайт на время переезда — аптеки принимают заказы каждый день. Решение: запустили v2 параллельно, постепенно переключали разделы, сохраняя работоспособность старой версии.

Legacy-код NetCat

Проприетарные классы были везде в коде. Решение: создали обёртки и адаптеры, постепенно выносили логику в независимые сервисы без привязки к движку.

Синхронизация остатков с маркетплейсами

Яндекс блокировал фиды за неактуальные остатки. Решение: мгновенное обновление YML при любом изменении наличия товара в базе.

Нужна модернизация legacy-системы?

Расскажите о вашем проекте — оценим объём работ