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


Вывод Суммы Корзины Рядом С Количеством Товаров


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

#1 atrofimov

atrofimov

    Продвинутый пользователь

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

Отправлено 18 Январь 2017 - 22:30

Здравствуйте! Помогите, пожалуйста, вывести сумму заказа рядом со значком корзины в шапке сайта в аккаунте SL-395059

1. По аналогии с выводом количества товаров рядом со значком корзины надо сделать еще вывод суммы корзины  с обозначением рубля как в цене.
Как должно выглядеть показано в прикрепленном изображении. Область сделать овальной, как форма кнопок в шаблоне лето. По высоте такая же как область количеством товара. Если будет мешать адаптивности на мобильных устройствах, то сумму корзины можно выводить только на больших и средних экранах.

2. Цвет области с суммой корзины менять по сумме заказа. До 500 руб(миним. сумма заказа) -область рыжая(цвет информационного сообщения о пустой корзине). А при сумме заказа от 500 рублей и выше область зеленая.

3. Значок корзины выделить до наведения другим цветом. Оранжевый вместо серого.

Прикрепленные изображения

  • 16.jpg


#2 atrofimov

atrofimov

    Продвинутый пользователь

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

Отправлено 22 Январь 2017 - 16:18

Жду помощи.

#3 Ирина345

Ирина345

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

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

Отправлено 24 Январь 2017 - 11:57

Просмотр сообщенияatrofimov (18 Январь 2017 - 22:30) писал:

Здравствуйте! Помогите, пожалуйста, вывести сумму заказа рядом со значком корзины в шапке сайта в аккаунте SL-395059

1. По аналогии с выводом количества товаров рядом со значком корзины надо сделать еще вывод суммы корзины  с обозначением рубля как в цене.
Как должно выглядеть показано в прикрепленном изображении. Область сделать овальной, как форма кнопок в шаблоне лето. По высоте такая же как область количеством товара. Если будет мешать адаптивности на мобильных устройствах, то сумму корзины можно выводить только на больших и средних экранах.

2. Цвет области с суммой корзины менять по сумме заказа. До 500 руб(миним. сумма заказа) -область рыжая(цвет информационного сообщения о пустой корзине). А при сумме заказа от 500 рублей и выше область зеленая.

3. Значок корзины выделить до наведения другим цветом. Оранжевый вместо серого.
Здравствуйте, найдите в шаблоне HTML
<div class="cart-title rhombus">
				 <a href="{CART_URL}"><i class="fa fa-shopping-cart" title="Перейти в корзину">&nbsp;</i></a>
				 <span class="cart-count" data-count="{CART_COUNT_TOTAL}">{CART_COUNT_TOTAL}</span>
					 </div>
замените на
<div class="cart-title rhombus">
				 <a href="{CART_URL}"><i class="fa fa-shopping-cart" title="Перейти в корзину">&nbsp;</i></a>
				 <span class="cart-count" data-count="{CART_COUNT_TOTAL}">{CART_COUNT_TOTAL}</span>
				 {% IFNOT cart_count_empty %} {% FOR cart_sum %}<span class="cart-sum" >{cart_sum.NOW} р.</span> {% ENDFOR %}{% ENDIF %}
			 </div>

далее найдите в шаблоне Быстрый заказ и в шаблоне Ajax добавление товара в корзину код
<div style="display:none;" id="newCartCount">
<a href="{CART_URL}"><i class="fa fa-shopping-cart">&nbsp;</i></a>
<span class="cart-count" data-count="{CART_COUNT_TOTAL}">{CART_COUNT_TOTAL}</span>
</div>

замените на
<div style="display:none;" id="newCartCount">
<a href="{CART_URL}"><i class="fa fa-shopping-cart">&nbsp;</i></a>
<span class="cart-count" data-count="{CART_COUNT_TOTAL}">{CART_COUNT_TOTAL}</span>
{% IFNOT cart_count_empty %} {% FOR cart_sum %}<span class="cart-sum">{cart_sum.NOW} р.</span> {% ENDFOR %}{% ENDIF %}
			
</div>

далее найдите в файле main.js
$('.block-cart').removeClass('have-items');
		 $('.cart-products-list').hide();
		 $('.subtotal').hide();
		 $('.dropdown-cart .button').hide();
		 $('.dropdown-cart .cart-content').prepend('<div class="cart-empty">Ваша корзина пуста</div>');
	   

