• Доработки · OpenCart 4.x

Обновление OpenCart: переход на актуальную версию без потери магазина

Обновление версии OpenCart между большими ветвями – это не кнопка в админке: изменяются структура базы, система расширений и система шаблонов, поэтому старые модули и старая тема на новой платформе просто не стартуют. Поэтому вопрос «обновляться или нет» на самом деле звучит иначе: что произойдет с моими модулями, темой и адресами страниц. Мы отвечаем на него до начала работ – разбираем сборку поштучно, переносим данные на тестовую площадку и сверяем количество товаров, заказов и клиентов до и после. Боевой сайт все это время торгует.
Посмотреть, как это работает
Стоимость
после бесплатного аудита
Гарантия
30 дней после подписания акта
Срок работ
15–45 рабочих дней; само переключение – один вечер
после бесплатного аудита
Стоимость
30
Гарантия

дней после подписания акта

15–45
Срок работ

рабочих дней; само переключение – один вечер

тестовая площадка, копия боевой; магазин не останавливается
Где происходит обновление
сверка товаров, категорий, заказов, клиентов и отзывов до и после
Главная проверка
3–5
Аудит сборника

рабочих дней, бесплатно, документ остается у вас

правки в ядре и судьба каждого модуля, не размер каталога
Движущая смета
оплата по этапам, гарантийный срок 30 календарных дней
Условия
Этапы работы

Прозрачные этапы с согласованием на каждом шагу

Общий срок:15–45 дней

  1. Аудит сборника

    3–5 рабочих дней

    Снимаем текущую версию, ищем правки в ядре по сравнению с чистым сборником, составляем перечень модулей с судьбой каждого, смотрим тему и среду. На выходе документ и две оценки: обновить текущий магазин или собрать новый на актуальной версии с переносом данных.

  2. Тестовая площадка и первый перенос

    2–4 рабочих дня

    Поднимаем копию на отдельном домене, закрытом от индексации, ставим новую версию платформы, переносим базу и в первый раз считаем цифры. Первый перенос почти всегда дает расхождение – здесь и становится видно, где у данных аномалии.

  3. Ядро и модули

    5–15 рабочих дней

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

  4. Тема под новую систему шаблонов

    4–10 рабочих дней

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

  5. Прием на тестовом

    3–5 рабочих дней

    Вы кликаете магазин руками: заказ от корзины к листу, оплата, доставка, админка, выгрузка. Параллельно проходит финальная сверка количеств и проверка, что адреса страниц совпали с текущими.

  6. Переключение и 48 часов после

    1 вечер + 2 суток наблюдения

    Вечер согласованного дня: заморозка перемен, последний перенос данных, переключение, проход за чек-листом. Старый сборник остается поднятым под планом отката. Двое суток смотрим логи ошибок, заказа, сканирования и фоновые задачи.

Технологии и интеграции

На чём строим и с чем это соединяется

Стек

  • OpenCart 4.x — развивающая ветвь; честное ограничение: часть украинских модулей под нее до сих пор не вышла
  • OpenCart 3.x – когда критический для вас модуль существует только под нее, это сознательная остановка на предыдущей ветке
  • PHP 8.x, MySQL / MariaDB актуальных версий – без этого новая ветвь не запустится
  • OCMOD-модификаторы вместо правок в файлах платформы – чтобы следующее обновление не начиналось с поиска изменений
  • Git — чтобы в любой момент было видно, что именно изменилось, и было куда откатиться
  • Тестовая площадка на отдельном домене, закрытая от индексации
  • Скрипты сверки количеств до и после – именно они, а не ощущения, подтверждают, что данные на месте
  • Ограничение стека: OCMOD не все покрывает — отдельные изменения физически невозможно вынести из ядра, и такие места мы называем в документе отдельным списком

Интеграции

  • LiqPay
  • WayForPay
  • monobank
  • Новая Почта
  • Укрпочта
  • 1С/BAS
  • XML-фид на маркетплейсы
  • Google Tag Manager
  • GA4
  • Google Search Console
