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


Дополнительная Надпись Рядом С Ценой


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

#1 fortuna

fortuna

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

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

Отправлено 01 Февраль 2011 - 18:08

Добрый день!

Как добавить запись: "Цена указана за 1 шт." над словами "товар есть в наличии", т.е. непосредственно под ценой (таким же шрифтом и размером, как слова "товар есть в наличии")?

#2 support

support

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

  • Модераторы
  • 3 686 сообщений
  • ГородМосква

Отправлено 04 Февраль 2011 - 13:17

Просмотр сообщенияfortuna (01 Февраль 2011 - 18:08) писал:

Добрый день!

Как добавить запись: "Цена указана за 1 шт." над словами "товар есть в наличии", т.е. непосредственно под ценой (таким же шрифтом и размером, как слова "товар есть в наличии")?

Для этого достаточно будет изменить код шаблона товар через редактор тем с:
<!-- Доступность товара --> 
<div class="goodsDataMainModificationAvailable">
	<div rel="true" class="available-true" {% IF GOODS_MOD_REST_VALUE=0 %}style="display:none;"{% ENDIF %}>Товар есть в наличии</div>
	<div rel="false" class="available-false" {% IF GOODS_MOD_REST_VALUE>0 %}style="display:none;"{% ENDIF %}>Товара нет в наличии</div>
</div>

на
<!-- Единица измерения товара --> 
<div style="font-size:0.8em;">
  Цена указана за 1 {GOODS_MOD_MEASURE_NAME}
</div>

<!-- Доступность товара --> 
<div class="goodsDataMainModificationAvailable">
	<div rel="true" class="available-true" {% IF GOODS_MOD_REST_VALUE=0 %}style="display:none;"{% ENDIF %}>Товар есть в наличии</div>
	<div rel="false" class="available-false" {% IF GOODS_MOD_REST_VALUE>0 %}style="display:none;"{% ENDIF %}>Товара нет в наличии</div>
</div>


#3 fortuna

fortuna

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

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

Отправлено 04 Февраль 2011 - 17:45

Спасибо!!! Все получилось с первого раза!

#4 solden

solden

    Новичок

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

Отправлено 10 Февраль 2011 - 12:31

Здравствуйте! А если один товар идет штучно, а другой весовой, как варьировать в единицах измерения и количестве?

#5 support

support

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

  • Модераторы
  • 3 686 сообщений
  • ГородМосква

Отправлено 11 Февраль 2011 - 18:58

Просмотр сообщенияsolden (10 Февраль 2011 - 12:31) писал:

Здравствуйте! А если один товар идет штучно, а другой весовой, как варьировать в единицах измерения и количестве?
В случае если это один товар, то беспокоиться незачем, информация по товару будет отображаться верно, для одного товара - штуки, для другого - килограммы.
В случае если речь идёт о модификациях то можно будет доработать вышеуказанный код с:
<!-- Единица измерения товара --> 
<div style="font-size:0.8em;">
  Цена указана за 1 {GOODS_MOD_MEASURE_NAME}
</div>

до
<!-- Единица измерения товара --> 
<div style="font-size:0.8em;" >
  Цена указана за 1 <span class="goodsDataMainModificationMeasureText">{GOODS_MOD_MEASURE_NAME}</span>
</div>

