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


Добавление Нового Параметра Доступности Товара


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

#81 gesha81

gesha81

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

  • Пользователи
  • PipPipPip
  • 129 сообщений
  • ГородЧита

Отправлено 11 Апрель 2014 - 15:45

Ребят, ну пожалуйста. помогите разобраться с кодом. Сообщение #77

#82 Сake

Сake

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

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

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

У вас изначально задано не верное условие (ложное)

if(modificationRestValue>=500 && modificationRestValue<=900 && modificationRestValue>=900 && modificationRestValue<=1000)

так как переменная modificationRestValue не может быть одновременно меньше 900 и в тоже время больше 900. По сути такое условие свелось бы к записи вида

if(modificationRestValue == 900)

но вероятнее у вас просто задан не верно логический тип и условие предполагалось вида

if((modificationRestValue>=500 && modificationRestValue<=900) || (modificationRestValue>=900 && modificationRestValue<=1000))

которое сработает если остаток будет больше либо равно 500, но меньше либо равно 900 или же больше либо равно 900, но меньше либо рабно 1000. Как только условие сработает, сработает и его вложенная часть

goodsAvailableTrue.hide();
goodsAvailableFalse.hide();
goodsAvailableForOrder.show();

т.е отобразиться блок goodsAvailableForOrder а остальные скроются (goodsAvailableTrue и goodsAvailableFalse).

#83 gesha81

gesha81

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

  • Пользователи
  • PipPipPip
  • 129 сообщений
  • ГородЧита

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

Просмотр сообщенияСake (12 Апрель 2014 - 01:14) писал:

У вас изначально задано не верное условие (ложное)

if(modificationRestValue>=500 && modificationRestValue<=900 && modificationRestValue>=900 && modificationRestValue<=1000)

так как переменная modificationRestValue не может быть одновременно меньше 900 и в тоже время больше 900. По сути такое условие свелось бы к записи вида

if(modificationRestValue == 900)

но вероятнее у вас просто задан не верно логический тип и условие предполагалось вида

if((modificationRestValue>=500 && modificationRestValue<=900) || (modificationRestValue>=900 && modificationRestValue<=1000))

которое сработает если остаток будет больше либо равно 500, но меньше либо равно 900 или же больше либо равно 900, но меньше либо рабно 1000. Как только условие сработает, сработает и его вложенная часть

goodsAvailableTrue.hide();
goodsAvailableFalse.hide();
goodsAvailableForOrder.show();

т.е отобразиться блок goodsAvailableForOrder а остальные скроются (goodsAvailableTrue и goodsAvailableFalse).
нет. не сработало. все по прежнему- изменение в выборе модификации не происходит  http://arbalet75.ru/...mod_id=55888325

#84 Сake

Сake

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

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

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

В вашем файле main.js - код не соответствует классам в шаблоне "Товар". В файле main.js код поиска необходимых блоков выглядит так

goodsAvailable				= $('.goodsDataMainModificationAvailable'),
		  goodsAvailableTrue			= goodsAvailable.find('[rel="true"]'),
		  goodsAvailableFalse		   = goodsAvailable.find('[rel="false"]'),
		  goodsAvailableForOrder		= goodsAvailable.find('[rel="truefororder"]'),

класса goodsDataMainModificationAvailable в шаблоне "Товар" у вас нет, а так же нет всех атрибутов [rel="true"] и [rel="truefororder"]. Для исправления ошибки вам необходимо в шаблоне "Товар" найти соответствующий код

<div class="available-true" {% IF GOODS_MOD_REST_VALUE=0 || GOODS_MOD_REST_VALUE>500 %}style="display:none;"{% ENDIF %}><font color="#00ca00"><b>Есть в наличии</b></font></div>
  <div class="available-true" {% IF GOODS_MOD_REST_VALUE<=500 || GOODS_MOD_REST_VALUE>900 %}style="display:none;"{% ENDIF %}><font color="#006a00"><b>Товар под заказ - из Китая</b></font>
  <h6><a href="http://arbalet75.ru/page/Tovary-pod-zakaz" target="_blank"><font color="#0000ff"><u>Инструкция: как купить товар из категории "под заказ"</u></font></a></h6>
</div>
  <div class="available-true" {% IF GOODS_MOD_REST_VALUE<=900 || GOODS_MOD_REST_VALUE>1000 %}style="display:none;"{% ENDIF %}><font color="#006a00"><b>Товар под заказ</b></font>
  <h6><a href="http://arbalet75.ru/page/Tovary-pod-zakaz" target="_blank"><font color="#0000ff"><u>Инструкция: как купить товар из категории "под заказ"</u></font></a></h6>
