Меня часто при создании интернет магазина заказчики спрашивают как добавить количество в категорию opencart, что бы можно было сразу же из списка товаров с категории добавить нужное количество в корзину.
Интернет магазины есть разные, и не всегда обязательно клиенту нужно заходить в саму карточку, по этому количество в категории opencart является очень удобным для покупателя и он сразу же может купить сразу несколько товаров из категории с нужным ему количеством.
Конечно это будет актуальным при условии что у товара нет опций которые нужно выбирать. Если в товаре есть опции то клиент в любом случае будет вынужден зайти в карточку товара и уже оттуда делать покупку, ну или же вы можете вывести опции в категорию тоже.
Общим сегодня я хочу сделать заметку не о опциях а именно о возможности добавлять нужное количество в корзину сразу же из категории. Сложного здесь ничего нет, все что нужно сделать так это внести небольшие изменения в контролер категории opencart а так же в сам шаблон ну и конечно же приукрасить все это дело стилями.
И так наша задача состоит в том чтобы перед кнопкой купить в категории opencart добавить поле ввода количества товара, ну и еще мы сделаем кнопки плюс минус для этого поля, чтобы клиенту было удобнее. Как все это будет выглядеть можете глянуть на картинке ниже:
Данный метод будет работать на любой версии opencart за исключением каких то моментов. И так, приступим к выполнению самой задачи и редактируем в первую очередь файл контроллера категории catalog/controller/product/category.php
Находим в нем:
1 |
'product_id' => $result['product_id'], |
Ниже под данной строкой нам нужно добавить:
1 |
'minimum' => $result['minimum'], |
Это все, файл контроллера можно закрывать, и переходить непосредственно к файлу шаблона активной темы catalog/view/theme/default/template/product/category.tpl
Нам нужно изменить саму кнопку покупки и добавить перед ней форму количества, находим код вывода самой кнопки:
1 |
<input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" /> |
И изменяем ее на:
1 |
<input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>',document.getElementById('quantity_<?php echo $product['product_id']; ?>').value);" class="button" /> |
После перед вышеизмененной строкой кнопки, нам нужно добавить поле ввода количества с кнопками плюс и минус, то есть добавляем:
1 2 3 4 5 6 |
<div class="cart-quantity"> <i onclick="$(this).next().val($(this).next().val()-1);$(this).parents('form').submit();" class="fa fa-minus"></i> <input type="text" name="quantity" size="2" value="<?php echo $product['minimum']; ?>" id="quantity_<?php echo $product['product_id']; ?>"/> <i onclick="$(this).prev().val(~~$(this).prev().val()+1);$(this).parents('form').submit();" class="fa fa-plus"></i> <input type="hidden" name="product_id" size="2" value="<?php echo $product['product_id']; ?>" /> </div> |
Вот собственно и все, теперь в категории товара будет возможность выбора количества товара. Теперь вы можете ее приукрасить немного стилями к примеру добавив в файл стилей своего шаблона такой стиль:
1 2 3 4 5 6 7 8 9 10 11 |
.cart-quantity { margin-bottom: 5px; } .cart-quantity i { background: #ccc; height: 22px; line-height: 22px; width: 22px; text-align: center; cursor: pointer; } |
По такому же методу вы можете добавить поле количества и в любой модуль opencart или же на страницы поиска, производителя, и.т.д...
Общим пробуйте, если что не получается или у вас есть лучшее решение комментируйте.
12 комментариев
Спасибо! удалось запустить данный вариант, единственный момент, при многократном нажатии клавиши минус (-) значение уходит в негативное, -2 -3 итд, можно ли как то ограничить кнопку минус (-) чтобы при ее нажатии минимальное значение кол-ва товара было равно 1?
Оно и вправду Вам мешает? Я как то и не думал про это никогда, адекватный пользователь все равно укажет сколько ему нужно, это разве что кому то побаловаться захочется …
Ну а вообще появится свободная минутка постараюсь написать немного с поправками JS с учетом вашего замечания.
Приветствую! А для версии 3.0.2 можете код показать? Спасибо!
Для данной версии к сожалению а может к счастью.. еще не делал, по этому ответить пока ничего не могу. Но по сути сложного там ничего не должно быть, просто нужно сравнивать код и добавлять его в зависимости от ветки opencart.
Очень нужен для версии 3.0.2
Весь рунет уже перерыл. Информации нигде нет. Сделайте пожалуйста отдельную статью.
Думаю благодарных будет очень много. Спасибо
В ближайшее время постараюсь написать.
Добрый день. А на 2.3.0.2 после добавления в контроллер переменной — сайт, увы, падает(. Вы тестили на ней?
Нет, для тройки не делали.
Счетчик количества увеличивается, только при нажатии КУПИТЬ в корзину количество не попадает, а влетает один товар(((
OPENCART.PRO Версия 2.3.0.2.5 Что можно сделать?
Нужно смотреть пациента индивидуально. а вообще это статья для ветки 1.5….
когда я добавил код у меня страница вообще не открывает именно этого ‘minimum’ => $result[‘minimum’],
Не могу ответить, не видя что Вы делали, и какая ошибка, но подозреваю что Вы допустили ошибку с запятой, так как этот код сам по себе ошибку не может создать.
Если вы ставите в конце списка, то запятую убираем,а в строке выше ставим, или же ставим предпоследним как есть с запятой, общем сложно точно что то сказать не видя код именно вашего сайта.