Меня часто при создании интернет магазина заказчики спрашивают как добавить количество в категорию 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’],
Не могу ответить, не видя что Вы делали, и какая ошибка, но подозреваю что Вы допустили ошибку с запятой, так как этот код сам по себе ошибку не может создать.
Если вы ставите в конце списка, то запятую убираем,а в строке выше ставим, или же ставим предпоследним как есть с запятой, общем сложно точно что то сказать не видя код именно вашего сайта.