</div>
   
  <div class="available-false" rel="false" {% IF GOODS_MOD_REST_VALUE>0 %}style="display:none;"{% ENDIF %}><font color="#ff0000"><b>Нет в наличии</b></font></div>

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

<div class="goodsDataMainModificationAvailable">
   <div rel="true" class="available-true" {% IF GOODS_MOD_REST_VALUE=0 || GOODS_MOD_REST_VALUE>500 %}style="display:none;"{% ENDIF %}><font color="#00ca00"><b>Есть в наличии</b></font>
   </div>

   <div rel="truefororder" class="available-true" {% IF GOODS_MOD_REST_VALUE<=500 || GOODS_MOD_REST_VALUE>900 %}style="display:none;"{% ENDIF %}><font color="#006a00"><b>Товар под заказ - из Китая</b></font>
	<h6><a href="http://arbalet75.ru/page/Tovary-pod-zakaz" target="_blank"><font color="#0000ff"><u>Инструкция: как купить товар из категории "под заказ"</u></font></a></h6>
   </div>

   <div rel="false" class="available-false" {% IF GOODS_MOD_REST_VALUE>0 %}style="display:none;"{% ENDIF %}><font color="#ff0000"><b>Нет в наличии</b></font></div>
</div>

в данном блоке кода удален блок

<div class="available-true" {% IF GOODS_MOD_REST_VALUE<=900 || GOODS_MOD_REST_VALUE>1000 %}style="display:none;"{% ENDIF %}><font color="#006a00"><b>Товар под заказ</b></font>
  <h6><a href="http://arbalet75.ru/page/Tovary-pod-zakaz" target="_blank"><font color="#0000ff"><u>Инструкция: как купить товар из категории "под заказ"</u></font></a></h6>
</div>

так как его условие пересикается с условием блока

<div rel="truefororder" class="available-true" {% IF GOODS_MOD_REST_VALUE<=500 || GOODS_MOD_REST_VALUE>900 %}style="display:none;"{% ENDIF %}><font color="#006a00"><b>Товар под заказ - из Китая</b></font>
	<h6><a href="http://arbalet75.ru/page/Tovary-pod-zakaz" target="_blank"><font color="#0000ff"><u>Инструкция: как купить товар из категории "под заказ"</u></font></a></h6>
   </div>


#85 gesha81

gesha81

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

  • Пользователи
  • PipPipPip
  • 129 сообщений
  • ГородЧита

Отправлено 12 Апрель 2014 - 08:25

Спасибо.
все таки пришлось перейти на три категории наличия.

#86 sergey85

sergey85

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

  • Пользователи
  • PipPipPipPip
  • 230 сообщений
  • ГородКиев

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

Сообщения 78 и 80 получат ответ?

#87 lew

lew

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

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

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

Цитата

Сообщения 78 и 80 получат ответ?

Можно поподробней об ошибке?

#88 sergey85

sergey85

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

  • Пользователи
  • PipPipPipPip
  • 230 сообщений
  • ГородКиев

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

Просмотр сообщенияlew (14 Апрель 2014 - 20:18) писал:

это ваш сайт

SL-30373

?
Можно поподробней об ошибке?
Сообщения 78

#89 Сake

Сake

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

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

Отправлено 15 Апрель 2014 - 06:19

Пожалуйста, уточните для какого номера аккаунта возникает подобная ошибка, а так же сообщите адрес товара из прикрепленного вами изображения. http://forum.storela..._60#entry132974

#90 sergey85

sergey85

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

  • Пользователи
  • PipPipPipPip
  • 230 сообщений
  • ГородКиев

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

Просмотр сообщенияСake (15 Апрель 2014 - 06:19) писал:

Пожалуйста, уточните для какого номера аккаунта возникает подобная ошибка, а так же сообщите адрес товара из прикрепленного вами изображения. http://forum.storela..._60#entry132974

Аккаунт SL-30373   на сайте вбейте в поиск код товара  9308868 .

#91 Сake

Сake

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

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

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

Попробуйте в файле main.js найти следующий код

// Есть ли товар есть в наличии
if(modificationRestValue>0) {
  goodsAvailableTrue.show();
  goodsAvailableFalse.hide();
// Если товара нет в наличии
} else {
  goodsAvailableTrue.hide();
  goodsAvailableFalse.show();
}

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

// Есть ли товар есть в наличии
if(modificationRestValue>0 && modificationRestValue < 1001) {
  goodsAvailableTrue.show();
  goodsAvailableFalse.hide();
  goodsAvailable.find('.available-false2').hide();
// Если товара нет в наличии
} else if(modificationRestValue < 1001) {
  goodsAvailableTrue.hide();
  goodsAvailableFalse.show();
  goodsAvailable.find('.available-false2').hide();
} else if(modificationRestValue >= 1001) {
  goodsAvailableTrue.hide();
  goodsAvailableFalse.hide();
  goodsAvailable.find('.available-false2').show();
}


#92 sergey85

sergey85

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

  • Пользователи
  • PipPipPipPip
  • 230 сообщений
  • ГородКиев

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

Спасибо,работает

#93 status321

status321

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

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

Отправлено 05 Декабрь 2018 - 18:13

Добрый вечер.Очень нужно реализовать следующие:
0 - Товара нет в наличии
10 - Товар есть в наличии
100 - Товар под заказ
200 - Товар в пути
Перепробовал все что предложено выше не получается.Шаблон Ночь

#94 status321

status321

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

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

Отправлено 11 Декабрь 2018 - 20:03

Добрый вечер.Кто поможет решить эту проблему???

#95 status321

status321

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

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

Отправлено 16 Декабрь 2018 - 15:04

Еще раз здравствуйте.Помогите реализовать 4 параметра
0 - Товара нет в наличии
10 - Товар есть в наличии
100 - Товар под заказ
200 - Товар в пути
Цифры значения не имеют,откликнетесь кто-нибудь!!!!!
Аккаунт SL-204609

#96 Vaccina

Vaccina

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

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

Отправлено 27 Декабрь 2018 - 08:51

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

Простите за столь долгое ожидание. Зайдите в раздел Сайт - Редактор шаблонов - Товар - найдите:
										 <div class="goodsDataMainModificationAvailable">
												 <div rel="true" class="available-true" {% IF GOODS_MOD_REST_VALUE=0 || GOODS_MOD_REST_VALUE > 10%}style="display:none;"{% ENDIF %}>В наличии: <span>Доставка: Самовывоз,курьер,СДЭК</div>
												 <div rel="false" class="available-false" {% IF GOODS_MOD_REST_VALUE>0%}style="display:none;"{% ENDIF %}>Наличие: <span>Нет в наличии</div>
												 <div rel="false" class="available-false2" {% IF GOODS_MOD_REST_VALUE<10%}style="display:none;"{% ENDIF %}>Под заказ: <span>Доставка: СДЭК 3-5 дней Предоплата</div>
										 </div>

замените на:
										 <div class="goodsDataMainModificationAvailable">
												 <div rel="true" class="available-true" {% IF GOODS_MOD_REST_VALUE=0 || GOODS_MOD_REST_VALUE < 200 %}style="display:none;"{% ENDIF %}>В наличии: <span>Товар в пути</div>
												 <div rel="true" class="available-true2" {% IF GOODS_MOD_REST_VALUE=0 || GOODS_MOD_REST_VALUE < 100 || GOODS_MOD_REST_VALUE > 199 %}style="display:none;"{% ENDIF %}>В наличии: <span>Товар под заказ</div>
												 <div rel="true" class="available-true3" {% IF GOODS_MOD_REST_VALUE=0 || GOODS_MOD_REST_VALUE > 99 %}style="display:none;"{% ENDIF %}>В наличии: <span>Товар есть в наличии</div>
												 <div rel="false" class="available-false" {% IF GOODS_MOD_REST_VALUE>0%}style="display:none;"{% ENDIF %}>Наличие: <span>Товара нет в наличии</div>
										 </div>
                                        
