Миграция с OpenCart на Laravel
без потери данных и трафика
OpenCart был быстрым стартом, но ядро давно не получает нормальных обновлений, а половина функциональности держится на модификаторах, которые правят код магазина на лету.
Переводим магазин на Laravel: каталог, заказы и клиенты получают нормальную схему, платежи и доставка настраиваются явно, а вместо модификаторов появляется код, который можно читать и тестировать.
Посмотрим вашу систему, данные и интеграции. Скажем, сколько это займёт, что переносится, а что придётся делать заново.
Ответ 15 мин
Почему уходят
OpenCart: что перестаёт устраивать
Каждый пункт — не «мода на новый фреймворк», а конкретная проблема, которая стоит денег
или времени. Проверьте, сколько из них про вас.
01
Ядро без обновлений
Ветки 1.5, 2.x и 3.x годами не получают исправлений безопасности, а обновление до актуальной версии само превращается в проект.
Что делаем: Переводим на поддерживаемый стек с актуальной версией PHP и зависимостями, которые обновляются через менеджер пакетов.
02
Магазин собран из модификаторов
vQmod и ocmod правят файлы ядра на лету: непонятно, какой код работает на самом деле, а любой модификатор может конфликтовать с другим.
Что делаем: Логику, которая спрятана в модификаторах, собираем в явные сервисы с тестами. Поведение магазина становится предсказуемым и воспроизводимым.
03
Медленный каталог и фильтры
Опции и атрибуты хранятся в десятках связанных таблиц, поэтому фильтры и категории с большим числом товаров работают тяжело.
Что делаем: Нормализованная схема с правильными индексами, кеш подборок в Redis и CDN для изображений. Фильтры считаются быстрыми запросами.
04
Модули платежей и доставки устарели
Модули писались под старые API платёжных систем и служб доставки: часть работает нестабильно, часть уже не поддерживается.
Что делаем: Подключаем актуальные версии интеграций и делаем их явными: видно, что настроено, где ключи и как читать ошибки.
05
SEO из коробки даёт дубли
Фильтры, пагинация и сортировки создают множество адресов с одинаковым контентом, а метаданные заполняются вручную по каждому товару.
Что делаем: Проектируем правила индексации: что становится посадочной, что закрывается, где canonical. Метаданные генерируются по шаблонам с ручной правкой важных страниц.
06
Доработки стоят всё дороже
Каждая правка требует правки ядра и нового модификатора: цена изменений растёт, а поддерживать конструкцию становится опаснее.
Что делаем: Laravel даёт нормальные слои: контроллеры, сервисы, модели, тесты. Новая функциональность добавляется без хирургии по ядру.
Карта переноса
Что переносим: OpenCart → Laravel
Переносится не «сайт», а данные, логика и связи между ними. Ниже — что именно
описывается и переносится, чтобы новая система работала как старая, только быстрее.
Каталог
Товары, модели и артикулы
Опции и их значения
Атрибуты и группы атрибутов
Категории и производители
Цены, акции и скидки
Изображения и медиа
Продажи
Заказы и история статусов
Клиенты и адреса
Корзины и избранное
Купоны и бонусы
Отзывы о товарах
Интеграции
Платёжные системы
Службы доставки и расчёт
Склад и 1С
Маркетплейсы и фиды
Уведомления клиентам
SEO
ЧПУ товаров и категорий
Метаданные и заголовки
Карта URL и редиректы
Микроразметка товаров
Sitemap и фиды
Честно
Что не переносится один в один
Мы не обещаем «то же самое, только на Laravel»: часть вещей переносится смыслом,
а не кодом. Об этом лучше знать до старта, чем обнаружить в процессе.
Модификаторы vQmod и ocmod: их логика переносится в код, сами файлы не нужны.
Тема и её правки один в один: собираем чистую вёрстку, визуально близкую к текущей.
Модули из маркетплейса: часть заменяем сервисами, часть реализуем своим кодом, часть оказывается лишней.
Структура таблиц oc_* как есть: схема проектируется заново под задачи магазина.
Старый PHP-код и библиотеки: переписываются на актуальные версии.
Риски
OpenCart: риски и как мы их закрываем
У каждой системы свои ловушки. Мы называем их заранее и описываем, как закрываем —
до того, как они превратятся в сюрприз в середине проекта.
Логика внутри модификаторов
Поведение магазина может отличаться от «чистого» OpenCart. Восстанавливаем реальные правила по коду и интервью с сотрудниками.
Цены и скидки в разных местах
Акции, групповые цены и скидки живут в нескольких таблицах. Сверяем итоговые суммы на тестовых заказах до переключения.
SEO-дубли от фильтров
Тысячи адресов фильтров и сортировок. Проектируем правила индексации и закрываем лишнее, иначе новый сайт унаследует проблему.
Устаревшие модули доставки
Расчёт доставки мог быть самописным. Переносим правила расчёта и проверяем их на реальных адресах и весах.
План
Как проходит миграция
Шесть этапов, каждый заканчивается проверяемым результатом. Бизнес продолжает работать:
старый контур не выключается, пока новый не докажет, что считает и отдаёт данные правильно.
011–3 недели
Аудит и карта системы
Разбираем текущую систему: схема данных, точки входа, интеграции, задачи по расписанию, реальные бизнес-правила. На выходе — карта системы и оценка объёма.
022–3 недели
Архитектура и план переноса
Проектируем схему данных на Laravel, выбираем стратегию перехода, описываем этапы, критерии приёмки и план по SEO-редиректам.
032–6 недель
Стенд и перенос данных
Поднимаем новый контур, переносим данные, сверяем суммы, связи и справочники. Разрабатываем модули, начиная с тех, что дают деньги.
04по ситуации
Параллельная работа
Новый и старый контуры работают одновременно: разделы переключаются по одному после сверки. Пользователи не замечают переезда.
052–5 дней
Переключение трафика
Переводим домен, включаем 301-редиректы по карте URL, проверяем sitemap, счётчики и цели. Контролируем индексацию и ошибки.
062–4 недели
Стабилизация и передача
Следим за метриками, правим найденное, обучаем команду, передаём документацию, доступы и регламенты.
Особенности плана: OpenCart
Начинаем с инвентаризации модификаторов: без этого нельзя понять, как магазин работает на самом деле.
Каталог переносим и проверяем на выгрузке реальных заказов — цены и скидки должны сойтись до копейки.
Платёжные модули подключаем на тестовых аккаунтах до переключения трафика.
Старый магазин оставляем доступным для сверки заказов на период стабилизации.
SEO и трафик
Трафик из поиска не должен просесть
Главный страх при переезде — потерять позиции. Поэтому SEO-часть мы делаем до переключения
и контролируем после, а не «посмотрим, что будет».
Карта URL до переезда
Собираем все адреса старой системы из базы, sitemap и логов: карточки, категории, пагинация, фильтры, старые ЧПУ.
301-редиректы 1:1
Совпадающие адреса сохраняем, остальные закрываем постоянными редиректами — без «главной страницы вместо товара».
Метаданные и заголовки
Переносим title, description, H1 и тексты, а не генерируем заново: поиск уже знает эти страницы.
Микроразметка
Товары, хлебные крошки, отзывы, FAQ — разметка сохраняется и валидируется заново на новом контуре.
Sitemap и robots
Актуальная карта сайта, корректные правила обхода, отсутствие закрытых от индексации нужных страниц.
Счётчики и цели
Метрика, аналитика, цели и события переносятся и проверяются до переключения, чтобы не потерять статистику.
Мониторинг после релиза
Следим за ошибками 404/500, индексацией и позициями первые недели — редиректы и обход проверяются на живом трафике.
Стек
На что переводим: Laravel и вокруг
Открытые технологии без лицензий. Стек подобран так, чтобы систему могла развивать
любая PHP-команда, а не только её автор.
Интерфейсы без перезагрузок: админка, таблицы, формы, фильтры.
PostgreSQL или MySQL
Нормализованная схема, индексы под реальные запросы, реплики для отчётов.
Redis
Кеш, сессии и очереди вместо файлового кеша и cron-скриптов.
Horizon и очереди
Фоновые задачи с повторами, приоритетами и мониторингом.
Тесты и CI/CD
Покрытие критичных сценариев, отдельные окружения, релизы и откаты в одну команду.
Наблюдаемость
Логи, метрики и алерты: видно ошибки и деградацию до жалоб пользователей.
API и интеграции
Явные контракты обмена с 1С, платежами, доставкой, CRM и маркетплейсами.
Когда миграция не нужна
Мы не берём проект, если переход не окупается: иногда дешевле починить текущую систему
или обновить её. Честный ответ экономит вам бюджет.
Магазин небольшой, обновляется редко и полностью устраивает по скорости и функциям.
Планируется переход на маркетплейсы вместо собственного магазина.
Нужен только новый дизайн: это делается на текущей теме.
Форматы работ
Как можно начать
Можно взять только аудит и план — и внедрять своими силами. Можно мигрировать этапами.
Можно переписать систему целиком. Выбор зависит от состояния кода и от того, сколько бизнес
готов ждать.
Аудит и план миграции
Нужно понять объём работ, риски и стоимость до принятия решения.
Карта системы и данных
Схема данных на Laravel
План этапов и критерии приёмки
План SEO-редиректов
Оценка сроков и бюджета
фиксированная стоимостьАудит можно внедрять своими силами
Там, где структура совпадает, — да, адреса сохраняются один в один. Остальные закрываем 301-редиректами: карту URL собираем из базы OpenCart и логов, включая адреса пагинации, фильтров и старых ЧПУ. Отдельно переносим метаданные и микроразметку товаров.
Что делать с модификаторами vQmod и ocmod?
Мы разбираем каждый: что он меняет в поведении магазина, нужен ли этот эффект сейчас и как его реализовать нормально на Laravel. Функциональность переносится в код с тестами, а не в ещё один слой правок. Иногда выясняется, что часть модификаторов решает задачу, которой уже нет.
Переносятся ли заказы и клиенты?
Да: заказы, статусы, история, клиенты, адреса, купоны и отзывы. Мы сверяем суммы и состав заказов выборочно вручную — на нестандартных скидках и оптовых условиях автоматика чаще всего и ошибается.
Как быстро окупается переход с OpenCart?
Экономия идёт по трём направлениям: скорость (конверсия и позиции), стоимость поддержки (правки без модификаторов дешевле) и безопасность (актуальные версии вместо неподдерживаемого ядра). Точную оценку эффекта даём после аудита: она зависит от объёма каталога и текущей конверсии.
Можно ли сначала перенести только каталог, а заказы оставить?
Технически можно, но на практике это создаёт два источника правды по остаткам. Мы предпочитаем переносить каталог и заказы вместе и переключать их одним шагом после сверки, а остальные разделы (блог, отзывы, статические страницы) вытеснять постепенно.
Как переносится база данных при миграции?
Схема переносится целиком, включая историю операций: заказы, платежи, заявки, справочники. Перед переносом проверяем целостность данных и чистим дубли. На новом контуре схема нормализуется: появляются типы, ограничения и внешние ключи, которые не дают создавать несогласованные записи. Сверку делаем выборочно вручную по ключевым таблицам, а не только отчётом из скрипта.
Как гарантируется, что трафик из поиска не просядет?
Карта URL собирается до переезда: из базы, sitemap и логов сервера. Совпадающие адреса сохраняются один в один, остальные закрываются 301-редиректами. Метаданные, заголовки и микроразметка переносятся, а не генерируются заново. После переключения мы следим за ошибками, индексацией и позициями — обычно это 2–4 недели наблюдения.
Что происходит с интеграциями: 1С, платежи, доставка, CRM?
Каждая описывается до разработки: что передаётся, как часто, что считается успехом и как видеть ошибки. В новой системе обмены становятся явными: журнал синхронизации, повторные попытки, алерты. Платёжные модули подключаем на тестовых аккаунтах до переключения трафика.
Можно ли обойтись без полного переноса?
Да. Варианты: укрепить текущую систему (закрыть уязвимости, добавить тесты, навести порядок в бэкапах), вынести отдельный модуль на Laravel и связать через API или шину, либо рефакторить по частям. На аудите мы говорим прямо, какой путь дешевле — иногда это отказ от полного переноса.
Сколько стоит миграция?
Стоимость зависит от объёма данных, числа интеграций, количества кастомной логики и требований к сохранению SEO. Аудит и план миграции фиксируются по цене заранее, дальше проект считается этапами с понятным результатом на каждом. По объёму работ миграция сопоставима с разработкой нового проекта — но с сохранением данных, истории и трафика.
Что будет с сотрудниками, которые работают в старой системе?
Мы меняем систему, а не процессы: админка собирается под их задачи, а обучение входит в проект. Обычно новая админка нравится больше: понятные формы, живые таблицы, отчёты без участия разработчика. Для сложных мест пишем короткие инструкции.
Кому принадлежат код и данные после миграции?
Вам. Код, схема данных, документация, доступы и инфраструктура оформляются на вас с самого начала. Мы не удерживаем проект в своём контуре: его можно передать другой команде, а документация описывает систему так, чтобы ей мог заняться любой PHP-разработчик.
Что нужно от нас для старта?
Доступ к исходному коду и базе данных (или их копиям), список интеграций и сервисов, контакт человека, который знает бизнес-логику и процессы, и данные о том, что критично не потерять при переезде. Дальше мы работаем сами и показываем промежуточные результаты.
Следующий шаг
Разберём вашу систему
Посмотрим код, базу и интеграции. Скажем, что переносится, что придётся делать заново,
сколько это займёт и как сохранить трафик. Без обязательств.
Мы используем необходимые cookie для работы сайта и форм. Аналитические cookie
(Яндекс.Метрика, включая запись сессий) подключаем только с вашего согласия —
от него можно отказаться. Подробнее:
Политика использования cookie
и
обработка персональных данных.
Настройки cookie
Выберите, какие категории cookie можно использовать. Необходимые отключить нельзя:
без них не работают формы и сессия.