Что входит

Полный перечень работ и того, что вы получаете на выходе

  • Поднимаем тестовую площадку как точную копию магазина: все работы идут там, ваш сайт все это время принимает заказ.
  • Переносим данные и сверяем цифры – товары, категории, заказы, клиенты, отзывы считаются до и после, расхождение должно быть нулевой.
  • Разбираем каждую правку в ядре: нужное бизнесу воспроизводим штатным модификатором, от остальных отказываемся в письменном виде, а не молча.
  • Проходим модули поштучно – версия под новую платформу, аналог или собственный код; решение по каждому принимаете вы еще на аудите.
  • Собираем тему под новую систему шаблонов так, чтобы покупатель не заметил замены: тот же вид, другой код под ним.
  • Сохраняем адреса страниц, а где это технически невозможно – ставим 301 и показываем полный перечень до переключения, не после.
  • Прогоним весь путь покупателя на тестовом: каталог, фильтр, корзина, чекаут, оплата, доставка, письмо о заказе.
  • Проверяем обмен с учетной системой и выгрузку на площадки – после смены платформы это ломается чаще всего.
  • Поднимаем версию языка и базы на сервере как часть работ: без этого новая ветвь не стартует вообще.
  • Переключаем в окно с готовым планом отката; старый сборник остается на месте, пока вы не примете новый.
  • Держим первые 48 часов под наблюдением: ошибки, заказ, индексация, фоновые задачи.
  • Условия: оплата по этапам, гарантийный срок 30 календарных дней после приемки.
Когда эта услуга не подходит

Что не входит в работу — чтобы не было сюрпризов на сдаче

  • Лицензии на новые версии платных модулей – покупаются на вас
  • Редизайн: обновление сохраняет вид, а не изменяет его
  • Обещание, что снятым с поддержки модулям найдется аналог
  • Наполнение каталога и контентные работы
  • Хостинг, домен, эквайринг
Кому подходит

Ситуации, в которых эта услуга даёт результат

Сценарий 1 из 4

Хостинг предупредил, что убирает старую версию языка

Самый частый повод — и самый худший момент, чтобы начинать. В замеренных нами магазинах на OpenCart 3.x мы регулярно видим PHP 7.3.33, версию без поддержки с декабря 2021 года. Пока провайдер держит ее, все работает; в день, когда он отключит, магазин отдаст белую страницу. Обновление в спокойном режиме и обновление за двенадцать часов до отключения – это разные деньги и разное количество риска.

Разберём вашу ситуацию на бесплатном аудите
Обновить текущий магазин или собрать новый по актуальной версии

Чем этот вариант отличается от альтернативы

Что происходит с правками в ядреразбираем поштучно и переносим в модификаторы – долго, но логика магазина сохраняется
Модулисписок остается тот же, изменяются версии; дыры закрываем аналогами
Темапереносим вид, включая мелочи, к которым привык покупатель
Адреса страницсохраняются, это условие работ
Когда дешевлесборка близка к чистой, правок мало, модули имеют версии под новую ветку

Бесплатный аудит сборки перед обновлением

Перед обновлением нужно знать три вещи: что у вас нестандартного, есть ли замена каждому модулю в новой версии и сколько правок сделано в ядре. Аудит отвечает именно на них.

Что мы измеряем

  • Текущая версия и способ ее установкиКакой сборник стоит и обновлялся ли он раньше. Сборочные сборки с «уже встроенными» модулями обновляются значительно труднее чистых.
  • Правки в ядреСколько файлов платформы изменено напрямую. Каждая такая правка не переедет сама: ее надо воспроизвести модификатором, или отказаться от нее сознательно.
  • Список модулей и их судьбаДля каждого расширения — есть ли версия под новую платформу, есть ли аналог или функцию придется писать заново. Это главный множитель сметы.
  • ШаблонЕсть ли выходники темы и существует ли она под новой версией. Между обширными версиями система шаблонов меняется, и посторонние темы часто не переносятся.
  • Состояние базы и объем данныхКоличество товаров, заказов и клиентов, которых необходимо переместить без потерь. Эти цифры проверяются до и после – это главная проверка успеха.
  • СредаВерсия языка и базы. В измеренных нами магазинах мы регулярно видим PHP 7.3.33 и фронтенд на библиотеках десятилетней давности – например, сборник по jQuery 2.1.1 и третья версия фреймворка верстки. Новая версия платформы потребует более современной среды.

