Qaynaq STUDIO ’26 / BAKU
Salam Hello Привет
Работы FW002

Hamısıburada.az · E-commerce · Миграция

10K+ товаров, миллионы строк данных — миграция с OpenCart на Laravel

Действующий маркетплейс на старом OpenCart — медленный, без мобильного приложения, без запаса роста. Десятки тысяч товаров и миллионы строк данных перенесли в новую Laravel-архитектуру с нулевой потерей. Мобильное приложение выкатили параллельно.

Срок
Многоэтапно (миграция + мобильное)
Команда
Эльвин Шарифов + backend / mobile контракторы
Услуги
Инженерия · Дизайн продукта · Мобильное приложение
Статус
В проде
10K+ Перенесённых товаров
млн+ Строк данных
0% Потеря данных
iOS+Android Мобильное приложение

Исходная точка

Hamısıburada.az — это действующий маркетплейс: ежедневный трафик, реальный поток заказов, наработанные SEO-позиции. Сайт жил на старом OpenCart с километрами кастомизаций — производительность низкая, новая функциональность добавляется всё мучительнее. Мобильного приложения нет.

Риски на пальцах: десятки тысяч товаров, десятки продавцов, категории, история цен, архив заказов, SEO-URL, профили клиентов. В новой системе всё это должно вести себя так же — ноль потери данных, ноль потери SEO, минимальный даунтайм.

Решения

  1. Laravel как новый стек. Современный PHP, живая экосистема, Eloquent, queue, Horizon, Telescope. Все возможности OpenCart переразложили на модули в Laravel.
  2. Миграционные скрипты идемпотентные — можно гонять заново, есть dry-run. На каждом шаге сверка по count-ам.
  3. SEO-URL сохранили — старые адреса повесили на 301-редиректы. Sitemap и canonical переписали.
  4. Мобильное приложение параллельно — REST API писали тем же составом, что и мобильное, и API-разъезда не случилось.

Исполнение

Миграция в три фазы: schema mapping, batch import, живой switch. В день переключения — окно «только чтение» на 4 часа: новые заказы в этот момент в БД не писались, фронт возвращал понятную ошибку. После переключения — ноль потерь.

«В миграциях самый ценный инструмент — dry-run. Каждый скрипт до боевой БД крутился десятки раз на staging.»

Мобильные приложения — нативные под iOS и Android, API на Laravel-ресурсах. Push, in-app payment, фильтр по категориям, избранное — всё в первой версии.

Результат

  • Полный переход на Laravel — новая функциональность теперь добавляется не неделями, а днями.
  • Ноль потери данных и ноль потерь SEO-позиций (старые URL — на 301).
  • iOS + Android запущены — мобильный поток заказов работает на паритете с вебом.
  • Команда сама ведёт релизы — мы остались в роли консультантов.

О проекте такого формата —
давайте поговорим.

Написать Эльвину Шарифову