Обновление шаблона в PrestaShop — это процесс, который требует понимания структуры платформы и аккуратного подхода. В отличие от модулей, шаблоны в PrestaShop не поддерживают установку и обновление через административную панель с помощью ZIP-архива. Причина в том, что шаблон тесно связан с файлами, модулями и хуками, а любое автоматическое обновление может затереть пользовательские изменения и нарушить работоспособность магазина.
Поэтому обновление шаблона осуществляется вручную через FTP и, как правило, выполняется специалистами, хорошо понимающими внутреннюю архитектуру PrestaShop. В этой статье разберём, как можно самостоятельно, без лишней путаницы, обновить шаблон корректно и безопасно.
1. Почему обновление шаблона — непростой процесс
Шаблон в PrestaShop тесно связан с модулями, позициями хуков, системой кэширования и пользовательскими изменениями. Из-за этого в PrestaShop не реализована возможность обновления шаблона через загрузку ZIP-архива в административной панели: механизм не поддерживается по архитектурным причинам и связан с высокой степенью интеграции шаблона с системой хуков, модулями и файлами.
Шаблон нужно обновлять вручную через FTP, загружая новые файлы и заменяя старые, с сохранением всех переопределений и настроек.
2. Как устроен шаблон PrestaShop: базовая структура
После распаковки шаблона можно увидеть, что он состоит из двух основных частей:
-
Файлы шаблона — всё кроме
/dependencies/ -
Модули шаблона — находятся в папке
dependencies, и устанавливаются в/modules/
Вот структура типичного шаблона:
Основные директории шаблона:
-
/_dev/ — исходные файлы SCSS, JS и изображений для разработки. Используются Webpack для компиляции.
-
/assets/ — скомпилированные production-файлы CSS, JS и медиа.
-
/config/ — содержит файл конфигурации темы
theme.yml. -
/modules/ — шаблонные файлы для модулей.
-
/plugins/ — кастомные плагины Smarty.
-
/templates/ — основные шаблоны
.tpl, сгруппированные по функциональности: каталог, оформление заказа, CMS и т. д. Часто включает_partials, где находятся пере используемые блоки вродеheader.tpl,footer.tpl,breadcrumb.tpl.
Папка dependencies
В этой папке находятся все модули, связанные с темой. Их необходимо обновить вручную в каталоге /modules/ в корне вашего магазина.
3. Переопределение — залог безопасности при обновлениях
PrestaShop построен на логике переопределений. Это значит, что любые правки в шаблоне, должны делаться через дочерние шаблоны.
Если вы вносите изменения напрямую в шаблон — обновление затрёт их. Это считается нарушением стандартов PrestaShop и в будущем приведёт к трудностям при поддержке магазина.
Чтобы обновляться безопасно:
-
Используйте дочернюю тему для изменений в шаблоне
-
Используйте override-классы переопределения для модулей
-
Храните пользовательские стили в
custom.cssдочерней темы
4. Пошаговое обновление шаблона
Шаг 1: Создание резервной копии
Перед любыми действиями сделайте бэкап на вашем хостинге.
Шаг 2: Обновление файлов шаблона
-
Подключитесь к серверу по FTP
-
Перейдите в папку
/themes/your_theme_name/ -
Замените все файлы из новой версии шаблона кроме папки
dependencies.
Шаг 3: Обновление модулей
-
Перейдите в папку
dependenciesв новом шаблоне -
Скопируйте содержимое в каталог
/modules/в корне сайта, перезаписывая старые модули -
Перейдите в раздел "Модули → Управление модулями" и проверьте наличие обновлений
Шаг 4: Очистка кэша
-
Перейдите в "Дополнительные параметры → Производительность"
-
Нажмите "Очистить кэш"
Шаг 5: Проверка корректности работы
-
Откройте главную страницу, товары, корзину и оформление заказа
5. Что делать, если что-то пошло не так
-
Белый экран — включите режим отладки (Dev mode), чтобы увидеть ошибки
-
Модули не отображаются — перепроверьте хуки и позиции модулей
-
Стили не применяются — очистите кэш браузера ctrl + F5 и убедитесь, что CSS/JS-файлы загружаются
Обновление шаблона в PrestaShop — это ручной, но вполне управляемый процесс. Если соблюдены стандарты переопределений и заранее сделана резервная копия, обновление проходит безболезненно.
Принцип простой: обнови файлы, проверь модули, очисти кэш, протестируй. И главное — не вносите изменения в оригинальный шаблон, чтобы не потерять их при следующем обновлении.