Что вы получаете

  • Документ по сборке: версия, правки в ядре, список модулей с судьбой каждого, состояние темы.
  • Оценка двумя сценариями: обновление текущего магазина против сборки на новой версии с переносом данных.
  • Список функций, которые придется воспроизводить заново, с оценкой по каждой.
  • Разговор на 30-40 минут по документу.

Срок: 3–5 рабочих дней

Почему это бесплатно

Ибо судьба каждого модуля — это и смета обновления, а проверить ее можно только поштучно. Документ ваш независимо от того, делаем ли мы обновления или нет.

Что дальше

После аудита – сумма и срок по этапам, договор, счет, акт. Иногда из перечня модулей становится видно, что собрать магазин заново на новой версии дешевле обновления старого; тогда мы покажем обе цифры.

Короткая форма: контакт и адрес сайта

Не нашли свой случай?

Опишите, как это устроено у вас, — ответим, подходит ли «Обновление версии OpenCart» и что это значит в вашей ситуации. Без брифа и без звонка: один вопрос, один ответ.

  • Договор, акт и гарантия 30 дней

    На каждый проект письменный договор: объём, сроки, сумма, порядок приёмки. После сдачи — акт и счёт, затем 30 календарных дней гарантии.

  • ФОП и безналичный расчёт

    Исполнитель — зарегистрированный ФОП. Оплата на счёт с закрывающими документами.

  • Права и доступы — ваши

    Код, дизайн и материалы переходят к вам после полной оплаты. Домен, хостинг, репозиторий оформляем на вас.

  • Портал клиента вместо переписки

    Во время работы вы получаете доступ к порталу: договоры, счета, акты и статус проекта в одном месте.

  • Заказчики из Европы

    Среди работ — проекты для Норвегии, Болгарии, Молдовы и Испании.

  • Цифры, которые можно проверить

    Каждый кейс в портфолио — со ссылкой на живой сайт и техническим замером.

  • Сначала аудит, потом сумма

    Прайса на сайте нет намеренно: объём одной и той же работы у двух клиентов отличается кратно.

  • Говорим «нет», когда не уверены

    Если задача не наша или срок нереальный — скажем сразу.

Что влияет на стоимость

Почему две одинаковые на вид задачи считаются по-разному

  • Правки в ядреГлавный множитель. Каждый измененный файл платформы нужно отыскать, осознать, для чего его правили, и решить судьбу: воспроизвести модификатором либо убрать. Магазин без правок и магазин с двумя десятками правок имеют одинаковый каталог и разный срок в разы.
  • Судьба каждого модуляРасширение с готовой версией под новую платформу – это час работы. Расширение без аналога, функцию которого приходится писать заново, – отдельный проект внутри обновления. Поэтому смета считается по перечню модулей, а не по количеству товаров.
  • Тема и наличие выходниковЕсть выходцы и тема существует под новую версию – переносим. Нет выходников или автор темы исчез – собираем вид заново под новую систему шаблонов. Это та часть, где диапазон самый широкий.
  • Чистота данныхКаталог с дублями, пустыми категориями и товарами вне категорий переносить дороже: каждую аномалию нужно разобрать, иначе она переедет вместе со всем остальным и испортит сверку.
  • Состояние сервераЕсли версию языка и базы можно поднять на текущем хостинге – это несколько часов. Если провайдер держит старый сборник жестко, к обновлению добавляется переезд на другую среду.
  • Можно ли заморозить измененияПока идет работа на тестовой площадке, каждая новая партия товаров и каждый заказ на боевой — это разница между двумя копиями. Договоренность об окне тишины стоит ноль, а экономит перенос данных набело.
