Краткая практическая инструкция: как работать с OpenCart 3, его архитектурой и OCMOD (модификации).
Цель: дать понятную, повторяемую процедуру для разработки, отладки и развёртывания изменений в OpenCart 3 и управления модификациями через OCMOD.
catalog/ — фронтенд (клиентская часть).admin/ — панель администратора (контроллеры, модели, виды).system/ — ядро: библиотека, storage, modification, config.controller/*), модели (model/*), шаблоны/виды (view/* — Twig/OC template).language/*.dev-modules/<имя_модуля>/upload (структура в upload должна повторять catalog/ и admin/).opencart (root OpenCart) — можно только просматривать для понимания.system/storage/modification.system/ (например system/<имя_модуля>.ocmod.xml) или в dev-modules/<имя_модуля>/upload/system/ — при установке/развёртывании модуля такие файлы будут доступны для установки. Всё равно после добавления/обновления нужно выполнить Refresh модификаций.ocm install (если в проекте есть утилита ocm) — это применит/скопирует файлы из dev-modules/<имя_модуля>/upload в рабочий OpenCart.system/storage/modification и логах (system/storage/logs/).system/storage/modification.5.a) system/library — назначение и неймспейсы
system/library содержит общие библиотеки и классы ядра OpenCart. По умолчанию OpenCart не следует PSR-4/именованным пространствам для своих core-классов — он использует собственный загрузчик (Loader/Registry).system/library — это приводит к коллизиям и потерям при обновлении.dev-modules/<имя_модуля>/upload/system/library/<vendor>/<package>/... и загружайте через стандартный load->library() или регистрируйте автозагрузчик.vendor/ и регистрируйте автозагрузку, либо используйте уникальный префикс/неймспейс, чтобы избежать конфликтов с ядром и другими модулями.system/library; вместо этого создавайте отдельные namespaced-классы и инжектируйте их через registry/DI.dev-modules/<имя_модуля>/upload.opencart — модуль или OCMOD должен обеспечивать изменение.dev-modules/<имя_модуля>/upload и OCMOD (если требуется), указывайте в описании: "Изменения через модуль <имя_модуля>".git status и убедитесь, что изменения лежат только в dev-modules/<имя_модуля>.upload и OpenCart — файл не применяется. Решение: повторяйте точную структуру (admin/controller/..., catalog/view/...).Примеры команд
ocm install
system/storage/cache и system/storage/modification где применимо.Подсказки для Copilot / агентов:
dev-modules/<имя_модуля>/upload.ocm install.Если нужно — расширим этот навигатор чеклистом для PR или шаблоном OCMOD XML.