И в файле main.js изменить функцию изменения модификаций с:
  // Изменение цены товара при изменении у товара свойства для модификации
  goodsDataProperties.each(function(){
	$(this).change(function(){
	  var slug = getSlugFromGoodsDataFormModificationsProperties(goodsDataProperties),
		  modificationBlock			 = $('.goodsDataMainModificationsList[rel="'+slug+'"]'),
		  modificationId				= parseInt(modificationBlock.find('[name="id"]').val()),
		  modificationArtNumber		 = modificationBlock.find('[name="art_number"]').val(),
		  modificationPriceNow		  = parseFloat(modificationBlock.find('[name="price_now"]').val()),
		  modificationPriceNowFormated  = modificationBlock.find('.price_now_formated').html(),
		  modificationPriceOld		  = parseFloat(modificationBlock.find('[name="price_old"]').val()),
		  modificationPriceOldFormated  = modificationBlock.find('.price_old_formated').html(),
		  modificationRestValue		 = parseFloat(modificationBlock.find('[name="rest_value"]').val()),
		  modificationDescription	   = modificationBlock.find('.description').html(),
		  modificationMeasureId		 = parseInt(modificationBlock.find('[name="measure_id"]').val()),
		  modificationMeasureName	   = modificationBlock.find('[name="measure_name"]').val(),
		  modificationMeasureDesc	   = modificationBlock.find('[name="measure_desc"]').val(),
		  modificationMeasurePrecision  = modificationBlock.find('[name="measure_precision"]').val(),
		  modificationIsHasInCompareList= modificationBlock.find('[name="is_has_in_compare_list"]').val(),
		  goodsModificationId		   = $('.goodsDataMainModificationId'),
		  goodsPriceNow				 = $('.goodsDataMainModificationPriceNow'),
		  goodsPriceOld				 = $('.goodsDataMainModificationPriceOld'),
		  goodsAvailable				= $('.goodsDataMainModificationAvailable'),
		  goodsAvailableTrue			= goodsAvailable.find('.available-true'),
		  goodsAvailableFalse		   = goodsAvailable.find('.available-false'),
		  goodsArtNumberBlock		   = $('.goodsDataMainModificationArtNumber'),
		  goodsArtNumber				= goodsArtNumberBlock.find('span');
		  goodsCompareAddButton		 = $('.goodsDataCompareButton.add');
		  goodsCompareDeleteButton	  = $('.goodsDataCompareButton.delete');
		  goodsModDescriptionBlock	  = $('.goodsDataMainModificationsDescriptionBlock');
	   
	   // Изменяем данные товара для выбранных параметров. Если нашлась выбранная модификация
	   if(modificationBlock.length) {
		 // Цена товара
		 goodsPriceNow.html(modificationPriceNowFormated);
  
		 // Старая цена товара
		 if(modificationPriceOld>modificationPriceNow) {
		  goodsPriceOld.html(modificationPriceOldFormated);
		 } else {
		   goodsPriceOld.html('');
		 }
		 
		 // Есть ли товар есть в наличии
		 if(modificationRestValue>0) {
		   goodsAvailableTrue.show();
		   goodsAvailableFalse.hide();
		 // Если товара нет в наличии
		 } else {
		   goodsAvailableTrue.hide();
		   goodsAvailableFalse.show();
		 }
		 // Если товар есть в списке сравнения
		 if(modificationIsHasInCompareList>0) {
		   goodsCompareAddButton.hide();
		   goodsCompareDeleteButton.show();
		 // Если товара нет в списке сравнения
		 } else {
		   goodsCompareAddButton.show();
		   goodsCompareDeleteButton.hide();
		 }
		 
		 // Покажем артикул модификации товара, если он указан
		 if(modificationArtNumber.length>0) {
		   goodsArtNumberBlock.show();
		   goodsArtNumber.html(modificationArtNumber);
		 // Скроем артикул модификации товара, если он не указан
		 } else {
		   goodsArtNumberBlock.hide();
		   goodsArtNumber.html('');
		 }

		 // Описание модификации товара. Покажем если оно есть, спрячем если его у модификации нет
		 if(modificationDescription.length > 0) {
		   goodsModDescriptionBlock.show().html('<div>' + modificationDescription + '</div>');
		 } else {
		   goodsModDescriptionBlock.hide().html();
		 }
		 
		 
		 // Идентификатор товарной модификации
		 goodsModificationId.val(modificationId);
		 window.location.hash = '?modification='+modificationId;
	   } else {
		 // Отправим запись об ошибке на сервер
		 sendError('no modification by slug '+slug);
		 alert('К сожалению сейчас не получается подобрать модификацию соответствующую выбранным параметрам.');
	   }
	});
  });

на:
  // Изменение цены товара при изменении у товара свойства для модификации
  goodsDataProperties.each(function(){
	$(this).change(function(){
	  var slug = getSlugFromGoodsDataFormModificationsProperties(goodsDataProperties),
		  modificationBlock			 = $('.goodsDataMainModificationsList[rel="'+slug+'"]'),
		  modificationId				= parseInt(modificationBlock.find('[name="id"]').val()),
		  modificationArtNumber		 = modificationBlock.find('[name="art_number"]').val(),
		  modificationPriceNow		  = parseFloat(modificationBlock.find('[name="price_now"]').val()),
		  modificationPriceNowFormated  = modificationBlock.find('.price_now_formated').html(),
		  modificationPriceOld		  = parseFloat(modificationBlock.find('[name="price_old"]').val()),
		  modificationPriceOldFormated  = modificationBlock.find('.price_old_formated').html(),
		  modificationRestValue		 = parseFloat(modificationBlock.find('[name="rest_value"]').val()),
		  modificationDescription	   = modificationBlock.find('.description').html(),
		  modificationMeasureId		 = parseInt(modificationBlock.find('[name="measure_id"]').val()),
		  modificationMeasureName	   = modificationBlock.find('[name="measure_name"]').val(),
		  modificationMeasureDesc	   = modificationBlock.find('[name="measure_desc"]').val(),
		  modificationMeasurePrecision  = modificationBlock.find('[name="measure_precision"]').val(),
		  modificationIsHasInCompareList= modificationBlock.find('[name="is_has_in_compare_list"]').val(),
		  goodsModificationId		   = $('.goodsDataMainModificationId'),
		  goodsPriceNow				 = $('.goodsDataMainModificationPriceNow'),
		  goodsPriceOld				 = $('.goodsDataMainModificationPriceOld'),
		  goodsAvailable				= $('.goodsDataMainModificationAvailable'),
		  goodsAvailableTrue			= goodsAvailable.find('.available-true'),
		  goodsAvailableFalse		   = goodsAvailable.find('.available-false'),
		  goodsMeasureText			  = $('.goodsDataMainModificationMeasureText'),
		  goodsArtNumberBlock		   = $('.goodsDataMainModificationArtNumber'),
		  goodsArtNumber				= goodsArtNumberBlock.find('span');
		  goodsCompareAddButton		 = $('.goodsDataCompareButton.add');
		  goodsCompareDeleteButton	  = $('.goodsDataCompareButton.delete');
		  goodsModDescriptionBlock	  = $('.goodsDataMainModificationsDescriptionBlock');
	   
	   // Изменяем данные товара для выбранных параметров. Если нашлась выбранная модификация
	   if(modificationBlock.length) {
		 // Цена товара
		 goodsPriceNow.html(modificationPriceNowFormated);
  
		 // Старая цена товара
		 if(modificationPriceOld>modificationPriceNow) {
		  goodsPriceOld.html(modificationPriceOldFormated);
		 } else {
		   goodsPriceOld.html('');
		 }
		 
		 // Есть ли товар есть в наличии
		 if(modificationRestValue>0) {
		   goodsAvailableTrue.show();
		   goodsAvailableFalse.hide();
		 // Если товара нет в наличии
		 } else {
		   goodsAvailableTrue.hide();
		   goodsAvailableFalse.show();
		 }
		 // Если товар есть в списке сравнения
		 if(modificationIsHasInCompareList>0) {
		   goodsCompareAddButton.hide();
		   goodsCompareDeleteButton.show();
		 // Если товара нет в списке сравнения
		 } else {
		   goodsCompareAddButton.show();
		   goodsCompareDeleteButton.hide();
		 }
		 
		 // Покажем артикул модификации товара, если он указан
		 if(modificationArtNumber.length>0) {
		   goodsArtNumberBlock.show();
		   goodsArtNumber.html(modificationArtNumber);
		 // Скроем артикул модификации товара, если он не указан
		 } else {
		   goodsArtNumberBlock.hide();
		   goodsArtNumber.html('');
		 }

		 // Описание модификации товара. Покажем если оно есть, спрячем если его у модификации нет
		 if(modificationDescription.length > 0) {
		   goodsModDescriptionBlock.show().html('<div>' + modificationDescription + '</div>');
		 } else {
		   goodsModDescriptionBlock.hide().html();
		 }
		 
		 // Изменяем единицу измерения модификации
		 goodsMeasureText.html(modificationMeasureName);
		 
		 // Идентификатор товарной модификации
		 goodsModificationId.val(modificationId);
		 window.location.hash = '?modification='+modificationId;
	   } else {
		 // Отправим запись об ошибке на сервер
		 sendError('no modification by slug '+slug);
		 alert('К сожалению сейчас не получается подобрать модификацию соответствующую выбранным параметрам.');
	   }
	});
  });

Собственно в main.js я лишь добавил определение текста модификации:
goodsMeasureText			  = $('.goodsDataMainModificationMeasureText'),

и его изменение на то которое стоит у модификации:
// Изменяем единицу измерения модификации
goodsMeasureText.html(modificationMeasureName);

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




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

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