замените на
$('.block-cart').removeClass('have-items');
		 $('.cart-products-list').hide();
		 $('.subtotal').hide();
		 $('.dropdown-cart .button').hide();
		 $('.dropdown-cart .cart-content').prepend('<div class="cart-empty">Ваша корзина пуста</div>');
		 $('.cart-title .cart-sum').text("0");

далее найдите
$('.cart-count').text("0");
	 $('.block-cart').removeClass('have-items');
	 $('.cart-products-list').hide();
	 $('.subtotal').hide();
$('.dropdown-cart .button').hide();
	 $('.dropdown-cart').prepend('<div class="cart-content"><div class="cart-empty">Ваша корзина пуста</div></div>');

замените на
$('.cart-count').text("0");
	 $('.block-cart').removeClass('have-items');
	 $('.cart-products-list').hide();
$('.cart-title .cart-sum').text("0");
	 $('.subtotal').hide();
$('.dropdown-cart .button').hide();
	 $('.dropdown-cart').prepend('<div class="cart-content"><div class="cart-empty">Ваша корзина пуста</div></div>');

В конец файла main.css добавьте
.cart-title .cart-sum {
background: #45c425;
color: #fff;
line-height: 22px;
padding: 0 7px;
font-size: 11px;
position: absolute;
width: 53px;
top: 18px;
border-radius: 13px;
}

.block-cart.cart-page .cart-sum {display:none;}


#4 atrofimov

atrofimov

    Продвинутый пользователь

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

Отправлено 24 Январь 2017 - 13:37

Здравствуйте! Изменения в аккаунте SL-395059 произвел! Спасибо большое!

1. Все так как нужно. Единственно, нужно убрать этот блок на малых экранах( он там не помещается) и знак рубля сделать как в цене.

​2 и 3 вопросы открыты. Помогите пожалуйста.

#5 Mr.Nito

Mr.Nito

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

  • Модераторы
  • 1 364 сообщений

Отправлено 28 Январь 2017 - 15:40

Просмотр сообщенияatrofimov (24 Январь 2017 - 13:37) писал:

Здравствуйте! Изменения в аккаунте SL-395059 произвел! Спасибо большое!

1. Все так как нужно. Единственно, нужно убрать этот блок на малых экранах( он там не помещается) и знак рубля сделать как в цене.

​2 и 3 вопросы открыты. Помогите пожалуйста.

