Что такое OpenCart
OpenCart — бесплатный движок интернет-магазина с открытым кодом, написанный на PHP. Сразу после установки в нём есть каталог товаров, корзина, оформление заказа, личный кабинет покупателя и панель управления. Его ставят, добавляют товары — и магазин работает. Код нужен только тогда, когда магазин должен делать то, чего движок не умеет.
Что внутри
| Часть | Что делает |
|---|---|
| Витрина | Страницы для покупателя: каталог, товар, корзина, оформление заказа |
| Панель управления | Товары, заказы, покупатели и настройки |
| Дополнения | Модули, способы оплаты и доставки, темы |
Всё, что вы пишете сами, оформляется как дополнение. Файлы ядра остаются нетронутыми, поэтому магазин можно будет обновить.
Какая версия
Курс описывает OpenCart 4 — выпуски 4.0.2.x и 4.1.x. Четвёртая версия сильно отличается от второй и третьей: в коде появились пространства имён, дополнения лежат в отдельной папке, адреса строятся иначе.
Выпуски 4.0 и 4.1 тоже отличаются друг от друга в мелочах: аргументы методов, ключи массивов, пункты меню. Там, где деталь зависит от выпуска, в уроке это сказано. Если сомневаетесь — откройте такой же файл в ядре своей копии и посмотрите, как сделано там.
Что нужно
| Что | Версия |
|---|---|
| PHP | 8.0 и новее |
| База данных | MySQL или MariaDB |
| Веб-сервер | Apache или Nginx |
У OpenCart нет консольной утилиты вроде Artisan, и для своего кода не нужен Composer. Файлы создают вручную в нужной папке — движок находит их по пути.
Что вы напишете
Через весь курс проходит один пример — дополнение acme_hello:
extension/acme_hello/
├── install.json
├── admin/ страница настроек в панели
└── catalog/ блок и страницы на витринеСначала вы разберёте, как устроена страница, на простом контроллере, затем перенесёте код в это дополнение, добавите настройки, таблицу, события, а позже — способ доставки и способ оплаты.
Что нужно знать заранее
PHP на уровне классов и пространств имён, основы SQL (SELECT, INSERT) и HTML. Шаблоны пишутся на Twig — его синтаксис объясняется в уроке о шаблонах.
Частая ошибка
Большинство примеров в сети написаны для OpenCart 2 и 3 и в четвёртой версии не работают. Прежде чем копировать код, посмотрите, для какой версии он написан. Признак четвёртой версии — строка namespace Opencart\... в начале файла и пути, которые начинаются с extension/.