Кейсы

Задачи и результат в цифрах — все показатели сняты нашим замером

магазин систем автоматического полива с каталогом на 300 позиций

Задача
Зафиксировать фактическое состояние сборки в разговоре об обновлении: что внутри, сколько данных и что придется воспроизводить руками.
Решение
Каталог перечислили двумя независимыми методами – обход корневых категорий по пагинации и объединение выдачи внутреннего поиска по 18 разным запросам. Далее замеры скорости по пяти повторам, разбор кода страницы и заголовков сервера.
Результат
300 товаров в 40 категориях на 4 уровнях вложенности, оба метода дали тот же набор идентификаторов — расхождение 0%, и именно эта цифра становится контрольной после переноса. Первый ответ 235 мс (медиана из 5 замеров), полный HTML 262 мс, вес главного 143,6 КБ и 22,5 КБ в brotli. В ожидании 6 способов доставки от 2 перевозчиков и 3 способа оплаты – все это придется воспроизводить на новой версии поштучно. Технический сборник: OpenCart 3.x с jQuery 2.1.1 и третьей версией фреймворка верстки, тема chameleon. Отдельно нашли в теме 4 скрытые ссылки на посторонний домен перед закрытием body со стилем display:none – при пересборке темы они не переезжают, и это редкий случай, когда обновление убирает проблему само собой.

интернет-магазин официального продавца садового инвентаря

Задача
Оценить техническое состояние магазина с каталогом более тысячи позиций — в частности, насколько срочно нужно менять среду.
Решение
Замеры скорости и веса, разбор карты сайта на уникальность адресов, проверка заголовков сервера и структурированных данных.
Результат
Среда — PHP 7.3.33, без поддержки с декабря 2021 года: вопрос уже не «обновлять», а «до какой даты». В карте сайта 1 300 уникальных адресов – около 1 213 карточек товара и 70 категорий – при 4 236 записях всего, то есть примерно 3,3 дубля в адрес. Первый ответ 625 мс, полная загрузка 752,5 мс при 350,4 КБ разметки. Включен новый протокол и строго защищенное соединение. Структурированных данных товара на главной нет, тэг H1 отсутствует. Уточнение: обновление версии само по себе не уберет ни 3,3 дубля в адрес, ни отсутствует H1 – это отдельные работы, которые мы выносим отдельной строкой, а не прячем внутрь апгрейда.
Что нужно от вас

Без этого не начнём — лучше подготовить заранее

  1. Доступы: админка, файлы, база, панель хостинга.
  2. Список модулей, за которые вы платите, с лицензиями.
  3. Выходцы темы, если они есть.
  4. Решения по функциям, для которых нет готовой замены: воспроизводить или отказаться.
  5. Согласованное окно переключения.
  6. Один человек с правом принимать работы на тестовой площадке.

Если чего-то из этого нет — скажите, подскажем, как собрать или сделаем сами отдельной задачей.

Частые вопросы

Что спрашивают чаще всего — с конкретными ответами

Можно ли обновиться одной кнопкой из админки?

Между мелкими версиями одной ветви часто так, и это нормальная гигиена. Между большими ветвями нет. Там переписаны структура базы, система расширений и система шаблонов, поэтому старые модули и старая тема не запускаются в принципе. То, что принято называть обновлением, является сборкой магазина на новой платформе с переносом данных и воспроизведением функций. Отсюда и правило сметы: считаем по перечню модулей и правок, а не по размеру каталога.

Я потеряю товары, заказы и клиентов?

