Jump to content

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


deadiwe
 Share

Recommended Posts

 {% 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 товар, а не выбранное количество.

Link to comment
Share on other sites

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

сравните добавление в родном 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'),
Link to comment
Share on other sites

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'),

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

укажите в data

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

и проверьте

 

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

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

 

Link to comment
Share on other sites

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

укажите в data

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

и проверьте

 

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

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

 

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

 

Link to comment
Share on other sites

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

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

 

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

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

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

 

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

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...