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


Правильное Отображение Модификаций Внутри Карточки С Товаром

модификации карточка товара

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

#1 NikaP

NikaP

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

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

Отправлено 24 Январь 2013 - 11:59

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

Дело в том, что, например, какой-то цвет отсутствует  и, если модификация с этим цветом стоит на первом месте, то клиент заходит, видит надпись "товар отсутствует" и уходит. Не все готовы листать модификации и смотреть, какая есть в наличие.
При этом в настройках магазина стоит "галочка" "показывать только товары в наличие".

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

Вот пример одной из моих карточек с товаром http://gutenmarket.r...-slim?from=NmZm

#2 Koderhan

Koderhan

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

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

Отправлено 24 Январь 2013 - 13:31

По моему данный вопрос уже обсуждался в темах.
http://forum.storela...-нужна-никакая/

http://forum.storela...лько-в-наличии/

#3 NikaP

NikaP

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

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

Отправлено 25 Январь 2013 - 18:08

Просмотр сообщенияKoderhan (24 Январь 2013 - 13:31) писал:

По моему данный вопрос уже обсуждался в темах.
http://forum.storela...-нужна-никакая/

http://forum.storela...лько-в-наличии/
Да, видимо обсуждался, но не в указанном контексте. Вопрос не в том, как заменить вывод модификации на сайте, а о том, чтобы добавить алгоритм, чтобы в модификации на первую позицию ставились модификации со значением > 0 или наоборот, модификации = 0 уходили на последний план.

Т.е. так, чтобы при попадании на страницу товара, моментально отображалась только модификации товара которая есть, чтобы человек видел фразу "товар есть в наличие".

Кстати, Вакцина писала, что в админке можно за стрелочку перетягивать на первую позицию нужную тебе модификацию - ничего подобного в админке не нашел. Получается даже в ручную нельзя не первую позицию перетащить модификацию в которой еще есть товар. Просто действительно без правильного отображения на сайте модификаций они теряют смысл и незачем делать модификации - проще "разбивать" на отдельные карточки товара.

#4 Vaccina

Vaccina

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

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

Отправлено 26 Январь 2013 - 03:06

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

setTimeout(function() {
	$('.goodsDataMainModificationsList').each(function() {
	var rest_value = parseInt($(this).find('[name="rest_value"]').val());
	var id = $(this).attr('rel').split('_');
	var block = $('.goodsDataMainModificationsBlock');
	if(rest_value && !block.data('select')) {
	  block.data('select', true);
	  $('.goodsDataMainModificationsBlock select option').removeAttr('selected');
	  $('.goodsDataMainModificationsBlock select option[value="' + id[0] + '"]').attr('selected', 'selected');
	  $('.goodsDataMainModificationsBlock select option[value="' + id[1] + '"]').attr('selected', 'selected');
	  $('.goodsDataMainModificationsBlock select').trigger('change');
	}
  });
  }, 200);

данный код необходимо вставить в файл main.js после строки

