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


Вы Экономите...


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

#1 ZverBlin

ZverBlin

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

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

Отправлено 02 Октябрь 2013 - 00:28

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

#2 Vaccina

Vaccina

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

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

Отправлено 02 Октябрь 2013 - 05:37

Вы можете использовать следующий код для подобной реализации - в файл main.js необходимо добавить

$(function() {
$('.price').each(function() {
	 if($(this).children('span').length &&
		 $(this).find('em').length &&
		 $(this).find('.saving').length) {
	 var old = parseFloat($(this).children('span').text().replace(/\s+/, ''));
	 var now = parseFloat($(this).find('em').text().replace(/\s+/, ''));
	 var saving = number_format(old - now, 0, '.', ' ');
	 $(this).find('.saving').text(saving + ' руб.');
}
});
});

после в шаблон "Товары" после строки

<div class="price fnt12b txtalgnlft">

можете добавить

<div class="saving"></div>

после внутрь блока saving будет вставлена цена экономии.

#3 ZverBlin

ZverBlin

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

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

Отправлено 02 Октябрь 2013 - 19:44

Просмотр сообщенияVaccina (02 Октябрь 2013 - 05:37) писал:

Вы можете использовать следующий код для подобной реализации - в файл main.js необходимо добавить

$(function() {
$('.price').each(function() {
	 if($(this).children('span').length &&
		 $(this).find('em').length &&
		 $(this).find('.saving').length) {
	 var old = parseFloat($(this).children('span').text().replace(/\s+/, ''));
	 var now = parseFloat($(this).find('em').text().replace(/\s+/, ''));
	 var saving = number_format(old - now, 0, '.', ' ');
	 $(this).find('.saving').text(saving + ' руб.');
}
});
});

после в шаблон "Товары" после строки

<div class="price fnt12b txtalgnlft">

можете добавить

<div class="saving"></div>

после внутрь блока saving будет вставлена цена экономии.
спасибо, работает)

#4 dmitriy-1

dmitriy-1

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

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

Отправлено 30 Март 2014 - 13:30

У меня не работает. Шаблон Радость. http://bambo6.storeland.ru/catalog

#5 Vaccina

Vaccina

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

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

Отправлено 01 Апрель 2014 - 02:54

