Статті · 07.11.2026
OpenCart після переходу на PHP 8: що ламається
Хостер вимикає PHP 7.4, ви перемикаєте версію — і магазин показує білий екран або сторінку з помилками. Це типова ситуація, і вона майже завжди виправляється без переробки магазину.
Чому так стається
PHP 8 прибрав застарілі функції й став суворішим до помилок, які PHP 7 мовчки пропускав. Ядро старих версій OpenCart і особливо сторонні модулі писались під PHP 5–7 і на цих місцях падають.
- OpenCart 2.x і ранні 3.0.x без правок з PHP 8 не працюють;
- у новіших 3.0.x ядро значною мірою сумісне, але модулі й теми — ні;
- OpenCart 4 розрахований на PHP 8, але модулі від 3.x до нього не підходять.
Типові помилки і що вони означають
Знайдіть повідомлення в журналі помилок (system/storage/logs/error.log або лог PHP у панелі хостингу) — за ним видно, який файл і рядок винні.
- Call to undefined function each() / create_function() — функції видалені в PHP 8, код треба переписати на foreach і анонімні функції;
- count(): Argument #1 must be of type Countable|array — код рахує елементи у змінної, яка буває null; раніше це було попередження, тепер фатальна помилка;
- Undefined array key / Undefined variable — це попередження, але якщо показ помилок увімкнений, вони ламають верстку й AJAX-кошик;
- Required parameter follows optional parameter — застарілий порядок параметрів у функціях модулів;
- ionCube Loader … not installed — закодований модуль, для нього потрібна версія від розробника під ваш PHP.
Як оновитися без простою
- зробіть копію сайту й бази на тестовому піддомені;
- увімкніть на копії PHP 8 і запис помилок у лог, а показ помилок на екрані вимкніть;
- пройдіть основний сценарій: головна, категорія, фільтр, товар, кошик, оформлення, оплата, адмінка;
- виправте помилки ядра й модулів, оновіть модулі, для яких є версії під PHP 8;
- очистіть кеш модифікаторів і теми (Twig) і перемкніть PHP на робочому сайті.
На типовому магазині OpenCart 3 з 15–30 модулями це займає від одного до кількох днів роботи.
Чого краще не робити
Не вмикайте PHP 8 одразу на робочому сайті «подивитись, що буде», і не відкочуйте помилки, просто вимкнувши їх показ: попередження сховаються, а фатальні помилки в кошику чи оплаті лишаться, і про них ви дізнаєтесь із втрачених замовлень.
Часті питання
Чи можна залишитись на PHP 7.4?
Тимчасово — так, якщо хостер дозволяє. Але 7.4 давно не отримує оновлень безпеки, а хостери поступово її вимикають. Краще оновитися планово, ніж в день, коли старий PHP вимкнуть.
Може, простіше одразу перейти на OpenCart 4?
Це окремий великий проєкт: інша тема, інші модулі й перенос даних. Для більшості магазинів дешевше й безпечніше підготувати поточний OpenCart 3 до PHP 8.
Не хочете розбиратися самі?
Опишіть, що відбувається з сайтом, — скажу причину й вартість виправлення протягом дня.
Послуга: Прискорення сайтів і PHP 8 →
Інші статті
07.11.2026
Чому OpenCart повільно працює: 7 причин
Сайт на OpenCart довго відкривається або «лягає» в пікові години? 7 найчастіших причин — від підрахунку товарів у категоріях до ботів — і як перевірити кожну.
07.11.2026
Обмін 1С з сайтом: чому дублюються товари
Після обміну з 1С на сайті з'являються дублі товарів, зникають фото або не оновлюються залишки? Розбираю 6 причин і як налаштувати обмін через CommerceML правильно.