Обновление Magento 2 и расширений

Наша компания занимается разработкой, поддержкой и обслуживанием сайтов любой сложности. От простых одностраничных сайтов до масштабных кластерных систем построенных на микро сервисах. Опыт разработчиков подтвержден сертификатами от вендоров.
Разработка и обслуживание любых видов сайтов:
Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Предлагаемые услуги
Показано 1 из 1 услугВсе 2065 услуг
Обновление Magento 2 и расширений
Средняя
~3-5 рабочих дней
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1214
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    852
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1041
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    823
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    815

Обновление Magento 2 и расширений

Magento 2 обновляется через Composer — это единственный поддерживаемый способ для ядра. Обновление расширений сложнее: вендоры не всегда поддерживают новые версии синхронно, а конфликты зависимостей встречаются регулярно. Порядок действий определяет, потеряете ли вы данные и время.

Проверка перед обновлением

# Текущая версия
php bin/magento --version

# Статус системы
php bin/magento setup:upgrade --dry-run

# Проверить зависимости без изменений
composer why-not magento/product-community-edition 2.4.7

Magento Upgrade Compatibility Tool — официальная утилита для анализа совместимости кода:

composer create-project magento/upgrade-compatibility-tool uct --repository-url=https://repo.magento.com
cd uct
bin/uct upgrade:check /path/to/magento --coming-version=2.4.7

Отчёт покажет: устаревшие вызовы API, удалённые классы, изменения в БД. Особое внимание на CRITICAL-уровень — такие места сломают работу после обновления.

Резервная копия

# База данных
mysqldump -u root -p magento_db | gzip > /backups/magento_$(date +%Y%m%d).sql.gz

# Файлы (исключить кэш и сессии)
tar --exclude='./var/cache' --exclude='./var/session' \
    --exclude='./var/log' --exclude='./pub/media/catalog/product/cache' \
    -czf /backups/magento_files_$(date +%Y%m%d).tar.gz -C /var/www/shop.com .

# Composer.json и composer.lock
cp composer.json /backups/composer.json.bak
cp composer.lock /backups/composer.lock.bak

Обновление ядра Magento

# Включить maintenance mode
php bin/magento maintenance:enable

# Обновить ядро
composer require magento/product-community-edition=2.4.7 \
    --no-update

# Обновить зависимости
composer update magento/product-community-edition \
    --with-all-dependencies

# Запустить скрипты обновления
php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento setup:static-content:deploy ru_RU en_US -f

# Выключить maintenance
php bin/magento maintenance:disable
php bin/magento cache:flush

Для Magento Commerce (Adobe Commerce) процесс аналогичен, только пакет другой: magento/product-enterprise-edition.

Обновление расширений

# Посмотреть доступные обновления
composer outdated "magento/*"
composer outdated --direct

# Обновить конкретное расширение
composer require vendor/module-name:"^2.1" --no-update
composer update vendor/module-name

# После обновления расширений — всегда
php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento cache:flush

Проблема версионных конфликтов. Если composer update падает с ошибкой зависимостей:

# Диагностика конфликта
composer why-not vendor/module-name 2.1.0

# Принудительное обновление с разрешением конфликтов
composer update vendor/module-name --with-dependencies

# Если вендор не обновил пакет — можно временно ослабить ограничение
# composer.json: "vendor/module-name": ">=1.5 <3.0"

Проверка патчей безопасности

Magento регулярно выпускает Security Patches (APSB-патчи) между мажорными релизами:

# Установить Quality Patches Tool
composer require magento/quality-patches

# Список доступных патчей
php ./vendor/bin/magento-patches status

# Применить конкретный патч
php ./vendor/bin/magento-patches apply MDVA-12345

# Список применённых патчей
php ./vendor/bin/magento-patches status | grep Applied

Миграция кастомных расширений

Если разрабатывались собственные модули — после обновления ядра проверить:

# Проверить совместимость модуля
bin/uct upgrade:check /path/to/magento \
    --coming-version=2.4.7 \
    --module-path=Vendor_MyModule

# Типичные проблемы после обновления:
# 1. Deprecated __constructor injection → перейти на factory
# 2. Removed ObjectManager::getInstance() → инжектировать через DI
# 3. Changed interface → обновить implements

Производительность после обновления

# Полная перекомпиляция DI
php bin/magento setup:di:compile

# Деплой статики для нужных локалей и тем
php bin/magento setup:static-content:deploy ru_RU en_US \
    --theme Magento/luma \
    --theme Vendor/custom-theme \
    -f

# Очистка всех кэшей
php bin/magento cache:clean
php bin/magento cache:flush

# Индексирование
php bin/magento indexer:reindex

Автоматизация через CI/CD

# .gitlab-ci.yml
magento-update:
  stage: deploy
  script:
    - php bin/magento maintenance:enable
    - composer update --no-dev --optimize-autoloader
    - php bin/magento setup:upgrade --keep-generated
    - php bin/magento setup:di:compile
    - php bin/magento setup:static-content:deploy -f
    - php bin/magento maintenance:disable
    - php bin/magento cache:flush
  only:
    - tags

Флаг --keep-generated сохраняет скомпилированные файлы при setup:upgrade — ускоряет деплой в production, но требует предварительной компиляции на staging.

Сроки

Обновление Magento 2.4.x до следующей минорной версии с тестированием на staging — 1–2 дня. Если есть кастомные модули и нетривиальные зависимости — до 3–4 дней. Обновление с устаревшей версии (2.3.x → 2.4.x) — отдельная задача на 1–2 недели.