Миграция магазина на OpenCart: рабочие приёмы из практики
Перенос магазина на новую версию OpenCart или другой сервер ломается не на копировании файлов, а на связях между товарами, URL, заказами и расширениями. Разбираем рабочую схему миграции без потери каталога и поискового трафика.

Магазин на OpenCart можно перенести за один вечер, но именно быстрый перенос чаще всего оставляет заказы без товаров, сбрасывает настройки модулей и превращает старые URL в 404. Ниже — практическая схема для OpenCart 3.x и перехода на другой сервер или чистую установку: с выбором подхода, контрольными точками и планом отката.
Сначала определите, что именно вы переносите
Миграция бывает разной. Перенос файлов и базы на новый VPS — одна задача. Переход с OpenCart 3.x на OpenCart 4.x — уже обновление платформы с проверкой расширений и темы. Нельзя смешивать эти сценарии: копия работающего магазина не превращается в совместимую установку новой версии сама по себе.
Для материала берём базовый сценарий: магазин работает на OpenCart 3.x, а вы переносите его на другой хостинг или сервер. Если одновременно меняется версия, сначала зафиксируйте текущую копию, а затем тестируйте обновление отдельно.
- Запишите точную версию OpenCart, PHP, MySQL или MariaDB и веб-сервера.
- Составьте список расширений, темы, платёжных и доставочных модулей.
- Проверьте, где лежат пользовательские изображения, загруженные файлы и резервные копии.
- Убедитесь, что у вас есть доступ к файлам, базе данных, DNS и панели хостинга.
- Определите период заморозки заказов: обычно это короткое окно перед финальным переносом.
Сноска. Дамп базы данных — файл с SQL-командами, в котором сохранены структура таблиц и их данные. Это не то же самое, что архив каталога файлов: для полноценного восстановления нужны оба компонента.
Три подхода к миграции
Очевидное решение — скопировать папку магазина и импортировать базу. Оно подходит для простого переноса на совместимый сервер, но не учитывает изменения домена, права на файлы, конфигурацию PHP и работу фоновых задач. На практике используют один из трёх вариантов.
| Подход | Когда выбирать | Цена и риск |
|---|---|---|
| Полный клон | Та же версия OpenCart, совместимые PHP и база данных | Быстрее всего, но переносит старый мусор и несовместимые настройки |
| Тестовый клон с финальной синхронизацией | Магазин нельзя надолго выключать | Нужны два прохода и контроль новых заказов между копированием и переключением |
| Чистая установка и перенос данных | Меняется версия, тема или набор расширений | Дольше, зато проще удалить конфликтующие модули; часть настроек придётся собрать заново |
Для переезда без смены версии обычно выбирайте полный клон или тестовый клон. Для перехода с OpenCart 3.x на 4.x не переносите вслепую всю папку расширений: совместимость темы, модификаторов и платёжных модулей нужно проверять по документации каждого поставщика.
Хорошая миграция заканчивается не моментом, когда открылась главная страница, а моментом, когда найден товар, создан тестовый заказ, отправлено письмо и восстановлен план отката.
Рабочая последовательность переноса
1. Сделайте две независимые резервные копии
Сохраните архив файлов и отдельный дамп базы. Одну копию держите вне старого сервера. Не ограничивайтесь резервной копией в панели хостинга: вы должны понимать, как скачать её и восстановить на тестовой площадке.
Проверьте архив: в нём должны быть каталог изображений, файлы темы, пользовательские загрузки и конфигурационные файлы. Для базы важно увидеть ненулевой размер дампа и возможность открыть его как текстовый файл. Пароли и ключи в публичные инструкции не копируйте.
2. Подготовьте чистый стенд
Создайте технический домен или закрытую тестовую копию. Версии PHP и базы на новом сервере сначала приблизьте к рабочему окружению. Резкий переход на новую версию PHP во время миграции усложняет поиск причины ошибки: проблема может быть в сервере, OpenCart или расширении.
Закройте стенд от поисковой индексации и случайных покупателей. Проверьте, что веб-сервер отдаёт правильную директорию магазина, а PHP может записывать в каталоги, которые использует OpenCart и его расширения.
3. Перенесите файлы и базу отдельно
Сначала загрузите файлы, затем создайте пустую базу и импортируйте дамп. После импорта проверьте, что таблицы сохранились с нужным префиксом, а кодировка не превратила русские названия в нечитаемые символы.
В конфигурационных файлах укажите новые параметры подключения к базе, путь к файлам и URL тестового стенда. Не заменяйте адреса механически во всех файлах: абсолютные URL могут находиться в настройках, описаниях товаров, модулях и шаблонах, а часть значений — в базе.
4. Проверьте магазин как покупатель и администратор
Начните с каталога, а не с красивой главной страницы. Откройте категорию, карточку товара, поиск, корзину и оформление заказа. Затем войдите в административную часть и проверьте заказы, клиентов, остатки, купоны и настройки доставки.
- Карточка товара показывает изображения, цену, опции и остаток.
- Поиск находит товар по названию и артикулу.
- Корзина сохраняет товар после перехода между страницами.
- Тестовый заказ получает правильный статус, а письмо уходит на проверенный адрес.
- Платёжный и доставочный модули открывают свои настройки без фатальной ошибки.
- Администратор видит старые заказы и клиентов, но не получает лишних прав.
5. Переключите домен только после финальной копии
Перед переключением включите режим обслуживания или временно остановите приём новых заказов по согласованному плану. Сделайте свежий дамп базы, потому что после первого тестового клона в старом магазине могли появиться новые заказы, клиенты и изменения остатков.
После импорта финальной базы ещё раз проверьте домен, HTTPS, почту, платёжный модуль и URL изображений. Затем измените DNS или настройки прокси. Не удаляйте старый сервер сразу: оставьте его доступным до завершения контрольного периода и убедитесь, что на нём не принимаются заказы после переключения.
Что чаще всего ломается
Ссылки ведут на старый домен
Причина обычно в настройках магазина, SEO-модуле, шаблоне или данных, где сохранён старый адрес. Проверьте главную страницу, карточку товара, изображения, canonical-ссылки и ссылки в письмах. Редирект со старого домена на новый должен быть осознанным: бесконечная цепочка перенаправлений хуже обычной ошибки.
Админка открывается, а каталог выдаёт 500
Ищите различия в версии PHP, правах на файлы и сторонних расширениях. Сначала смотрите журнал ошибок веб-сервера и журнал OpenCart, затем временно отключайте подозрительный модуль на копии. Не удаляйте файлы расширения до резервного копирования: так вы потеряете возможность быстро вернуть исходное состояние.
Пропали изображения или часть товара
Проверьте, перенесён ли каталог изображений и совпадают ли пути к нему. Если товары есть в базе, но картинки не открываются, проблема обычно не в импорте товаров, а в файлах, правах доступа или неправильном пути в конфигурации.
Заказ создаётся, но оплата не проходит
Платёжный модуль может проверять домен, HTTPS, IP-адрес сервера или callback-адрес. Тестовый стенд не всегда способен завершить реальную оплату. После переключения домена проведите согласованный тестовый платёж и проверьте, как меняются статусы в OpenCart и у платёжного провайдера.
Письма не доходят
Проверьте настройки SMTP, адрес отправителя и записи домена, связанные с почтой. Тест «форма показала сообщение об успехе» не доказывает доставку: смотрите журнал почтового сервера и фактическое письмо в ящике получателя.
Когда какой подход выбирать
Берите полный клон, если версия OpenCart и окружение остаются теми же, магазин небольшой, а допустимое окно обслуживания измеряется часами. Выбирайте тестовый клон, если магазин принимает заказы постоянно и вам нужна репетиция на новом сервере. Чистая установка оправдана при смене мажорной версии, темы или большого набора расширений: она уменьшает наследуемые конфликты, но требует отдельного плана переноса данных.
SEO-перенос не сводится к копированию каталога. До переключения соберите список важных URL, проверьте сохранение адресов товаров и категорий, настройте редиректы только там, где адрес действительно изменился, и следите за ошибками 404 после запуска.
Что делать после переключения
В первые дни смотрите не только доступность сайта. Проверяйте количество новых заказов, ошибки 4xx и 5xx, скорость оформления, отправку писем, статусы оплат и рост 404. После подтверждения данных сделайте новую резервную копию уже работающего магазина и задокументируйте версии OpenCart, PHP, базы и расширений.
Если следующий шаг — обновление с OpenCart 3.x на 4.x, не выполняйте его на боевой копии. Поднимите отдельный стенд, составьте матрицу совместимости темы и расширений, перенесите тестовые данные и только после этого оценивайте окно простоя и план отката.
Инфографика для маркетплейса: Три главных преимущества товара короткими фразами, выноски в безопасной зоне превью, точный размер площадки.
Спросить за 60 ₽Источники: Официальная документация OpenCart, Репозиторий OpenCart на GitHub
Частые вопросы
Можно ли перенести OpenCart без остановки магазина?
Перенесутся ли заказы и клиенты?
Можно ли сразу обновить OpenCart 3.x до 4.x во время миграции?
Что делать, если после переезда появилась ошибка 500?
Нужно ли менять DNS сразу после импорта базы?
Потеряется ли SEO-трафик после смены хостинга?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.