webopro Опубликовано 21 ноября, 2013 Жалоба Поделиться Опубликовано 21 ноября, 2013 Всем привет! Такой вопрос. Как сделать так чтоб можно было выбирать у товара размер и цвет? на пример коньки, выбираем размер.. Как такое провернуть? Цитата Ссылка на сообщение Поделиться на другие сайты
martinways Опубликовано 9 сентября, 2015 Жалоба Поделиться Опубликовано 9 сентября, 2015 (изменено) В общем, потребовалось для будущего магазина одежды реализовать функцию выбора размера и цвета, на одном из сайтов нашел в продаже модуль за небольшие деньги, приобрел , выполнил все по инструкции, но в итоге оказалось модуль недоделанный, в админке все работает (есть 1 маленький баг, о нем позже), к вариантам размера и цвета удобно привязывается фото, а вот на странице товара работает только смена фотографии при выборе в выпадающем списке варианта цвета, а остальное не работает - то есть, при выборе вариантов цена не меняется автоматически (все время отображается цена последнего варианта), а также не скрываются недоступные для данного цвета размеры и наоборот. В корзине все работает как надо, то есть подтягивается фото выбранного варианта цвета. Фактически надо допилить страницу товара, похоже, что там отсутствуют скрипты изменения цены и скрытия недоступных вариантов. Если доделаем общими усилиями, то данная доработка станет достоянием общественности, а её так не хватает в стандартном функционале. Прикрепил архив с инструкцией и файлами (в инструкции кстати как раз в конце отсутствует пункт по редактированию product.tpl , но в файлах он есть, его нужно только допилить) Изменено 9 сентября, 2015 пользователем martinways Цитата Ссылка на сообщение Поделиться на другие сайты
Simplamarket Опубликовано 9 сентября, 2015 Жалоба Поделиться Опубликовано 9 сентября, 2015 В общем, потребовалось для будущего магазина одежды реализовать функцию выбора размера и цвета, на одном из сайтов нашел в продаже модуль за небольшие деньги, приобрел , выполнил все по инструкции, но в итоге оказалось модуль недоделанный, в админке все работает (есть 1 маленький баг, о нем позже), к вариантам размера и цвета удобно привязывается фото, а вот на странице товара работает только смена фотографии при выборе в выпадающем списке варианта цвета, а остальное не работает - то есть, при выборе вариантов цена не меняется автоматически (все время отображается цена последнего варианта), а также не скрываются недоступные для данного цвета размеры и наоборот. В корзине все работает как надо, то есть подтягивается фото выбранного варианта цвета. Фактически надо допилить страницу товара, похоже, что там отсутствуют скрипты изменения цены и скрытия недоступных вариантов. Если доделаем общими усилиями, то данная доработка станет достоянием общественности, а её так не хватает в стандартном функционале. Прикрепил архив с инструкцией и файлами (в инструкции кстати как раз в конце отсутствует пункт по редактированию product.tpl , но в файлах он есть, его нужно только допилить) Повторяю. Приобретайте доработки у их авторов, тогда авторы будут всё доделывать. А покупать на сайтах у барыг за смешные деньги модуль, а затем выкладывать его в бесплатный доступ - это неуважение к чужому труду. Цитата Ссылка на сообщение Поделиться на другие сайты
martinways Опубликовано 9 сентября, 2015 Жалоба Поделиться Опубликовано 9 сентября, 2015 (изменено) Повторяю. Приобретайте доработки у их авторов, тогда авторы будут всё доделывать. А покупать на сайтах у барыг за смешные деньги модуль, а затем выкладывать его в бесплатный доступ - это неуважение к чужому труду. Так Вы автор этого расширения что ли? Я откуда знаю кто написал тот или иной код - зашел на сайт, купил. Не работает))) Изменено 9 сентября, 2015 пользователем martinways Цитата Ссылка на сообщение Поделиться на другие сайты
Simplamarket Опубликовано 9 сентября, 2015 Жалоба Поделиться Опубликовано 9 сентября, 2015 Так Вы автор этого расширения что ли?Нет. Именно этого - скорее всего simplashop.com. Детально не смотрел, но они называют доработки в таком стиле. Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 9 сентября, 2015 Жалоба Поделиться Опубликовано 9 сентября, 2015 Так Вы автор этого расширения что ли? Я откуда знаю кто написал тот или иной код - зашел на сайт, купил. Не работает))) ну работает оно так как описано в функционале (автор действительно simplashop). изменять цену при смене цвета не проблема. а насчет размера - помоему в этой доработке один размер = один цвет. там нельзя несколько размеров прикрепить к цвету. фильтр для селекта можно тоже сделать, чтобы при выборе цвета размер менялся. смотрите в сторону этого Цитата Ссылка на сообщение Поделиться на другие сайты
mart Опубликовано 9 сентября, 2015 Жалоба Поделиться Опубликовано 9 сентября, 2015 Как автор доработки скажу, что можно делаю любые сочетания цвета-размера. Но каждый вариант надо задавать отдельно, т.к. там свои остатки и возможно свои цены. Фото к каждому варианту (если этот модуль включает и фото), то назначаются именно вариант (паре цвет-размер), а не конкретно цвету или размеру.Этот скрипт был рабочим - внесенные изменения в нем не проверял, но обычно при попытке скрыть автора "нехорошие люди" удаляю не только форматирование, но и куски кода случайно. Цитата Ссылка на сообщение Поделиться на другие сайты
martinways Опубликовано 15 сентября, 2015 Жалоба Поделиться Опубликовано 15 сентября, 2015 (изменено) Люди добрые, подскажите. в стандартной версии поле выбора цвета скрывается, если есть только 1 варианта цвета Код такой {if $product->colors|count < 2} style="display:none;"{/if} , а как сделать ,чтобы поле скрывалось только тогда, когда вообще нет вариантов цвета, а если есть 1 вариант, то он не скрывался? Ставлю colors|count < 1 - поле всеравно скрывается, а ставлю colors|count = 0 - то ошибка синтаксиса. Изменено 15 сентября, 2015 пользователем martinways Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 15 сентября, 2015 Жалоба Поделиться Опубликовано 15 сентября, 2015 Попробуйте colors|count == 0 Цитата Ссылка на сообщение Поделиться на другие сайты
martinways Опубликовано 15 сентября, 2015 Жалоба Поделиться Опубликовано 15 сентября, 2015 (изменено) Чет не срабатывает тогда style="display:none;" если поле цвета не заполнено. Это вобщем я купил вот эту доработку http://simpla-template.org.ua/products/varianty-tovara Но мне хотелось бы сделать следующее - поменять инпуты на выпадающий селект, а также не устраивает то, что если у вариантов указан например 1 цвет и 1 размер, то они скрываются вовсе, а хотелось бы чтоб они скрывались, только если их вовсе нет. Реально ли такое реализовать в данном расширении? Изменено 15 сентября, 2015 пользователем martinways Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 15 сентября, 2015 Жалоба Поделиться Опубликовано 15 сентября, 2015 Чет не срабатывает тогда style="display:none;" если поле цвета не заполнено. Это вобщем я купил вот эту доработку http://simpla-template.org.ua/products/varianty-tovara Но мне хотелось бы сделать следующее - поменять инпуты на выпадающий селект, а также не устраивает то, что если у вариантов указан например 1 цвет и 1 размер, то они скрываются вовсе, а хотелось бы чтоб они скрывались, если их поле пустое. Реально ли такое реализовать в данном расширении?Вы купили у барыги который сей модуль вовсе не реализовывал а тупо своровал, по идее разработка что по ссылке принадлежит автору DaVinci. Цитата Ссылка на сообщение Поделиться на другие сайты
martinways Опубликовано 15 сентября, 2015 Жалоба Поделиться Опубликовано 15 сентября, 2015 (изменено) Опять барыга? Да чтож такое, как их распознать? Отдал 35$, думал цена уже адекватная и на тебе. В первый раз купил за 250рубелй, так модуль вообще не работал, в этот раз работает, но выходит, что дал заработать барыге?? И че теперь делать... Почему у вас на форуме нет черных списков сайтов-барыг? Как поступать прстым покупателям, которые не в курсе происходящего? Изменено 15 сентября, 2015 пользователем martinways Цитата Ссылка на сообщение Поделиться на другие сайты
martinways Опубликовано 15 сентября, 2015 Жалоба Поделиться Опубликовано 15 сентября, 2015 (изменено) Ну так что, реально ли переделать с инпутов на селекты? По идее надо чуть изменить скрипт <tr{if $product->colors|count < 2} style="display:none;"{/if}> <td id="colors"> Цвета:<br/> {foreach $product->colors as $k=>$v}<label{if $v@first} class="active"{/if}><input type="radio" name="color" value="{$k}"{if $v@first} checked{/if} />{$k}</label>{/foreach} </td> </tr> <tr{if $product->heights|count < 2} style="display:none;"{/if}> <td id="heights"> Рост:<br/> {foreach $product->heights as $k=>$v}<label{if $v@first} class="active"{/if}><input type="radio" name="height" value="{$k}"{if $v@first} checked{/if} />{$k}</label>{/foreach} </td> </tr> <tr{if $product->variants|count < 2} style="display:none;"{/if}> <td id="variants"> Размеры:<br/> {foreach $product->variants as $v}<label{if $v@first} class="active"{/if}><input type="radio" name="variant" value="{$v->id}"{if $v@first} checked{/if} />{$v->name}</label>{/foreach} </td> </tr> var variants = { {foreach $product->variants as $v} '{$v->id}': {literal}{{/literal}'color':'{$v->color}', 'images_ids':[{$v->images_ids}], 'height':'{$v->height}', 'name':'{$v->name}', 'price':'{$v->price}', 'compare_price':'{$v->compare_price}'{literal}}{/literal}, {/foreach} }; {literal} function changeColor(){ var color = $('input[name=color]:checked'), arr = []; $('#colors label').removeClass('active'); color.parent().addClass('active'); $('#heights label').remove(); //удаляем все ростовки $.each(variants, function(id, val) { if(val['color'] == color.val() && $.inArray(val['height'], arr) < 0) { arr.push(val['height']); $('#heights').append('<label><input type="radio" name="height" value="' + val['height'] + '" />' + val['height'] + '</label>'); } }); if(arr.length > 1) $('#heights').show(); else $('#heights').hide(); $("input[name=height]:first").attr('checked', true).parent().addClass('active'); changeHeight(); } function changeHeight(){ var height = $('input[name=height]:checked'), c = $('input[name=color]:checked').val(), arr = []; $('#heights label').removeClass('active'); height.parent().addClass('active'); $('#variants label').remove(); //удаляем все ростовки $.each(variants, function(id, val) { if(val['color'] == c && val['height'] == height.val() && $.inArray(val['name'], arr) < 0) { arr.push(val['name']); $('#variants').append('<label><input type="radio" name="variant" value="' + id + '" />' + val['name'] + '</label>'); } }); if(arr.length > 1) $('#variants').show(); else $('#variants').hide(); $("input[name=variant]:first").attr('checked', true).parent().addClass('active'); changeVariant(); } function changeVariant(){ var variant = $('input[name=variant]:checked'), val = variants[variant.val()], images_ids = val['images_ids'], image_id = images_ids[0], arr = []; $('.images a').hide(); if(image_id != '' && $('#image' + image_id) !== 'undefined') { $('#big_image img').attr('src', $('#image'+image_id).attr('rel')); $.each(images_ids, function(id, val) { $('#image' + val).show(); }); } $('#variants label').removeClass('active'); variant.parent().addClass('active'); $('.compare_price').text(val['compare_price']); $('.price').text(val['price']); } $(function() { $('#colors input').live('change', function(){ changeColor(); }); $('#heights input').live('change', function(){ changeHeight(); }); $('#variants input').live('change', function(){ changeVariant(); }); changeColor(); }); {/literal} </script> Изменено 15 сентября, 2015 пользователем martinways Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 15 сентября, 2015 Жалоба Поделиться Опубликовано 15 сентября, 2015 Да реально, пишите в скайп simplacms, сделаю. Цитата Ссылка на сообщение Поделиться на другие сайты
martinways Опубликовано 20 сентября, 2015 Жалоба Поделиться Опубликовано 20 сентября, 2015 Люди добрые, помогите переделать выбор цвета, роста и размера с инпутов на селекты, вот код <tr> <td id="colors"> Цвета: {foreach $product->colors as $k=>$v}<label{if $v@first} class="active"{/if}><input type="radio" name="color" value="{$k}"{if $v@first} checked{/if} />{$k}</label>{/foreach} </td> <td id="heights" {if $product->heights|count < 2} style="display:none;"{/if}> Рост: {foreach $product->heights as $k=>$v}<label{if $v@first} class="active"{/if}><input type="radio" name="height" value="{$k}"{if $v@first} checked{/if} />{$k}</label>{/foreach} </td> <td id="variants"{if $product->variants|count < 2} style="display:none;"{/if}> Размеры: {foreach $product->variants as $v}<label{if $v@first} class="active"{/if}><input type="radio" name="variant" value="{$v->id}"{if $v@first} checked{/if} />{$v->name}</label>{/foreach} </td> <script> var variants = { {foreach $product->variants as $v} '{$v->id}': {literal}{{/literal}'color':'{$v->color}', 'images_ids':[{$v->images_ids}], 'height':'{$v->height}', 'name':'{$v->name}', 'price':'{$v->price|convert}', 'compare_price':'{$v->compare_price}'{literal}}{/literal}, {/foreach} }; {literal} function changeColor(){ var color = $('input[name=color]:checked'), arr = []; $('#colors label').removeClass('active'); color.parent().addClass('active'); $('#heights label').remove(); //удаляем все ростовки $.each(variants, function(id, val) { if(val['color'] == color.val() && $.inArray(val['height'], arr) < 0) { arr.push(val['height']); $('#heights').append('<label><input type="radio" name="height" value="' + val['height'] + '" />' + val['height'] + '</label>'); } }); if(arr.length > 1) $('#heights').show(); else $('#heights').hide(); $("input[name=height]:first").attr('checked', true).parent().addClass('active'); changeHeight(); } function changeHeight(){ var height = $('input[name=height]:checked'), c = $('input[name=color]:checked').val(), arr = []; $('#heights label').removeClass('active'); height.parent().addClass('active'); $('#variants label').remove(); //удаляем все ростовки $.each(variants, function(id, val) { if(val['color'] == c && val['height'] == height.val() && $.inArray(val['name'], arr) < 0) { arr.push(val['name']); $('#variants').append('<label><input type="radio" name="variant" value="' + id + '" />' + val['name'] + '</label>'); } }); if(arr.length > 1) $('#variants').show(); else $('#variants').hide(); $("input[name=variant]:first").attr('checked', true).parent().addClass('active'); changeVariant(); } function changeVariant(){ var variant = $('input[name=variant]:checked'), val = variants[variant.val()], images_ids = val['images_ids'], image_id = images_ids[0], arr = []; $('.images a').hide(); if(image_id != '' && $('#image' + image_id) !== 'undefined') { $('#big_image img').attr('src', $('#image'+image_id).attr('rel')); $.each(images_ids, function(id, val) { $('#image' + val).show(); }); } $('#variants label').removeClass('active'); variant.parent().addClass('active'); $('.compare_price').text(val['compare_price']); $('.price').text(val['price']); } $(function() { $('#colors input').live('change', function(){ changeColor(); }); $('#heights input').live('change', function(){ changeHeight(); }); $('#variants input').live('change', function(){ changeVariant(); }); changeColor(); }); {/literal} </script> Цитата Ссылка на сообщение Поделиться на другие сайты
as564 Опубликовано 12 декабря, 2015 Жалоба Поделиться Опубликовано 12 декабря, 2015 Люди добрые, помогите переделать выбор цвета, роста и размера с инпутов на селекты, вот код <tr> <td id="colors"> Цвета: {foreach $product->colors as $k=>$v}<label{if $v@first} class="active"{/if}><input type="radio" name="color" value="{$k}"{if $v@first} checked{/if} />{$k}</label>{/foreach} </td> <td id="heights" {if $product->heights|count < 2} style="display:none;"{/if}> Рост: {foreach $product->heights as $k=>$v}<label{if $v@first} class="active"{/if}><input type="radio" name="height" value="{$k}"{if $v@first} checked{/if} />{$k}</label>{/foreach} </td> <td id="variants"{if $product->variants|count < 2} style="display:none;"{/if}> Размеры: {foreach $product->variants as $v}<label{if $v@first} class="active"{/if}><input type="radio" name="variant" value="{$v->id}"{if $v@first} checked{/if} />{$v->name}</label>{/foreach} </td> <script> var variants = { {foreach $product->variants as $v} '{$v->id}': {literal}{{/literal}'color':'{$v->color}', 'images_ids':[{$v->images_ids}], 'height':'{$v->height}', 'name':'{$v->name}', 'price':'{$v->price|convert}', 'compare_price':'{$v->compare_price}'{literal}}{/literal}, {/foreach} }; {literal} function changeColor(){ var color = $('input[name=color]:checked'), arr = []; $('#colors label').removeClass('active'); color.parent().addClass('active'); $('#heights label').remove(); //удаляем все ростовки $.each(variants, function(id, val) { if(val['color'] == color.val() && $.inArray(val['height'], arr) < 0) { arr.push(val['height']); $('#heights').append('<label><input type="radio" name="height" value="' + val['height'] + '" />' + val['height'] + '</label>'); } }); if(arr.length > 1) $('#heights').show(); else $('#heights').hide(); $("input[name=height]:first").attr('checked', true).parent().addClass('active'); changeHeight(); } function changeHeight(){ var height = $('input[name=height]:checked'), c = $('input[name=color]:checked').val(), arr = []; $('#heights label').removeClass('active'); height.parent().addClass('active'); $('#variants label').remove(); //удаляем все ростовки $.each(variants, function(id, val) { if(val['color'] == c && val['height'] == height.val() && $.inArray(val['name'], arr) < 0) { arr.push(val['name']); $('#variants').append('<label><input type="radio" name="variant" value="' + id + '" />' + val['name'] + '</label>'); } }); if(arr.length > 1) $('#variants').show(); else $('#variants').hide(); $("input[name=variant]:first").attr('checked', true).parent().addClass('active'); changeVariant(); } function changeVariant(){ var variant = $('input[name=variant]:checked'), val = variants[variant.val()], images_ids = val['images_ids'], image_id = images_ids[0], arr = []; $('.images a').hide(); if(image_id != '' && $('#image' + image_id) !== 'undefined') { $('#big_image img').attr('src', $('#image'+image_id).attr('rel')); $.each(images_ids, function(id, val) { $('#image' + val).show(); }); } $('#variants label').removeClass('active'); variant.parent().addClass('active'); $('.compare_price').text(val['compare_price']); $('.price').text(val['price']); } $(function() { $('#colors input').live('change', function(){ changeColor(); }); $('#heights input').live('change', function(){ changeHeight(); }); $('#variants input').live('change', function(){ changeVariant(); }); changeColor(); }); {/literal} </script> а че он не работает? Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 12 декабря, 2015 Жалоба Поделиться Опубликовано 12 декабря, 2015 а че он не работает?А хрен его знает Может руки не с того места растут? Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 12 декабря, 2015 Жалоба Поделиться Опубликовано 12 декабря, 2015 а че он не работает? смотрите выше, человек сам просит код доработать, собственно поетому и не работает Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 12 декабря, 2015 Жалоба Поделиться Опубликовано 12 декабря, 2015 смотрите выше, человек сам просит код доработать, собственно поетому и не работает Код не работает по причине того, что человек просит его доработать?Какая необычная ситуация...Может, тогда человеку надо лишь отозвать просьбу о доработке? Глядишь, код и заработает... Цитата Ссылка на сообщение Поделиться на другие сайты
as564 Опубликовано 12 декабря, 2015 Жалоба Поделиться Опубликовано 12 декабря, 2015 Это и все умозаключение? тогда вы мастера ))))) Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 12 декабря, 2015 Жалоба Поделиться Опубликовано 12 декабря, 2015 Если Вы хотите, чтобы Вам починили, то надо не бросать кусок кода, как кость собаке, а давать данные максимально полные, как минимум URL страницы, где этот код не работает... Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.