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


Счетчик Кол-Ва Товара


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

#81 Vaccina

Vaccina

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

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

Отправлено 21 Февраль 2013 - 02:23

Вам необходимо изменить ваш блок

<td class="number">
												 <div class="nums">
																<span class="minus">-</span>
																  <input 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>
												 <script type="text/javascript" >
																								 $(document).ready(function() {
																								 $('.minus').click(function () {
																								  var $input = $(this).parent().find('input:first');
																								  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:first');
																								$input.val(parseInt($input.val()) + 1);
																								$input.change();
																								return false;
																								});
																								});
																   </script>
												</td>

и привести его по возможности к виду

<td class="number">
  <div class="numeric_input" style="position: relative; height: 25px; margin: 0;">
				 <input style="margin-right: 3px; text-align: right; width: 20px;" type="text" class="text_q" name="form[quantity][{cart_items.GOODS_MOD_ID}]" value="{cart_items.ORDER_LINE_QUANTITY}" id="quantity_wanted" value="{cart_items.ORDER_LINE_QUANTITY}" title="Количество" maxlength="12" onkeydown="this.blur()">
   <div style="padding-right: 5px;">
						<input style="background-color: transparent; width: 10px;" type="button" class="down_button" onclick="addone(1)">
						<input style="background-color: transparent; width: 10px;" type="button" class="up_button" onclick="addone(-1)">
   </div>
   <span sytle="padding-top: 3px; display: block;">шт</span>
  </div>
</td>

так же вам необходимы стили http://forum.storela...__40#entry38036
и добавление кода http://forum.storela...__40#entry43944

#82 sanik55

sanik55

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

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

Отправлено 22 Февраль 2013 - 08:14

Vaccina, спасибо, функционал работает :) Но кнопки как-то неправильно расположились и в поле отображения количества товара выравнивание цифры по правому краю... На скрине видно. (Кнопки неправильно расположены при просмотре под Хромом и Оперой, при просмотре из ИЕ кнопки расположены как надо).
screen.jpg

Вопросы:
1. Как сделать выравнивание цифры по центру в поле отображения количества товара?
2. Как расположить кнопки правильно?

UPD: обнаружилась проблема: когда в корзине два товара, то при нажатии на кнопку плюс происходит добавление только первого товара, независимо от того, кнопку какого товара нажимали. Как исправить?

Сообщение отредактировал sanik55: 22 Февраль 2013 - 08:26


#83 miyako

miyako

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

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

Отправлено 22 Февраль 2013 - 09:48

 sanik55 (22 Февраль 2013 - 08:14) писал:

Vaccina, спасибо, функционал работает :) Но кнопки как-то неправильно расположились и в поле отображения количества товара выравнивание цифры по правому краю... На скрине видно. (Кнопки неправильно расположены при просмотре под Хромом и Оперой, при просмотре из ИЕ кнопки расположены как надо).
screen.jpg

Вопросы:
1. Как сделать выравнивание цифры по центру в поле отображения количества товара?
2. Как расположить кнопки правильно?

UPD: обнаружилась проблема: когда в корзине два товара, то при нажатии на кнопку плюс происходит добавление только первого товара, независимо от того, кнопку какого товара нажимали. Как исправить?

Поменяйте пожалуйста местами кнопки в коде корзины, то есть вместо:
<div style="padding-right: 5px;">
<input style="background-color: transparent; width: 10px;" type="button" class="down_button" onclick="addone(1)">
<input style="background-color: transparent; width: 10px;" type="button" class="up_button" onclick="addone(-1)">																						
   </div>

у вас должно выглядеть так:
<div style="padding-right: 5px;">
<input style="background-color: transparent; width: 10px;" type="button" class="up_button" onclick="addone(-1)">
												<input style="background-color: transparent; width: 10px;" type="button" class="down_button" onclick="addone(1)">
											   
   </div>

По первому вопросу:
Найдите в коде корзины примерно следующую строку:
<input style="margin-right: 3px; text-align:[b] right[/b]; width: 20px;" type="text" class="text_q" name="form[quantity][21968780]" value="1" id="quantity_wanted" title="Количество" maxlength="12" onkeydown="this.blur()">
Вам нужно заменить ее на:
<input style="margin-right: 3px; text-align: [b]center[/b]; width: 20px;" type="text" class="text_q" name="form[quantity][21968780]" value="1" id="quantity_wanted" title="Количество" maxlength="12" onkeydown="this.blur()">
То есть поменять right на center.

