Обновление PrestaShop довольно болезненная тема.
Достаточно долгое время разработчики не уделяли особого внимания
улучшению системы обновлений с версии на версию. Так, например, больше
года (с 2012 до 2013) обновление с версии 1.4 было практически не
возможно без правок базы данных. В данной статье разберем кратко, но по
сути все об обновлении с версии stable 1.4.4.0 до версии stable 1.6.1.1 (от 20 августа 2015 года), без лишних слов. Обновление будет проходить в несколько этапов.
Так же для обновления по данной инструкции вам необходим хороший хостинг, в моем случае это hostland, самый гибкий из всех известных мне, функционал которого не нарушит ход обновления.
Размещение на локальных машинах я не рассматривал, все происходит online, на рабочих субдоменах.
В первой стабильной версии PrestaShop 1.5, а именно 1.5.0.17, у вас возможно еще будет поддерживаться шаблон с 1.4, но далее вам придется перетягивать его самостоятельно или нанимать верстальщика (это не дорого). Кроме того, для версии 1.6, стиль и позиционирование вашего прежнего шаблона скорее всего “древнее” и он (дизайн) вообще не актуален по современным меркам веб-дизайна. Рекомендую оставить от прежнего дизайна только цветовую гамму, если она у вас вообще правильно подобрана под тематику.
Еще один момент, существует мнение, что количество товаров влияет на ход обновления. Это миф, точнее почти миф. Особой разницы 10 товаров у вас в магазине или 100 тысяч – нет. Единственное влияние обновления оказывается в виде обузы (веса создаваемых файлов и время на их передачу). То есть тут играет роль время выполнения скрипта (нужно 60 сек) и максимально допустимое значение кэша (судя по графикам хватает и 50мб оперативки для скриптов). Добросовестные хостеры не ставят блокираторы, то есть даже если вы выйдете за порог максимального объема и времени, скрипт продолжит работать, но они накажут если у вас высокая нагрузка систематична. По этой причине я опять же рекомендую вам перейти на hostland, где на “просторах” лимит 256мб памяти, чего хватит с головой. Даже если вам потом будет чего-либо не хватать, вы сможете увеличить квоту на каждую отдельную услугу (будь то память (CPU), место на диске, время выполнения скриптов, количество единовременных соединений и прочее) не переходя на другой тариф. В общем этот хостинг очень гибкий и в то же время бюджетный, а главная их фишка во встроенном антивирусе для сайтов AI-Bolit.
Перед началом обновления переведите ваш основной сайт магазина в режим обслуживания. В админ панели пункт “настройки”, далее включить магазин – нет, сохранить.
Будьте предельно внимательны в каждом вашем действии!К сожалению, для обладателей версии 1.4.9 данная инструкция по обновлению не поможет, так как эта версия – “кривая” (попробуйте промежуточно обновиться до 1.4.10, этот вариант не пробовал). У этой версии на столько кривая БД, что если вы обновитесь, например, с 1.4.4 до 1.4.9, а потом до 1.4.11, то вы скорее всего не сможете обновиться до 1.5, потому что БД будет “испорчена”.
Так же для обновления по данной инструкции вам необходим хороший хостинг, в моем случае это hostland, самый гибкий из всех известных мне, функционал которого не нарушит ход обновления.
Размещение на локальных машинах я не рассматривал, все происходит online, на рабочих субдоменах.
В первой стабильной версии PrestaShop 1.5, а именно 1.5.0.17, у вас возможно еще будет поддерживаться шаблон с 1.4, но далее вам придется перетягивать его самостоятельно или нанимать верстальщика (это не дорого). Кроме того, для версии 1.6, стиль и позиционирование вашего прежнего шаблона скорее всего “древнее” и он (дизайн) вообще не актуален по современным меркам веб-дизайна. Рекомендую оставить от прежнего дизайна только цветовую гамму, если она у вас вообще правильно подобрана под тематику.
Еще один момент, существует мнение, что количество товаров влияет на ход обновления. Это миф, точнее почти миф. Особой разницы 10 товаров у вас в магазине или 100 тысяч – нет. Единственное влияние обновления оказывается в виде обузы (веса создаваемых файлов и время на их передачу). То есть тут играет роль время выполнения скрипта (нужно 60 сек) и максимально допустимое значение кэша (судя по графикам хватает и 50мб оперативки для скриптов). Добросовестные хостеры не ставят блокираторы, то есть даже если вы выйдете за порог максимального объема и времени, скрипт продолжит работать, но они накажут если у вас высокая нагрузка систематична. По этой причине я опять же рекомендую вам перейти на hostland, где на “просторах” лимит 256мб памяти, чего хватит с головой. Даже если вам потом будет чего-либо не хватать, вы сможете увеличить квоту на каждую отдельную услугу (будь то память (CPU), место на диске, время выполнения скриптов, количество единовременных соединений и прочее) не переходя на другой тариф. В общем этот хостинг очень гибкий и в то же время бюджетный, а главная их фишка во встроенном антивирусе для сайтов AI-Bolit.
Перед началом обновления переведите ваш основной сайт магазина в режим обслуживания. В админ панели пункт “настройки”, далее включить магазин – нет, сохранить.
Инструкция по обновлению PrestaShop с 1.4.4.0 до 1.6.1.1
- Скачиваем архивы нужных релизов:
- Обновление проходит с помощью последней версии модуля 1-click Upgrade. Если у вас уже был установлен этот модуль, то убедитесь, что он обновленный (а лучше удалите и установите новый).
- На хостинге создаем 3 субдомена: upgrade, upgrade2, upgrade3 (названия любые, удобные вам). Первый субдомен отвечает за минорное обновление с версии 1.4.4.0 до 1.4.11.1 stable и далее архивное обновление до 1.5.0.17 stable. Второй субдомен отвечает за минорное обновление с версии 1.5.0.17 stable до версии 1.5.6.3 stable. Третий субдомен отвечает за архивное обновление 1.5.6.3 stable до 1.6.1.1 stable. В итоге мы получаем три субдомена: на первом начальная версия 1.5, где возможно работает шаблон 1.4; на втором последняя версия 1.5; на третьем последняя на данный момент версия 1.6. Вы потом уже лично можете выбирать, какая для вас лучше (хотя, по-хорошему, документацию по движку и его версиях нужно читать заранее: тут по 1.5, тут по 1.6).
- Заходим в админку вашего, пока не обновленного сайта, в раздел бэкап. Создаем бэкап базы данных и скачиваем его себе. Именно так, а не через mysql экспорт!
- Переносим все файлы сайта в папку первого субдомена (upgrade), создаем и подключаем новую БД, меняем настройки (на хостинге в папке config файл sittings) под новую БД. Заливаем ранее скаченный бэкап БД в базу данных первого субдомена (через phpmyadmin, естественно, или аналог на вашем хостинге).
- Обновление до 1.4.11 stable. Заходим в админку субдомена upgrade.вашсайт.ру. Переходим в "Настройки", далее вкладка "SEO и URL". Изменяем адрес сайта с вашсайт.ру на upgrade.вашсайт.ру. Отключаем ЧПУ. Заходим в модуль 1-click Upgrade, в расширенные настройки обновления (Comenzar actualización) и выбираем минорное обновление (Menor Actualizacion) должна быть версия 1.4.11, жмем кнопку “сохранить”. Страница автоматически обновится. Запускаем обновление. Если выдает ошибку/ошибки во время обновления, значит вы сделали что-то не так и нажимайте “Rollback” (откат). Попробуйте обновить снова, возможно ошибка возникла лишь во время апдейта, то есть сервер немного “залип” во время обновления, hostland не залипает.
- Обновление до 1.5.0.17 stable. Заливаем скаченный архив релиза 1.5.0.17 в папку admin/autoupgrade/download (папка может называться и не admin, если вы меняли ее называние). Заходим в админку первого субдомена, нажимаем ctrl+F5, чтобы почистить кэш браузера. Опять заходим в модуль 1-click Upgrade, но теперь выбираем архивную версию 1.5.0.17 (archivo local), “сохранить”, начинаем обновление. Если выдает ошибку/ошибки во время обновления, значит вы сделали что-то не так и нажимайте “Rollback” (откат) и повторите заново этот шаг обновления (придется еще раз залить архив релиза в папку). Далее двигайте в порядке обратного исключения возможных ошибок в верх по списку инструкции. Проверьте, точно ли вы скачали релиз 1.5.0.17? А до этого точно минорное обновление было до 1.4.11? И так далее. В этом деле, как говорится, шаг влево – расстрел.
- Обновление до 1.5.6.3 stable. Заходим в админку, чистим кэш браузера и создаем бэкап базы данных. Кстати, чтобы включить сайт версии 1.5 нужно перейти в “Настройки” > “Maintance” и вы скорее всего увидите, насколько масштабно у вас “поехал” дизайн сайта. Когда просмотр закончили, двигаемся дальше, предварительно отключив сайт там же в “Maintance”. Файлы первого субдомена переносим в папку второго субдомена. Подключаем новую БД (в файле sittings на хостинге) и заливаем бэкап в новую БД (phpmyadmin). Заходим в админку и меняем адрес сайта с upgrade.вашсайт.ру на upgrade2.вашсайт.ру. Проверяем отключен ли ЧПУ. Меняем шаблон сайта на default! Заходим в модуль 1-click Upgrade и выполняем минорное обновление до 1.5.6.3. Если ошибки, повторяем все заново, но более внимательно. Если все ок, идем дальше.
- Обновление до 1.6.1.1 stable. Да в этом этапе, мы сразу прыгаем через несколько версий 1.6, так как первые вообще не адаптированы к переходу с 1.5. Приступаем. Заходим в админку, чистим кэш браузера и создаем бэкап базы данных. Файлы второго субдомена переносим в папку третьего субдомена (upgrade3). Заливаем ранее скаченный архив 1.6.1.1 Stable в папку admin/autoupgrade/download. Подключаем новую БД и заливаем бэкап в новую БД. Заходим в админку upgrade3.вашсайт.ру, изменяем адрес сайта (на upgrade3), проверяем выключен ли ЧПУ. Запускаем архивное обновление до 1.6. Если все ок, поздравляю вас! Теперь осталось лишь поменять шаблон на новый базовый и перетянуть на него ваш старый дизайн, хотя может пора сделать что-то новое? Если ошибки, то начинаем все заново.
Подводные камни.
- Ошибка 500 после обновления на 1.6. У вас не активирован ни один шаблон, подходящий для версии 1.6. В админке заходим в “Preferences” > “Настройки” > “Шаблоны”, пункт “Выбор шаблона для магазина” и выбираем default-bootstrap, сохранить.
- Изображения не работают. Для вызова изображений в версиях 1.5 и старше используется новая файловая система и именно по этому изображения будут выводиться с ошибкой. Чтобы исправить, заходим в админку, в “Preferences” > “Изображения” и пересоздаем изображения и да, это “не стыдно”)). Спасибо lugobor студии за разбор этой проблемы.
- Генерация графиков не работает. В версии 1.4 графики создаются модулем, который не поддерживаемым в версии старше 1.5. Его нужно просто удалить (если вы остались на 1.5), а в 1.6 будет уже совершенно другая система.
- Не работает импорт в 1.6. Белый экран (если у вас отключен дебаг) или Fatal error: Class ‘CacheFS’ not found in …/classes/cache/Cache.php on line 132 или 131. Заходим в папку config, в файл sittings, изменяем CacheFS на CacheFs. Импорт работает.
- Выгрузка (экспорт) товаров без короткого и полного описания.
Выгрузка товаров начиная с версии 1.5 происходит с помощью SQL manager
или как и в 1.4 напрямую из БД. Пример запроса для полного экспорта
товаров описан тут. Дублирую код, вместо ps_ ваш префикс в БД.
- Таблицы в описании товара “слетели”. Да, это факт, обновиться с сохранением таблиц в описании простым способом не получится. Табличная разметка удаляется при минорном обновлении с 1.5.0.17 на 1.5.6.3. Можно полностью выгрузить товары из 1.5.0.17, но тогда вообще теряется смысл обновления. Обновление это ускоренный переход на другую версию – “в 1 клик” (на практике далеко он не один). Если у вас проблема с таблицами и вы не видите смысла магазина без них, то приступайте к выгрузке из 1.5.0.17. Пример выгрузки по ссылке в предыдущей проблеме.
Зачем обновляться?
- Начиная с версии 1.5 появляется встроенный SEO модуль для товаров, а не только для категорий. Теперь для каждого отдельного товара можно прописать meta теги, без дополнительных модулей!
- Генерация страниц работает быстрее, если в 1.4 в среднем около 1-2 секунд, то в 1.5 в среднем 0.3 секунды!
- Официальная интеграция с 1С доступна только обладателям интернет-магазинов на ядре PrestaShop 1.5 или 1.6.
- Вообще весь, хотя бы базовый, модульный функционал и соответственно возможности просто умопомрачительны. В 1.4 это в целом просто ничто, по сравнению с 1.5 и тем более 1.6.