OC++ доработанный и исправленный OpenCart 4.1.0.3

Тема в разделе "Обо всём", создана пользователем AlkatraZ, 8 апр 2026.

  1. AlkatraZ

    AlkatraZ Новичок

    Сообщения:
    22
    Симпатии:
    12
    Всем привет.
    Кидаю на тестирование OC++

    ВНИМАНИЕ!
    Данный проект не является официальным проектом OpenCart.


    Что это такое?
    Это прототип грядущей OpenCart 4.1.1.0.

    Это не "сборка"
    , ничего постороннего не добавлялось.
    • Тут только исправления и улучшения имеющегося кода.
    • Вычищено много дублирующегося и неиспользуемого кода.
    • Проект полностью совместим с Opencart 4.1.0.3
    Скачать: OC++ 0.2.0 beta
    Несмотря на то, что это бета-релиз, по сравнению с оригинальным OpenCart 4.1.0.3 исправлено большое к-во косяков и сделано много полезных улучшений.

    Архив качается напрямую с ГитХаба. Если у кого то проблемы с доступом туда - пишите, я залью на облако mail.ru.

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


    Что было сделано?
    Полный список изменений есть в CHANGELOG.
    • За основу взята 4.1.0.3
    • Накатил доработку под Alpine Linux
    • Выпилил ОГРОМНЫЙ (около 3000 файлов), неиспользуемый пакет aws/aws-sdk-php
    • Прошелся по официальной истории комитов, начиная с 4.1.0.3 и выыше, импортировал все более-менее важные исправления и доработки, которые НЕ ЛОМАЮТ совместимость с 4.1.0.3
    • Исправил косяки, список которых строился на основе повседневной работы и анализа .log файлов реальных действующих магазинов.
    • Добавил свои исправления, и доработки.
    • Исправил ВСЕ замечания статического анализатора PhpStan, на который в оф. репозитории OpenCart уже давно махнули рукой.
    Маленький живой пример OpenCart 4.1.0.3++ можно видеть на одном из моих сайтов https://isoap.ge
    • Движок: OC++
    • Языки: Английский, Русский, Грузинский
    • Дополнения: Journal 3.2.8.7, Cloudflare Turnstile, и несколько собственных дополнений, касающихся оплаты и доставки по Грузии.
    • Стабильность: за последний месяц в логах была всего 1 ошибка, которую уже исправил.
    Тестирование
    Лучше всего это делать в Docker.
    Клонируйте себе репозиторий и воспользуйтесь инструкцией из README.md

    Установка

    Тут все по стандартной инструкции для OpenCart 4 версии.
    В архиве только Английский язык, остальные устанавливаете сами.

    Поддержка
    Имейте в виду!
    Хоть и исправлено большинство известных проблем, пакет еще в бета-варианте.
    Тестируйте на здоровье. На живых магазинах - только если знаете, что делаете и умеете оперативно решать проблемы, накатывая патчи.

    Обо всех замеченных проблемах пишите ТУТ, или на Гитхабе в моем репозитории.
    По возможности (и наличии свободного времени) постараюсь оперативно исправить.
     
    Последнее редактирование: 3 май 2026
    Romans и Ravilr нравится это.
  2. Ravilr

    Ravilr Специалист

    Сообщения:
    4.190
    Симпатии:
    1.439
    Много инглиша, мало русского, вот и запрещается такое название. Только допишите в описании явно, что это личный релиз не официальный, вдруг кто еще спутает с просони :)
     
  3. Ravilr

    Ravilr Специалист

    Сообщения:
    4.190
    Симпатии:
    1.439
    То что взяли без указания авторства плохо, но то что хоть как то сдвинулось с мертвой точке, благодаря Вам в том числе, это хорошо.
     
  4. AlkatraZ

    AlkatraZ Новичок

    Сообщения:
    22
    Симпатии:
    12
    Что было сделано, по сравнению с оригинальной OpenCart 4.1.0.3
    Ченджлог я писал на Английском, ибо для Гитхаба :)
    ---

    BETA-1
    (19.04.2026)

    Added
    • #14857, #14858, #14859 - Add manufacturer filter
    • Emulation of GLOB_BRACE for Alpine/musl environments:
      introduced a custom oc_glob() helper function to emulate native glob functionality.
    • The date_added field has been added to the product form.
    • CSS minification, minified versions of CSS are used.
    • Modern Chart.js library for Dashboard sales and analytics visualization.
    • Lightweight library Jsvectormap for Dashboard map visualization.
    Changed
    • #14753 - Retrieve more in depth files from extension directory for permission.
    • #14790 - Updated catalog/language/en-gb/default.php, added text_all.
    • #14818 - Safest one just in case the product options are empty.
    • #14820 - Event list: always allow for viewing event details.
    • #14891 - To collect cache files, do it only if the random has fallen to the cleanup.
    • #14915 - Add OPTIMIZE TABLE to db.php.
    • #15326 - Use the composer-generated autoload for the 3rd-party packages
    • 0a8b25a - Added some additional form text.
    • 8996eb3 - partially used - Improved admin/controller/marketplace/installer.php.
    • 062ba0e, 85e8ddb - partially used - Updated language methods.
    • Refactored the codebase to replace all glob() calls using the GLOB_BRACE flag with oc_glob() emulator to ensure compatibility with Alpine Linux and other musl-based environments where GLOB_BRACE is unavailable.
    • Reduced the size of the "Delete" buttons on the 'Links' tab of the product form.
    • Improved session handler.
    • Improved cache cleanup.
    • Improved .css refresh.
    • admin/view/javascript/common.js fixed and improved (revision using Claude LLM).
    • catalog/view/javascript/common.js fixed and improved (revision using Claude LLM).
    • Bootstrap CSS and JS libraries updated to version 5.3.8
    • jQuery updated to version 4.0.0
    • scssphp/scssphp package updated to version 2.1
    • twig/twig package updated to version 3.24
    • Monolithic stylesheet.css has been converted to a modular SCSS structure
    • Reworked Autocomplete for the Admin panel:
      • The code has been reworked.
      • JS is separated into an include file that can be reused.
      • Removed a large amount of duplicate and outdated code.
    • Reworked Filters for the Admin panel:
      • The code has been reworked.
      • JS is separated into an include file that can be reused.
      • Clean URLs are generated, without empty selectors.
      • Removed a large amount of duplicate and outdated code.
    Removed
    • Removed a large amount of outdated and duplicate code
    • Deprecated libraries replaced with current versions:
      • Flot (replaced with Chart.js).
      • jQuery Vector Map (replaced with Jsvectormap)
    • Deprecated PHP functions:
      • imagedestroy
      • curl_close
    • As unused:
      • vendor-related functionality and references from the developer tools
      • upload/system/helper/filter.php
      • aws/aws-sdk-php package
      • bootstrap-icons
      • nunjucks-slim.js library
      • jquery-ui
    Fixed
    • #14438 - WYSIWYG misconfiguration in ADMIN page for product edit.
    • #14498 - Sales order Store - wrong in the order list.
    • #14731 - In additional Stores Cookie Policy is not selectable.
    • #14736 - Fix disabled products design same as other table lists.
    • #14739 - After creating multiple folders, the root directory images are not displayed.
    • #14740 - Renamed total function as they had an incorrect name.
    • #14744 - BUG in product settlement.
    • #14746 - Various bugs with sku, upc, ean, jan, isbn, mpn.
    • #14755 - Wrong total on cart page
    • #14756 - Order files are not displaying in the admin order details page.
    • #14758 - Unnecessary parameter
    • #14759 - Checkout cart page lists wrong item totals.
    • #14764 - Admin login as customer not working.
    • #14791 - Fix wrong search result pagination.
    • #14803 - Admin order notes are visible to the customer
    • #14822 - In Admin, while creating new order, Product is not being added.
    • #14843 - Fix autoloader in storeInstance to ensure proper class loading.
    • #14845 - Missing language definition in account/forgotten.php.
    • #14867 - Fix autoloader: one namespace can contain classes from different folders.
    • #14878 - Wrong column used in topic layout methods (article_id instead of topic_id)
    • #14882 - Undefined array key "payment_zones".
    • #14887 - Product::addReport(): Argument #1 must be of type int, string given.
    • #14895 - Should use array_merge.
    • #14903 - Fixed getTotals().
    • #14988 - Correct method names for bulk delete operations
    • #15046, 6999e3e, 6dd838b - Various bugs in system/library/curl.php.
    • #15185 - Fix viewing embedded Youtube video.
    • #15363 - Fixed Category Filter
    • #forum - Error when deleting a product from Wishlist.
    • The zone name was not displayed in the list
    • The password recovery link in the email was visible as plain text
    • Undefined array key "author" in catalog/controller/product/review.php on line 161
    • getProduct(): Argument #1 ($product_id) must be of type int
    • PHP Warning: Undefined array key "en-gb'nvOpzp;..." in catalog/controller/common/language.php
    • Error: Opencart\Admin\Model\Catalog\Product::getDiscounts(): Argument #1 ($product_id) must be of type int
    • Error: Invalid session ID
    • Undefined variable $price_status in catalog/controller/api/cart.php.
    • Undefined variable $thid in catalog/controller/api/order.php.
    • getReviewsByProductId(): Argument 2 ($start) must be of type int (mentioned on #15319)
    • Variable $file in isset() always exists and is not nullable in system/engine/autoloader.php (90)
    • PHP Warning: unlink(): No such file or directory in /system/library/cache/file.php on line 37
    • Administrator password recovery
    • Display of sales statistics on the Dashboard Map
    • The 'Reset' button on the admin panel filters did not work correctly
    • SQL error on admin/sale/subscription filter
    • SQL error on admin/sale/returns filter
    • Green Build - Fixed various static analysis errors and comments
     
    Последнее редактирование: 1 май 2026
    Ravilr нравится это.
  5. Ravilr

    Ravilr Специалист

    Сообщения:
    4.190
    Симпатии:
    1.439
    Это Вы еще не пробовали специальную модель для этого дела :D Таких багов можно найти 1000 , правда не каждый сможет их эксплуатировать.

    Так на чем договорились? Успевают за Вами? Будут переносить? Или по копейке в год и под своим именем?
     
    AlkatraZ нравится это.
  6. Ravilr

    Ravilr Специалист

    Сообщения:
    4.190
    Симпатии:
    1.439
    Вот они реально копошатся, ладно раньше никто не предлагал готового, а сейчас все той же фигней занимаются, то языки правят, то библиотеки обновляют, как будто это основное.. а воз и ныне там.
     
  7. AlkatraZ

    AlkatraZ Новичок

    Сообщения:
    22
    Симпатии:
    12
    В общем, вроде разногласия уладили, с Даниэлем договорился.
    Тестирование в виде OC++ будет идти до конца Апреля.
    Ну а после, если не произойдет ничего непредвиденного, это ляжет в основу будущего OpenCart 4.1.1.0
     
  8. AlkatraZ

    AlkatraZ Новичок

    Сообщения:
    22
    Симпатии:
    12
    Тему почистил от лишних своих постов, чтоб не отвлекало...
    На выходные (если ничего не случится) планирую выпустить BETA-2, уже накопилось много полезных доработок.
     
    Ravilr нравится это.
  9. AlkatraZ

    AlkatraZ Новичок

    Сообщения:
    22
    Симпатии:
    12
    Вышла BETA-2
    Ссылки на скачку в 1-м посту.
    Пакет обновлений если надо качайте с Гитхаба.

    BETA-2 CHANGELOG

    Added
    • Remember the last directory in the file manager / привет местным умельцам :).
    Changed
    • Admin: SEO tab merged with General tab.
    • Admin: further improvements to the filter system.
    • Refactoring
    Removed
    • Legacy cron.php.
    Fixed
    • #15381 - Fix category filter model.
    • #15354 - Fixed the OCMOD functionality.
    • #15333, #15397 - A set of fixes from @plemondev (partially used)
    • #15396 - Voiding the order here should only happen if it has already been confirmed.
    • (introduced in Beta 1) Some pop-up messages contained HTML code instead of links.
    • When unloading extensions, archives with errors were not deleted, but remained in the /marketplace folder.
    • Various minor fixes...
     
  10. AlkatraZ

    AlkatraZ Новичок

    Сообщения:
    22
    Симпатии:
    12
    Русский язык для установки в виде модуля.
     

    Вложения:

    Ravilr нравится это.