Доработка шаблона category для OpenCart (ocStore).

Получил задание доработать вывод шаблона с добавлением некоторого функционала.
Как решить знаю, не мог сначала разобраться в некоторых особенностях cms. Работаю с ней первый раз.

Что нужно сделать?
В каталоге добавить возле каждого товара инпут с кол-вом товара. Сначала там нули, и есть + – для увеличения, уменьшения количества. Внизу каталога будет кнопка “Купить выбранные”. По нажатию в корзину добавятся все, где кол-во выбрано 1 и более.
Далее мои рассуждения и решение.

Обычное добавление происходит в шаблоне вот в этом месте

Идем в js шаблона, находим ф-ю и видим ajax запрос

Отсюда понимаем, что вызывается некая ф-я update.

Изучение класса cart библиотеки дает нам код ф-ии Update, но это не та ф-я, нужна ф-я контроллера cart.php, которая находится в /catalog/controller/checkout/cart.php.

Понятно, ведь в ajax передается ид товара, тут принимается

Дальше в ф-ии есть вызов библиотечной add();

Информации получено достаточно, теперь пишем код.

Шаблон привел к нужному виду.

шаблон opencart ocstore category

Создал свой текст кнопки в language/russian.php

И добавил в контроллере в массив

Кнопка выводится как другие только с другим текстом и будет вызывать другую js ф-ю.

<div class="cart"><a onclick="addAllToCart('<?php echo $produts_id_on_page ?>');" class="button"><span><?php echo $button_all_cart ?></span></a></div>

Список ид на странице собираю в строку.

В шаблоне весь список загнан в теги form и добавлен инпут с ссылками. Стили в ходе работы не выносил, пока делал.

Ф-ии js для увеличения и уменьшения, а так же ф-ю вызова ajax с массивом показывать не буду.

Что вышло.

Кликаем сколько нам нужно товаров.
выбор нескольких товаров opencart ocstore

Далее жмем “купить выбранное”, получаем в корзине 6 товаров.
корзина opencart ocstore

За решение мне предложена оплата 40у.е. Для следующих желающих буду продавать по 20у.е.