$(function() {
$('.price').each(function() {
		 if($(this).children('span').length &&
				 $(this).find('em').length &&
				 $(this).find('.saving').length) {
		 var old = parseFloat($(this).children('span').text().replace(/\s+/, ''));
		 var now = parseFloat($(this).find('em').text().replace(/\s+/, ''));
		 var saving = number_format(old - now, 0, '.', ' ');
		 $(this).find('.saving').text(saving + ' руб.');
}
});
});
замените на:
//Вы экономите
$(function() {
$('.price').each(function() {
		 if($(this).find('.old).length &&
				 $(this).find('.num').length &&
				 $(this).find('.saving').length) {
		 var old = parseFloat($.trim($(this).find('.old).text()).replace(/\s+/, ''));
		 var now = parseFloat($.trim($(this).find('.num').text()).replace(/\s+/, ''));
		 var saving = number_format(old - now, 0, '.', ' ');
		 $(this).find('.saving').text(saving + ' руб.');
}
});
});
далее в шаблоне товары найдите
<ul class="cost fnt11 fntupcase txtalgnlft fntarl fleft ">
				   
					<li>Цена: {goods.MIN_PRICE_NOW | money_format}</li>
					{% IF goods.MIN_PRICE_OLD > goods.MIN_PRICE_NOW %}
					  <li class="last linethrough">Старая цена:
						{goods.MIN_PRICE_OLD | number_format("0", ",", " ")}
					  </li>
					  <div class="saving">Вы экономите:</div>
					{%ENDIF%}
					</ul>
замените на:
<ul class="cost fnt11 fntupcase txtalgnlft fntarl fleft ">
				   
					<li>Цена: {goods.MIN_PRICE_NOW | money_format}</li>
					{% IF goods.MIN_PRICE_OLD > goods.MIN_PRICE_NOW %}
					  <li class="last linethrough">Старая цена:
						<span class="old">{goods.MIN_PRICE_OLD | number_format("0", ",", " ")}</span>
					  </li>
					  Вы экономите:<div class="saving"></div>
					{%ENDIF%}
					</ul>


#6 velena168

velena168

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

  • Пользователи
  • PipPipPipPip
  • 1 643 сообщений
  • ГородСанкт- Петербург

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

А можно такую нужную штуку вставить в карточку товара, в шаблоне Осень?

#7 dmitriy-1

dmitriy-1

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

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

Отправлено 01 Апрель 2014 - 16:43

Просмотр сообщенияVaccina (01 Апрель 2014 - 02:54) писал:

$(function() {
$('.price').each(function() {
		 if($(this).children('span').length &&
				 $(this).find('em').length &&
				 $(this).find('.saving').length) {
		 var old = parseFloat($(this).children('span').text().replace(/\s+/, ''));
		 var now = parseFloat($(this).find('em').text().replace(/\s+/, ''));
		 var saving = number_format(old - now, 0, '.', ' ');
		 $(this).find('.saving').text(saving + ' руб.');
}
});
});
замените на:
//Вы экономите
$(function() {
$('.price').each(function() {
if($(this).find('.old).length &&
				 $(this).find('.num').length &&
				 $(this).find('.saving').length) {
var old = parseFloat($.trim($(this).find('.old).text()).replace(/\s+/, ''));
		 var now = parseFloat($.trim($(this).find('.num').text()).replace(/\s+/, ''));
		 var saving = number_format(old - now, 0, '.', ' ');
		 $(this).find('.saving').text(saving + ' руб.');
}
});
});
далее в шаблоне товары найдите
<ul class="cost fnt11 fntupcase txtalgnlft fntarl fleft ">
				
				 <li>Цена: {goods.MIN_PRICE_NOW | money_format}</li>
				 {% IF goods.MIN_PRICE_OLD > goods.MIN_PRICE_NOW %}
					 <li class="last linethrough">Старая цена:
					 {goods.MIN_PRICE_OLD | number_format("0", ",", " ")}
					 </li>
					 <div class="saving">Вы экономите:</div>
				 {%ENDIF%}
				 </ul>
замените на:
<ul class="cost fnt11 fntupcase txtalgnlft fntarl fleft ">
				
				 <li>Цена: {goods.MIN_PRICE_NOW | money_format}</li>
				 {% IF goods.MIN_PRICE_OLD > goods.MIN_PRICE_NOW %}
					 <li class="last linethrough">Старая цена:
					 <span class="old">{goods.MIN_PRICE_OLD | number_format("0", ",", " ")}</span>
					 </li>
					 Вы экономите:<div class="saving"></div>
				 {%ENDIF%}
				 </ul>

Спасибо большое, но все равно не выводится разница.

Добавил к исходной цене класс .num (как в скрипте), но и с ним и без него не выходит число разницы =(

#8 Vaccina

Vaccina

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

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

Отправлено 02 Апрель 2014 - 03:14

<ul class="cost fnt11 fntupcase txtalgnlft fntarl fleft ">
							   
								 <li>Цена: {goods.MIN_PRICE_NOW | money_format}</li>
								 {% IF goods.MIN_PRICE_OLD > goods.MIN_PRICE_NOW %}
										 <li class="last linethrough">Старая цена:
										 <span class="old">{goods.MIN_PRICE_OLD | number_format("0", ",", " ")}</span>
										 </li>
										 Вы экономите:<div class="saving"></div>
								 {%ENDIF%}
								 </ul>
попробуйте убрать текст отсюда "Старая цена:" и "Цена:" изменения делали на основе вашего кода и все работало после изменений

#9 tolikkansk

tolikkansk

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

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

Отправлено 10 Июль 2014 - 06:50

Здравствуйте, я поставил на шаблон Пластик,тоже не работает. Почему?

#10 Сake

Сake

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

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

Отправлено 11 Июль 2014 - 00:57

У вас код обрабатывается корректно. Посмотреть можно на странице /catalog/Bodi-pesochniki?goods_view_type=1
На данной странице отображается сумма без именования, так как в самом шаблоне этого не задано. Вы можете в шаблоне "Товары" найти строку

<div class="saving"></div>

и заменить её на

Вы экономите: <div class="saving">0 руб.</div>

или же в файле main.js найдите строку

$(this).find('.saving').text(saving + ' руб.');

и замените её на

$(this).find('.saving').text('Вы экономите: ' + saving + ' руб.');


#11 tolikkansk

tolikkansk

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

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

Отправлено 16 Июль 2014 - 21:04

А как для сияния?

#12 Сake

Сake

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

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

Отправлено 17 Июль 2014 - 00:36

Найдите в вашем шаблоне "Товары" следующий код

Цена сейчас: <a href="{goods.URL_MIN_PRICE_NOW}">{goods.MIN_PRICE_NOW | money_format}</a><br />
{% IF goods.MIN_PRICE_NOW_WITHOUT_DISCOUNT>goods.MIN_PRICE_NOW %}
Цена без учёта скидки: <a href="{goods.URL_MIN_PRICE_NOW_WITHOUT_DISCOUNT}" class="lineThrough">{goods.MIN_PRICE_NOW_WITHOUT_DISCOUNT | money_format}</a><br />
<span class="listingDiscountInfo">До {goods.MAX_DISCOUNT_EXPIRED_AT | date} скидка составляет: {goods.MAX_DISCOUNT}%</span>
{% ELSEIF goods.MIN_PRICE_OLD>goods.MIN_PRICE_NOW %}
Старая цена: <a href="{goods.URL_MIN_PRICE_OLD}" class="lineThrough">{goods.MIN_PRICE_OLD | money_format}</a>
{% ENDIF %}

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

<span class="goodsListItemPrice">
Цена сейчас: <a href="{goods.URL_MIN_PRICE_NOW}" class="goodsListItemPriceNew">{goods.MIN_PRICE_NOW | money_format}</a><br />
{% IF goods.MIN_PRICE_NOW_WITHOUT_DISCOUNT>goods.MIN_PRICE_NOW %}
Цена без учёта скидки: <a href="{goods.URL_MIN_PRICE_NOW_WITHOUT_DISCOUNT}" class="goodsListItemPriceOld lineThrough">{goods.MIN_PRICE_NOW_WITHOUT_DISCOUNT | money_format}</a><br />
<span class="listingDiscountInfo">До {goods.MAX_DISCOUNT_EXPIRED_AT | date} скидка составляет: {goods.MAX_DISCOUNT}%</span>
{% ELSEIF goods.MIN_PRICE_OLD>goods.MIN_PRICE_NOW %}
Старая цена: <a href="{goods.URL_MIN_PRICE_OLD}" class="goodsListItemPriceOld lineThrough">{goods.MIN_PRICE_OLD | money_format}</a>
{% ENDIF %}
<br /><span class="saving-wrp" style="display: none;">Вы экономите: <span class="saving"></span></span>
</span>

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

<div class="goodsListItemPriceNew">
<a href="{goods.URL_MIN_PRICE_NOW}">{goods.MIN_PRICE_NOW | money_format}</a>
</div> 
<div class="goodsListItemPriceOld">
{% IF goods.MIN_PRICE_NOW_WITHOUT_DISCOUNT>goods.MIN_PRICE_NOW %}
   <a href="{goods.URL_MIN_PRICE_NOW_WITHOUT_DISCOUNT}" class="lineThrough">{goods.MIN_PRICE_NOW_WITHOUT_DISCOUNT | money_format}</a>
{% ELSEIF goods.MIN_PRICE_OLD>goods.MIN_PRICE_NOW %}
   <a href="{goods.URL_MIN_PRICE_OLD}" class="lineThrough">{goods.MIN_PRICE_OLD | money_format}</a>
{% ENDIF %}
</div>

и замените на

<div class="goodsListItemPrice">
<div class="goodsListItemPriceNew">
<a href="{goods.URL_MIN_PRICE_NOW}">{goods.MIN_PRICE_NOW | money_format}</a>
</div> 
<div class="goodsListItemPriceOld">
{% IF goods.MIN_PRICE_NOW_WITHOUT_DISCOUNT>goods.MIN_PRICE_NOW %}
   <a href="{goods.URL_MIN_PRICE_NOW_WITHOUT_DISCOUNT}" class="lineThrough">{goods.MIN_PRICE_NOW_WITHOUT_DISCOUNT | money_format}</a>
{% ELSEIF goods.MIN_PRICE_OLD>goods.MIN_PRICE_NOW %}
   <a href="{goods.URL_MIN_PRICE_OLD}" class="lineThrough">{goods.MIN_PRICE_OLD | money_format}</a>
{% ENDIF %}
</div>
<div class="saving-wrp" style="display: none;">Вы экономите: <span class="saving"></span></div>
</div>

после этого в файл main.js добавьте

$(function () {
  $('.goodsListItemPrice').each(function () {
	if ($(this).find('.saving-wrp').length) {
	  var old = parseFloat($(this).find('.goodsListItemPriceOld .num').text().replace(/\s+/, ''));
	  var now = parseFloat($(this).find('.goodsListItemPriceNew .num').text().replace(/\s+/, ''));
	  if (now < old) {
		var saving = number_format(old - now, 0, '.', ' ');
		$(this).find('.saving-wrp').show().find('.saving').text(saving + ' руб.');
	  }
	}
  });
});


#13 tolikkansk

tolikkansk

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

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

Отправлено 18 Июль 2014 - 06:42

А можно ещё вставить, чтобы отображалось в этом блоке?

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

  • 1.jpg


#14 Ирина345

Ирина345

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

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

Отправлено 18 Июль 2014 - 09:46

Просмотр сообщенияtolikkansk (18 Июль 2014 - 06:42) писал:

А можно ещё вставить, чтобы отображалось в этом блоке?
Здравствуйте, найдите в шаблоне Товар код
<!-- Старая цена -->
						<span class="goodsDataMainModificationPriceOld lineThrough" title="Старая цена">
						  <!-- Если на товар действует скидка -->
						  {% IF GOODS_MOD_PRICE_NOW_WITHOUT_DISCOUNT>GOODS_MOD_PRICE_NOW %}
							{GOODS_MOD_PRICE_NOW_WITHOUT_DISCOUNT | money_format}
						  <!-- Если старая цена была больше новой -->
						  {% ELSEIF GOODS_MOD_PRICE_OLD>GOODS_MOD_PRICE_NOW %}
							{GOODS_MOD_PRICE_OLD | money_format}
						  {% ENDIF %}
						</span>
и после него вставьте

<span class="goodsListItemPrice">
			 <a href="{goods.URL_MIN_PRICE_NOW}" class="goodsListItemPriceNew" style="display: none;"> {GOODS_MOD_PRICE_NOW | money_format}</a>
			  {% IF goods.MOD_PRICE_NOW_WITHOUT_DISCOUNT>goods.MIN_PRICE_NOW %}
			<a href="{goods.URL_MIN_PRICE_NOW_WITHOUT_DISCOUNT}" class="goodsListItemPriceOld lineThrough" style="display: none;">{goods.MIN_PRICE_NOW_WITHOUT_DISCOUNT | money_format}</a>
			  <span class="listingDiscountInfo">До {goods.MAX_DISCOUNT_EXPIRED_AT | date} скидка составляет: {goods.MAX_DISCOUNT}%</span>
			{% ELSEIF GOODS_MOD_PRICE_OLD>GOODS_MOD_PRICE_NOW %}
			 <a href="{goods.URL_MIN_PRICE_OLD}" class="goodsListItemPriceOld lineThrough" style="display: none;">{GOODS_MOD_PRICE_OLD | money_format}</a>
			  {% ENDIF %}
			 <span class="saving-wrp" >Вы экономите: <span class="saving"></span></span>
			  </span>


#15 tolikkansk

tolikkansk

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

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

Отправлено 19 Июль 2014 - 20:24

А как сделать, если экономии нет, то не отображалось чтобы?

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

  • econ.jpg


#16 Ирина345

Ирина345

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

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

Отправлено 21 Июль 2014 - 10:14

Просмотр сообщенияtolikkansk (19 Июль 2014 - 20:24) писал:

А как сделать, если экономии нет, то не отображалось чтобы?
Здравствуйте, найдите в шаблоне Товар
{% ENDIF %}
						 <span class="saving-wrp" >Вы экономите: <span class="saving"></span></span>
						  </span>
замените на


{% ENDIF %}
						 <span class="saving-wrp" {% IF GOODS_MOD_PRICE_OLD=0 %} style="display:none;" {% ENDIF %} >Вы экономите: <span class="saving"></span></span>
						  </span>



#17 velena168

velena168

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

  • Пользователи
  • PipPipPipPip
  • 1 643 сообщений
  • ГородСанкт- Петербург

Отправлено 21 Июль 2014 - 22:54

Просмотр сообщенияИрина345 (18 Июль 2014 - 09:46) писал:

Здравствуйте, найдите в шаблоне Товар код
<!-- Старая цена -->
<span class="goodsDataMainModificationPriceOld lineThrough" title="Старая цена">
<!-- Если на товар действует скидка -->
{% IF GOODS_MOD_PRICE_NOW_WITHOUT_DISCOUNT>GOODS_MOD_PRICE_NOW %}
{GOODS_MOD_PRICE_NOW_WITHOUT_DISCOUNT | money_format}
<!-- Если старая цена была больше новой -->
{% ELSEIF GOODS_MOD_PRICE_OLD>GOODS_MOD_PRICE_NOW %}
{GOODS_MOD_PRICE_OLD | money_format}
{% ENDIF %}
</span>
и после него вставьте

<span class="goodsListItemPrice">
<a href="{goods.URL_MIN_PRICE_NOW}" class="goodsListItemPriceNew" style="display: none;"> {GOODS_MOD_PRICE_NOW | money_format}</a>
{% IF goods.MOD_PRICE_NOW_WITHOUT_DISCOUNT>goods.MIN_PRICE_NOW %}
<a href="{goods.URL_MIN_PRICE_NOW_WITHOUT_DISCOUNT}" class="goodsListItemPriceOld lineThrough" style="display: none;">{goods.MIN_PRICE_NOW_WITHOUT_DISCOUNT | money_format}</a>
<span class="listingDiscountInfo">До {goods.MAX_DISCOUNT_EXPIRED_AT | date} скидка составляет: {goods.MAX_DISCOUNT}%</span>
{% ELSEIF GOODS_MOD_PRICE_OLD>GOODS_MOD_PRICE_NOW %}
<a href="{goods.URL_MIN_PRICE_OLD}" class="goodsListItemPriceOld lineThrough" style="display: none;">{GOODS_MOD_PRICE_OLD | money_format}</a>
{% ENDIF %}
<span class="saving-wrp" >Вы экономите: <span class="saving"></span></span>
</span>
Сделала для Осени, получилось, спасибо.
Но действует только на тех товарах, у которых в админке заполнено поле Старая цена.
А возможно чтобы надпись Вы экономите: появлялась и в товарах ( шаблон ТОВАР) на которые действует скидка по акции?

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

  • Снимок.JPG


#18 Сake

Сake

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

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

Отправлено 21 Июль 2014 - 23:06

Цитата

Но действует только на тех товарах, у которых в админке заполнено поле Старая цена.

Расчет ведется между суммами "Старая цена" и "Новая цена". Вычисляется разница, она и является суммой экономии.

Цитата

А возможно чтобы надпись Вы экономите: появлялась и в товарах ( шаблон ТОВАР) на которые действует скидка по акции?

В необходимо место шаблона "Товар" добавьте строку (если этого еще не сделано)

<div class="saving-wrp" style="display: none;">Вы экономите: <span class="saving"></span></div>

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

$(function () {
  $('div[itemprop="offerDetails"]').each(function () {
		if ($(this).find('.saving-wrp').length) {
		  var old = parseFloat($(this).find('.goodsDataMainModificationPriceOld .num').text().replace(/\s+/, ''));
		  var now = parseFloat($(this).find('.goodsDataMainModificationPriceNow .num').text().replace(/\s+/, ''));
		  if (now < old) {
				var saving = number_format(old - now, 0, '.', ' ');
				$(this).find('.saving-wrp').show().find('.saving').text(saving + ' руб.');
		  }
		}
  });
});


#19 velena168

velena168

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

  • Пользователи
  • PipPipPipPip
  • 1 643 сообщений
  • ГородСанкт- Петербург

Отправлено 21 Июль 2014 - 23:45

Просмотр сообщенияСake (21 Июль 2014 - 23:06) писал:

Расчет ведется между суммами "Старая цена" и "Новая цена". Вычисляется разница, она и является суммой экономии.



В необходимо место шаблона "Товар" добавьте строку (если этого еще не сделано)

<div class="saving-wrp" style="display: none;">Вы экономите: <span class="saving"></span></div>

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

$(function () {
$('div[itemprop="offerDetails"]').each(function () {
	 if ($(this).find('.saving-wrp').length) {
		 var old = parseFloat($(this).find('.goodsDataMainModificationPriceOld .num').text().replace(/\s+/, ''));
		 var now = parseFloat($(this).find('.goodsDataMainModificationPriceNow .num').text().replace(/\s+/, ''));
		 if (now < old) {
			 var saving = number_format(old - now, 0, '.', ' ');
			 $(this).find('.saving-wrp').show().find('.saving').text(saving + ' руб.');
		 }
	 }
});
});
Большое спасибо! Теперь все отлично.

#20 Minna

Minna

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

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

Отправлено 27 Август 2014 - 21:27

А как реализовать для Весны?




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

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