Не должны, и это не вопрос доверия, а вопрос цифр. Данные переносятся на тестовую площадку, после чего числятся товары, категории, заказы, клиенты и отзывы – до и после. Разница должна быть нулевой. Первый перенос почти всегда дает ненуль: в измеренном магазине полива контрольная цифра – 300 товаров в 40 категориях, и пока на тестовом не появится ровно она, дальше мы не двигаемся. Причину выясняем до переключения, а не после.

Что будет с моими модулями?

Каждый разбирается по отдельности, и это самая длинная часть аудита. Есть версия под новую платформу – ставим ее. Есть аналог – показываем, чем он отличается от привычного. Нет ничего – оцениваем реализацию функции собственным кодом или предлагаем от нее отказаться. Решение по каждому пункту вы принимаете: мы видим трудоемкость, вы видите, действительно ли эта функция нужна бизнесу. Лицензии на новые версии платных расширений покупаются на вас, не подрядчика.

Дизайн сохранится?

Внешний вид – да, это цель работ. Технически тема часто собирается заново, потому что система шаблонов между ветвями другая, а посторонние темы под новую версию нередко просто не выпускались. Мы воспроизводим внешний вид, а не копируем файлы. Наша рекомендация, и на ней мы настаиваем: не смешивайте обновления с редизайном. Когда одновременно изменяются платформа и макеты, любая проблема после запуска имеет два возможных источника и разбор съедает больше времени, чем обе работы отдельно.

А если просто не обновляться?

Если среда еще поддерживается провайдером, магазин продает, а новых модулей вам не нужно – это рабочий вариант, и мы так и скажем. Срок годности у такого решения все же есть: в измеренном нами магазине садового инструмента стоит PHP 7.3.33, версия без поддержки с декабря 2021 года и день, когда хостинг ее уберет, назначает провайдер, а не вы. Разница между плановым обновлением и аварийным – в темпе, цене и количестве нервов.

Адреса страниц сохранятся?

Да, и это условие работ, а не пожелания. Если при переходе меняются адреса, это уже переезд: нужна карта редиректив, часть позиций проседает, а восстановление растягивается на месяцы. Мы сохраняем структуру адресов, а в отдельных местах, где это технически невозможно, закрываем старые адреса 301-редиректом и показываем перечень до переключения. После запуска смотрим ошибки сканирования в Search Console – доступ к ней нужен именно для этого.

Сколько длится и сколько магазин не будет работать?

Работы – 15–45 рабочих дней. Простой вечер. Нижний предел срока означает сборку без правок в ядре и небольшой набор стандартных модулей; верхняя – десятки изменений в файлах платформы и платные расширения, часть функций которых приходится писать заново. Остальные проходят на тестовой площадке, поэтому боевой сайт торгует до последнего дня. Переключение ставим на самый тихий для вашего магазина вечер, а старый сборник остается поднятым на всякий случай.

Обновление исправит SEO-проблемы, которые у меня уже есть?

Нет, и обещать обратное было бы нечестно. Новая версия платформы не убирает дублирование адресов, не дописывает тексты и не добавляет структурированные данные. В измеренном магазине садового инструмента в карте сайта 4 236 записей на 1 300 уникальных адресов – около 3,3 дубля в адрес; после обновления их будет ровно столько же, если не заняться этим по отдельности. Такие работы мы выносим отдельной строчкой сметы. И сразу честный предел: чистка дублей не добавляет трафика, она перестает его распылять, а количество страниц в индексе какое-то время может даже падать – это ожидаемый ход событий, а не ухудшение.

Отправьте доступ к админке и перечень модулей, за которые платите.

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

Из измеренных кейсов300 товаров в 40 категориях на 4 уровнях вложенности, оба метода дали тот же набор идентификаторов

Смотреть кейсы
  • Ответ в течение 2 часов
  • Без обязательств
  • Работаем по договору

Прайса на сайте нет намеренно: объём той же работы у двух клиентов отличается в разы, и цифра «от» в этом случае ничего не объясняет. Сначала бесплатный аудит — считаем ваши страницы, дубли и скорость, — потом называем сумму и срок и фиксируем их в договоре.