Быстрые ссылки

OpenCart 3, OpenCart 4 или ocStore: что выбрать

Вопрос «на какой версии делать магазин» в OpenCart важнее, чем кажется: от него зависит, какие модули будут доступны, на какой версии PHP магазин сможет работать и насколько больно будет обновляться через пару лет. Разберу три основных варианта так, как объясняю их клиентам.

Коротко

  • OpenCart 3.0.x — самая распространённая версия, огромный выбор модулей и шаблонов, стабильная. Мой вариант по умолчанию для большинства магазинов.
  • OpenCart 4.x — новая архитектура, современный PHP, но модулей и шаблонов меньше, и не все они зрелые.
  • ocStore — русская сборка OpenCart с SEO-доработками и локализацией из коробки. Удобна для русскоязычных магазинов, но добавляет зависимость от сборщика.

OpenCart 3.0.x

Вышла в 2017 году и до сих пор получает исправления в ветке 3.0.x (3.0.3.x, 3.0.4.x). Шаблоны на Twig, модификаторы через OCMOD, понятная структура.

Плюсы:

  • тысячи модулей и шаблонов, включая все популярные под Беларусь и Россию: ЕРИП, bePaid, WebPay, СДЭК, Европочта, обмен с 1С;
  • много разработчиков, которые её знают;
  • последние сборки 3.0.x нормально работают на PHP 8.0–8.1.

Минусы:

  • архитектура устаревает, часть модулей не обновляется под PHP 8;
  • админка выглядит старомодно, хотя полностью рабочая.

OpenCart 4.x

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

Плюсы:

  • современный PHP, лучше задел на будущее;
  • более аккуратная система расширений.

Минусы:

  • модулей меньше, особенно локальных: доставка по Беларуси, ЕРИП, обмен с 1С — выбор узкий;
  • ранние версии 4.0.x были сыроватыми, обновления внутри ветки иногда ломают совместимость;
  • меньше разработчиков с опытом.

Когда выбирать: новый магазин без сложных интеграций, где нужные модули под 4.x уже есть, и вы готовы к тому, что часть доработок придётся заказывать.

ocStore

Сборка на основе OpenCart, которую делает русскоязычное сообщество. Основные отличия:

  • русский язык и рубли из коробки;
  • SEO-поля для категорий, товаров и производителей: H1, meta title отдельно от названия;
  • ЧПУ и некоторые оптимизации;
  • дополнительные мелкие функции в админке.

ocStore 3.0.x базируется на OpenCart 3.0.x, и большинство модулей для OpenCart 3 на нём работают. Но не все: модули, которые меняют те же файлы, что и доработки ocStore, могут конфликтовать. Хорошие авторы указывают совместимость с ocStore отдельно.

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

Сравнение по главным критериям

Критерий OpenCart 3.0 OpenCart 4 ocStore 3
Выбор модулей Максимальный Меньше Почти как у 3.0
Локальные модули BY/RU Есть почти все Мало Есть почти все
PHP 8 Да, свежие сборки Да Да, свежие сборки
SEO из коробки Базовое Базовое Расширенное
Сложность найти разработчика Низкая Средняя Низкая

Если у вас OpenCart 2.x

OpenCart 2.x (2.1, 2.3) не работает на PHP 8, а хостинги постепенно отключают PHP 7.x. Это главная причина, по которой магазины на 2.x начинают падать с ошибкой 500 после «плановых работ на хостинге». Варианты:

  1. Остаться на 2.x и PHP 7.4 — временно, пока хостинг это позволяет. Риск: уязвимости в неподдерживаемом PHP.
  2. Обновиться на 3.0.x — оптимальный путь для большинства.
  3. Перейти сразу на 4.x — если всё равно меняете шаблон и большую часть модулей.

Как обновиться с 2.x на 3.0

Автоматического «обновить» здесь нет: это перенос данных на новую установку.

  1. Сделайте полную копию магазина.
  2. Установите чистый OpenCart 3.0.x (или ocStore 3) на тестовый поддомен.
  3. Перенесите данные: категории, товары, атрибуты, опции, производителей, покупателей, заказы. Структура таблиц в основном совместима, но различается в деталях — используйте скрипт миграции или модуль переноса и проверяйте результат.
  4. Подберите аналоги модулей под 3.0: оплата, доставка, фильтр, SEO.
  5. Перенесите шаблон или поставьте новый. Шаблоны 2.x (tpl) не подходят — в 3.0 используется Twig.
  6. Проверьте, что адреса категорий и товаров совпадают со старыми. Если нет — настройте 301-редиректы.
  7. Проверьте заказ от начала до конца, затем переключите домен.

Как обновиться внутри 3.0.x