#84 sanik55

sanik55

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

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

Отправлено 22 Февраль 2013 - 15:50

miyako, спасибо, кнопки теперь на месте.

Вероятно, в Вашем коде ошибка?
class"up_button" onclick=addone(-1)
class="down_button" onclick="addone(1)"

и должно быть наоборот, т.е у "up_button" (1), а у "down_button" (-1) ?

А как решить вопрос с неверным функционированием кнопок при двух и более товарах в корзине?

Сообщение отредактировал sanik55: 22 Февраль 2013 - 15:58


#85 Vaccina

Vaccina

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

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

Отправлено 23 Февраль 2013 - 07:44

Замените

class"up_button" onclick=addone(-1)
class="down_button" onclick="addone(1)"

на

class"up_button" onclick=addone(1, this)
class="down_button" onclick="addone(-1, this)"

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

<script language="JavaScript">
function addone(i) {  
								ta1=document.getElementById("quantity_wanted");
								ta1.value=parseInt(ta1.value)+i;
								if (parseInt(ta1.value) <= 1) { ta1.value=1; }
				}
</script>

и замените на

<script language="JavaScript">
function addone(i, $this) {  
								ta1=$($this).closest('.numeric_input').find('input[type="text"]').get(0);
								ta1.value=parseInt(ta1.value)+i;
								if (parseInt(ta1.value) <= 1) { ta1.value=1; }
				}
</script>


#86 sanik55

sanik55

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

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

Отправлено 23 Февраль 2013 - 19:29

Уфф, протестил, работает... Спасибо :)

Заметил один момент. Когда в корзине более одного товара, с помощью кнопок изменяем количество товаров и нажимаем на "пересчитать", то пересчитывается сумма только у первого товара, у второго не пересчитывается, как это исправить?..

Сообщение отредактировал sanik55: 23 Февраль 2013 - 19:39


#87 sotil

sotil

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

  • Пользователи
  • PipPipPipPip
  • 413 сообщений
  • ГородЕкатеринбург

Отправлено 24 Февраль 2013 - 13:56

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

В списке и товаре количество напротив - купить
В таблице можно поставить картинку "корзинку"

http://nadonenado.storeland.ru

Спасибо!

#88 sanik55

sanik55

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

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

Отправлено 26 Февраль 2013 - 06:09

 sanik55 (23 Февраль 2013 - 19:29) писал:

Заметил один момент. Когда в корзине более одного товара, с помощью кнопок изменяем количество товаров и нажимаем на "пересчитать", то пересчитывается сумма только у первого товара, у второго не пересчитывается, как это исправить?..

А если в корзине три товара, то пересчитывается сумма только у одного товара (первого или второго). Как поправить ситуацию и сделать, чтобы корректно происходил пересчет суммы при изменении количества товаров?

#89 miyako

miyako

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

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

Отправлено 26 Февраль 2013 - 09:37

 sotil (24 Февраль 2013 - 13:56) писал:

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

В списке и товаре количество напротив - купить
В таблице можно поставить картинку "корзинку"

http://nadonenado.storeland.ru

Спасибо!

Попробуйте воспользоваться этой инструкцией (по установке стрелочек):
http://forum.storela...__40#entry44560

#90 sanik55

sanik55

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

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

Отправлено 27 Февраль 2013 - 11:25

Vaccina, помогите разрешить проблему с некорректным пересчетом суммы.. :ph34r:

#91 mikola

mikola

    Good soo good

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

Отправлено 27 Февраль 2013 - 19:10

 sanik55 (27 Февраль 2013 - 11:25) писал:

Vaccina, помогите разрешить проблему с некорректным пересчетом суммы.. :ph34r:
Добрый вечер...
Как у вас не корректно отображаться сума ПОСЛЕ пересчитать??
Так же попробуйте
найти код
/<div class="left" ><a href="#" class="whtgreen" onclick="return confirm('Вы действительно хотите удалить все товары из корзины?')">Очистить корзину</a> <button class="whtgreen fnt12n" type="submit" >Пересчитать</button></div>
заменить на
<div class="left" ><a href="{CART_TRUNCATE_URL}" class="whtgreen" onclick="return confirm('Вы действительно хотите удалить все товары из корзины?')">Очистить корзину</a> <button class="whtgreen fnt12n" type="submit" >Пересчитать</button></div>


