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


При Перевыборе Модификации Цена Не Меняется!


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

#1 Ser

Ser

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

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

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

Всем привет.

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

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

  • Цена и модификация.png


#2 Castiel

Castiel

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

  • Модераторы
  • 3 519 сообщений
  • ГородНижний Новгород

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

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

Всем привет.

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

Здравствуйте, проблема в файле main.js
Возможно вы добавили какие то скрипты которые конфликтуют со стандартными или удалили важные функции.

Стандартный файл main.js для шаблона Весна
Скрытый текст


#3 Ser

Ser

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

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

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

Просмотр сообщенияCastiel (11 Апрель 2014 - 16:55) писал:

Здравствуйте, проблема в файле main.js
Возможно вы добавили какие то скрипты которые конфликтуют со стандартными или удалили важные функции.

Стандартный файл main.js для шаблона Весна
Скрытый текст



Заменил весь код не работает модификация???

#4 Castiel

Castiel

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

  • Модераторы
  • 3 519 сообщений
  • ГородНижний Новгород

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

Просмотр сообщенияSer (11 Апрель 2014 - 17:40) писал:

Заменил весь код не работает модификация???

Если Вы замените код на стандартный в файле main.js , то модификации заработают

#5 Ser

Ser

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

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

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

Просмотр сообщенияCastiel (11 Апрель 2014 - 17:47) писал:

Если Вы замените код на стандартный в файле main.js , то модификации заработают


Заменил весь код модификации не заработали, восстановил из бекапа, вопрос снят

#6 Energyy

Energyy

    Новичок

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

Отправлено 08 Май 2014 - 23:38

Доброго времени суток!
Такая же проблема - в браузере Хром невозможно выбрать модификацию

#7 Vaccina

Vaccina

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

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

Отправлено 09 Май 2014 - 02:47

проверили, модификации в браузере Google Chrome выбираются корректно.

#8 Energyy

Energyy

    Новичок

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

Отправлено 31 Август 2014 - 00:30

