Перейти к содержанию

Помогите с увеличением или уменьшением количества товара на странице товара


Рекомендуемые сообщения

 {% if quantity > 0 %}
                <div class="product__buy">
					<label class="control-label" for="input-quantity">{{ entry_qty }}</label>
				<div class="quantity-box">
					<input type="text" name="quantity" value="{{ minimum }}" size="2" id="input-quantity" class="" />
					<input type="button" id="minus" value="-" class="" />
					<input type="button" id="plus" value="&#43;" class=""/>
				</div>
				<input type="hidden" name="product_id" value="{{ product_id }}" />         
                    <button type="button" id="button-cart" class="product__buy-btn btn btn-primary">{{ button_cart }}</button>
					 <span class="product__reward-text">{{ product.status }}</span>
                </div>
                {% else %}
                    <div class="product__not-in-stock">{{ text_not_in_stock }}</div>
                {% endif %}
                {{ product_info }}

Ввод кол-ва и + -

<script>

//Кнопка добавления товара
$('#button-cart').on('click', function() {
	$.ajax({
		url: 'index.php?route=checkout/cart/add',
		type: 'post',
		data: $('#product input[type=\'text\'], #product input[type=\'hidden\'], #product input[type=\'radio\']:checked, #product input[type=\'checkbox\']:checked, #product select, #product textarea'),
		dataType: 'json',
		beforeSend: function() {
			$('#button-cart').button('loading');
		},
		complete: function() {
			$('#button-cart').button('reset');
		},
		success: function(json) {
			$('.alert-dismissible, .text-danger').remove();
			$('.form-group').removeClass('has-error');

			if (json['error']) {
				if (json['error']['option']) {
					for (i in json['error']['option']) {
						var element = $('#input-option' + i.replace('_', '-'));

						if (element.parent().hasClass('input-group')) {
							element.parent().after('<div class="text-danger">' + json['error']['option'][i] + '</div>');
						} else {
							element.parent().after('<div class="text-danger">' + json['error']['option'][i] + '</div>');
						}
					}
				}

				if (json['error']['recurring']) {
					$('select[name=\'recurring_id\']').after('<div class="text-danger">' + json['error']['recurring'] + '</div>');
				}

				// Highlight any found errors
				$('.text-danger').parent().addClass('has-error');
			}

            if (json['success']) {
                $('#product-product').before('<div class="alert alert-success alert-dismissible alert-firestore" role="alert">' + json['success'] + ' <button type="button" class="btn-close button-reset" data-bs-dismiss="alert" aria-label="Close"><i class="las la-times"></i></button></div>');
                setTimeout(() => $('.alert-firestore').remove(), 3000);

                // Need to set timeout otherwise it wont update the total
                cart.updateCart(json);

                $('html, body').animate({ scrollTop: 0 }, 300);

                $('#cart .cart-modal__list').load('index.php?route=common/cart/info ul li');

            }
		},
        error: function(xhr, ajaxOptions, thrownError) {
            alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
        }
	});
});
$(document).ready(function() {
	
	var minimum = {{ minimum }};
	$("#product-product #input-quantity").change(function(){
		if ($(this).val() < minimum) {
		  alert("Minimum Quantity: "+minimum);
		  $("#product-product #input-quantity").val(minimum);
		}
	});
	  // Увеличиваем кол-во продукта
	function minus(minimum){
		var currentval = parseInt($("#product-product #input-quantity").val());
		$("#product-product #input-quantity").val(currentval-1);
		if($("#product-product #input-quantity").val() <= 0 || $("#product-product #input-quantity").val() < minimum){
		  alert("Minimum Quantity: "+minimum);
		  $("#product-product #input-quantity").val(minimum);
		}
	  };
	  // Уменьшаю кол-во продукта
	function plus(){
		var currentval = parseInt($("#product-product #input-quantity").val());
		$("#product-product #input-quantity").val(currentval+1);
	};
	$('#product-product #minus').click(function(){
		minus(minimum);
	});
	$('#product-product #plus').click(function(){
		plus();
	});
});

При добавлении товара в корзину.  почему-то вносится +1 товар, а не выбранное количество.

Ссылка на комментарий
Поделиться на другие сайты

дык, неудивительно

сравните добавление в родном common.js

	url: 'index.php?route=checkout/cart/add',
	type: 'post',
	data: 'product_id=' + product_id + '&quantity=' + (typeof(quantity) != 'undefined' ? quantity : 1),

 

со своим

	url: 'index.php?route=checkout/cart/add',
	type: 'post',
	data: $('#product input[type=\'text\'], #product input[type=\'hidden\'], #product input[type=\'radio\']:checked, #product input[type=\'checkbox\']:checked, #product select, #product textarea'),
Ссылка на комментарий
Поделиться на другие сайты

11 часов назад, AlexDW сказал:

дык, неудивительно

сравните добавление в родном common.js

	url: 'index.php?route=checkout/cart/add',
	type: 'post',
	data: 'product_id=' + product_id + '&quantity=' + (typeof(quantity) != 'undefined' ? quantity : 1),

 

со своим

	url: 'index.php?route=checkout/cart/add',
	type: 'post',
	data: $('#product input[type=\'text\'], #product input[type=\'hidden\'], #product input[type=\'radio\']:checked, #product input[type=\'checkbox\']:checked, #product select, #product textarea'),

Тогда вообще перестает работать кнопка...

Ссылка на комментарий
Поделиться на другие сайты

12 часов назад, AlexDW сказал:

дык, неудивительно

сравните добавление в родном common.js

	url: 'index.php?route=checkout/cart/add',
	type: 'post',
	data: 'product_id=' + product_id + '&quantity=' + (typeof(quantity) != 'undefined' ? quantity : 1),

 

со своим

	url: 'index.php?route=checkout/cart/add',
	type: 'post',
	data: $('#product input[type=\'text\'], #product input[type=\'hidden\'], #product input[type=\'radio\']:checked, #product input[type=\'checkbox\']:checked, #product select, #product textarea'),

Передает мой скрипт верное значение, почему-то в попап корзине перетирается

Untitled-1.jpg

Ссылка на комментарий
Поделиться на другие сайты

укажите в data

data: 'product_id=7363&quantity=5',

и проверьте

 

если заработает - значит причина в формате передачи данных / их формировании

если нет - в чем-то еще

 

Ссылка на комментарий
Поделиться на другие сайты

2 часа назад, AlexDW сказал:

укажите в data

data: 'product_id=7363&quantity=5',

и проверьте

 

если заработает - значит причина в формате передачи данных / их формировании

если нет - в чем-то еще

 

Что вам нужно чтобы вы решили эту задачку? и сколько это будет стоить?

 

Ссылка на комментарий
Поделиться на другие сайты

5 часов назад, deadiwe сказал:

Что вам нужно чтобы вы решили эту задачку? и сколько это будет стоить?

 

- миллион вертолетов и доллар! (с) :classic_laugh:

а серьезно - к сожалению не работаю на заказ

да и затык навскидку именно в части выше

 

если все же хотите кого-то нанять - поищите исполнителя в разделе платных услуг

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...