Всем привет!!
У меня сейчас в карточке товара вывод свойств осуществляется по наличию хотя бы одной модификации.
Как сделать чтобы цена тоже играла роль т.е попадая в карточку
http://bell-m.ru/goo...buk-volokno-PPU
сразу показывается самая большая цена хотя есть свойства в наличии у которых цена меньше.
вот мне и надо что бы в первую очередь показывалось свойство которое есть в наличии и у которого мин. цена а потом все остальные.
Заранее спасибо!!!
Аккаунт SL-420030
0
Сообщений в теме: 6
#1
Отправлено 06 Август 2017 - 12:25
#2
Отправлено 07 Август 2017 - 14:18
magiya1984 (06 Август 2017 - 12:25) писал:
Всем привет!!
У меня сейчас в карточке товара вывод свойств осуществляется по наличию хотя бы одной модификации.
Как сделать чтобы цена тоже играла роль т.е попадая в карточку
http://bell-m.ru/goo...buk-volokno-PPU
сразу показывается самая большая цена хотя есть свойства в наличии у которых цена меньше.
вот мне и надо что бы в первую очередь показывалось свойство которое есть в наличии и у которого мин. цена а потом все остальные.
Заранее спасибо!!!
Аккаунт SL-420030
У меня сейчас в карточке товара вывод свойств осуществляется по наличию хотя бы одной модификации.
Как сделать чтобы цена тоже играла роль т.е попадая в карточку
http://bell-m.ru/goo...buk-volokno-PPU
сразу показывается самая большая цена хотя есть свойства в наличии у которых цена меньше.
вот мне и надо что бы в первую очередь показывалось свойство которое есть в наличии и у которого мин. цена а потом все остальные.
Заранее спасибо!!!
Аккаунт SL-420030
#3
Отправлено 07 Август 2017 - 16:03
Я долго думал как обыграть ситуацию. Скажите можно ли реализовать input через радио кнопки вместо селект тогда и отпадет возможность обрабатывать свойства по наличию скриптом так как они всегда будут раскрыты. Тема есть на форуме но она от 12 года реализовать по ней не смог. Прошу помочь.
Заранее спасибо.
Заранее спасибо.
#4
Отправлено 08 Август 2017 - 11:12
Ребят ответите на мой вопрос?
#5
Отправлено 08 Август 2017 - 15:58
Ирина345 (07 Август 2017 - 14:18) писал:
Здравствуйте, отсортировать модификации в карточки товара можно только по наличию, по цене нельзя.
Скажите можно ли реализовать input через радио кнопки вместо селект тогда и отпадет возможность обрабатывать свойства по наличию скриптом так как они всегда будут раскрыты. Тема есть на форуме но она от 12 года реализовать по ней не смог. Прошу помочь.
Заранее спасибо.
#6
Отправлено 09 Август 2017 - 13:35
magiya1984 (08 Август 2017 - 15:58) писал:
Ирина здравствуйте!!! Помогите пожалуйста с моим вопросом а то мне кажется этот пост уже затерялся.
Скажите можно ли реализовать input через радио кнопки вместо селект тогда и отпадет возможность обрабатывать свойства по наличию скриптом так как они всегда будут раскрыты. Тема есть на форуме но она от 12 года реализовать по ней не смог. Прошу помочь.
Заранее спасибо.
Скажите можно ли реализовать input через радио кнопки вместо селект тогда и отпадет возможность обрабатывать свойства по наличию скриптом так как они всегда будут раскрыты. Тема есть на форуме но она от 12 года реализовать по ней не смог. Прошу помочь.
Заранее спасибо.
{% FOR goods_modifications_properties %} <div class="goodsDataMainModificationsBlockProperty"> <!-- Выдаем списки со свойствами для модификаций, чтобы определить какую модификацию товара хочет пользователь --> {% FOR values %} <!-- Если это первый элемент в списке --> {% IF goods_modifications_properties.values.first %} <span id="modifications1">{goods_modifications_properties.NAME}:</span> <select name="form[properties][]" class="selectBox"> {% ENDIF %} <option value="{goods_modifications_properties.values.ID}" {% IF goods_modifications_properties.values.SELECTED %}selected="selected"{% ENDIF %}>{goods_modifications_properties.values.NAME}</option> <!-- Если это последний элемент в списке --> {% IF goods_modifications_properties.values.last %} </select> {% ENDIF %} {% ENDFOR %} </div> {goods_modifications_properties.index | is_divided("2","","")} {% ENDFOR %}замените на
{% FOR goods_modifications_properties %} <div class="goodsDataMainModificationsBlockProperty"> <!-- Выдаем списки со свойствами для модификаций, чтобы определить какую модификацию товара хочет пользователь --> {% FOR values %} <!-- Если это первый элемент в списке --> {% IF goods_modifications_properties.values.first %} <span class="goodsDataMainModificationsRadio"> <span id="modifications1">{goods_modifications_properties.NAME}:</span> {% ENDIF %} <div> <input type="radio" name="form[properties][]" id="filterAttrVal{goods_modifications_properties.values.ID}" value="{goods_modifications_properties.values.ID}" {% IF goods_modifications_properties.values.SELECTED %}checked="checked"{% ENDIF %} /> <label for="filterAttrVal{goods_modifications_properties.values.ID}">{goods_modifications_properties.values.NAME} </label> </div> {% IF goods_modifications_properties.values.last %} </span> {% ENDIF %} {% ENDFOR %} </div> {% ENDFOR %}
в файле 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); // Изменение цены товара при изменении у товара свойства для модификации goodsDataProperties.each(function(){ $(this).change(function(){замените на
// Функция собирает свойства в строку, для определения модификации товара function getSlugFromGoodsDataFormModificationsProperties(obj) { var properties = new Array(); var reset_arr = new Array(); $(obj).find('input[type="radio"]').each(function(i){ if($(this).is(':checked')){ properties[i] = parseInt($(this).val());} }); for(var i in properties) { if(properties[i]) { reset_arr.push(properties[i]); } } return reset_arr.sort(function(a,c){return a - c}).join('_'); } var // Запоминаем поля выбора свойств, для ускорения работы со значениями свойств goodsDataProperties = $('.goodsDataMainModificationsBlockProperty'), // Запоминаем блоки с информацией по модификациям, для ускорения работы goodsDataModifications = $('div.goodsDataMainModificationsList'); // Обновляет возможность выбора свойств модификации, для отключения возможности выбора по характеристикам модификации которой не существует. // Обновляет возможность выбора свойств модификации, для отключения возможности выбора по характеристикам модификации которой не существует. function updateVisibility (y) { // Проверяем в каждом соседнем поле выбора модификаций, возможно ли подобрать модификацию для указанных свойств goodsDataProperties.each(function(j){ // Если мы сравниваем значения свойства не с самим собой, а с другим списком значений свойств if( j != y ) { // Проходим по всем значениям текущего свойства модификации товара $(this).find('input[type="radio"]').each(function(){ // Записываем временный массив свойств, которые будем использовать для проверки существования модификации //var checkProperties = new Array(); /*$(goodsDataProperties).each(function(i){ if($(this).is(':checked')) checkProperties[i] = parseInt($(this).val()); });*/ // Пытаемся найти модификацию соответствующую выбранным значениям свойств //checkProperties[j] = parseInt($(this).attr('value')); // Собираем хэш определяющий модификацию по свойствам //slug = checkProperties.sort(function(a,c){return a - c}).join('_'); slug = getSlugFromGoodsDataFormModificationsProperties(goodsDataProperties); // Ищем модификацию по всем выбранным значениям свойств товара. Если модификации нет в возможном выборе, отмечаем потенциальное значение выбора как не доступное для выбора, т.к. такой модификации нет. if(!goodsDataModifications.filter('[rel="'+slug+'"]').length) { $(this).attr('disabled', 'disabled'); // Если выбрав данное значение свойства товара можно подобрать модификацию, то выделяем вариант выбора как доступный. } else { $(this).removeAttr('disabled'); } }); } }); } // Обновляем возможность выбора модификации товара по свойствам. Для тех свойств, выбор по которым не возможен, отключаем такую возможность. // Проверяем возможность выбора на всех полях кроме первого, чтобы отключить во всех остальных варианты, которые не возможно выбрать updateVisibility (0); // Проверяем возможность выбора на всех полях кроме второго, чтобы в первом поле так же отключилась возможность выбора не существующих модификаций updateVisibility (1); //var goodsDataProperties = $('.goodsDataForm [name="form[properties][]"]'); // Изменение цены товара при изменении у товара свойства для модификации goodsDataProperties.each(function(y){ $(this).find('input[type="radio"]').click(function(){
#7
Отправлено 09 Август 2017 - 14:02
Ирина345 (09 Август 2017 - 13:35) писал:
Здравствуйте, найдите в шаблоне Товар код
в файле main.js найдите
{% FOR goods_modifications_properties %} <div class="goodsDataMainModificationsBlockProperty"> <!-- Выдаем списки со свойствами для модификаций, чтобы определить какую модификацию товара хочет пользователь --> {% FOR values %} <!-- Если это первый элемент в списке --> {% IF goods_modifications_properties.values.first %} <span id="modifications1">{goods_modifications_properties.NAME}:</span> <select name="form[properties][]" class="selectBox"> {% ENDIF %} <option value="{goods_modifications_properties.values.ID}" {% IF goods_modifications_properties.values.SELECTED %}selected="selected"{% ENDIF %}>{goods_modifications_properties.values.NAME}</option> <!-- Если это последний элемент в списке --> {% IF goods_modifications_properties.values.last %} </select> {% ENDIF %} {% ENDFOR %} </div> {goods_modifications_properties.index | is_divided("2","","")} {% ENDFOR %}замените на
{% FOR goods_modifications_properties %} <div class="goodsDataMainModificationsBlockProperty"> <!-- Выдаем списки со свойствами для модификаций, чтобы определить какую модификацию товара хочет пользователь --> {% FOR values %} <!-- Если это первый элемент в списке --> {% IF goods_modifications_properties.values.first %} <span class="goodsDataMainModificationsRadio"> <span id="modifications1">{goods_modifications_properties.NAME}:</span> {% ENDIF %} <div> <input type="radio" name="form[properties][]" id="filterAttrVal{goods_modifications_properties.values.ID}" value="{goods_modifications_properties.values.ID}" {% IF goods_modifications_properties.values.SELECTED %}checked="checked"{% ENDIF %} /> <label for="filterAttrVal{goods_modifications_properties.values.ID}">{goods_modifications_properties.values.NAME} </label> </div> {% IF goods_modifications_properties.values.last %} </span> {% ENDIF %} {% ENDFOR %} </div> {% ENDFOR %}
в файле 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); // Изменение цены товара при изменении у товара свойства для модификации goodsDataProperties.each(function(){ $(this).change(function(){замените на
// Функция собирает свойства в строку, для определения модификации товара function getSlugFromGoodsDataFormModificationsProperties(obj) { var properties = new Array(); var reset_arr = new Array(); $(obj).find('input[type="radio"]').each(function(i){ if($(this).is(':checked')){ properties[i] = parseInt($(this).val());} }); for(var i in properties) { if(properties[i]) { reset_arr.push(properties[i]); } } return reset_arr.sort(function(a,c){return a - c}).join('_'); } var // Запоминаем поля выбора свойств, для ускорения работы со значениями свойств goodsDataProperties = $('.goodsDataMainModificationsBlockProperty'), // Запоминаем блоки с информацией по модификациям, для ускорения работы goodsDataModifications = $('div.goodsDataMainModificationsList'); // Обновляет возможность выбора свойств модификации, для отключения возможности выбора по характеристикам модификации которой не существует. // Обновляет возможность выбора свойств модификации, для отключения возможности выбора по характеристикам модификации которой не существует. function updateVisibility (y) { // Проверяем в каждом соседнем поле выбора модификаций, возможно ли подобрать модификацию для указанных свойств goodsDataProperties.each(function(j){ // Если мы сравниваем значения свойства не с самим собой, а с другим списком значений свойств if( j != y ) { // Проходим по всем значениям текущего свойства модификации товара $(this).find('input[type="radio"]').each(function(){ // Записываем временный массив свойств, которые будем использовать для проверки существования модификации //var checkProperties = new Array(); /*$(goodsDataProperties).each(function(i){ if($(this).is(':checked')) checkProperties[i] = parseInt($(this).val()); });*/ // Пытаемся найти модификацию соответствующую выбранным значениям свойств //checkProperties[j] = parseInt($(this).attr('value')); // Собираем хэш определяющий модификацию по свойствам //slug = checkProperties.sort(function(a,c){return a - c}).join('_'); slug = getSlugFromGoodsDataFormModificationsProperties(goodsDataProperties); // Ищем модификацию по всем выбранным значениям свойств товара. Если модификации нет в возможном выборе, отмечаем потенциальное значение выбора как не доступное для выбора, т.к. такой модификации нет. if(!goodsDataModifications.filter('[rel="'+slug+'"]').length) { $(this).attr('disabled', 'disabled'); // Если выбрав данное значение свойства товара можно подобрать модификацию, то выделяем вариант выбора как доступный. } else { $(this).removeAttr('disabled'); } }); } }); } // Обновляем возможность выбора модификации товара по свойствам. Для тех свойств, выбор по которым не возможен, отключаем такую возможность. // Проверяем возможность выбора на всех полях кроме первого, чтобы отключить во всех остальных варианты, которые не возможно выбрать updateVisibility (0); // Проверяем возможность выбора на всех полях кроме второго, чтобы в первом поле так же отключилась возможность выбора не существующих модификаций updateVisibility (1); //var goodsDataProperties = $('.goodsDataForm [name="form[properties][]"]'); // Изменение цены товара при изменении у товара свойства для модификации goodsDataProperties.each(function(y){ $(this).find('input[type="radio"]').click(function(){
Темы с аналогичным тегами свойства, карточка товара
Вопросы работы сервиса StoreLand →
Дизайн →
Шаблон Какаду →
Другое →
Карточка ТовараАвтор Гость_Gost_* , 14 янв. 2020 карточка товара |
|
|||
Повышение продаж, продвижение →
Общие вопросы →
Убрать Условия Доставки Из Некоторых ТоваровАвтор Гость_Olivka_* , 16 сент. 2018 товар, ночь, карточка товара и 1 еще... |
|
|||
Вопросы работы сервиса StoreLand →
Дизайн →
Шаблон Хамелеон →
Страница товара →
Изменить Карточку ТовараАвтор Гость_Paparam_* , 30 марта 2018 карточка товара |
|
|||
Вопросы работы сервиса StoreLand →
Дизайн →
Шаблон Хамелеон →
Изменение общей стилистики →
Публикация На Карточке ТовараАвтор Гость_Paparam_* , 09 янв. 2018 карточка товара |
|
|||
Вопросы работы сервиса StoreLand →
Дизайн →
Шаблон Туризм →
Каталог товаров →
Убрать В Списках Товаров Аттрибуты МагазинаАвтор Гость_Sharlex_* , 24 дек. 2017 карточка товара, товар |
|
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных