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


Добавление Ещё Одной Цены

вторая цена монтаж

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

#1 Mair13

Mair13

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

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

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

Здравствуйте. Мне необходимо было на странице товара отобразить цену монтажа товара. Для этой цели я выбрал отображение старой цены, но с переделанным оформлением. Скидки и акции было решено вырезать. Единственное условие, которое решено было оставить было в том, что бы не показывать цену монтажа(старую цену в бэк офисе), если она выше основной цены. Сделано это было для того, что бы скрыть монтаж у сопутствующих товаров. После переделки появилась проблема: если у товара не одна модификация, то цена монтажа(старая цена в бэк офисе) показывается каждый раз только у первой модификации, а у всех других надпись "цена монтажа" остаётся, а само значение пропадает и появляется только если она выше основной цены, т.е. по старой логике отображения "старой цены". Помогите донастроить, что бы цена монтажа(старая цена) отображалась во всех модификациях. Код шаблона товары прилагаю:
Скрытый текст

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

  • Безымянный.jpg


#2 Mair13

Mair13

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

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

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

Решил проблему сам:
в main.js поменял
		 // Старая цена товара
		 if(modificationPriceOld<modificationPriceNow) {
		  goodsPriceOld.html(modificationPriceOldFormated);
		 } else {
		   goodsPriceOld.html('');
		 }
на
		 // Старая цена товара
		 if(modificationPriceOld>modificationPriceNow) {
		  goodsPriceOld.html(modificationPriceOldFormated);
		 } else {
		   goodsPriceOld.html('');
		 }


#3 Mair13

Mair13

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

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

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

Как сделать, что бы цена и цена монтажа(старая цена) умножались на выбранное на странице количество?

#4 Сake

Сake

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

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

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

Добавьте в конец вашего файла main.js следующий код

$(function() {
  var priceNow = $('.goodsDataMainModificationPriceNow .num');
  var priceOld = $('.goodsDataMainModificationPriceOld .num');
  var price = {
	now: parseFloat(priceNow.text().replace(/\W+/, '')),
	old: parseFloat(priceOld.text().replace(/\W+/, ''))
  };
  $('[name="form[goods_mod_quantity]"]').keyup(function() {
	priceNow.text(number_format(price.now * parseInt($(this).val()), 0, ',', ' '));
	priceOld.text(number_format(price.old * parseInt($(this).val()), 0, ',', ' '));
  }).trigger('keyup');
});


#5 Mair13

Mair13

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

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

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

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

Добавьте в конец вашего файла main.js следующий код

$(function() {
var priceNow = $('.goodsDataMainModificationPriceNow .num');
var priceOld = $('.goodsDataMainModificationPriceOld .num');
var price = {
now: parseFloat(priceNow.text().replace(/\W+/, '')),
old: parseFloat(priceOld.text().replace(/\W+/, ''))
};
$('[name="form[goods_mod_quantity]"]').keyup(function() {
priceNow.text(number_format(price.now * parseInt($(this).val()), 0, ',', ' '));
priceOld.text(number_format(price.old * parseInt($(this).val()), 0, ',', ' '));
}).trigger('keyup');
});

Спасибо, заработало.

#6 Mair13

Mair13

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

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

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

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

Добавьте в конец вашего файла main.js следующий код

$(function() {
var priceNow = $('.goodsDataMainModificationPriceNow .num');
var priceOld = $('.goodsDataMainModificationPriceOld .num');
var price = {
now: parseFloat(priceNow.text().replace(/\W+/, '')),
old: parseFloat(priceOld.text().replace(/\W+/, ''))
};
$('[name="form[goods_mod_quantity]"]').keyup(function() {
priceNow.text(number_format(price.now * parseInt($(this).val()), 0, ',', ' '));
priceOld.text(number_format(price.old * parseInt($(this).val()), 0, ',', ' '));
}).trigger('keyup');
});
Не сразу заметил, при переключении модификации перестаёт изменять цену, т.е. работает только до изменения модификации.

#7 Сake

Сake

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

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

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

Попробуйте использовать следующий код в замен предыдущему коду

$(function() {
var priceNow = $('.goodsDataMainModificationPriceNow .num');
var priceOld = $('.goodsDataMainModificationPriceOld .num');
var price = {};
$('[name="form[properties][]"]').change(function() {
  price = {
	now: parseFloat(priceNow.text().replace(/\W+/, '')),
	old: parseFloat(priceOld.text().replace(/\W+/, ''))
  };
}).trigger('change');
$('[name="form[goods_mod_quantity]"]').keyup(function() {
  priceNow.text(number_format(price.now * parseInt($(this).val()), 0, ',', ' '));
  priceOld.text(number_format(price.old * parseInt($(this).val()), 0, ',', ' '));
}).trigger('keyup');
});


#8 Mair13

Mair13

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

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

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

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

Попробуйте использовать следующий код в замен предыдущему коду

$(function() {
var priceNow = $('.goodsDataMainModificationPriceNow .num');
var priceOld = $('.goodsDataMainModificationPriceOld .num');
var price = {};
$('[name="form[properties][]"]').change(function() {
price = {
now: parseFloat(priceNow.text().replace(/\W+/, '')),
old: parseFloat(priceOld.text().replace(/\W+/, ''))
};
}).trigger('change');
$('[name="form[goods_mod_quantity]"]').keyup(function() {
priceNow.text(number_format(price.now * parseInt($(this).val()), 0, ',', ' '));
priceOld.text(number_format(price.old * parseInt($(this).val()), 0, ',', ' '));
}).trigger('keyup');
});
Перестало меняться совсем.

#9 Сake

Сake

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

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

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

Пожалуйста, приведите пример товара (в виде ссылки) с использованием модификаций. По всей видимости код перестал работать без модификаций - в дополнении можно попробовать тогда использовать следующий код

$(function() {
var priceNow = $('.goodsDataMainModificationPriceNow .num');
var priceOld = $('.goodsDataMainModificationPriceOld .num');
var price = {
now: parseFloat(priceNow.text().replace(/\W+/, '')),
old: parseFloat(priceOld.text().replace(/\W+/, ''))
};
$('[name="form[properties][]"]').change(function() {
price = {
now: parseFloat(priceNow.text().replace(/\W+/, '')),
old: parseFloat(priceOld.text().replace(/\W+/, ''))
};
}).trigger('change');
$('[name="form[goods_mod_quantity]"]').keyup(function() {
priceNow.text(number_format(price.now * parseInt($(this).val()), 0, ',', ' '));
priceOld.text(number_format(price.old * parseInt($(this).val()), 0, ',', ' '));
}).trigger('keyup');
});


#10 Mair13

Mair13

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

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

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

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

Пожалуйста, приведите пример товара (в виде ссылки) с использованием модификаций. По всей видимости код перестал работать без модификаций - в дополнении можно попробовать тогда использовать следующий код

$(function() {
var priceNow = $('.goodsDataMainModificationPriceNow .num');
var priceOld = $('.goodsDataMainModificationPriceOld .num');
var price = {
now: parseFloat(priceNow.text().replace(/\W+/, '')),
old: parseFloat(priceOld.text().replace(/\W+/, ''))
};
$('[name="form[properties][]"]').change(function() {
price = {
now: parseFloat(priceNow.text().replace(/\W+/, '')),
old: parseFloat(priceOld.text().replace(/\W+/, ''))
};
}).trigger('change');
$('[name="form[goods_mod_quantity]"]').keyup(function() {
priceNow.text(number_format(price.now * parseInt($(this).val()), 0, ',', ' '));
priceOld.text(number_format(price.old * parseInt($(this).val()), 0, ',', ' '));
}).trigger('keyup');
});

Пример товара: http://kamin-msk.com...mod_id=60379355 .

#11 Ирина345

Ирина345

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

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

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

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

Пример товара: http://kamin-msk.com...mod_id=60379355 .
Здравствуйте, на данном товаре, данной проблемы не наблюдаю. Цена меняется в зависимости от изменеия модификации.

#12 Mair13

Mair13

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

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

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

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

Здравствуйте, на данном товаре, данной проблемы не наблюдаю. Цена меняется в зависимости от изменеия модификации.
Цена меняется при выборе модификации, но не при изменении количества (шт)

#13 Ирина345

Ирина345

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

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

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

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

Цена меняется при выборе модификации, но не при изменении количества (шт)

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

Цена в карточке товара не может увеличиваться от изменения количества товаров, Цена пишеться только для одного товара. Стоимость, которая указывается в корзине,  в зависимости от количества товаров увеличивается.

#14 Mair13

Mair13

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

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

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

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

Цена в карточке товара не может увеличиваться от изменения количества товаров, Цена пишеться только для одного товара. Стоимость, которая указывается в корзине,  в зависимости от количества товаров увеличивается.
Пользователь Сake мне в 4-7-9 сообщении как раз с этим и помогал.

#15 Ирина345

Ирина345

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

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

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

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

Пользователь Сake мне в 4-7-9 сообщении как раз с этим и помогал.
Добавьте в конец файла main.js код из сообщения 4.

#16 Mair13

Mair13

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

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

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

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

Добавьте в конец файла main.js код из сообщения 4.
После добавления кода из 4-ого сообщения пользователя Сake, после первого переключении модификации перестаёт изменять цену при изменении количества.
После добавления кода из сообщения 7, Цена совсем переслала меняться при изменении количества.
После добавления кода из сообщения 9, тоже ничего  не поменялось, что можно проверить по ссылке: http://kamin-msk.com...mod_id=60379355

#17 Сake

Сake

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

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

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

Замените ранее предложенный код на следующий

$(function() {
  var price = {
	now: parseFloat($('.goodsDataMainModificationPriceNow .num').text().replace(/\W+/, '')),
	old: parseFloat($('.goodsDataMainModificationPriceOld .num').text().replace(/\W+/, ''))
  };
  $('[name="form[goods_mod_quantity]"]').keyup(function() {
	$('.goodsDataMainModificationPriceNow .num').text(number_format(price.now * parseInt($(this).val()), 0, ',', ' '));
	$('.goodsDataMainModificationPriceOld .num').text(number_format(price.old * parseInt($(this).val()), 0, ',', ' '));
  }).filter(':first').trigger('keyup');
  $('[name="form[properties][]"]').change(function() {
	setTimeout(function() {
	 price = {
		now: parseFloat($('.goodsDataMainModificationPriceNow .num').text().replace(/\W+/, '')),
		old: parseFloat($('.goodsDataMainModificationPriceOld .num').text().replace(/\W+/, ''))
	 };
	 var count = $('[name="form[goods_mod_quantity]"]:first').val();
	 $('.goodsDataMainModificationPriceNow .num').text(number_format(price.now * parseInt(count), 0, ',', ' '));
	 $('.goodsDataMainModificationPriceOld .num').text(number_format(price.old * parseInt(count), 0, ',', ' '));
	}, 400);
  }).filter(':first').trigger('change');
});

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

#18 Mair13

Mair13

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

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

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

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

Замените ранее предложенный код на следующий

$(function() {
var price = {
now: parseFloat($('.goodsDataMainModificationPriceNow .num').text().replace(/\W+/, '')),
old: parseFloat($('.goodsDataMainModificationPriceOld .num').text().replace(/\W+/, ''))
};
$('[name="form[goods_mod_quantity]"]').keyup(function() {
$('.goodsDataMainModificationPriceNow .num').text(number_format(price.now * parseInt($(this).val()), 0, ',', ' '));
$('.goodsDataMainModificationPriceOld .num').text(number_format(price.old * parseInt($(this).val()), 0, ',', ' '));
}).filter(':first').trigger('keyup');
$('[name="form[properties][]"]').change(function() {
setTimeout(function() {
	 price = {
	 now: parseFloat($('.goodsDataMainModificationPriceNow .num').text().replace(/\W+/, '')),
	 old: parseFloat($('.goodsDataMainModificationPriceOld .num').text().replace(/\W+/, ''))
	 };
	 var count = $('[name="form[goods_mod_quantity]"]:first').val();
	 $('.goodsDataMainModificationPriceNow .num').text(number_format(price.now * parseInt(count), 0, ',', ' '));
	 $('.goodsDataMainModificationPriceOld .num').text(number_format(price.old * parseInt(count), 0, ',', ' '));
}, 400);
}).filter(':first').trigger('change');
});

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

Спасибо. всё заработало.




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

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