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

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

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

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

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

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

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

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

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

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

Результаты

3x
быстрее загрузка
274
задачи выполнено
0
откатов благодаря Git
100%
заказов в Telegram
Показатель Было Стало
Загрузка каталога 5-7 секунд 1.5-2 секунды
Контроль версий Нет Git + Code Review
Уведомления аптекам Email (задержка) Telegram (мгновенно)
Личный кабинет Нет История + статусы
SEO-оптимизация Базовая JSON-LD, YML-фиды

Что сделали

1

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

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

2

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

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

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-системы?

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