Перейти к содержимому


Изменение Количества В Корзине


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 38

#1 borisovd

borisovd

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 370 сообщений

Отправлено 26 Ноябрь 2013 - 18:05

Подскажите как сделать что бы в корзине были стрелочки увеличения и уменьшения товара. НО нужно что бы увеличивало кратно количеству уже добавленных в корзину товаров. По умолчанию добавляется допустим 6 товаров так вот при нажатии на кнопку вверх становилось 12 товаров и так далее. И запретить вводить вручную количество. Только стрелочками. Спасибо)

#2 Castiel

Castiel

    Активный участник

  • Модераторы
  • 3 519 сообщений
  • ГородНижний Новгород

Отправлено 26 Ноябрь 2013 - 18:20

Просмотр сообщенияborisovd (26 Ноябрь 2013 - 18:05) писал:

Подскажите как сделать что бы в корзине были стрелочки увеличения и уменьшения товара. НО нужно что бы увеличивало кратно количеству уже добавленных в корзину товаров. По умолчанию добавляется допустим 6 товаров так вот при нажатии на кнопку вверх становилось 12 товаров и так далее. И запретить вводить вручную количество. Только стрелочками. Спасибо)

Редактируем шаблон Корзина

Находим
				<td class="cell3">
				  <input name="form[quantity][{cart_items.GOODS_MOD_ID}]" value="{cart_items.ORDER_LINE_QUANTITY}" /> {cart_items.GOODS_MOD_MEASURE_NAME}
				</td>

Заменяем на
   <td class="cell3">
				  <input name="form[quantity][{cart_items.GOODS_MOD_ID}]" value="{cart_items.ORDER_LINE_QUANTITY}" class="number txtalgncnt" type="number" min="1" />
			  {cart_items.GOODS_MOD_MEASURE_NAME}
				</td>


#3 borisovd

borisovd

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 370 сообщений

Отправлено 26 Ноябрь 2013 - 18:23

Просмотр сообщенияCastiel (26 Ноябрь 2013 - 18:20) писал:

Редактируем шаблон Корзина

Находим
			 <td class="cell3">
				 <input name="form[quantity][{cart_items.GOODS_MOD_ID}]" value="{cart_items.ORDER_LINE_QUANTITY}" /> {cart_items.GOODS_MOD_MEASURE_NAME}
			 </td>

Заменяем на
<td class="cell3">
				 <input name="form[quantity][{cart_items.GOODS_MOD_ID}]" value="{cart_items.ORDER_LINE_QUANTITY}" class="number txtalgncnt" type="number" min="1" />
			 {cart_items.GOODS_MOD_MEASURE_NAME}
			 </td>
Не то, прибавляет по одному товару. а нужно по количеству товара в упаковке

И нужно запретить вписывать значение с клавиатуры

#4 Castiel

Castiel

    Активный участник

  • Модераторы
  • 3 519 сообщений
  • ГородНижний Новгород

Отправлено 26 Ноябрь 2013 - 18:50

Прочитайте это и это

#5 borisovd

borisovd

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 370 сообщений

Отправлено 26 Ноябрь 2013 - 18:55

у меня уже есть функция добавления товара в корзину упаковками, так что нужно просто увеличении в корзине доделать. Либо я слепой и не увидел нужного перейдя по ссылкам, либо там нет того что нужно)

#6 Castiel

Castiel

    Активный участник

  • Модераторы
  • 3 519 сообщений
  • ГородНижний Новгород

Отправлено 26 Ноябрь 2013 - 19:28

Возможное решение

#7 borisovd

borisovd

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 370 сообщений

Отправлено 26 Ноябрь 2013 - 20:15

Просмотр сообщенияCastiel (26 Ноябрь 2013 - 19:28) писал:

Как я понял это добавит стрелки на страницу товар, а нужно в корзину

#8 Сake

Сake

    Активный участник

  • Модератоpы
  • 5 979 сообщений

Отправлено 27 Ноябрь 2013 - 02:54

В подобной реализации присутствует проблема. Данная проблема связана с тем что в шаблоне "Корзина" для товаров недоступны характеристики, тем самым не получиться определить изначальное число кратное упаковки. Если бы товар всегда добавлялся в корзину по одной упаковке, то можно было бы отталкиваться от начального значения. А так как у вас можно в корзину добавить несколько упаковок - определить истинное значение упаковки не представляется возможным. Подобную проблему можно решить только путем исключения изменения количества товара в корзине или же добавления значения характеристики в название товара или в его описание. В названии или описании в подобном случае должна присутствовать идентификационная запись по которой можно было бы определить значение товара в упаковке. Подобный вопрос ранее обсуждался в теме http://forum.storela..._200#entry82839

#9 borisovd

borisovd

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 370 сообщений

Отправлено 27 Ноябрь 2013 - 10:03

Просмотр сообщенияСake (27 Ноябрь 2013 - 02:54) писал:

В подобной реализации присутствует проблема. Данная проблема связана с тем что в шаблоне "Корзина" для товаров недоступны характеристики, тем самым не получиться определить изначальное число кратное упаковки. Если бы товар всегда добавлялся в корзину по одной упаковке, то можно было бы отталкиваться от начального значения. А так как у вас можно в корзину добавить несколько упаковок - определить истинное значение упаковки не представляется возможным. Подобную проблему можно решить только путем исключения изменения количества товара в корзине или же добавления значения характеристики в название товара или в его описание. В названии или описании в подобном случае должна присутствовать идентификационная запись по которой можно было бы определить значение товара в упаковке. Подобный вопрос ранее обсуждался в теме http://forum.storela..._200#entry82839
тогда можно просто запретить изменять значение с клавиатуры в поле количества товара?

#10 borisovd

borisovd

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 370 сообщений

Отправлено 27 Ноябрь 2013 - 12:46

Просмотр сообщенияborisovd (27 Ноябрь 2013 - 10:03) писал:

тогда можно просто запретить изменять значение с клавиатуры в поле количества товара?
Сделал прописав readonly="readonly" Но хотелось бы что бы можно было делать так как задумано что бы товар увиличивался количеству пар в упаковке

#11 Сake

Сake

    Активный участник

  • Модератоpы
  • 5 979 сообщений

Отправлено 28 Ноябрь 2013 - 05:04

В принципе можно попробовать реализовать подобное используя ссылку на товар, тем самым подгружать информацию именно от туда. Вам необходимо на данном моменте реализовать стрелки увеличения и уменьшения товара в корзине, после можно будет уже к данной функциональности добавить дополнительную функциональность. Информацию по стрелкам вы можете найти на нашем форуме, данная тема поднималась не однократно.

#12 borisovd

borisovd

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 370 сообщений

Отправлено 28 Ноябрь 2013 - 11:14

Если делать стрелки то люди будут уменьшать или увеличивать товар не кратному число товаров в упаковке. поэтому это должно быть сразу сделано или можно эти стрлки спрятать прописав display:none; ?

#13 Сake

Сake

    Активный участник

  • Модератоpы
  • 5 979 сообщений

Отправлено 29 Ноябрь 2013 - 00:29

Да, эти стрелки вы так же можете спрятать используя свойство display:none;

#14 borisovd

borisovd

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 370 сообщений

Отправлено 29 Ноябрь 2013 - 01:00

Просмотр сообщенияСake (29 Ноябрь 2013 - 00:29) писал:

Да, эти стрелки вы так же можете спрятать используя свойство display:none;
Не поможете установить эти стрелки в корзину, а то не могу найти нужную тему на форуме, только стрелки в карточке товара, а для корзины не могу найти...

#15 Сake

Сake

    Активный участник

  • Модератоpы
  • 5 979 сообщений

Отправлено 30 Ноябрь 2013 - 02:58

Используете инструкцию из темы форума http://forum.storela...ами/#entry43995

#16 borisovd

borisovd

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 370 сообщений

Отправлено 30 Ноябрь 2013 - 14:26

Просмотр сообщенияСake (30 Ноябрь 2013 - 02:58) писал:

Используете инструкцию из темы форума http://forum.storela...ами/#entry43995
Сделал, только можно что бы плюс был сразу после окна, а то сейчас после слова штук.

#17 Сake

Сake

    Активный участник

  • Модератоpы
  • 5 979 сообщений

Отправлено 03 Декабрь 2013 - 05:17

Добавьте код в main.js

$(function() {
  $('.cartFormTable .minus').click(function() {
	var product = $(this).closest('tr');
	var product_box = parseInt(product.data('box'));
	if(!product_box) {
	  $.get(product.find('.cell2 a.cartFormTbodyHeader').attr('href'), $.proxy(function(html) {
		 var product = $(this).closest('tr');
		 if($(html).find('.goodsDataFormSubmitButton #quantity_wanted').length) {
			$(html).find('.goodsDataMainDeliveryBlock .goodsDataFeatures td').each(function() {
				if($.trim($(this).text()) === 'Количество в упаковке') {
				   product.data('box', parseInt($.trim($(this).next().text())));
				}
			});
			if(parseInt(product.data('box'))) {
			   $(this).trigger('click');
			}
		 }
	  }, this));
	  return(false);
	}
	var input = $(this).parent().find('input');
	var count = parseInt(input.val()) - product_box;
	count = count < product_box ? product_box : count;
	input.val(count);
	input.change();
	return(false);
  });
  $('.cartFormTable .plus').click(function() {
	var product = $(this).closest('tr');
	var product_box = parseInt(product.data('box'));
	if(!product_box) {
	  $.get(product.find('.cell2 a.cartFormTbodyHeader').attr('href'), $.proxy(function(html) {
		 var product = $(this).closest('tr');
		 if($(html).find('.goodsDataFormSubmitButton #quantity_wanted').length) {
			$(html).find('.goodsDataMainDeliveryBlock .goodsDataFeatures td').each(function() {
				if($.trim($(this).text()) === 'Количество в упаковке') {
				   product.data('box', parseInt($.trim($(this).next().text())));
				}
			});
			if(parseInt(product.data('box'))) {
			   $(this).trigger('click');
			}
		 }
	  }, this));
	  return(false);
	}
	var input = $(this).parent().find('input');
	input.val(parseInt(input.val()) + product_box);
	input.change();
	return(false);
  });
});

Кнопки minus, plus необходимо сделать видимыми.

#18 borisovd

borisovd

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 370 сообщений

Отправлено 03 Декабрь 2013 - 12:15

Просмотр сообщенияСake (03 Декабрь 2013 - 05:17) писал:

Добавьте код в main.js

$(function() {
$('.cartFormTable .minus').click(function() {
var product = $(this).closest('tr');
var product_box = parseInt(product.data('box'));
if(!product_box) {
	 $.get(product.find('.cell2 a.cartFormTbodyHeader').attr('href'), $.proxy(function(html) {
		 var product = $(this).closest('tr');
		 if($(html).find('.goodsDataFormSubmitButton #quantity_wanted').length) {
		 $(html).find('.goodsDataMainDeliveryBlock .goodsDataFeatures td').each(function() {
			 if($.trim($(this).text()) === 'Количество в упаковке') {
				 product.data('box', parseInt($.trim($(this).next().text())));
			 }
		 });
		 if(parseInt(product.data('box'))) {
			 $(this).trigger('click');
		 }
		 }
	 }, this));
	 return(false);
}
var input = $(this).parent().find('input');
var count = parseInt(input.val()) - product_box;
count = count < product_box ? product_box : count;
input.val(count);
input.change();
return(false);
});
$('.cartFormTable .plus').click(function() {
var product = $(this).closest('tr');
var product_box = parseInt(product.data('box'));
if(!product_box) {
	 $.get(product.find('.cell2 a.cartFormTbodyHeader').attr('href'), $.proxy(function(html) {
		 var product = $(this).closest('tr');
		 if($(html).find('.goodsDataFormSubmitButton #quantity_wanted').length) {
		 $(html).find('.goodsDataMainDeliveryBlock .goodsDataFeatures td').each(function() {
			 if($.trim($(this).text()) === 'Количество в упаковке') {
				 product.data('box', parseInt($.trim($(this).next().text())));
			 }
		 });
		 if(parseInt(product.data('box'))) {
			 $(this).trigger('click');
		 }
		 }
	 }, this));
	 return(false);
}
var input = $(this).parent().find('input');
input.val(parseInt(input.val()) + product_box);
input.change();
return(false);
});
});

Кнопки minus, plus необходимо сделать видимыми.
Как то увеличивает странно...вообще не понятно...и можно кнопку плюс подвинуть перед ШТ.

#19 Сake

Сake

    Активный участник

  • Модератоpы
  • 5 979 сообщений

Отправлено 04 Декабрь 2013 - 02:03

Совсем забыл - удалите старый код кнопок в шаблоне "Корзна"

<script type="text/javascript" >
						 $(document).ready(function() {
						 $('.minus').click(function () {
						  var $input = $(this).parent().find('input');
						  var count = parseInt($input.val()) - 1;
						  count = count < 1 ? 1 : count;
						  $input.val(count);
						  $input.change();
						  return false;
						 });
						$('.plus').click(function () {
						var $input = $(this).parent().find('input');
						$input.val(parseInt($input.val()) + 1);
						$input.change();
						return false;
						});
						});
				   </script>

далее найдите

<div class="nums">
								<span class="minus">-</span>
								  <input readonly="readonly" name="form[quantity][{cart_items.GOODS_MOD_ID}]" value="{cart_items.ORDER_LINE_QUANTITY}" class="number txtalgncnt" type="text" /> {cart_items.GOODS_MOD_MEASURE_NAME}
								<span class="plus">+</span>
						 </div>

и замените на

<div class="nums">
								<span class="minus">-</span>
								  <input readonly="readonly" name="form[quantity][{cart_items.GOODS_MOD_ID}]" value="{cart_items.ORDER_LINE_QUANTITY}" class="number txtalgncnt" type="text" />
<span class="plus">+</span>
{cart_items.GOODS_MOD_MEASURE_NAME}
						 </div>


#20 borisovd

borisovd

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 370 сообщений

Отправлено 04 Декабрь 2013 - 03:41

Просмотр сообщенияСake (04 Декабрь 2013 - 02:03) писал:

Совсем забыл - удалите старый код кнопок в шаблоне "Корзна"

<script type="text/javascript" >
						 $(document).ready(function() {
						 $('.minus').click(function () {
						 var $input = $(this).parent().find('input');
						 var count = parseInt($input.val()) - 1;
						 count = count < 1 ? 1 : count;
						 $input.val(count);
						 $input.change();
						 return false;
						 });
					 $('.plus').click(function () {
					 var $input = $(this).parent().find('input');
					 $input.val(parseInt($input.val()) + 1);
					 $input.change();
					 return false;
					 });
					 });
				 </script>

далее найдите

<div class="nums">
							 <span class="minus">-</span>
								 <input readonly="readonly" name="form[quantity][{cart_items.GOODS_MOD_ID}]" value="{cart_items.ORDER_LINE_QUANTITY}" class="number txtalgncnt" type="text" /> {cart_items.GOODS_MOD_MEASURE_NAME}
							 <span class="plus">+</span>
						 </div>

и замените на

<div class="nums">
							 <span class="minus">-</span>
								 <input readonly="readonly" name="form[quantity][{cart_items.GOODS_MOD_ID}]" value="{cart_items.ORDER_LINE_QUANTITY}" class="number txtalgncnt" type="text" />
<span class="plus">+</span>
{cart_items.GOODS_MOD_MEASURE_NAME}
						 </div>
Все равно не правильно увеличивает((

И можно кнопки + и - сделать по высоте окна количества штук?или просто подставить стрелочки простые вверх и вниз?

И еще стала выскакивать js ошибка причем только если выбрать товар на слайдере на главной странице под большим банером....

На странице возникла JS ошибка:


Script error. на строке: 0.


Адрес файла:


Как исправить ошибку?


Не удалось найти решение для данной ошибки. Для решения проблемы исправьте javascript в разделе «Сайт» > «

Редактор тем

».


Если необходимо помочь в решении данной ошибки, задайте вопрос в разделе "

Ошибки

" на нашем форуме.






Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных