После установки OpenCart 2.x получаем следующий список папок и файлов:
admin — содержит компоненты бэкэнда
catalog — содержит компоненты фронтэнда
image — для изображений
system — содержит части, отвечающие за функционирование непосредственно движка интернет-магазина/фреймворка.
config.php — файл констант-настроек для фронтэнда
index.php — стартовый файл для фронтэнда
.htaccess.txt — файл настроек для веб-сервера в т.ч. с правилами для обработки ЧПУ
php.ini — прочие рекомендации веб-серверу.
Фреймворк OpenCart работает по шаблону проектирования MVC (Model-View-Controller).
Эта схема позволяет просто и эффективно разделить веб-приложение на ключевые составляющие: данные (Model, модель), логику (обработчики данных - Controller, контроллер) и дизайн (через представления или шаблоны - View, вид). При такой схеме проектирования веб-приложения мы получаем приятно перевариваемую и понятную программу, а не ужасающий лапшекод из PHP и HTML.
Админка
Папка admin состоит из:
controller — директория для всех контроллеров бэкэнда
model — моделей бэкэнда
view — представлений/шаблонов бэкэнда
language — локализаций бэкэнда
config.php — файл констант-настроек бэкэнда
index.php — стартовый скрипт бэкэнда
php.ini — рекомендованные параметры веб-сервера
Витрина
Папка catalog аналогична папке admin только контроллеры, модели, шаблоны и языки относятся к работе фронтэнда, а файлы config.php, index.php и php.ini вынесены в корень движка.
Картинки
Папка image содержит:
catalog — для хранения изображений каталога товаров, баннеров, логотипов и остального
cache — для закэшированных изображений каталога (миниатюр и других картинок, сгенерированных скриптами на основе исходных изображений).
flags — флаги разных стран (для локализаций движка)
placeholder.png - показывается при отсутствии изображений у товара, категории, производителя и других элементов, которые должны иметь картинки
no_image.png — то же самое, только для бэкэнда.
Ядро
Каталог system состоит из:
config — директория с файлами настроек движка для фронтэнда (catalog.php), бэкэнда (admin.php), установщика (install.php). Также тут есть справочный файл настроек для пользовательских компонентов (default.php). Часть значений, вроде параметров доступа к базе данных, берется из соответствующих файлов констант (config.php), которые я приводил выше.
engine — папка классов, отвечающих за функционирование ядра движка (фреймворка), а именно схемы MVC: реализация контроллера, экшена, модели, представления, реестра, загрузчика и т. д.
helper — папка с часто используемыми полезными функциями общего назначения: генерация токенов (уникального ключа авторизованного пользователя), обработка JSON, работа со строками UTF-8, функций для обратной совместимости и работы со старыми версиями PHP и т. д.
library — содержит важные классы движка, вроде обработчика сессий, шаблонов, изображений, языков, сжатия страниц, работы с базой данных, кэширования и т. д., а также классы, реализующие полноценную работу интернет-магазина: классы корзины, валют, налогов, весов, партнерки и т. д.
В library лежат папки:
cache с оберточными классами для разных обработчиков кэширования (APC, Memcache и обычный файловый).
cart — с классами корзины, партнерки, валют, покупателя и т. д.
db с драйверами различных БД (MySQL, Postgresql)
openbay — с драйверами площадок типа Amazon, Ebay, Etsy для компонента OpenBay Pro, который позволяет выгружать и синхронизировать Ваш каталог товаров в OpenCart и каталоги на данных площадках.
session содержит обработчики сессий (файловый и посредством БД)
template — в ней лежит обработчик шаблона.
Папки storage — это хранилище для кэша, файлов на закачку пользователями, логов, модификаций и загружаемых пользователями файлов.
В корне системной папки лежат еще файл startup.php, производящий подготовительные операции, framework.php, реализующий алгоритм фреймворка и modification.xml, описывающий стандартный механизм модификаций, пришедший на замену стороннему компоненту модификаций ядра vQmod.