#92 sanik55

sanik55

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

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

Отправлено 01 Март 2013 - 11:24

 Mikola (27 Февраль 2013 - 19:10) писал:

<div class="left" ><a href="{CART_TRUNCATE_URL}" class="whtgreen" onclick="return confirm('Вы действительно хотите удалить все товары из корзины?')">Очистить корзину</a> <button class="whtgreen fnt12n" type="submit" >Пересчитать</button></div>

Этот код не помог...
Еще раз опишу ситуацию. Добавляем в корзину несколько товаров. В корзине кнопками изменяем количество товара. Жмем "Пересчитать" и пересчитывается сумма только у первого товара.
Еще одна особенность: в корзине два товара. Количество первого 1 шт, это кол-во по умолчанию, кнопки изменения количества не нажимаем. Кол-во второго товара больше 1 (например, 2). т.е количество второго товара изменено нажатием на стрелку вверх (кнопку "up_button").
Итого в корзине: Товар №1 - 1 шт, Товар № 2 - 2 шт. Жмем на кнопку "Пересчитать" и сумма увеличивается у Товара № 1, хотя его количество не менялось. Сумма напротив Товара № 2 не меняется, а кнопками изменяли его количество.
Как это исправить?..

#93 Vaccina

Vaccina

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

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

Отправлено 02 Март 2013 - 00:42

Пожалуйста, приложите ваш код шаблона "Корзина"

#94 sanik55

sanik55

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

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

Отправлено 02 Март 2013 - 19:09

Шаблон "Корзина" сейчас выглядит так:
<!-- Статический заголовок странички -->
<div class="headline" style="background:none;">
<div class="h1static clear"><h1 class="fnt18n">Корзина</h1></div>
</div>
<!-- Статический заголовок странички-Конец -->

<!-- Корзина -->
<script language="JavaScript">
function addone(i, $this) {
ta1=$($this).closest('.numeric_input').find('input[type="text"]').get(0);
ta1.value=parseInt(ta1.value)+i;
if (parseInt(ta1.value) <= 1) { ta1.value=1; }
}
</script>
<form action="{CART_URL}" method="post">
<div class="history paddlr">
{% IF FORM_NOTICE %}
<div class="infoblock fnt12b txtalgnlft" style="margin-bottom:10px;">
{FORM_NOTICE | nl2br}
</div>
{% ENDIF %}
{% IF cart_items_empty %}
<div class="infoblock fnt14b txtalgnlft" style="margin-bottom:10px;">
Ваша корзина пуста<br />
Предлагаем выбрать нужный Вам товар из <a href="{CATALOG_URL}">каталога</a>.
</div>
{% ELSE %}
<input type="hidden" name="hash" value="{HASH}" />
<div class="padd">
<table cellpadding="0" width="100%" cellspacing="0" class="fnt11n txtalgncnt">
<tr class="title fnt11b">
<td class="first">Наименование</td><td width="10%">Кол-во</td><td width="15%">Цена</td><td width="15%">Общая сумма</td><td class="last" width="9%">Удалить</td>
</tr>
{% FOR cart_items %}
<tr class="order">
<td>
<div class="img txtalgncnt"><a href="{cart_items.GOODS_URL}"><img src="{% IF cart_items.GOODS_IMAGE_EMPTY %}{ASSETS_IMAGES_PATH}no-photo-icon.png{% ELSE %}{cart_items.GOODS_IMAGE_ICON}{% ENDIF %}" alt="" /></a></div>
<div class="info txtalgnlft">$$$
<span class="fnt12n"><a href="{cart_items.GOODS_URL}">{cart_items.GOODS_NAME}
<!-- Если у товара есть отличительные свойства для модификации товара, допишем их к названию товара -->
{% IFNOT cart_items.distinctive_properties_empty %}<span>({% FOR distinctive_properties %}{cart_items.distinctive_properties.NAME}: {cart_items.distinctive_properties.VALUE}{% IFNOT cart_items.distinctive_properties.last %}, {% ENDIF %}{% ENDFOR %})</span>{% ENDIF %}</a></span>
<p class="fnt10n"><a href="http://{NET_DOMAIN}/">Главная</a> {% FOR catalog_path %}&raquo; <a href="{cart_items.catalog_path.URL}" >{cart_items.catalog_path.NAME}</a>{% ENDFOR %}</p>
</div>
</td>
<td class="number">
<div class="numeric_input" style="position: relative; height: 25px; margin: 0;">
<input style="margin-right: 3px; text-align: [b]center[/b]; width: 20px;" type="text" class="text_q" name="form[quantity][21968780]" value="1" id="quantity_wanted" title="Количество" maxlength="12" onkeydown="this.blur()">
<div style="padding-right: 5px;">
<input style="background-color: transparent; width: 10px;" type="button" class="up_button" onclick="addone(1, this)">
<input style="background-color: transparent; width: 10px;" type="button" class="down_button" onclick="addone(-1, this)">

