Перейти к содержанию
Разработка

Завершили миграцию B2B-каталога и выпустили мобильное приложение для MKDevelop

Иван Стародубов, MSK.ONL

Завершили один из тех проектов, которые начинаются со слов «надо немного обновить старый сайт», а заканчиваются практически полной заменой платформы.

MKDevelop - B2B-каталог электронных компонентов и радиодеталей - много лет работал на Drupal 6. Сайт продолжал выполнять свои задачи, но поддерживать и развивать проект на настолько старой платформе становилось всё сложнее. Поэтому вместо очередного обновления legacy-кода мы постепенно перенесли проект на современный стек.

В результате старый Drupal-сайт фактически был заменён новым приложением на Laravel, при этом постарались сохранить накопленные за годы данные, привычную структуру каталога и старые адреса страниц.

Что перенесли

На момент миграции основной каталог содержал около 26,5 тысячи складских позиций в 39 разделах.

Отдельная задача — архивный каталог товаров «под заказ». Из старой Drupal-базы было перенесено более 225 тысяч позиций от нескольких поставщиков и из исторических выгрузок.

Чтобы переход не превращался в полный обрыв старого сайта, для прежних адресов групп и карточек товаров были добавлены 301-редиректы, а часть информационного контента также была перенесена из Drupal.

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

Одновременно с миграцией довольно сильно переработали сам принцип работы сайта.

Теперь каталог автоматически обновляется, поддерживает актуальные остатки, розничные и оптовые цены, поиск по названию и артикулу, позиции со склада и товары «под заказ».

Появились нормальная корзина, оформление заявок, личный кабинет, история и статусы заказов, реквизиты компаний, счета PDF, избранное и отдельная административная часть для управления каталогом и заявками.

Поиск тоже пришлось делать с учётом специфики каталога компонентов: например, запрос db9f должен находить DB-9F, а случайно набранный артикул в неправильной раскладке клавиатуры — по возможности всё равно приводить пользователя к нужной позиции.

mkdevelop-site

От сайта к API

Но одной заменой Drupal задача в итоге не ограничилась.

После переноса основной логики появился REST API, через который с тем же каталогом, аккаунтами и заявками теперь может работать не только веб-сайт.

Это позволило не делать мобильное приложение отдельным проектом со своей бизнес-логикой и своей базой данных. Сайт и мобильный клиент используют одну серверную часть.

Мобильное приложение MKDevelop

Параллельно было разработано приложение MKDevelop на Flutter.

В нём доступны основные сценарии B2B-каталога:

  • каталог и поиск электронных компонентов;

  • карточки товаров, цены и наличие;

  • избранное;

  • корзина с сохранением и синхронизацией;

  • оформление заявок;

  • профиль и реквизиты компании;

  • история и статусы заявок;

  • просмотр доступных счетов PDF;

  • запрос товаров из каталога «под заказ».

mkdevelop - rustore

Приложение уже опубликовано в RuStore.

В итоге

Получилась не просто смена CMS и не редизайн старого сайта.

За старым доменом теперь работает фактически новая система: современный B2B-каталог с автоматическим импортом данных, API, личным кабинетом и мобильным клиентом.

При этом большая часть накопленных за годы товарных данных и старых URL была сохранена.

Для меня этот проект ещё и хороший пример того, как сейчас можно подходить к legacy-системам. Не обязательно бесконечно обновлять проект поколение за поколением и пытаться довести Drupal 6 до актуальной версии. Иногда рациональнее оставить от старой системы данные и бизнес-логику, которые действительно имеют ценность, а клиентскую и серверную часть собрать заново на современном стеке.

Следующий этап - уже не миграция, а обычное развитие продукта: улучшение каталога и поиска, дальнейшая синхронизация сайта и приложения и новые сценарии для постоянных B2B-клиентов.

И да, если раньше за подобный проект можно было заплатить несколько миллионов рублей минимум, а с учетом разработки мобильного приложения и гораздо больше, то сейчас реализация возможна за гораздо меньшие суммы, начиная от 300-400 тыс. руб. при наличии четкого представления что именно вы хотите получить в итоге в минимально рабочей версии проекта (MVP).

mkdevelop-banner

Нужен сайт или приложение?

Обсудим ваш проект бесплатно

Оставить заявку

Мы используем файлы cookie для улучшения работы сайта. Продолжая пользоваться сайтом, вы соглашаетесь с их использованием.