Урок 22 Кратное увеличение количества товара в simpleopencart

В opencart есть возможность задавать минимальное количество товара для покупки, меньше которого товар купить нельзя. Т.е. если поставить например 3, то купить 1 единицу товара не получится. Либо минимум 3, либо 4, 5 и т.д. А если товар продается только кратно, т.е. можно купить 3, 6, 9 и т.д., то здесь все ломается. Если Вам необходим подобный функционал на странице оформление заказа simpleopencart, то сделать его достаточно просто. Необходимо внести небольшие изменения в двух файлах — темплейте корзины и скрипте.
Итак приступим. Прежде всего добавляем строчку кода в
1 |
catalog/view/theme/default/template/checkout/simplecheckout_cart.tpl |
после поля количества
1 |
<input class="form-control" type="text" data-onchange="changeProductQuantity" <?php echo $quantity_step_as_minimum ? 'onfocus="$(this).blur()" data-minimum="' . $product['minimum'] . '"' : '' ?> name="quantity[<?php echo !empty($product['cart_id']) ? $product['cart_id'] : $product['key']; ?>]" value="<?php echo $product['quantity']; ?>" size="1" /> |
Добавляем
1 |
<input style="display:none;" id="input_minn" value="<?php echo $product['minimum']; ?>"> |
Далее переходим к правкам в скрипте
1 |
catalog/view/javascript/simplecheckout.js |
Находим
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
this.increaseProductQuantity = function($target) { var self = this; var $quantity = $target.parents(".quantity").find("input"); var quantity = parseFloat($quantity.val()); if (!isNaN(quantity)) { $quantity.val(quantity + 1); self.reloadAll(); } }; this.decreaseProductQuantity = function($target) { var self = this; var $quantity = $target.parents(".quantity").find("input"); var quantity = parseFloat($quantity.val()); if (!isNaN(quantity) && quantity > 1) { $quantity.val(quantity - 1); self.reloadAll(); } }; |
И меняем на
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
this.increaseProductQuantity = function($target) { var self = this; var $quantity = $target.parents(".quantity").find("input"); var quantity = parseFloat($quantity.val()); var $minimum = $target.parents(".quantity").find("input#input_minn"); var minimum = parseFloat($minimum.val()); if (!isNaN(quantity)) { $quantity.val(quantity + minimum); self.reloadAll(); } }; this.decreaseProductQuantity = function($target) { var self = this; var $quantity = $target.parents(".quantity").find("input"); var quantity = parseFloat($quantity.val()); var $minimum = $target.parents(".quantity").find("input#input_minn"); var minimum = parseFloat($minimum.val()); if (!isNaN(quantity) && quantity > 1) { $quantity.val(quantity - minimum); self.reloadAll(); } }; |
Теперь на всякий случай обновляем кеш модификаторов и проверяем результат
Оставить комментарий