далее зайдите в main.js - найдите:
		  goodsAvailableFalse2			 = goodsAvailable.find('.available-false2'),
		  goodsAvailableAddCart		 = $('.add-to-box'),
		  goodsArtNumberBlock		   = $('.goodsDataMainModificationArtNumber'),
		  goodsArtNumber				= goodsArtNumberBlock.find('span');
		  goodsCompareAddButton		 = $('.goodsDataCompareButton.add');
		  goodsCompareDeleteButton	  = $('.goodsDataCompareButton.delete');
		  goodsModDescriptionBlock	  = $('.goodsDataMainModificationsDescriptionBlock');
	   
	   // Изменяем данные товара для выбранных параметров. Если нашлась выбранная модификация
	   if(modificationBlock.length) {
		 // Цена товара
		 goodsPriceNow.html('<span class="price">' + modificationPriceNowFormated + '</span>');
		  
		 // Старая цена товара
		 if(modificationPriceOld>modificationPriceNow) {
		  goodsPriceOld.html('<span>' + modificationPriceOldFormated + '</span>');
		 } else {
		   goodsPriceOld.html('');
		 }
		 
	  // Есть ли товар есть в наличии
				 if(modificationRestValue>0 && modificationRestValue<10) {
				 goodsAvailableTrue.show();
				 goodsAvailableFalse.hide();
				 goodsAvailableFalse2.hide();
				 // Если товара нет в наличии
				 } else if(modificationRestValue>10) {
				 goodsAvailableTrue.hide();
				 goodsAvailableFalse.hide();
				 goodsAvailableFalse2.show();
				 }
				 else {
				 goodsAvailableTrue.hide();
				 goodsAvailableFalse.show();
				 goodsAvailableFalse2.hide();
				 }
                
замените на:
		  goodsAvailableTrue2			 = goodsAvailable.find('.available-true2'),
		  goodsAvailableTrue3			 = goodsAvailable.find('.available-true3'),
		  goodsAvailableAddCart		 = $('.add-to-box'),
		  goodsArtNumberBlock		   = $('.goodsDataMainModificationArtNumber'),
		  goodsArtNumber				= goodsArtNumberBlock.find('span');
		  goodsCompareAddButton		 = $('.goodsDataCompareButton.add');
		  goodsCompareDeleteButton	  = $('.goodsDataCompareButton.delete');
		  goodsModDescriptionBlock	  = $('.goodsDataMainModificationsDescriptionBlock');
	   
	   // Изменяем данные товара для выбранных параметров. Если нашлась выбранная модификация
	   if(modificationBlock.length) {
		 // Цена товара
		 goodsPriceNow.html('<span class="price">' + modificationPriceNowFormated + '</span>');
		  
		 // Старая цена товара
		 if(modificationPriceOld>modificationPriceNow) {
		  goodsPriceOld.html('<span>' + modificationPriceOldFormated + '</span>');
		 } else {
		   goodsPriceOld.html('');
		 }
		 
	  // Есть ли товар есть в наличии
				 if(modificationRestValue>0 && modificationRestValue<99) {
				 goodsAvailableFalse.hide();
				 goodsAvailableTrue.hide();
				 goodsAvailableTrue2.hide();
				 goodsAvailableTrue3.show();
				 // Если товара нет в наличии
				 } else if(modificationRestValue>99 && modificationRestValue<200) {
				 goodsAvailableFalse.hide();
				 goodsAvailableTrue.hide();
				 goodsAvailableTrue2.show();
				 goodsAvailableTrue3.hide();
				 }
				 } else if(modificationRestValue>199) {
				 goodsAvailableFalse.hide();
				 goodsAvailableTrue.hide();
				 goodsAvailableTrue2.hide();
				 goodsAvailableTrue3.show();
				 }
				 else {
				 goodsAvailableFalse.show();
				 goodsAvailableTrue.hide();
				 goodsAvailableTrue2.hide();
				 goodsAvailableTrue3.hide();
				 }


#97 status321

status321

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

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

Отправлено 29 Декабрь 2018 - 10:03

Доброе утро.Не работает, выдает ошибка JS, выдает наличие по первой модификации, а нужно

0 - Товара нет в наличии
10 - Товар есть в наличии
100 - Товар под заказ
200 - Товар в пути
Жду ответа.

#98 Vaccina

Vaccina

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

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

Отправлено 29 Декабрь 2018 - 12:12

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

Пришлите пожалуйста ссылку на товар\пример, на котором можно будет протестировать и скорректировать код(можно без указания домена).

#99 status321

status321

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

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

Отправлено 29 Декабрь 2018 - 12:59

Вот ссылка https://netmarket23....od_id=166155565
У меня 1.  нет в наличии
             2. 10 шт
             3.  100 шт
             4.  нет в наличии
             5.  200 шт.
             6.  100 шт.
             7.  200 шт.
             8.  нет в наличии

и еще проблема нарисовалась,на главной категории расположились списком а были плиткой.

#100 Vaccina

Vaccina

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

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

Отправлено 29 Декабрь 2018 - 14:14

Благодарю за ссылку, ошибка в js в условии, зайдите в раздел Сайт - Редактор шаблонов - main.js - найдите:
								 goodsAvailableTrue3.hide();
								 }
								 } else if(modificationRestValue>199) {
								 goodsAvailableFalse.hide();
								 goodsAvailableTrue.hide();
								 goodsAvailableTrue2.hide();
								 goodsAvailableTrue3.show();
								 }
								 else {
								 goodsAvailableFalse.show();

замените на:
								 goodsAvailableTrue3.hide();
								 } else if(modificationRestValue>199) {
								 goodsAvailableFalse.hide();
								 goodsAvailableTrue.hide();
								 goodsAvailableTrue2.hide();
								 goodsAvailableTrue3.show();
								 } else {
								 goodsAvailableFalse.show();

(лишняя фигурная скобка была из-за этого весь js не работал)




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

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