</div>
<span sytle="padding-top: 3px; display: block;">шт</span>
</div>
</td>
<td class="fnt12b">{cart_items.GOODS_MOD_PRICE_NOW | money_format}</td>
<td class="fnt12b">{cart_items.ORDER_LINE_PRICE_NOW | money_format}</td>
<td class="last" ><a href="{cart_items.ORDER_LINE_DELETE_URL}" class="delete" onclick="return confirm('Вы действительно хотите удалить {cart_items.GOODS_NAME} из корзины?')" ></a></td>
</tr>
{% ENDFOR %}
</table>
</div>
<div class="cartbottom padd">
<div class="left" ><a href="{CART_TRUNCATE_URL}" class="whtgreen" onclick="return confirm('Вы действительно хотите удалить все товары из корзины?')">Очистить корзину</a> <button class="whtgreen fnt12n" type="submit" >Пересчитать</button></div>
<div class="right"><button class="whtblue" type="submit" name="next_step">Заказать на: {% FOR cart_sum %}{cart_sum.NOW | money_format}{% ENDFOR %}</button></div>
</div>
{% ENDIF %}
</div>
</form>
<!-- Корзина-Конец -->


#95 Vaccina

Vaccina

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

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

Отправлено 04 Март 2013 - 23:48

Найдите в вашем шаблоне

<input style="margin-right: 3px; text-align: center; width: 20px;" type="text" class="text_q" name="form[quantity][21968780]" value="1" id="quantity_wanted" title="Количество" maxlength="12" onkeydown="this.blur()">

и замените на

<input style="margin-right: 3px; text-align: center; width: 20px;" type="text" class="text_q" name="form[quantity][{cart_items.GOODS_MOD_ID}]" value="{cart_items.ORDER_LINE_QUANTITY}" id="quantity_wanted" title="Количество" maxlength="12" onkeydown="this.blur()">


#96 sanik55

sanik55

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

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

Отправлено 05 Март 2013 - 05:48

Vaccina, спасибо, теперь ошибок не наблюдается :) ттт.

Подскажите, пожалуйста, можно ли сделать автомтическое обновление корзины при изменении количества товара, чтобы не было необходимости нажимать кнопку "Пересчитать"?

#97 Vaccina

Vaccina

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

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

Отправлено 06 Март 2013 - 00:04

Найдите

<script language="JavaScript">
function addone(i, $this) {
ta1=$($this).closest('.numeric_input').find('input[type="text"]').get(0);
ta1.value=parseInt(ta1.value)+i;
if (parseInt(ta1.value) <= 1) { ta1.value=1; }
}
</script>

и замените на

<script language="JavaScript">
function addone(i, $this) {
ta1=$($this).closest('.numeric_input').find('input[type="text"]').get(0);
ta1.value=parseInt(ta1.value)+i;
if (parseInt(ta1.value) <= 1) { ta1.value=1; }
$('.up_button').closest('form').submit();
}
</script>


#98 sanik55

sanik55

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

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

Отправлено 06 Март 2013 - 07:33

И вновь, спасибо Вам, Vaccina !

#99 sanik55

sanik55

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

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

Отправлено 06 Март 2013 - 08:29

Спецы, подскажите как реализовать систему выставления счетов для юр. лиц подобно той, что реализована на storeland.ru ?

#100 sanik55

sanik55

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

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

Отправлено 06 Март 2013 - 13:46

И еще вопрос: в настройках тарифного плана на тарифе "Оптима" есть пункт "Генератор ватермарок", что это такое?..




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

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