1.На мобильных версия поле скрыл.
В main.css
@media(max-width:844px){
.cart-title .cart-sum {
display:none;
}
}
2. В шаблоне HTML и Ajax добавление товара в корзину.
{% IFNOT cart_count_empty %} {% FOR cart_sum %}<span class="cart-sum">{cart_sum.NOW | money_format} р.</span> {% ENDFOR %}{% ENDIF %}
заменил на
{% IFNOT cart_count_empty %} {% FOR cart_sum %}<span class="cart-sum {% IF cart_sum.NOW < 500 %}orange{% ENDIF %}" >{cart_sum.NOW | money_format} р.</span> {% ENDFOR %}{% ENDIF %}
В main.css добавил
.cart-title .cart-sum.orange { background: #fb8233;}

3.Цвет значка в обычном состоянии и при наведении
/* Корзина */
.block-cart .cart-title i {margin-left: 3px;color: #f39f18!important;}
.block-cart .cart-title i:hover {margin-left: 3px; color: #369a1e!important;}


#6 atrofimov

atrofimov

    Продвинутый пользователь

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

Отправлено 28 Январь 2017 - 19:16

Здравствуйте! Изменения в аккаунте SL-395059 произвел! Спасибо огромное за помощь!!
Все работает отлично!
За мобильную версию отдельное спасибо! Чуть не забыл про этот вопрос!!!

Единственнно что осталось, это обновлять сумму корзины (которая выводится рядом со значком количества) при удалении из нее одного или нескольких товаров без обновления страницы.
Например в корзине 3 товара на 450 рублей.Удаляю один из них из всплывающего окна корзины. счетчик товаров обновляется сразу и показывает что там 2 штуки. А сумма корзины сейчас остается неизменной(450 р.) и только при обновлении страницы она покажет правильную сумму(300 например).
Помогите пожалуйста сделать обновление суммы корзины без обновления страницы для этого.

#7 Firefly

Firefly

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

  • Модераторы
  • 3 810 сообщений

Отправлено 02 Февраль 2017 - 11:42

Просмотр сообщенияatrofimov (28 Январь 2017 - 19:16) писал:

Здравствуйте! Изменения в аккаунте SL-395059 произвел! Спасибо огромное за помощь!!
Все работает отлично!
За мобильную версию отдельное спасибо! Чуть не забыл про этот вопрос!!!

Единственнно что осталось, это обновлять сумму корзины (которая выводится рядом со значком количества) при удалении из нее одного или нескольких товаров без обновления страницы.
Например в корзине 3 товара на 450 рублей.Удаляю один из них из всплывающего окна корзины. счетчик товаров обновляется сразу и показывает что там 2 штуки. А сумма корзины сейчас остается неизменной(450 р.) и только при обновлении страницы она покажет правильную сумму(300 например).
Помогите пожалуйста сделать обновление суммы корзины без обновления страницы для этого.

Здравствуйте.
Изменения Вам произвел и создал бэкап. Теперь информация будет меняться в режиме реального времени. Проверьте, пожалуйста.

#8 atrofimov

atrofimov

    Продвинутый пользователь

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

Отправлено 02 Февраль 2017 - 12:43

Здравствуйте! Изменения проверил! Спасибо большое! Пересчет суммы корзины производится сразу! Отлично!

1. Только вот заметил одну странность. На тестовом магазине(аккаунт SL-395059) вместе с обновлением суммы адекватно меняется и область где она отображется, там при суммпе корзины меньше 500 ру. стоит другой цвет. А вот в основном магазине(аккаунт SL-163344) куда перебросил архивом последний бэкап почему то после удаления любой позиции товара сумма обновляется сразу а цвет корзины становится рыжим как будто там меньше 500 рублей. Один код и там и там один бэкап, а работает по разному. Помогите пожалуйста.

2. Еще заметил небольшой момент. Если у товара есть дробные копейки в админке, которые соответственно не видны на сайте за счет округления. ТО они появляются в зоне суммы корзины при нажатии на кнопку Быстрый заказ в карточке товара. и если Окно быстрого заказа закрыть то это множество некрасивых цифр пропадает и округляется только при обновлении страницы. Такой артефакт появляется только в этом случае. Помогите пожалуйста исправить.

#9 Firefly

Firefly

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

  • Модераторы
  • 3 810 сообщений

Отправлено 02 Февраль 2017 - 14:56

Просмотр сообщенияatrofimov (02 Февраль 2017 - 12:43) писал:

Здравствуйте! Изменения проверил! Спасибо большое! Пересчет суммы корзины производится сразу! Отлично!

1. Только вот заметил одну странность. На тестовом магазине(аккаунт SL-395059) вместе с обновлением суммы адекватно меняется и область где она отображется, там при суммпе корзины меньше 500 ру. стоит другой цвет. А вот в основном магазине(аккаунт SL-163344) куда перебросил архивом последний бэкап почему то после удаления любой позиции товара сумма обновляется сразу а цвет корзины становится рыжим как будто там меньше 500 рублей. Один код и там и там один бэкап, а работает по разному. Помогите пожалуйста.

2. Еще заметил небольшой момент. Если у товара есть дробные копейки в админке, которые соответственно не видны на сайте за счет округления. ТО они появляются в зоне суммы корзины при нажатии на кнопку Быстрый заказ в карточке товара. и если Окно быстрого заказа закрыть то это множество некрасивых цифр пропадает и округляется только при обновлении страницы. Такой артефакт появляется только в этом случае. Помогите пожалуйста исправить.

Внесли Вам дополнительные изменения, которые должны устранить различные проблемы при обновлении данных. Создали после бэкап 02.02.2017 14:53:31.
Проверьте, пожалуйста.

#10 atrofimov

atrofimov

    Продвинутый пользователь

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

Отправлено 02 Февраль 2017 - 14:59

Проверил. Цвет обновляется корректно! Спасибо большое!
А как быть с выводом копеек при нажатии на быстрый заказ?

#11 atrofimov

atrofimov

    Продвинутый пользователь

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

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

Сейчас обнаружил несколько ошибок.
1.Js ошибка возникает если удалять из корзины товары по одному и после удаления последнего товара при обновлении зоны суммы корзины возникает Js  ошибка. Скрин прилагаю.

2. Почему то в браузере Goolgle Chrome тормозит обновление зоны суммы корзины. Точнее и при удалении она вообще подвисает, остается пустой пока не перезагрузишь страницу вручную. В браузерах Опера и Яндекс браузере все работает намного быстрее. Задумывается при удалении товара и обновлении суммы но обновляет автоматически.

Помогите пожалуйста избавится от Js ошибки и нормализовать работу в Goolgle Chrome.

Прикрепленные изображения

  • 19.jpg


#12 atrofimov

atrofimov

    Продвинутый пользователь

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

Отправлено 02 Февраль 2017 - 22:05

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

#13 atrofimov

atrofimov

    Продвинутый пользователь

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

Отправлено 02 Февраль 2017 - 22:32

Странно. сейчас перекинул бэкап с тестового на основной, с белым экраном проблема пропала, и счетчик суммы корзины в Goolgle Chrome обновляется. но тупит больше чем в других браузерах. Почему интересно?
Странно почему на двух магазинах с одним и тем же кодом бэкапы ведут себя по разному. Например когда заходишь в корзину и удаляешь товар в аккаунте SL-395059 сообщение зеленое что товар успешно удален из корзины. Это сообщение находится в корзине над списком товаров. А в аккаунте основного магазина SL-163344, куда перебросил бэкап тестового это сообщение вместо корзины появлется на главной в двух местах а в корзине его нет.
Почему непредсказуемо по разному ведет себя один и тот же бэкап?
Js ошибка описанная выше актуальна пока.

Ну е мое,скоро сердце точно прихватит, белый экран снова вылез на аккаунте SL-163344!

#14 atrofimov

atrofimov

    Продвинутый пользователь

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

Отправлено 02 Февраль 2017 - 22:37

на тестовом аккаунте такого нет! Почему? бред какой то..не понимаю... Попробовал более ранний бэкап загрузить с тестового...снова белый экран...Помогите пожалуйста!!!

#15 Vaccina

Vaccina

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

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

Отправлено 03 Февраль 2017 - 06:27

Здравствуйте.

После переустановки темы и обновления дизайна не забывайте чистить кэш браузера.
Зайдите в раздел Сайт - Редактор шаблонов - main.js - найдите:
// Удаление товара из корзины без обновлении страницы
function removeFromCart(e){
  if(confirm('Вы точно хотите удалить товар из корзины?')){
  var del = e;  
  e.parent().fadeOut().remove();
  url = del.data('href');
  quantity = del.data('count');
  $('.total-sum').animate({opacity: 0},500);
  $('.total-sum2').animate({opacity: 0},500);
  $.ajax({
	cache   : false,
		url		  : url,
	success: function(){
	  $.get('url', function(d){
	  var oldCount = $('.cart-count').text();
	  var oldQuantity = quantity;
	  var newCount = oldCount - oldQuantity;
	  $('.cart-count').text(newCount);
	  $('.total-sum').animate({opacity: 1},500);
	  $('.total-sum').html($(d).find('.total-sum').html());
	  $('.total-sum2').animate({opacity: 1},500);
	  $('.total-sum2').html($(d).find('.total-sum2').html());
		var flag = 0;
		if(newCount != 0){
		$('.cart-products-list li.cart-item').each(function(){
		  if(flag == 0){
			if($(this).css('display') == 'none'){
			  $(this).show();
			flag++;
			}
		  }
		})}else{
		  $('.block-cart').removeClass('have-items');
				 $('.cart-products-list').hide();
				 $('.subtotal').hide();
				 $('.subtotal2').hide();
				 $('.dropdown-cart .button').hide();
				 $('.dropdown-cart .cart-content').prepend('<div class="cart-empty">Ваша корзина пуста</div>');
				 $('.cart-title .cart-sum').text("0");
		}
 
 var totalsum2 = parseInt($('.total-sum2 .num').html().replace(/\s/g, ''));
	  if (totalsum2 < 500){
		
		$('.subtotal2 .cart-sum').addClass('orange');console.log(totalsum2)
	  }else{
		$('.subtotal2 .cart-sum').removeClass('orange');
	  }
	  });
	  }
	})
  }
}

Замените на:
// Удаление товара из корзины без обновлении страницы
function removeFromCart(e){
  if(confirm('Вы точно хотите удалить товар из корзины?')){
  var del = e; 
  e.parent().fadeOut().remove();
  url = del.data('href');
  quantity = del.data('count');
  $.ajax({
	cache   : false,
  url	: url,
	success: function(){
	  $.get('url', function(d){
	  var oldCount = $('.cart-count').text();
	  var oldQuantity = quantity;
	  var newCount = oldCount - oldQuantity;
	  $('.cart-count').text(newCount);
	  $('.total-sum').html($(d).find('.total-sum').html());
	  $('.total-sum2').html($(d).find('.total-sum2').html());
		var flag = 0;
		if(newCount != 0){
		$('.cart-products-list li.cart-item').each(function(){
		  if(flag == 0){
			if($(this).css('display') == 'none'){
			  $(this).show();
			flag++;
			}
		  }
		})}else{
		  $('.block-cart').removeClass('have-items');
				 $('.cart-products-list').hide();
				 $('.subtotal').hide();
				 $('.subtotal2').hide();
				 $('.dropdown-cart .button').hide();
				 $('.dropdown-cart .cart-content').prepend('<div class="cart-empty">Ваша корзина пуста</div>');
				 $('.cart-title .cart-sum').text("0");
		}
	  });
	  }
	})
  }
}


#16 atrofimov

atrofimov

    Продвинутый пользователь

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

Отправлено 03 Февраль 2017 - 08:39

Здравствуйте! Изменения в аккаунте SL-163344 произвел. Спасибо за раннюю помощь!
Кэш браузера чищу постоянно Ctrl+F5.
Сумма корзины в верхнем правом углу начала обновляться корректно без такого сильно подвисания. Спасибо!
Js  ошибка при удалении последнего товара из превью корзины пропала. Отлично! Спасибо!

Но осталась еще одна нерешенная большая проблема! Это белый экран при удалении товара из обычной корзины! Причем эта проблема только на аккаунте SL-163344!
Сейчас подгрузил свежий бэкап с основного(SL-163344),где сделал изменения на тестовый(SL-395059). Так вот, там сайт ведет себя по другому. Счетчик в правом углу обновляется одинаково. А вот при удалении товара из обычной корзины не выходит белого экрана и появляется как и надо сезеное информативное сообщение об успешном удалении товара.
Почему так происходит? ведь код сайта один.
Помогите пожалуйста решить проблему на аккаунте SL-163344

#17 atrofimov

atrofimov

    Продвинутый пользователь

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

Отправлено 03 Февраль 2017 - 11:12

Здравствуйте! Прошу вручную перенести последний бэкап с аккаунта SL-395059 на аккаунт SL-163344 и устранить ошибку когда при удалении из корзины возникает белый экран

#18 Ирина345

Ирина345

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

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

Отправлено 03 Февраль 2017 - 13:18

Просмотр сообщенияatrofimov (03 Февраль 2017 - 11:12) писал:

Здравствуйте! Прошу вручную перенести последний бэкап с аккаунта SL-395059 на аккаунт SL-163344 и устранить ошибку когда при удалении из корзины возникает белый экран
Здравствуйте, Вам перенесли бекапы и устранили все ошибки, а так же создали бекапы.

#19 atrofimov

atrofimov

    Продвинутый пользователь

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

Отправлено 03 Февраль 2017 - 15:21

Здравствуйте! Изменения в аккаунте SL-163344 проверил. Спасибо огромное за скорую помощь!
Проблема с белым экраном пропала и счетчик обновляется корректно, кроме удаления последнего товара, при этом снова вылезаетJS ошибка.,
Можно как то ее исправить, чтобы не все другие алгоритмы работали корректно?

#20 Ирина345

Ирина345

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

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

Отправлено 03 Февраль 2017 - 15:27

Просмотр сообщенияatrofimov (03 Февраль 2017 - 15:21) писал:

Здравствуйте! Изменения в аккаунте SL-163344 проверил. Спасибо огромное за скорую помощь!
Проблема с белым экраном пропала и счетчик обновляется корректно, кроме удаления последнего товара, при этом снова вылезаетJS ошибка.,
Можно как то ее исправить, чтобы не все другие алгоритмы работали корректно?
Где именно у Вас появляется ошибка, при каких действиях?




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

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