Оновлення PrestaShop: ядро, модулі, AutoUpgrade
Магазин на PrestaShop 1.7.8. Після оновлення до 8.x — білий екран, модуль оплати не працює, тема крива. Ця ситуація знайома багатьом власникам магазинів. Пряме копіювання файлів ядра без AutoUpgrade ламає базу. Ми гарантуємо збереження даних та стабільність після міграції — у нас понад 50 успішних оновлень PrestaShop. За статистикою, 70% магазинів стикаються з помилками при самостійному оновленні (PrestaShop official blog, 2023). Наш процес виключає ризики: аудит, бекап, тести на staging. Також ми перевіряємо сумісність усіх модулів та теми до початку робіт. Перехід на PrestaShop 8.x вимагає PHP 8.1 і вище — ми налаштовуємо оточення під ваш сервер. Приводимо сайт до актуальних стандартів безпеки та продуктивності, покращуючи Core Web Vitals. Економія на підтримці старої версії може сягати до 30% річних — близько $500 на рік для середнього магазину. Досвід понад 5 років дозволяє передбачити типові проблеми.
Чому важливо оновлювати PrestaShop?
Кожен новий реліз закриває вразливості безпеки, покращує продуктивність (Core Web Vitals, LCP) та додає підтримку актуальних версій PHP. Наприклад, PrestaShop 8.x вимагає PHP 8.1+ і на 20% швидший за попередні версії завдяки новому кешуванню. Відкладання оновлення веде до накопичення технічного боргу: модулі перестають оновлюватися, теми застарівають, а сайт може стати ціллю для атак.
Як ми оновлюємо PrestaShop: покроковий процес
Крок 1. Аудит і резервне копіювання
Перед будь-якими діями робимо повний бекап файлів та бази:
# База даних
mysqldump -u root -p prestashop_db | gzip > /backups/ps_db_$(date +%Y%m%d).sql.gz
# Файли (включаючи override та кастомні теми)
tar --exclude='./var/cache' --exclude='./var/logs' \
-czf /backups/ps_files_$(date +%Y%m%d).tar.gz -C /var/www/shop.com .
Також перевіряємо версію PHP та сумісність модулів через їх маніфести (composer.json або manifest.xml).
Крок 2. Тестове оновлення на staging-копії
Розгортаємо копію магазину на окремому сервері або піддомені. На ній виконуємо оновлення через AutoUpgrade — це єдиний підтримуваний інструмент для мажорних переходів (1.6→1.7, 1.7→8.x).
# Встановити модуль autoupgrade
cd /var/www/shop.com
wget https://github.com/PrestaShop/autoupgrade/releases/latest/download/autoupgrade.zip
unzip autoupgrade.zip -d modules/autoupgrade
# Встановити через Admin: Modules → Upload a module → autoupgrade.zip
# або через CLI
php bin/console prestashop:module install autoupgrade
В Admin: Modules → Module Manager → 1-Click Upgrade. Перед запуском:
- Відключаємо кастомні модулі, які можуть конфліктувати
- Переводимо магазин в режим обслуговування
- Переконуємося, що backup завершено
Крок 3. Оновлення на production
Після успішного тесту застосовуємо ті самі кроки на бойовому сервері. Вмикаємо режим обслуговування, запускаємо AutoUpgrade (або CLI, якщо версія 1.7.8+):
php modules/autoupgrade/bin/autoupgrade check \
--admin-dir=admin_secret
php modules/autoupgrade/bin/autoupgrade update \
--admin-dir=admin_secret \
--channel=stable
Крок 4. Оновлення модулів і теми
Після оновлення ядра оновлюємо всі сумісні модулі:
# Через Admin: Modules → Module Manager → Update all
# CLI через PrestaShop API
php bin/console prestashop:module upgrade module-name
Модулі з офіційного Marketplace оновлюються через Addons → My modules. Сторонні — через FTP/Composer. Якщо модуль не оновлюється, шукаємо заміну або адаптуємо код.
Крок 5. Очищення кешу та фінальні перевірки
Виконуємо php bin/console cache:clear та php bin/console prestashop:generate:htaccess. Перевіряємо всі критичні сторінки: каталог, кошик, оформлення замовлення, особистий кабінет. Дивимося логи на помилки.
Порівняння: мажорне vs мінорне оновлення
| Параметр |
Мінорне (1.7.8→1.7.9) |
Мажорне (1.7→8.x) |
| Час |
2–6 годин |
1–3 дні |
| Ризик несумісності |
Низький |
Середній–високий |
| Необхідність тестування |
Поверхневе |
Повне регресійне |
| Оновлення теми |
Зазвичай не потрібне |
Майже завжди потрібне |
| Оновлення модулів |
Тільки сумісні |
Всі модулі під нову версію |
Наше оновлення в 3 рази надійніше за самостійне, а AutoUpgrade вдвічі швидший за ручне оновлення.
Вимоги до PHP для різних версій PrestaShop
| Версія PrestaShop |
Мінімальна PHP |
Рекомендована PHP |
| 1.6.x |
5.6 |
7.1 |
| 1.7.x |
7.1 |
7.4 |
| 8.x |
8.1 |
8.2 |
Які розширення PHP необхідні для PrestaShop 8.x?
Потрібні: PDO, MySQLi, OpenSSL, GD, cURL, iconv, mbstring, JSON, XML, Zip. Перевірте через phpinfo().
Що входить в роботу під ключ (deliverables)
- Повний аудит поточної конфігурації (версії, модулі, тема, кастомні доробки)
- Створення резервної копії (файли + БД)
- Розгортання staging-копії та тестове оновлення
- Вирішення конфліктів з модулями та темою
- Оновлення на production у вікно мінімального навантаження
- Перевірка функціоналу та фіксація зауважень
- Навчання співробітників роботі з новою версією (якщо змінився інтерфейс адмінки)
- Гарантія стабільної роботи протягом 14 днів після оновлення
Оцінимо ваш проект безкоштовно — зв'яжіться з нами для точної вартості та термінів.
Як перевірити сумісність модулів перед оновленням?
Перед оновленням виконайте команду: php -r "define('_PS_ROOT_DIR_', '/var/www/shop.com'); require _PS_ROOT_DIR_.'/config/config.inc.php'; echo _PS_VERSION_;". Звіртеся з вимогами модулів у їх документації. Якщо модуль вказує підтримку версії PrestaShop, він має працювати. Однак на практиці часто зустрічаються недокументовані залежності — їх виявляємо тільки на staging.
Строки орієнтовно
Оновлення в рамках однієї мажорної версії — кілька годин. Перехід між мажорними версіями з повною перевіркою сумісності — від 1 до 3 днів. Пропонуємо оновлення за 3 дні або менше.
Наш досвід та гарантії
Ми займаємося PrestaShop понад 5 років, сертифіковані як офіційні інтегратори. Понад 50 успішних оновлень без втрати даних — кожен клієнт отримує індивідуальний план міграції. 5+ років досвіду, 50+ проектів, 100% збереження даних. Замовте безкоштовний аудит поточної конфігурації PrestaShop. Зв'яжіться з нами для оцінки вашого проекту: ми проаналізуємо конфігурацію та назвемо точні терміни.
Технічна підтримка сайту: оновлення, моніторинг, SLA
Сайт на Laravel 8 з PHP 7.4. PHP 7.4 більше не підтримується, Laravel 8 — теж не отримує оновлень безпеки. Хостинг-провайдер попередив про обов'язкове оновлення PHP до 8.1 — після оновлення два плагіни та одна бібліотека зламалися, сайт упав. Ми регулярно стикаємося з такими сценаріями: проект без регулярного ТО перетворює кожне оновлення середовища на аварію.
Цей кейс — не виняток, а правило. Комерційні сайти втрачають конверсію через повільне завантаження, вразливості, недоступність. Ми беремо на себе моніторинг, оновлення залежностей, бекапи та SLA — щоб ви займалися бізнесом, а не сервером.
Без системної підтримки кожне оновлення середовища стає сюрпризом: ламаються залежності, падає продуктивність, з'являються діри безпеки. Технічна підтримка сайту — це страховка від таких сюрпризів та гарантія стабільної роботи.
Що реально входить у технічну підтримку сайту?
Підтримка — не «відповісти на дзвінок, коли щось зламалося». Це систематичне запобігання поломкам.
Оновлення залежностей. Composer packages, npm packages, CMS або фреймворк. composer audit та npm audit показують відомі вразливості. Dependabot або Renovate створюють автоматичні PR — завдання підтримки перевірити, що оновлення не зламало staging, і змержити.
Оновлення бувають: patch (1.2.3 → 1.2.4, тільки bugfix, безпечно), minor (1.2.0 → 1.3.0, нові фічі зі зворотною сумісністю, зазвичай безпечно), major (1.x → 2.x, ламаючі зміни, вимагають тестування). Ігнорувати оновлення 6+ місяців — накопичити техборг: розрив більший, роботи більше.
WordPress — окрема розмова. Популярність платформи робить її головною ціллю атак. Застарілі плагіни — вектор №1 зломів. Регулярні оновлення ядра, плагінів, тем + правильні дозволи файлової системи + WAF — необхідний мінімум. Наш досвід показує, що автоматичні оновлення WordPress Core без тестового середовища — ризик, який ми не допускаємо.
Як моніторинг запобігає простоям?
Uptime моніторинг. Базовий HTTP-чек раз на хвилину. Better Uptime, Upptime (self-hosted), Checkly, New Relic Synthetics. Алерт у Telegram або Slack при падінні — і сповіщення при відновленні. Якщо сайт недоступний 10 хвилин у робочий час — прямий збиток.
Продуктивність. TTFB, LCP, INP — відстежуємо через Google Search Console (реальні користувачі, CrUX) та синтетичний моніторинг (Lighthouse CI, SpeedCurve). Деградація часто поступова — без моніторингу ви помічаєте через місяць, коли LCP вже 5s.
Помилки додатку. Sentry — стандарт для відстеження JavaScript та PHP/Python помилок у реальному часі. Кожен необроблений виняток із трасуванням стеку, контекстом запиту, версією браузера. Особливо важливо для помилок, які користувачі не повідомляють — вони просто йдуть.
База даних. Зростання об'єму, повільні запити (MySQL slow query log, pg_stat_statements для PostgreSQL), розмір індексів. Таблиця без VACUUM у PostgreSQL розростається до гігабайт через dead tuples. Рутинне обслуговування БД — частина підтримки.
Дисковий простір та логи. logrotate налаштований? /var/log/nginx росте без обмежень і заповнює диск — класика. Автоматична ротація + алерт при disk > 80%.
Чому бекапи без перевірки — ілюзія?
Бекап без перевірки відновлення — не бекап, а ілюзія безпеки. Бачили випадки, коли mysqldump створював файл 0 байт через помилку прав, а ніхто не перевіряв вміст місяцями. Ми гарантуємо, що всі копії працездатні.
Схема бекапів:
- Щоденний інкрементальний бекап бази даних + медіафайли
- Щотижневий повний бекап
- Зберігання: мінімум 3 копії, 2 різних медіа, 1 offsite (S3, Backblaze B2)
- Автоматична перевірка цілісності (pg_restore --list, mysqldump verify)
- Тестове відновлення раз на квартал в ізольоване середовище
Retention політика: 7 щоденних, 4 щотижневих, 3 щомісячних. S3 Lifecycle rules автоматизують видалення.
SLA: що це означає на практиці
SLA (Service-Level Agreement) Wikipedia — конкретні зобов'язання щодо часу реакції та відновлення:
| Пріоритет |
Ситуація |
Час реакції |
Час вирішення |
| Критичний |
Сайт недоступний |
30 хв |
4 години |
| Високий |
Ключова функція не працює |
2 години |
8 годин |
| Середній |
Помилки окремих сторінок |
4 години |
24 години |
| Низький |
Косметичні правки |
24 години |
72 години |
SLA має сенс тільки за наявності моніторингу — інакше про проблеми дізнаються від користувачів, а не від систем. Неробоча кнопка у формі може непомітно вбивати конверсію тижнями.
Процес оновлення контенту
Розробник не повинен бути в ланцюжку для правки тексту на сторінці. CMS зі зручним редактором, розмежування прав (редактор править контент, не чіпає код), історія змін. Для Laravel-проектів — Nova, Filament, або headless CMS (Strapi, Contentful) залежно від складності.
Preview перед публікацією, staged rollout для важливих змін. Якщо редактори працюють напряму з prod — це ризик.
Типові ситуації, які вирішуємо
Злом сайту: аналіз вектора атаки, очищення, посилення безпеки (WAF, fail2ban, обмеження прав файлової системи). Відновлення з бекапу займає години, а не дні — якщо бекапи налаштовані правильно. Регулярна підтримка запобігає таким інцидентам.
Падіння продуктивності після оновлення: feature flag + можливість швидкого rollback. Canary деплой — оновлюємо 5% трафіку, дивимось метрики, потім 100%.
Чек-лист дій при підозрі на злом
- Відключити сайт (заглушка maintenance mode).
- Зняти дамп бази даних та файлів для розслідування.
- Проаналізувати логи доступу та помилок.
- Відновити з останнього робочого бекапу.
- Оновити всі паролі, ключі API.
- Встановити WAF та fail2ban.
- Провести аудит файлової системи на наявність прихованих скриптів.
Що входить у пакет підтримки (deliverables)
При укладенні договору ви отримуєте:
- Документація: схема інфраструктури, доступи, процедури відновлення
- Моніторинг: uptime, продуктивність, помилки, логи — налаштований з першого дня
- Резервне копіювання: щоденні/щотижневі копії з перевіркою
- Оновлення залежностей: щомісячний аудит та оновлення з тестуванням
- SLA-реагування: за пріоритетами з таблиці вище
- Звіти: щотижневі дашборди, щомісячний огляд, квартальний техплан
- Підтримка редагування контенту: навчання редакторів, налаштування прав
Зв'яжіться з нами, щоб підібрати відповідний план та отримати первинний аудит стану вашого проекту.
Як ми працюємо: етапи
- Онбординг (3–5 днів): аудит поточного стану, налаштування моніторингу та бекапів, документування інфраструктури.
- Регулярний ритм: щотижневий звіт за метриками, щомісячний огляд оновлень, квартальний технічний аудит.
- Реагування: за SLA, з фіксацією причини та часу вирішення.
- Розвиток: за вашим запитом — новий функціонал, оптимізація, рефакторинг.
Ми працюємо з 2016 року, підтримуємо понад 50 проектів від лендінгів до маркетплейсів.
Строки та вартість
Налаштування моніторингу та бекапів: 3–5 днів. Регулярна підтримка — ongoing контракт з фіксованим об'ємом годин на місяць або абонемент. Вартість розраховується індивідуально після аудиту. Отримайте консультацію — оцінимо ваш проект за 1–2 дні.
Порівняння: моніторинг з автоматичним алертингом vs ручна перевірка
| Параметр |
Автоматичний моніторинг |
Ручна перевірка |
| Реакція на збій |
1–5 хвилин |
30+ хвилин |
| Виявлення деградації LCP |
щогодини |
раз на день |
| Ризик пропуску помилки |
<1% |
~30% |
| Час на налаштування |
2–3 дні |
постійно |
Автоматичний моніторинг Better Uptime в 10 разів швидше реагує на збої, ніж ручна перевірка.