Что нового в OpenCart 4?

 

Как известно, официальный релиз OpenCart 4 состоялся 24 мая 2022 года. С момента начала этой статьи (18.12.2020) очень существенных изменений с точки зрения пользователей не произошло, но кое что все-таки добавилось.

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

Изменения в OpenCart 4 для пользователей

Обещан новый дефолтный шаблон! Ни фига себе!..

В блоге на официальном сайте в обзоре релиза OpenCart 4 обещан новый внешний вид дефолтной темы (!) Это конечно, надо еще посмотреть, что из этого получится (и через сколько лет это произойдет…). Но общий тон этого обзора наводит на мысль, что разработчика OpenCart достали тем, что ничего хорошего от обновлений не появляется. Да и облачная версия системы активно разрабатывается. Чтобы выжить в эпоху разных и красивых конструкторов, кажется, внешний вид дефолтного шаблона имеет значение…

Новое оформление заказа в корзине! Ура-а-а-а!

Не знаю, почему это не упомянуто в официальном обзоре, но считаю очень важным тот факт, что в опенкарт 4 появилось нормальное одностраничное оформление заказа через корзину. Для многих пользователей отпадет необходимость установки дополнительного модуля Simple Checkout. Хотя, сомнительно, что встроенная корзина будет такой же гибкой, как этот знаменитый модуль.

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

Встроенное мультиязычие

Добавлена метка языка в ссылках сайта. Причем языковая метка есть как в системных сслках, так и при использовании ЧПУ. С моей личной точки зрения это крайне важное изменение. Раньше приходилось ставить специальный модуль, чтобы обеспечить наличие разных ссылок для разных языковых версий сайта. Теперь это есть из коробки. И это здорово!

Встроенный GDPR

Этот пункт направлен на пользователей из Европы.

Зачатки обновлений OpenCart из админки

В разделе обслуживания сайта появился новый раздел «Upgrade». Судя по всему это подсистема для автоматического обновления CMS и установленных модулей.

При сохранении товара (настроек) больше никуда не выбивает

Уж не знаю, стоило ли об этом писать, но сохранение форм (особенно настроек шаблона) в предыдущих версиях OpenCart страшно бесило. Даже был модификатор, который добавлял кнопку «Сохранить и остаться [на странице]». Теперь это все ок из коробки. Как говорится, мелочь, а приятно.

 

Появились встроенные Cron-задачи

wget "http://opencart-4000b.loc/admin/index.php?route=common/cron" --read-timeout=5400

Варианты товара в OpenCart 4

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

OpenCart 4, что нового: добавлены варианты товара

Текстовый редактор CKEditor вместо Summernote

Summernote не самый удобный редактор. Большинство ставят модификаторы, его заменяющие на TinyMCE или CKEditor (кстати, в сборке ocStore изначально была возможность переключения на CKEditor).

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

Что хорошего в OpenCart 4 - добавлен редактор текста CKEditor

Другие изменения в OpenCart 4

  • Теперь товар совсем не сохраняется, если не вписать ЧПУ (SEO URL).
  • Немного изменился менеджер изображений. Ничего существенного, просто на 1 клик меньше за счет того, что иконка отображаются под фото.
  • В списке товаров в админке Статус товара отображается зеленым или красным прямо в стоблце с Названием товара. Это чуточку более приятно, чем серая надпись в отдельном столбце.
  • Добавлен колокольчик уведомлений

В OpenCart 4 добавлены уведомления

 

 

Изменения в OpenCart 4 для разработчиков


Для установки OpenCart 4 требуется версия PHP8+
В принципе все остальные версии PHP уже неактуальны — https://www.php.net/supported-versions.php
Лично я об этом раннее не задумывался, но, оказывается, использование неподдерживаемых версий PHP привносит риски безопасности…


В OpenCart 4 больше не будет OCMOD. По затее разработчиков системы все изменения делаются исключительно через События. Этот факт приводило в недоумение разработчиков вот в этом обсуждении — https://opencartforum.com/topic/169300-opencart-4x-is-coming/

Вполне может быть, что OCMOD до свидания, да здравствует vQmod ( вернемся к истокам 🙂 ). Кстати, на маркетплейсе уже можно найти OpenCart 4 VQMod Manager.


Изменен адрес для размещения файлов расширений

  • Было: admin/controller/module/account.php
  • Стало: extension/opencart/admin/controller/module/account.php

где:

opencart/ — это папка, куда распаковывается установочный архив. Она имеет двойственные характеристики. С одной стороны это папка модуля (кстати, с версии 4.0.2.0 она создается автоматически из навания установочного файла name.ocmod.zip), а с другой стороны на примере той самой папки opencart мы видим, что сюда можно вложить далеко не один модуль. И вот этим вторым моментом могут воспользоваться шаблоны, включая весь набор своих модулей в одну папку. Важно отметить, что раннее я принял эту папку за папку поставщика, куда будут складываться все модули автора по мере их установки. Однако, выяснилось, что при попытке установить еще один модуль с такой же папкой поставщика приведет к ошибке (Упс…)

Изменения также есть в структуре файлов шаблонов, но это описано в отдельной статье — Как создать свой шаблон для OpenCart 4. А также отдельно вынес информацию на тему Разработка модулей под OpenCart 4.

Используется Bootstrap 5. А это до свидание кривым рядам с товарами, которые встречаются даже в очень продаваемых шаблонах.

Используется Font Awesome Free 5.15.x 6.1.1

Добавлены неймспейсы. Видимо, решили привлечь на свою сторону программистов, которые начали свой путь с PHP 7 и просто не понимают, как так может быть, чтобы в файле не надо было прописывать заветное слово namespace.

Добавлен один общий контроллер для управления внешним видом превьюшки товаров в любых списках товаров (категория, производитель, похожие товары и тд)

$data['products'][] = $this->load->controller('product/thumb', $product_data);

Это означает, что вся верстка превьюшек товаров для всех списков товаров теперь находится в одном файле catalog/view/template/product/thumb.twig

Но это касается только оформления. Обработка данных для формирования списка все еще происходит в каждом отдельно взятом контроллере в коде:

foreach ($products as $product) {

...

Все SQL-запросы теперь принято писать с использованием грависов (`). К примеру:

$query
= $this->db->query("SELECT `filter_id` FROM `" . DB_PREFIX .
"category_filter` WHERE `category_id` = '" . (int)$category_id . "'");

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