Правильное Отображение Модификаций Внутри Карточки С Товаром
#1
Отправлено 24 Январь 2013 - 11:59
Не могли бы сориентировать, как настроить выдачу модификаций товара внутри одной карточки, чтобы всегда показ модификаций начинался только с товара в наличие, а потом уже которые отсутствуют.
Дело в том, что, например, какой-то цвет отсутствует и, если модификация с этим цветом стоит на первом месте, то клиент заходит, видит надпись "товар отсутствует" и уходит. Не все готовы листать модификации и смотреть, какая есть в наличие.
При этом в настройках магазина стоит "галочка" "показывать только товары в наличие".
Просьба администраторов Сторелэнд обратить внимание и подсказать возможность правки или настройки. Этот факт действительно очень сильно влияет на процент отказов покупателей при целевых заходах.
Вот пример одной из моих карточек с товаром http://gutenmarket.r...-slim?from=NmZm
#2
Отправлено 24 Январь 2013 - 13:31
http://forum.storela...-нужна-никакая/
http://forum.storela...лько-в-наличии/
#3
Отправлено 25 Январь 2013 - 18:08
Koderhan (24 Январь 2013 - 13:31) писал:
http://forum.storela...-нужна-никакая/
http://forum.storela...лько-в-наличии/
Т.е. так, чтобы при попадании на страницу товара, моментально отображалась только модификации товара которая есть, чтобы человек видел фразу "товар есть в наличие".
Кстати, Вакцина писала, что в админке можно за стрелочку перетягивать на первую позицию нужную тебе модификацию - ничего подобного в админке не нашел. Получается даже в ручную нельзя не первую позицию перетащить модификацию в которой еще есть товар. Просто действительно без правильного отображения на сайте модификаций они теряют смысл и незачем делать модификации - проще "разбивать" на отдельные карточки товара.
#4
Отправлено 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
Отправлено 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
Отправлено 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(){
Данный код будет искать первую доступную модификацию, и устанавливать её в качестве выбранной.
#7
Отправлено 27 Январь 2013 - 10:15
ogonek7777 (26 Январь 2013 - 22:51) писал:
Не произошло никаких изменений? Или некорректно работает?
И куда именно вы вставляли код? Можете прислать скриншот?
#8
Отправлено 29 Январь 2013 - 00:41
ogonek7777 (26 Январь 2013 - 22:51) писал:
В вашем случае данный код работать не будет, так как он ориентирован на модификации в виде выпадающего списка. В вашем случае с использованием радио кнопок - можно попробовать код вида
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
Отправлено 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
Отправлено 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
Отправлено 05 Февраль 2013 - 21:36
после строки
$(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
Отправлено 06 Февраль 2013 - 09:25
Mikola (05 Февраль 2013 - 21:36) писал:
[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
Отправлено 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);
#15
Отправлено 07 Февраль 2013 - 09:32
#16
Отправлено 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
Отправлено 08 Февраль 2013 - 10:05
#18
Отправлено 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, Вы не могли бы помочь?
#19
Отправлено 12 Февраль 2013 - 02:05
Цитата
Данный код и не подразумевался работать в каталоге. В каталоге к сожалению такое реализовать не получиться.
Цитата
По идее это должно работать, если это работает и без данного кода. Данный код никак не влияет на основной функционал, так как он его и использует.
Цитата
Логика немного другая. В данном случае выбирается модификация не от количества, а первая попавшаяся по порядку модификация которая имеет положительное количество.
#20
Отправлено 12 Февраль 2013 - 15:04
Vaccina (12 Февраль 2013 - 02:05) писал:
По идее это должно работать, если это работает и без данного кода. Данный код никак не влияет на основной функционал, так как он его и использует.
Логика немного другая. В данном случае выбирается модификация не от количества, а первая попавшаяся попорядку модификация которая имеет положительное количество.
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных