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


Минимальное Количество Товара


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

#1 i.smetanin

i.smetanin

    Пользователь

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

Отправлено 18 Декабрь 2013 - 13:52

Доброго времени суток, нужна возможность привязать к определенной категории минимальное количество, а так же кратность заказа. Но при всем при этом требуется, чтоб цена была указана за 1 единицу товара.

#2 Сake

Сake

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

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

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

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

#3 i.smetanin

i.smetanin

    Пользователь

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

Отправлено 19 Декабрь 2013 - 11:59

Так точно, а так же кратность заказа. Если быть точнее речь идет о светодиодной ленте, она поставляется в бухтах по 5 метров. Следовательно нужно исключить возможность положить в корзину меньше или не кратно этому метражу. Но должна остаться возможность в другой категории продавать метражом без ограничений.

#4 Vaccina

Vaccina

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

  • Модераторы
  • 24 353 сообщений

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

Подобный вопрос ранее рассматривался в следующих темах форума
http://forum.storela...ажа/#entry95388
http://forum.storela...ка/#entry103869
http://forum.storela...не/#entry106397

Почитайте данные темы внимательно. Данных тем вам будет достаточно для реализации задуманного механизма.

#5 i.smetanin

i.smetanin

    Пользователь

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

Отправлено 26 Декабрь 2013 - 13:01

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

#6 Сake

Сake

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

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

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

Вам необходимо выполнить инструкцию из темы форума http://forum.storela...-кол-ва-товара/ в результате у товара появиться возможность задавать число добавляемых товаров в корзину за одно нажатие. Далее найдите в измененном коде следующий код

<div class="numeric_input">
<input type="text" class="text_q" name="form[goods_mod_quantity]" id="quantity_wanted" value="1" title="Количество" maxlength="12"
onkeydown="this.blur()"/><div style="margin-top: -3px;">
<input type="button" class="up_button"
onclick="this.parentNode.previousSibling.value++" />
<input type="button" class="down_button"
onclick="this.parentNode.previousSibling.value--" />
</div>
</div>

и замените его на

<div class="numeric_input {% FOR upper_navigation %}{% IF upper_navigation.NAME = Светодиодная лента %}access{% ENDIF %}{% ENDFOR %}">
<input type="text" class="text_q" name="form[goods_mod_quantity]" id="quantity_wanted" value="1" title="Количество" maxlength="12" readonly="readonly" /><div style="margin-top: -3px;">
<input type="button" class="up_button" />
<input type="button" class="down_button" />
</div>
</div>

После этого вам необходимо определить характеристику по которой будет вестись подсчет кратности. В качестве примера это "Количество в упаковке" и задано произвольное значение. Как характеристика будет определена - добавьте в файл main.js код

$(function() {
   if($('.numeric_input').lenght && !$('.numeric_input.access').lenght) {
	  $('.numeric_input').remove();
   }
   if($('.goodsPageSubmitButtonBlock #quantity_wanted').length) {
		  var quantity = $('.goodsPageSubmitButtonBlock #quantity_wanted');
		  $('.goodsDataForm .charactir td').each(function() {
				 if($.trim($(this).text()) === 'Количество пар в коробке') {
						quantity.val(parseInt($.trim($(this).next().text())));
						return(false);
				 }
		  });
   }
   $('.goodsPageSubmitButtonBlock .down_button').click(function() {
		if($(html).find('.goodsPageSubmitButtonBlock #quantity_wanted').length) {
	  var quantity = $('.goodsPageSubmitButtonBlock #quantity_wanted');
	  $('.goodsDataForm .charactir td').each(function() {
				 if($.trim($(this).text()) === 'Количество пар в коробке') {
			var interval = parseInt($.trim($(this).next().text()));
			var count = parseInt(quantity.val()) - interval;
	  count = count < interval ? interval : count;
	  quantity.val(count);
						quantity.change();
	  return(false);
				 }
			});
		}
  }); 
  $('.goodsPageSubmitButtonBlock .up_button').click(function() {
		if($(html).find('.goodsPageSubmitButtonBlock #quantity_wanted').length) {
	  var quantity = $('.goodsPageSubmitButtonBlock #quantity_wanted');
	  $('.goodsDataForm .charactir td').each(function() {
				 if($.trim($(this).text()) === 'Количество пар в коробке') {
			var interval = parseInt($.trim($(this).next().text()));
	  quantity.val(parseInt(quantity.val()) + interval);
						quantity.change();
	  return(false);
				 }
			});
		}
  });
});

В добавленном коде вам необходимо будет заменить строку "Количество пар в коробке" на имя вашей характеристики по которой будет вестись соответствующий подсчет.

#7 i.smetanin

i.smetanin

    Пользователь

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

Отправлено 29 Декабрь 2013 - 13:01