С 3.0.2 на 3.0.3.x или 3.0.4.x обновиться проще: замените файлы ядра, сохранив config.php, admin/config.php и папку image, запустите скрипт обновления в /install, если он есть в сборке. Модификаторы после этого обновите и проверьте лог OCMOD — часть модулей может не найти изменённые строки.

С 3.0 на 4.x

Тот же сценарий, что и с 2.x на 3.0: новая установка, перенос данных, новые модули и шаблон. Делать это стоит только при реальной необходимости, а не потому что «вышла новая версия». Магазин на актуальной 3.0.x с PHP 8 — нормальная рабочая конфигурация.

Мои рекомендации

  • Новый магазин в Беларуси с ЕРИП, Европочтой и обменом с 1С — OpenCart 3.0.x или ocStore 3: все нужные модули есть.
  • Новый магазин без локальных интеграций, со свежим шаблоном — можно OpenCart 4, если нужные модули существуют.
  • Старый магазин на 2.x — планировать переезд на 3.0.x, пока хостинг не отключил PHP 7.

Подробнее о модулях и их установке — в статье «Модули OpenCart». Если нужно обновить или перенести магазин — это задача для доработки OpenCart, а новые магазины я делаю в рамках услуги «Создание интернет-магазина».

Как узнать, что у вас за версия

  • Внизу любой страницы админки указана версия, например «Version 3.0.3.8».
  • В файле index.php в корне магазина есть константа VERSION.
  • ocStore отличается логотипом и названием в админке и наличием SEO-полей «HTML-тег H1» в карточке товара.

Версию PHP смотрите в панели хостинга или создайте временный файл с вызовом phpinfo() и сразу удалите его после проверки.

Пять вопросов перед выбором версии для нового магазина

  1. Какие способы оплаты нужны? Проверьте, есть ли модуль вашей платёжной системы под выбранную версию.
  2. Какие службы доставки? То же самое для СДЭК, Европочты, Белпочты.
  3. Нужен ли обмен с 1С? Модули обмена по CommerceML для 3.0.x зрелые, для 4.x выбор меньше.
  4. Есть ли готовый шаблон под ваш дизайн? Хороших шаблонов для 3.0 в разы больше.
  5. Кто будет поддерживать магазин? Разработчиков, знающих 3.0 и ocStore, найти проще.

Если на первые три вопроса для 4.x ответ «есть, проверенные», можно выбирать 4.x. Если хотя бы по одному пункту «нет» или «не уверен», практичнее 3.0.x или ocStore 3.

Типичные проблемы после перехода на PHP 8

Даже на свежей сборке 3.0.x после смены PHP могут всплыть ошибки в модулях:

  • Warning: Undefined array key — старый код не проверяет наличие ключей массива; на PHP 8 предупреждения засоряют лог, а иногда ломают AJAX-ответы корзины;
  • count(): Argument must be of type Countable — функция count вызывается для null;
  • ошибки в устаревших библиотеках платёжных модулей.

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

Типичный сценарий: переезд с OpenCart 2.3 на ocStore 3

Магазин на OpenCart 2.3 начинает падать после «планового обслуживания» хостинга, потому что старую версию PHP отключают. Порядок переезда:

  1. Поднять чистый ocStore 3.0.x на поддомене.
  2. Перенести категории, товары, атрибуты, опции, производителей и покупателей скриптом миграции и сверить количество записей.
  3. Заменить устаревшие модули актуальными аналогами: фильтр, оформление заказа, оплата, доставка.
  4. Проверить, что адреса категорий и товаров совпадают со старыми, для изменившихся — сделать 301-редиректы.
  5. Переключить домен в нерабочее время, проверить заказ и письма.

Если адреса сохранены, позиции в поиске при таком переезде обычно не страдают.

Чек-лист обновления OpenCart

  1. Полная копия файлов и базы.
  2. Список модулей и модификаторов с версиями.
  3. Проверка совместимости каждого модуля с новой версией.
  4. Тестовая установка на поддомене.
  5. Перенос данных и проверка количества записей.
  6. Шаблон и модули под новую версию.
  7. Проверка адресов страниц, редиректы.
  8. Полный тест заказа и оплаты.
  9. Переключение домена, наблюдение за журналом ошибок первые дни.

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

Можно ли перейти с OpenCart на ocStore той же версии?

Да, ocStore 3 совместим с базой OpenCart 3.0. Переход делается заменой файлов с сохранением конфигурации и обновлением базы, но модули и шаблон нужно проверить на копии.

Подойдёт ли OpenCart для магазина на 50 000 товаров?

Подойдёт при нормальном сервере, кэшировании и аккуратном выборе модулей фильтра. На виртуальном хостинге с таким каталогом будет тесно.

Нужна помощь?

Если не хочется разбираться самому или не получилось — напишите мне. Посмотрю сайт и скажу, что сломалось и сколько стоит исправить.

Доработка OpenCart и ocStoreНаписать в TelegramНаписать в Viber

Leave a comment