Обновление (миграция) с VirtueMart 2 на VirtueMart 3

Опубликовано: 2 Март, 2015
Обновлено: 17 Май, 2015
Категория: Общие вопросы
Комментариев: 64

На момент написания статьи вышло уже 2 stable версии virtuemart 3, совместимые с joomla 2.5 и joomla 3. Это значит, что можно смело обновляться, не опасаясь многочисленных ошибок.

Разработчики значительно упростили процесс обновления, сохранив максимальную совместимость с virtuemart 2. Новую версию можно просто установить через менеджер расширений (не требуется миграция, как при обновлении с vm 1 на vm 2).

После обновления нескольких сайтов до virtuemart 3 не было замечено серьезных проблем, все работает правильно. Конечно, есть некоторые недоработки, но они должны быть устранены в ближайших релизах.

C 1 января 2015 прекращена поддержка joomla 2.5. С 1 июня 2015 из JED начнут удаляться все расширения, связанные с joomla 2.5. Поэтому лучше всего обновить сразу и virtuemart и joomla.

Алгоритм обновления:

  1. Обновление до virtuemart 3.
  2. Обновление до joomla 3.
  3. Обновление расширений.
  4. Обновление шаблона.
  5. Исправление ошибок.

Перед обновлением

  • Создайте резервную копию сайта.
  • Тестировать обновление лучше всего на локальном сервере.
  • Для правильной работы на сервере должен быть установлен php 5.3.10+ (это минимально необходимая версия, рекомендуется php 5.4+) и MySQL 5.1. (полный список технических требований).
  • Создайте список всех установленных расширений. Уточните их совместимость с vm3 и joomla 3.
  • Уточните есть ли версия используемого шаблона для joomla 3.

1 шаг. Обновление virtuemart

Чтобы после обновления не потерять изменения, внесенные в шаблоны virtuemart, перенесите все измененные файлы в папку с шаблоном по адресу \templates\имя_шаблона\html\com_virtuemart\.

Если в шаблоне нет папки \html\com_virtuemart\, то создайте ее.

Переносите не все подряд файлы, а только те, в которые вносились изменения.

При переносе файлы из папок tmpl нужно переносить в родительскую папку. Например, для файла шаблона категории товаров \components\com_virtuemart\views\category\tmpl\default.php новый адрес будет иметь вид \templates\имя_шаблона\html\com_virtuemart\category\default.php.

Если вносились изменения в файл стилей \components\com_virtuemart\assets\css\vmsite-ltr.css, то скопируйте его в папку со стилями шаблона \templates\имя_шаблона\css.

Так же в папку \templates\имя_шаблона\html\ перенесите измененные файлы модулей virtuemart.

После переноса всех измененных файлов можно переходить к обновлению.

С официального сайта скачиваем последнюю версию virtuemart.

Распаковываем архив и через менеджер расширений устанавливаем сначала com_virtuemart.3.x.x.zip, после этого com_virtuemart.3.x.x_ext_aio.zip.

Далее переходим в Компоненты > virtuemart-aio и нажимаем Обновление таблиц плагина VM.

2

На этом обновление до virtuemart 3 завершено.

Вот так все легко и просто :).

2 шаг. Обновление Joomla

Для обновления до joomla 3 сначала обновимся до последней версии в линейки joomla 2.5.

Переходим в Расширения > Менеджер расширений > Обновление и нажимаем кнопку Очистить кеш.

очистка кеша

 

Далее переходим в Сайт > Панель управления > Обновление Joomla.

обновление joomla

В правом верхнем углу нажимаем кнопку Настройки в поле Сервер обновления выбираем Дистрибутивы Joomla с длительным периодом поддержки.

3

После сохранения Joomla предложит для установки последнюю доступную версию joomla 2.5.28.

4

Нажимаем кнопку Установить обновление.

После удачного обновления переходим в Расширения  > Менеджер расширений > База данных. Если после обновления возникли какие-то ошибки, нажимаем кнопку Исправить.

5

Теперь можно обновляться до последнее версии joomla 3. Снова переходим в Сайт > Панель управления > Обновление Joomla, нажимаем кнопку Настройки и выбираем Дистрибутивы Joomla с краткосрочной поддержкой.

обновление joomla 2

После сохранения обновляемся до joomla 3.

6

 