Разобрался с добавлением счетчика, но как задать кратность, я не могу разобраться. Задал характеристику но ничего не происходит

#8 miyako

miyako

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

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

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

Просмотр сообщенияi.smetanin (29 Декабрь 2013 - 13:01) писал:

Разобрался с добавлением счетчика, но как задать кратность, я не могу разобраться. Задал характеристику но ничего не происходит

Уточните как Вы назвали характеристику. На каком товаре можно посмотреть?

#9 i.smetanin

i.smetanin

    Пользователь

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

Отправлено 29 Декабрь 2013 - 14:10

http://wow-led.ru/go...0-RGB?from=OGQ3  характеристика "метров в бухте"

#10 miyako

miyako

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

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

Отправлено 29 Декабрь 2013 - 14:26

Просмотр сообщенияi.smetanin (29 Декабрь 2013 - 14:10) писал:

http://wow-led.ru/go...0-RGB?from=OGQ3  характеристика "метров в бухте"

Тогда измените код -
$(function() {
   if($('.numeric_input').lenght && !$('.numeric_input.access').lenght) {
		  $('.numeric_input').remove();
   }
   if($('.goodsPageSubmitButtonBlock #quantity_wanted').length) {
				  var quantity = $('.goodsPageSubmitButtonBlock #quantity_wanted');
				  $('.goodsDataForm .charactir td').each(function() {
								 if($.trim($(this).text()) === 'Количество пар в коробке') {
												quantity.val(parseInt($.trim($(this).next().text())));
												return(false);
								 }
				  });
   }
   $('.goodsPageSubmitButtonBlock .down_button').click(function() {
				if($(html).find('.goodsPageSubmitButtonBlock #quantity_wanted').length) {
		  var quantity = $('.goodsPageSubmitButtonBlock #quantity_wanted');
		  $('.goodsDataForm .charactir td').each(function() {
								 if($.trim($(this).text()) === 'Количество пар в коробке') {
						var interval = parseInt($.trim($(this).next().text()));
						var count = parseInt(quantity.val()) - interval;
		  count = count < interval ? interval : count;
		  quantity.val(count);
												quantity.change();
		  return(false);
								 }
						});
				}
  });
  $('.goodsPageSubmitButtonBlock .up_button').click(function() {
				if($(html).find('.goodsPageSubmitButtonBlock #quantity_wanted').length) {
		  var quantity = $('.goodsPageSubmitButtonBlock #quantity_wanted');
		  $('.goodsDataForm .charactir td').each(function() {
								 if($.trim($(this).text()) === 'Количество пар в коробке') {
						var interval = parseInt($.trim($(this).next().text()));
		  quantity.val(parseInt(quantity.val()) + interval);
												quantity.change();
		  return(false);
								 }
						});
				}
  });
});
на -
$(function() {
   if($('.numeric_input').lenght && !$('.numeric_input.access').lenght) {
		  $('.numeric_input').remove();
   }
   if($('.goodsPageSubmitButtonBlock #quantity_wanted').length) {
				  var quantity = $('.goodsPageSubmitButtonBlock #quantity_wanted');
				  $('.goodsDataForm .charactir td').each(function() {
								 if($.trim($(this).text()) === 'Метров в бухте') {
												quantity.val(parseInt($.trim($(this).next().text())));
												return(false);
								 }
				  });
   }
   $('.goodsPageSubmitButtonBlock .down_button').click(function() {
				if($(html).find('.goodsPageSubmitButtonBlock #quantity_wanted').length) {
		  var quantity = $('.goodsPageSubmitButtonBlock #quantity_wanted');
		  $('.goodsDataForm .charactir td').each(function() {
								 if($.trim($(this).text()) === 'Метров в бухте') {
						var interval = parseInt($.trim($(this).next().text()));
						var count = parseInt(quantity.val()) - interval;
		  count = count < interval ? interval : count;
		  quantity.val(count);
												quantity.change();
		  return(false);
								 }
						});
				}
  });
  $('.goodsPageSubmitButtonBlock .up_button').click(function() {
				if($(html).find('.goodsPageSubmitButtonBlock #quantity_wanted').length) {
		  var quantity = $('.goodsPageSubmitButtonBlock #quantity_wanted');
		  $('.goodsDataForm .charactir td').each(function() {
								 if($.trim($(this).text()) === 'Метров в бухте') {
						var interval = parseInt($.trim($(this).next().text()));
		  quantity.val(parseInt(quantity.val()) + interval);
												quantity.change();
		  return(false);
								 }
						});
				}
  });
});


#11 i.smetanin

i.smetanin

    Пользователь

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

Отправлено 29 Декабрь 2013 - 14:47

Никакой разницы.

#12 Сake

Сake

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

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

Отправлено 31 Декабрь 2013 - 00:26

Проблема в том что у вас нарушилась структура в связи с чем вложенность элементов нарушилась и селектор уже не находит необходимый элемент, а так же вы не выполнили изменений для формы с полем изменения количества как это было предложено в сообщении ранее. Найдите в шаблоне "Товар" код

<li class="goodsPageSubmitButtonBlock" {% IF GOODS_MOD_REST_VALUE=0 %}style="display:none;"{% ENDIF %}><a class="whtblue" onclick="$('.goodsDataForm').submit(); return false;" title="Положить &laquo;{GOODS_NAME}&raquo; в корзину" href="#">В корзину</a></li>
				<div class="goodsDataMainModificationQuantity" style="float:left;">
		<label for="quantity_wanted">Количество :</label>
		<div class="numeric_input">
<input type="text" class="text_q" name="form[goods_mod_quantity]" id="quantity_wanted" value="1" title="Количество" maxlength="12"
onkeydown="this.blur()"/><div style="margin-top: -3px;">
<input type="button" class="up_button"
onclick="this.parentNode.previousSibling.value++" />
<input type="button" class="down_button"
onclick="this.parentNode.previousSibling.value--" />
</div>
</div>
<div class="clear"></div>
  </div>
				<!-- Если в тарифном плане подключен модуль сравнения товаров -->
				{% IF TARIFF_FEATURE_GOODS_COMPARE %}

и замените его на

<li class="goodsPageSubmitButtonBlock" {% IF GOODS_MOD_REST_VALUE=0 %}style="display:none;"{% ENDIF %}><a class="whtblue" onclick="$('.goodsDataForm').submit(); return false;" title="Положить &laquo;{GOODS_NAME}&raquo; в корзину" href="#">В корзину</a>
	<div class="goodsDataMainModificationQuantity" style="float:left;">
		<label for="quantity_wanted">Количество :</label>
  <div class="numeric_input {% FOR upper_navigation %}{% IF upper_navigation.NAME = Светодиодная лента %}access{% ENDIF %}{% ENDFOR %}">
			<input type="text" class="text_q" name="form[goods_mod_quantity]" id="quantity_wanted" value="1" title="Количество" maxlength="12" readonly="readonly" />
	  <div style="margin-top: -3px;">
				<input type="button" class="up_button" />
				<input type="button" class="down_button" />
			</div>
		</div>
		<div class="clear"></div>
  </div>
</li>
				<!-- Если в тарифном плане подключен модуль сравнения товаров -->
				{% IF TARIFF_FEATURE_GOODS_COMPARE %}


#13 i.smetanin

i.smetanin

    Пользователь

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

Отправлено 31 Декабрь 2013 - 07:29

Теперь ошибка JS выскакивает при нажатии на стрелочку и минимум все равно 1 метр. Я делаю все как вы пишите.

#14 Сake

Сake

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

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

Отправлено 05 Январь 2014 - 01:37

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

#15 i.smetanin

i.smetanin

    Пользователь

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

Отправлено 05 Январь 2014 - 15:24

Необходима работа счетчика хоть в каком то виде, я откатил изменения.
Внес изменения обратно.

#16 i.smetanin

i.smetanin

    Пользователь

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

Отправлено 07 Январь 2014 - 13:04

Ув модераторы, вы не могли бы реагировать чуть чуть быстрее?   Уже прошло более 2 недель, результат нулевой. Клиенты оставляют некорректные заказы.

#17 Сake

Сake

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

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

Отправлено 08 Январь 2014 - 06:18

Найдите в файле main.js 2 одинаковых строки

if($(html).find('.goodsPageSubmitButtonBlock #quantity_wanted').length)

и замените каждую из них на строку

if($('.goodsPageSubmitButtonBlock #quantity_wanted').length)


#18 i.smetanin

i.smetanin

    Пользователь

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

Отправлено 08 Январь 2014 - 06:41

Исправил, но опять результата ноль. + порвало все расположение элементов  выглядит коряво.

#19 Сake

Сake

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

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

Отправлено 08 Январь 2014 - 06:53

На данный момент проблема связана с ошибочным селектором. Найдите в файле main.js 3 одинаковых строки

$('.goodsDataForm .charactir td')

и замените каждую из них на строку

$('#content .charactir td')

Далее в шаблоне "Товар" найдите код

<div class="goodsDataMainModificationQuantity" style="float:left;">
				<label for="quantity_wanted">Количество :</label>

и замените его на

<div class="goodsDataMainModificationQuantity" style="margin-top: 10px;">
				<label for="quantity_wanted" style="float:left;margin: 4px 0;">Количество :</label>


#20 i.smetanin

i.smetanin

    Пользователь

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

Отправлено 08 Январь 2014 - 07:04

Отлично, все встало на свои места. С выбором ленты по 5м все работает, но перестало работать с другими товарами.




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

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