снова возвращаюсь к этому вопросу(((
Если, например, у товара есть несколько размеров, то при выборе размера информация о наличии не обновляется в карточке товара и при добавлении его в корзину добавляется товар в размере"по умолчанию" (в хроме и в сафари с моб телефона)

#9 Сake

Сake

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

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

Отправлено 03 Сентябрь 2014 - 23:50

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

#10 Energyy

Energyy

    Новичок

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

Отправлено 21 Сентябрь 2014 - 16:58

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

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

http://fit-en.ru/goo...cnomedbelt_blue
при выборе, например, размера L, не изменяется информация о наличии и далее при добавлении в корзину в нее попадает размер S

#11 Energyy

Energyy

    Новичок

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

Отправлено 01 Октябрь 2014 - 00:53

:mellow:

#12 Сake

Сake

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

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

Отправлено 15 Октябрь 2014 - 02:57

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

<div rel="trueForDelivery"{% IF GOODS_MOD_REST_VALUE<=900 %}style="display:none;"{% ELSEIF GOODS_MOD_REST_VALUE>=950 %} style="display:none;"{% ENDIF %}>Товар в пути</div>
</div>		
		</div>
		</div>   
		 
		<div class="price" itemscope itemprop="offerDetails" itemtype="http://data-vocabulary.org/Offer">

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

<div rel="trueForDelivery"{% IF GOODS_MOD_REST_VALUE<=900 %}style="display:none;"{% ELSEIF GOODS_MOD_REST_VALUE>=950 %} style="display:none;"{% ENDIF %}>Товар в пути</div>
</div>	   
		</div>   
		 
		<div class="price" itemscope itemprop="offerDetails" itemtype="http://data-vocabulary.org/Offer">

далее в файле main.js найдите код

// Функция собирает свойства в строку, для определения модификации товара
  function getSlugFromGoodsDataFormModificationsProperties(obj) {
		var properties = new Array();
		$(obj).each(function(i){
		  properties[i] = parseInt($(this).val());
		});
		return properties.sort(function(a,B){return a - b}).join('_');
  }

 
  var
		// Запоминаем поля выбора свойств, для ускорения работы со значениями свойств
		goodsDataProperties = $('form.goodsDataForm select[name="form[properties][]"]'),
  
		// Запоминаем блоки с информацией по модификациям, для ускорения работы
		goodsDataModifications = $('div.goodsDataMainModificationsList');


  // Обновляет возможность выбора свойств модификации, для отключения возможности выбора по характеристикам модификации которой не существует.
  function updateVisibility (y) {
		// Проверяем в каждом соседнем поле выбора модификаций, возможно ли подобрать модификацию для указанных свойств
		goodsDataProperties.each(function(j){
		  // Если мы сравниваем значения свойства не с самим собой, а с другим списком значений свойств
		  if( j != y ) {
				// Проходим по всем значениям текущего свойства модификации товара
				$(this).find('option').each(function(){
				  // Записываем временный массив свойств, которые будем использовать для проверки существования модификации
				  var checkProperties = new Array();
				  $(goodsDataProperties).each(function(i){
						checkProperties[i] = parseInt($(this).val());
				  });
				  // Пытаемся найти модификацию соответствующую выбранным значениям свойств
				  checkProperties[j] = parseInt($(this).attr('value'));
				  // Собираем хэш определяющий модификацию по свойствам
				  slug = checkProperties.sort(function(a,B){return a - b}).join('_');
				  // Ищем модификацию по всем выбранным значениям свойств товара. Если модификации нет в возможном выборе, отмечаем потенциальное значение выбора как не доступное для выбора, т.к. такой модификации нет.
				  if(!goodsDataModifications.filter('[rel="'+slug+'"]').length) {
				   $(this).attr('disabled', true);
				  // Если выбрав данное значение свойства товара можно подобрать модификацию, то выделяем вариант выбора как доступный.
				  } else {
						$(this).attr('disabled', false);
				  }
				});
		  }
		});
  }
  // Обновляем возможность выбора модификации товара по свойствам. Для тех свойств, выбор по которым не возможен, отключаем такую возможность.
  // Проверяем возможность выбора на всех полях кроме первого, чтобы отключить во всех остальных варианты, которые не возможно выбрать
  updateVisibility (0);
  // Проверяем возможность выбора на всех полях кроме второго, чтобы в первом поле так же отключилась возможность выбора не существующих модификаций
  updateVisibility (1);

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

// Функция собирает свойства в строку, для определения модификации товара
  function getSlugFromGoodsDataFormModificationsProperties(obj) {
		var properties = new Array();
		$(obj).each(function(i){
		  properties[i] = parseInt($(this).val());
		});
		return properties.sort(function(a,j){return a - j}).join('_');
  }

 
  var
		// Запоминаем поля выбора свойств, для ускорения работы со значениями свойств
		goodsDataProperties = $('form.goodsDataForm [name^="form[properties]"]'),
  
		// Запоминаем блоки с информацией по модификациям, для ускорения работы
		goodsDataModifications = $('div.goodsDataMainModificationsList');


  // Обновляет возможность выбора свойств модификации, для отключения возможности выбора по характеристикам модификации которой не существует.
  function updateVisibility (y) {
		// Проверяем в каждом соседнем поле выбора модификаций, возможно ли подобрать модификацию для указанных свойств
		goodsDataProperties.each(function(j){
		  // Если мы сравниваем значения свойства не с самим собой, а с другим списком значений свойств
		  if( j != y ) {
				// Проходим по всем значениям текущего свойства модификации товара
				$(this).find('option').each(function(){
				  // Записываем временный массив свойств, которые будем использовать для проверки существования модификации
				  var checkProperties = new Array();
				  $(goodsDataProperties).each(function(i){
						checkProperties[i] = parseInt($(this).val());
				  });
				  // Пытаемся найти модификацию соответствующую выбранным значениям свойств
				  checkProperties[j] = parseInt($(this).attr('value'));
				  // Собираем хэш определяющий модификацию по свойствам
				  slug = checkProperties.sort(function(a,j){return a - j}).join('_');
				  // Ищем модификацию по всем выбранным значениям свойств товара. Если модификации нет в возможном выборе, отмечаем потенциальное значение выбора как не доступное для выбора, т.к. такой модификации нет.
				  if(!goodsDataModifications.filter('[rel="'+slug+'"]').length) {
				   $(this).attr('disabled', true);
				  // Если выбрав данное значение свойства товара можно подобрать модификацию, то выделяем вариант выбора как доступный.
				  } else {
						$(this).attr('disabled', false);
				  }
				});
		  }
		});
  }
  // Обновляем возможность выбора модификации товара по свойствам. Для тех свойств, выбор по которым не возможен, отключаем такую возможность.
  // Проверяем возможность выбора на всех полях кроме первого, чтобы отключить во всех остальных варианты, которые не возможно выбрать
  updateVisibility (0);
  // Проверяем возможность выбора на всех полях кроме второго, чтобы в первом поле так же отключилась возможность выбора не существующих модификаций
  updateVisibility (1);





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

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