Оновлення Magento 2 та розширень

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

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Оновлення Magento 2 та розширень
Середня
~3-5 робочих днів
Часті питання
Наші компетенції:
Етапи розробки
Останні роботи
  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Обновленя 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

# Увімкнути режим обслуговування
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 uk_UA en_US -f

# Вимкнути режим обслуговування
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 uk_UA 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 тижні.