$(document).ready(function(){

Данный код будет искать первую доступную модификацию, и устанавливать её в качестве выбранной.

#5 velena168

velena168

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

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

Отправлено 26 Январь 2013 - 16:16

Просмотр сообщенияVaccina (26 Январь 2013 - 03:06) писал:

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

setTimeout(function() {
$('.goodsDataMainModificationsList').each(function() {
var rest_value = parseInt($(this).find('[name="rest_value"]').val());
var id = $(this).attr('rel').split('_');
var block = $('.goodsDataMainModificationsBlock');
if(rest_value && !block.data('select')) {
	 block.data('select', true);
	 $('.goodsDataMainModificationsBlock select option').removeAttr('selected');
	 $('.goodsDataMainModificationsBlock select option[value="' + id[0] + '"]').attr('selected', 'selected');
	 $('.goodsDataMainModificationsBlock select option[value="' + id[1] + '"]').attr('selected', 'selected');
	 $('.goodsDataMainModificationsBlock select').trigger('change');
}
});
}, 200);

данный код необходимо вставить в файл main.js после строки

$(document).ready(function(){

Данный код будет искать первую доступную модификацию, и устанавливать её в качестве выбранной.

Спасибо, то что нужно.

#6 ogonek7777

ogonek7777

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

  • Пользователи
  • PipPipPipPip
  • 2 109 сообщений
  • ГородМосква

Отправлено 26 Январь 2013 - 22:51

Просмотр сообщенияVaccina (26 Январь 2013 - 03:06) писал:

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

setTimeout(function() {
$('.goodsDataMainModificationsList').each(function() {
var rest_value = parseInt($(this).find('[name="rest_value"]').val());
var id = $(this).attr('rel').split('_');
var block = $('.goodsDataMainModificationsBlock');
if(rest_value && !block.data('select')) {
	 block.data('select', true);
	 $('.goodsDataMainModificationsBlock select option').removeAttr('selected');
	 $('.goodsDataMainModificationsBlock select option[value="' + id[0] + '"]').attr('selected', 'selected');
	 $('.goodsDataMainModificationsBlock select option[value="' + id[1] + '"]').attr('selected', 'selected');
	 $('.goodsDataMainModificationsBlock select').trigger('change');
}
});
}, 200);

данный код необходимо вставить в файл main.js после строки

$(document).ready(function(){

Данный код будет искать первую доступную модификацию, и устанавливать её в качестве выбранной.
Здравствуйте, я поставила данный код, но он не заработал http://shabondama.ru...cation=15744310

#7 miyako

miyako

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

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

Отправлено 27 Январь 2013 - 10:15

Просмотр сообщенияogonek7777 (26 Январь 2013 - 22:51) писал:

Здравствуйте, я поставила данный код, но он не заработал http://shabondama.ru...cation=15744310

Не произошло никаких изменений? Или некорректно работает?
И куда именно вы вставляли код? Можете прислать скриншот?

#8 Vaccina

Vaccina

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

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

Отправлено 29 Январь 2013 - 00:41

Просмотр сообщенияogonek7777 (26 Январь 2013 - 22:51) писал:

Здравствуйте, я поставила данный код, но он не заработал http://shabondama.ru...cation=15744310

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

setTimeout(function() {
$('.goodsDataMainModificationsList').each(function() {
var rest_value = parseInt($(this).find('[name="rest_value"]').val());
var id = $(this).attr('rel').split('_');
var block = $('.goodsDataMainModificationsBlock');
if(rest_value && !block.data('select')) {
		 block.data('select', true);
		 $('.goodsDataMainModificationsBlock input').removeAttr('checked');
		 $('.goodsDataMainModificationsBlock input[value="' + id[0] + '"]').attr('checked', 'checked');
		 $('.goodsDataMainModificationsBlock input[value="' + id[1] + '"]').attr('checked', 'checked');
		 $('.goodsDataMainModificationsBlock input').trigger('change');
}
});
}, 200);


#9 ogonek7777

ogonek7777

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

  • Пользователи
  • PipPipPipPip
  • 2 109 сообщений
  • ГородМосква

Отправлено 29 Январь 2013 - 02:31

Просмотр сообщенияVaccina (29 Январь 2013 - 00:41) писал:

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

setTimeout(function() {
$('.goodsDataMainModificationsList').each(function() {
var rest_value = parseInt($(this).find('[name="rest_value"]').val());
var id = $(this).attr('rel').split('_');
var block = $('.goodsDataMainModificationsBlock');
if(rest_value && !block.data('select')) {
		 block.data('select', true);
$('.goodsDataMainModificationsBlock input').removeAttr('checked');
		 $('.goodsDataMainModificationsBlock input[value="' + id[0] + '"]').attr('checked', 'checked');
		 $('.goodsDataMainModificationsBlock input[value="' + id[1] + '"]').attr('checked', 'checked');
		 $('.goodsDataMainModificationsBlock input').trigger('change');
}
});
}, 200);
Вакциана, Вы, как всегда, виртуозны. Спасибо, заработало с первого раза!

#10 sorcessor

sorcessor

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

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

Отправлено 05 Февраль 2013 - 18:16

Добрый день, у меня на сайте так и не заработал данный код, хотя на самом деле это очень важно. Подскажите, пожалуйста, где ошибка?
http://misterchehol....n2ip5?from=MGE3 -- вот пример страницы.
Кусок кода который я правил:


// Крутит изображение при обновлении картинки защиты от роботов
function RefreshImageAction(img,num,cnt) {
  if(cnt>13) {
    return false;
  }

  $(img).attr('src', $(img).attr('rel') + 'icon/refresh/' + num + '.gif');
  num = (num==6)?0:num;
  setTimeout(function(){RefreshImageAction(img, num+1, cnt+1);}, 50);
}

$(document).ready(function(){

  setTimeout(function() {
        $('.goodsDataMainModificationsList').each(function() {
        var rest_value = parseInt($(this).find('[name="rest_value"]').val());
        var id = $(this).attr('rel').split('_');
        var block = $('.goodsDataMainModificationsBlock');
        if(rest_value && !block.data('select')) {
          block.data('select', true);
          $('.goodsDataMainModificationsBlock select option').removeAttr('selected');
          $('.goodsDataMainModificationsBlock select option[value="' + id[0] + '"]').attr('selected', 'selected');
          $('.goodsDataMainModificationsBlock select option[value="' + id[1] + '"]').attr('selected', 'selected');
          $('.goodsDataMainModificationsBlock select').trigger('change');
        }
  });
  }, 200);

  // Валидация формы на странице оформления заказа, а так же формы на страницы связи с администрацией
  $('.order form, .feedbackForm, .clientForm, .goodsDataOpinionAddForm').submit(function(){
    if($(this).valid()) {............

Вообще никаких изменений на сайте на мой взгляд после этого кода...

#11 mikola

mikola

    Good soo good

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

Отправлено 05 Февраль 2013 - 21:36

всё же проверьте куда был установлен данный код..данный код необходимо вставить в файл main.js
после строки
$(document).ready(function(){

setTimeout(function() {
$('.goodsDataMainModificationsList').each(function() {
var rest_value = parseInt($(this).find('[name="rest_value"]').val());
var id = $(this).attr('rel').split('_');
var block = $('.goodsDataMainModificationsBlock');
if(rest_value && !block.data('select')) {
				 block.data('select', true);
				 $('.goodsDataMainModificationsBlock input').removeAttr('checked');
				 $('.goodsDataMainModificationsBlock input[value="' + id[0] + '"]').attr('checked', 'checked');
				 $('.goodsDataMainModificationsBlock input[value="' + id[1] + '"]').attr('checked', 'checked');
				 $('.goodsDataMainModificationsBlock input').trigger('change');
}
});
}, 200);


#12 sorcessor

sorcessor

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

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

Отправлено 06 Февраль 2013 - 09:25

Просмотр сообщенияMikola (05 Февраль 2013 - 21:36) писал:

всё же проверьте куда был установлен данный код..данный код необходимо вставить в файл main.js после строки
[font=helvetica, arial, sans-serif][size=4]$(document).ready(function(){
setTimeout(function() {$('.goodsDataMainModificationsList').each(function() {var rest_value = parseInt($(this).find('[name="rest_value"]').val());var id = $(this).attr('rel').split('_');var block = $('.goodsDataMainModificationsBlock');if(rest_value && !block.data('select')) {				 block.data('select', true);				 $('.goodsDataMainModificationsBlock input').removeAttr('checked');				 $('.goodsDataMainModificationsBlock input[value="' + id[0] + '"]').attr('checked', 'checked');				 $('.goodsDataMainModificationsBlock input[value="' + id[1] + '"]').attr('checked', 'checked');				 $('.goodsDataMainModificationsBlock input').trigger('change');}});}, 200);

Спасибо за помощь, но разобраться так и не получилось. Я в своем шаблоне Пластик так и не смог найти эту строку. Может вы подскажете в каком месте ее хотя бы искать нужно? Может там строка другая?

#13 support 2.0

support 2.0

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

  • Модераторы
  • 4 950 сообщений

Отправлено 06 Февраль 2013 - 09:55

Просмотр сообщенияsorcessor (06 Февраль 2013 - 09:25) писал:

Спасибо за помощь, но разобраться так и не получилось. Я в своем шаблоне Пластик так и не смог найти эту строку. Может вы подскажете в каком месте ее хотя бы искать нужно? Может там строка другая?

Скрипт на форуме немного с ошибкой вставился. Поэтому немного поясню:
в файле main.js у Вас есть строчка
$(document).ready(function(){

после нее должен идти именно этот код, который нужно было поставить
setTimeout(function() {
		$('.goodsDataMainModificationsList').each(function() {
		var rest_value = parseInt($(this).find('[name="rest_value"]').val());
		var id = $(this).attr('rel').split('_');
		var block = $('.goodsDataMainModificationsBlock');
		if(rest_value && !block.data('select')) {
		  block.data('select', true);
		  $('.goodsDataMainModificationsBlock select option').removeAttr('selected');
		  $('.goodsDataMainModificationsBlock select option[value="' + id[0] + '"]').attr('selected', 'selected');
		  $('.goodsDataMainModificationsBlock select option[value="' + id[1] + '"]').attr('selected', 'selected');
		  $('.goodsDataMainModificationsBlock select').trigger('change');
		}
  });
  }, 200);


#14 sorcessor

sorcessor

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

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

Отправлено 06 Февраль 2013 - 10:07

В принципе так я и сделал, скриншот прикладываю. Так и не заработало, на сайте прямо на первой странице можно посмотреть такие товары... :(

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

  • Новый точечный рисунок.jpg


#15 sorcessor

sorcessor

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

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

Отправлено 07 Февраль 2013 - 09:32

Товарищи, помогите хоть кто-нибудь, реально важный же вопрос. Очень нужно запустить эту функцию, ведь это напрямую влияет на коверсию, не все же готовы листать модификации...

#16 Vaccina

Vaccina

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

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

Отправлено 08 Февраль 2013 - 00:20

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

setTimeout(function() {
				$('.ModificationsList').each(function() {
				var rest_value = parseInt($(this).find('[name="rest_value"]').val());
				var id = $(this).attr('rel').split('_');
				var block = $('.goodsDataMainModificationsBlock');
				if(rest_value && !block.data('select')) {
				  block.data('select', true);
				  $('.goodsDataMainModificationsBlockProperty select option').removeAttr('selected');
				  $('.goodsDataMainModificationsBlockProperty select option[value="' + id[0] + '"]').attr('selected', 'selected');
				  $('.goodsDataMainModificationsBlockProperty select option[value="' + id[1] + '"]').attr('selected', 'selected');
				  $('.goodsDataMainModificationsBlockProperty select').trigger('change');
				}
  });
  }, 200);


#17 sorcessor

sorcessor

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

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

Отправлено 08 Февраль 2013 - 10:05

Отлично, теперь все работает! Спасибо вам ОГРОМНОЕ! :rolleyes:

#18 ogonek7777

ogonek7777

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

  • Пользователи
  • PipPipPipPip
  • 2 109 сообщений
  • ГородМосква

Отправлено 10 Февраль 2013 - 19:24

Просмотр сообщенияVaccina (29 Январь 2013 - 00:41) писал:

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

setTimeout(function() {
$('.goodsDataMainModificationsList').each(function() {
var rest_value = parseInt($(this).find('[name="rest_value"]').val());
var id = $(this).attr('rel').split('_');
var block = $('.goodsDataMainModificationsBlock');
if(rest_value && !block.data('select')) {
		 block.data('select', true);
$('.goodsDataMainModificationsBlock input').removeAttr('checked');
		 $('.goodsDataMainModificationsBlock input[value="' + id[0] + '"]').attr('checked', 'checked');
		 $('.goodsDataMainModificationsBlock input[value="' + id[1] + '"]').attr('checked', 'checked');
		 $('.goodsDataMainModificationsBlock input').trigger('change');
}
});
}, 200);
Вопрос к Vaccina

Обнаружила проблему, код работает не совсем корректно:
- в Каталоге показывается меньшая цена, независимо от того, какая показывается в Товаре. Это вводит в заблуждение покупателя и провоцирует отказ.
В Товаре также проблемы:
- не показывается фраза "Нет в наличие."
- при входе на страницу сейчас логика следующая: показывается цена той модификации, которой больше по количеству, а надо чтоб просто пропускалась модификация, которой нет в наличие.
Vaccina, Вы не могли бы помочь?

#19 Vaccina

Vaccina

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

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

Отправлено 12 Февраль 2013 - 02:05

Цитата

- в Каталоге показывается меньшая цена, независимо от того, какая показывается в Товаре. Это вводит в заблуждение покупателя и провоцирует отказ.

Данный код и не подразумевался работать в каталоге. В каталоге к сожалению такое реализовать не получиться.

Цитата

- не показывается фраза "Нет в наличие."

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

Цитата

- при входе на страницу сейчас логика следующая: показывается цена той модификации, которой больше по количеству, а надо чтоб просто пропускалась модификация, которой нет в наличие.

Логика немного другая. В данном случае выбирается модификация не от количества, а первая попавшаяся по порядку модификация которая имеет положительное количество.

#20 ogonek7777

ogonek7777

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

  • Пользователи
  • PipPipPipPip
  • 2 109 сообщений
  • ГородМосква

Отправлено 12 Февраль 2013 - 15:04

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

Данный код и не подразумевался работать в каталоге. В каталоге к сожалению такое реализовать не получиться.



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



Логика немного другая. В данном случае выбирается модификация не от количества, а первая попавшаяся попорядку модификация которая имеет положительное количество.
Ок, убрала код, у меня от него что-то проблемки.




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

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