После удачного обновления и (при необходимости) исправления ошибок в базе данных (Расширения  > Менеджер расширений > База данных) админ панель полностью изменится. Поначалу, скорее всего, она покажется не очень удобной, но привыкание наступит быстро 🙂

joomla3

 

3 шаг. Обновление расширений

Составьте список всех установленных расширений на сайте.

Если расширение пока не поддерживает joomla 3 и virtuemart, то удалите его.

Часть расширений можно обновить автоматически в Расширения > Менеджер расширений > Обновление.

7

Если расширение не поддерживает автоматическое обновление, то установите его стандартно через Менеджер расширений.

4 шаг. Обновление шаблона

Если шаблон построен на одном из фреймворков (Warp, T3 Framework, Gantry и т.д.), то его можно автоматически обновить через Менеджер расширений. Главное перед обновлением сохраните измененные файлы (файлы стилей, фавиконку и т.д.) и перепишите их после обновления.

Если сайт работает на бесплатном или платном шаблоне, который не поддерживает автоматическое обновление, но на сайте разработчика скачайте новую версию для joomla 3 (если она есть) и установите ее. Предварительно так же скопируйте измененные файлы и перепишите их после обновления.

5 шаг. Исправление ошибок

Если после обновления не появилось ни одной ошибки в работе сайта - это большая удача и нужно обязательно это отметить 🙂

Если вам не так повезло и сайт перестал работать (показывается пустая страница) или работает с ошибками, нужно в System > Общие настройки > Сервер активировать показ ошибок.

8

Так же в Virtuemart > Настройки > Магазин активируем показ сообщений об ошибках.

9

 

После этого можно будет узнать какой файл вызывает ошибку в работе сайта.

P.S.

Если после миграции перестала открываться карточка товара, то скорее всего на сайте установлен компонент jcomments. Решение проблемы здесь.

64 комментария

    D@N

    Добрый день.
    Virtuemart3.ru случайно не ваш? там ест интересная статейка по поводу Аякс скрола
    все получилось но есть недоработки 🙁
    статья "AJAX пагинация списка товаров в категории Virtuemart "

      admin

      admin

      Здравствуйте!
      Нет, это не мой сайт

    denis2015

    "System > Общие настройки > Сервер > активировать показ ошибок"
    Если поставить "максимум" - белый экран
    AJAX пагинация тоже интересует, пытался сделать... но не вышло, похоже, конфликт скриптов в шаблоне

      D@N

      По поводу пагинации попробуйте еще раз, если не получится подскажу.

    Вячеслав

    Добрый день!
    Спасибо большое за статью
    Будем пробовать.
    То есть я правильно понял, что при переносе файлов, в которые были внесены изменения в папку шаблона, virtuemart 3 будем подключаться к ним?
    Несмотря на то, что файлы, в которые были внесены изменения относятся к virtuemart 2
    И еще я обратил внимание, что файлы в virtuemart 3, отвечающие на стили немного отличаются
    Например, в virtuemart 2 файл называется vmsite-ltr, а в virtuemart 3 vm-ltr-site
    Это не будет иметь значение и если файл vmsite-ltr от virtuemart 2 будет находиться в папке с шаблоном, то он будет работать?

      admin

      admin

      Здравствуйте!

      То есть я правильно понял, что при переносе файлов, в которые были внесены изменения в папку шаблона, virtuemart 3 будем подключаться к ним?

      Да, все правильно

      И еще я обратил внимание, что файлы в virtuemart 3, отвечающие на стили немного отличаются
      Например, в virtuemart 2 файл называется vmsite-ltr, а в virtuemart 3 vm-ltr-site
      Это не будет иметь значение и если файл vmsite-ltr от virtuemart 2 будет находиться в папке с шаблоном, то он будет работать?

      vm-ltr в папке с шаблоном будет работать

    Renat

    Здравствуйте пробовал обновляться, устанавливал жумлу и виртуемарт 3-ий с нуля, у меня главная страница страница виртуемарта, в итоге белый экран. Сам сайт работает но вирт никак не хочет (

      admin

      admin

      Здравствуйте!

      Пробовали включить показ ошибок, что пишет?

        Дмитрий

        Добрый день! Такая же проблема! Joomla 3.4.1, virtuamart 3 с офф. сайта. Установился нормально без каких-либо ошибок. Но при клике на него ВЫЛАЗИТ ошибка:
        Table 'kramer.bxskz_virtuemart_shipmentmethods_ru_ru' doesn't exist SQL=SELECT virtuemart_shipmentmethod_id,shipment_name FROM bxskz_virtuemart_shipmentmethods INNER JOIN bxskz_virtuemart_shipmentmethods_ru_ru USING (virtuemart_shipmentmethod_id) WHERE published="1"

          Дмитрий

          Может проблема в DENWER, или PHP версия не поддерживается? Как это исправить?
          Спс.

          admin

          admin

          Не забыли virtuemart aio обновить?

            Дмитрий

            Исправил! Причина была в версии PHP 5.3 - обновил до 5.4 и все заработало!

        Ришат

        Добрый день!
        Главная страница virtuemart белый экран. Включил пока ошибок.
        Notice: Undefined property: stdClass::$id in /home/host1385673/davlii.ru/htdocs/d/templates/hipster/XTC/XTC_library.php on line 150
        код этой линии

          admin

          admin

          Проблема в используемом шаблоне.
          Вы обновили его для совместимости с joomla 3?

    Виктория

    Подскажите, как в virtuemart3 вывести настраиваемые поля справа от картинки перед ценой?

    she-r

    Всем привет, обновил virtuemart до последней версии шаблон GCK, и тут появился несуществующий товар. В товарах его нет а вот в модулях Последние товары, Десять лучших товаров и рекомендуемые товары он вылез, высвечивается пустая VM картинка кнопка описание товара и непонятная цена. Обыскал все при клике описание товара вылетаю на 404 страницу. В интернете ни чего нет, что делать не знаю. Нужен совет, может кто сталкивался.

      admin

      admin

      Попробуйте добавить еще один тестовый товар.
      Возможно, после этого "фантомный" пропадет.

    DaN

    DaN

    Добрый день.
    После обновления выскакивает "Ошибка 500. JHtmlBehavior::mootools not found."
    кто то встречал как побороть?
    В гугле есть варианты заменить
    "JHtml::_('behavior.mootools'); и/или JHtmlBehavior::mootools(); "
    на
    "JHtml::_('behavior.framework');"
    но не нашел у себя таких строк.

    DaN

    DaN

    Плохо искал, таки нашел оказалось по пути:
    "/templates/Ваш_шаблон/layouts/default.php" у меня строка 103

    Алексей

    Обновил до VM 3.0.8, Joomla 3.4.1

    В окне Virtuemart->Заказы в поле "Вид для печати" есть кнопочки для создания счета и накладной в pdf. Если их использовать появляется ошибка, та же ошибка появляется при формировании письма с вложением:

    Подскажите, в чем дело? как решать?

      admin

      admin

      Попробуйте установить com_tcpdf_1.0.0.zip, который появился в версии vm 3.0.6

        Алексей

        Благодарю, помогло! Спасибо, добрый человек!)

          admin

          admin

          Рад, что проблема решилась.

    Евгений

    Вроде бы бегал, прыгал... нарвался на ошибку в админке... при каждом сохранении файла теперь (в вирт марте).
    SELECT id as virtuemart_user_id, first_name, last_name, order_number FROM jos_users as u JOIN jos_virtuemart_vmusers as uv ON u.id = uv.virtuemart_user_id JOIN jos_virtuemart_userinfos as ui ON u.id = ui.virtuemart_user_id JOIN jos_virtuemart_orders as uo ON u.id = uo.virtuemart_user_id ORDER BY uo.created_on DESC LIMIT 0, 5
    Пред история:
    Обнова с 2.0.26а - 3.0.9
    Джумла - 2.5.17 - 2.5.28 - 3.4.1
    Крутое пике прошло условно успешно. фронт вроде бы весь работает. а вот этот хед трик не осилил.
    В базе на локалке проверил поля last_name существуют...
    конфликт при сравнивании? т.е. в другой таблице аналогично есть last_name. Попробую найти, но... что с ним делать? где удалить?)) или?

      admin

      admin

      Попробуйте в Virtuemart > Заказы и покупатели > Покупатели отметить чекбокс с администратором и нажать кнопку Продавец.

        Евгений

        Аналогично...
        /administrator/index.php?option=com_virtuemart - та же ошибка. Есть вариант перезалить? В смысле СЕО ссылки и товары как-то вытащить, переустановить вирт с ноля и занести базу обратно?(

    Евгений

    Проблема с бд. Взял напрямую через мусклю запустил запрос, тот же косяк. Так как запрос работает на другой базе (не проверял, но не мог же селект сам написаться таким =) ) буду рыться в базе( необходимо ставить еще 1 маг и сравнивать таблицы. Ибо вижу выхода другого нет. Ошибка особо по функционалу не мешает (данные сохраняет), но каждый раз видеть ее напрягает)

    Герман

    Joomla! 2.5.28, VirtueMart 2.6.18
    Та же ошибка, что и у Алексея.

    Установка предлагаемого компонента не помогла.
    Переустановка AIO тоже.
    Не знаю что делать. В инете не нашел решения.
    Прошу помочь. Может кто знает как решить?

      admin

      admin

      Здравствуйте!

      Попробуйте установить com_tcpdf_1.0.0.zip
      http://dev.virtuemart.net/projects/virtuemart/files

        Герман

        Пробовал. Не помогает.

          Герман

          Решил проблему. Установил com_tcpdf_for_vm2

            Герман

            http://dev.virtuemart.net/projects/tcpdf/files

            admin

            admin

            Спасибо, что поделились.

    Дмитрий

    Добрый день.
    При заходе в заказ из админки появляется
    "Предупреждение 500"
    ума не приложу что это такое(

      admin

      admin

      Здравствуйте!

      После чего появилась ошибка?
      500 - это внутренняя ошибка сервера.
      Другие страницы магазина работают правильно?

    Эрика

    Здравствуйте.
    Скажите пожалуйста, как исправить ошибку 404 в админ панели, после обновления виртумарт 2 на виртумарт 3. А именно, нажимаю на виртумарт aio появляется ошибка 404 Компонент не найден и также во вкладке tcpdf. Спасибо!

      admin

      admin

      Здравствуйте!
      В vm3 при переходе в virtuemart aio выводится ошибка, с чем связано не знаю, но на работе это никак не сказывается.

    Эрика

    А как тогда обновить таблицы плагина VM? Это 1 шаг. Обновление virtuemart. Спасибо.

      admin

      admin

      Точно не скажу, но видимо обновление таблиц было необходимо в ранних версиях vm3, когда писалась эта статья.
      Сейчас этого не нужно.
      Если все работает, значит обновление прошло правильно.

    Эрика

    Ок, спасибо огромное!

    Эрика

    Здравствуйте.

    Подскажите пожалуйста, ответ на такой вопрос. Возникли проблемы отображения настраиваемого поля.

    Перед обновлением с вирта 2 на 3, карточка товара выглядела так:
    http://s009.radikal.ru/i308/1601/7e/b8bda6b8b1c7.png

    После обновления:
    http://s017.radikal.ru/i413/1601/07/2ac708c3059c.png

    Категория товара перед обновлением выглядела так:
    http://s020.radikal.ru/i713/1601/a4/e65c72e23544.png

    После обновления стало так:
    http://s020.radikal.ru/i714/1601/7c/2f3ff68e619d.png

    Подскажите пожалуйста, как подправить. Спасибо!

      admin

      admin

      Здравствуйте!

      Пришлите ссылку на сайт.

        Эрика

        Здравствуйте, Владимир.
        Сайт teros.ru

          admin

          admin

          У Вас на сайте вирус.
          Лучше смотреть на сайт после обновления.
          Разместите его на каком-нибудь тестовом домене.

    Эрика

    Это рабочий вариант с вирт 2. На локалке, стоит обновленный вариант.

    Эрика

    Поэтому и обновляемся, а то в старых версиях много уязвимостей.
    Пока некуда к сожалению выложить обновленный вариант. Скажите, а как что-то подобное сделать если не работает старый вариант? Спасибо!

      admin

      admin

      Каждый сайт индивидуален, при обновлении у всех разные проблемы и решать их приходится по-разному, поэтому трудно что-то конкретное посоветовать.

    Эрика

    Здравствуйте, Владимир.
    Посмотрите пожалуйста обновленный вариант сайта, о чем говорилось выше. sotowye.tmweb.ru. Вся надежда на Вас. Спасибо!

      admin

      admin

      Новый сайт так же заражен, не получается на него зайти.

    Эрика

    Владимир, посмотрите sotowye.tmweb.ru еще раз, это в кеше остались файлы, поэтому антивирус так реагировал.
    http://s020.radikal.ru/i710/1601/5c/c34c437a11ef.png

      admin

      admin

      К сожалению, нужно дополнительно вносить правки в файлы шаблона.
      Только с помощью css вопрос не решить.
      Разместите тему в коммерческом разделе форума.

        Эрика

        Ок, спасибо!

    Саня

    Здравствуйте, подскажите пожалуйста можно ли с VirtueMart 2.6.22 обновится до VirtueMart 3.0.13 сразу или необходимо делать это через установку промежуточных VirtueMart версии 3.х.х?

      admin

      admin

      Здравствуйте!

      Можно обновиться сразу.
      В любом случае тестировать обновление лучше на тестовом домене или локальном сервере.

    Саня

    Спасибо, еще вот нашел информацию от том, что советуют при переходе с virtuemart 2 на virtuemart 3 деисталировать, если есть компонент Akeeba BackUP.(на сайте virtuemart3 . ru)

    Михаил

    Все сделано по Вашей инструкции, все впринципи работает, но при входе в админке в virtumart Заказы выдает вот эту ошибку:
    1054 Unknown column 'u.company' in 'field list' SQL=SELECT SQL_CALC_FOUND_ROWS o.*, CONCAT_WS(' ',u.company,u.first_name,u.middle_name,u.last_name) AS order_name ,u.email as order_email, pm.payment_name AS payment_method, u.company AS company, u.city AS city, u.zip AS zip, u.phone_1 AS phone, st.address_type AS st_type, st.company AS st_company, st.city AS st_city, st.zip AS st_zip, u.customer_note AS customer_note FROM ba4vt_virtuemart_orders as o LEFT JOIN ba4vt_virtuemart_order_userinfos as u ON u.virtuemart_order_id = o.virtuemart_order_id AND u.address_type="BT" LEFT JOIN ba4vt_virtuemart_order_userinfos as st ON st.virtuemart_order_id = o.virtuemart_order_id AND st.address_type="ST" LEFT JOIN ba4vt_virtuemart_paymentmethods_ru_ru as pm ON o.virtuemart_paymentmethod_id = pm.virtuemart_paymentmethod_id ORDER BY created_on DESC LIMIT 0, 200

    Михаил

    А второй случай подобной ошибке при входе в раздел "Магазин" в Админке:

    1054 Unknown column 'u.company' in 'field list' SQL=SELECT o.*, CONCAT_WS(' ',u.company,u.first_name,u.middle_name,u.last_name) AS order_name ,u.email as order_email, pm.payment_name AS payment_method, u.company AS company, u.city AS city, u.zip AS zip, u.phone_1 AS phone, st.address_type AS st_type, st.company AS st_company, st.city AS st_city, st.zip AS st_zip, u.customer_note AS customer_note FROM ba4vt_virtuemart_orders as o LEFT JOIN ba4vt_virtuemart_order_userinfos as u ON u.virtuemart_order_id = o.virtuemart_order_id AND u.address_type="BT" LEFT JOIN ba4vt_virtuemart_order_userinfos as st ON st.virtuemart_order_id = o.virtuemart_order_id AND st.address_type="ST" LEFT JOIN ba4vt_virtuemart_paymentmethods_ru_ru as pm ON o.virtuemart_paymentmethod_id = pm.virtuemart_paymentmethod_id WHERE ( u.virtuemart_user_id = 422 AND u.virtuemart_user_id = 422 ) order by o.modified_on DESC

      admin

      admin

      В Расширения > Менеджер расширений > База данных есть какие-то ошибки?

        Михаил

        Нет? нету!(((

        Михаил

        Пробовал переустановить по верх не чего не изменилось( Осталось все так же!

          admin

          admin

          Попробуйте зайти в раздел Virtuemart > Магазин > Магазин, внести какие-то изменения и сохранить. При сохранении никаких ошибок кроме этой же не выдается?

            Михаил

            Так он туда и не заходит, не работает 2-ве вкладки, магазин и заказы!

            Михаил

            В общем проблема решена!!!
            Переименованием строки в таблице #_virtuemart_order_userinfos
            Там почему то появился какой то префикс у строки (DELETE и много цифр) Удаляем его и сразу все работает!

            admin

            admin

            Спасибо, что поделились решением.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*
Для вставки кода заключите его в теги [php] [/php]
*