Не зарегистрирован
Вход
Забыли пароль?
Регистрация
Подписаться
Сэкономьте время — перед вопросом на форуме узнайте, как найти ответ быстрее
По техническим проблемам необходимо обращаться в Консультационный центр

Поиск по форуму: 

Приглашаем в блог Amiro.CMS. Регулярные обзоры, опыт, решения, практикумы.

Форум  ->   Интернет Магазин  ->  Как задать одному товару несколько размеров

Вопросы по настройке магазина, каталога.

Добавлено: 01.02.12 15:41:18 #1



Регистрация: 01.06.11
Сообщений: 8


Обратиться по имени

У одного товара есть несколько размеров. Например, куртка. Размеры - 42, 44, 46. Как сделать, чтобы в карточке товара покупатель мог выбрать нужный размер из списка?



Добавлено: 06.02.12 16:29:52 #2



Регистрация:


Обратиться по имени

Для этого возможно использовать подвиды.

Подвиды - это свойства товаров, которые позволяют покупать один товар с какими-либо различными характеристиками(к примеру, товары с различными цветами, как это осуществлено на демо-сайте редакции "бизнес", для категории одежды: http://business.amiro.ru/katalog/internet-magazin/dlja-progulok/odezhda/futbolki/futbolka-odnotonnaja ). При этом становится невозможно купить товар просто так - покупка возможна только подвида товара.
Свойства создаются и редактируются на странице "описания свойств"(Каталог товаров - Наборы свойств - Описания свойств). Подробнее о работе со свойствами вы можете узнать из документации на нашем сайте, по адресу: http://manual.amiro.ru/doc/katalog-tovarov/opisanie-modulej-katalog-tovarov/nabory-svojstv/nabory-svojstv

так же, аналогичная инструкция по заданию подвидов описана в документации на нашем сайте: http://manual.amiro.ru/faq#q531

Далее, содержимое(значение) этих свойств редактируется на странице редактирования товара.



Добавлено: 06.02.12 18:07:13 #3



Регистрация: 01.06.11
Сообщений: 8


Обратиться по имени

Petrov.S, спасибо. Подвиды созданы, но они выводятся в виде таблицы, из которой уже можно добавлять в корзину. А где задается вид вывода подвидов? Чтобы они выводились не в виде таблицы, а как в вашем примере, выбор из выпадающего списка?



Добавлено: 06.02.12 20:28:10 #4

Партнер


Регистрация: 22.02.09
Сообщений: 472


Обратиться по имени

Вид вывода подвидов задается в шаблоне _eshop_item_list.tpl



Добавлено: 07.02.12 12:27:16 #5



Регистрация:


Обратиться по имени

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


Для этого необходимо использовать свойства-подвиды без учёта остатков(кнопка "Не учитывать остатки" на странице редактирования свойств). Эта кнопка переключает режим, т.е. включает выпадающий список по всем значениям из справочника, который используется в свойстве - любая комбинация значений(а не только тех, которые указаны при редактировании подвидов) без учета остатков подвидов. При учёте остатков - список с доступными комбинациями(редактирование подвидов) в виде таблицы.

Для того, что бы не использовать в подвидах остатки и выводить их в виде выпадающих списков, необходимо у соответствующих свойств задать параметр "Не учитывать остатки:", а затем, в наборе свойств с этими подвидами в параметре "Кол-во повторов блока подвидов в фильтре:" указать значение "1".


Так же, возможен вариант с переработкой стандартного списка подвидов, как и сообщил Evgeney S - при помощи редактирования сетов, отвечающих за вывод подвидов. Пример такой доработки в шаблоне есть на нашем демо-сайте редакции "Бизнес": http://business.amiro.ru/katalog/internet-magazin/dlja-progulok/odezhda/futbolki/futbolka-odnotonnaja



Добавлено: 09.02.12 12:23:35 #6



Регистрация: 01.06.11
Сообщений: 8


Обратиться по имени
Добавлено: 13.02.12 11:26:29 #7



Регистрация: 13.02.12
Сообщений: 15


Обратиться по имени

Petrov.S:


Так же, возможен вариант с переработкой стандартного списка подвидов, как и сообщил Evgeney S - при помощи редактирования сетов, отвечающих за вывод подвидов. [/URL]


Добрый день!
Пожалуйста, напишите подробно, как редактировать в шаблоне!



Добавлено: 13.02.12 16:38:11 #8




Регистрация: 14.07.08
Сообщений: 1126


Обратиться по имени

Amani, вам необходимо открыть шаблон _eshop_item_list.tpl от редакции "Бизнес". например, на демо-сайте, только учтите, что на этом сайте работают и другие пользователи, которые могут править шаблоны, поэтому шаблоны могут не соответствовать дефолтным. На вашем сайте тоже необходимо открыть данный шаблон, перед правками обязательно сделайте резервную копию. За вывод подвидов отвечают сеты и переменные с приставкой prop, вот их и нужно заменить в вашем шаблоне, например, ваш сет:
<!--#set var="itemD_property_data" value="<table width="100%" border=0 class=tbl cellspacing=0 cellpadding=0>##data##</table>"-->
заменить на
<!--#set var="itemD_property_data" value="
<script>
    var aPropData = Array(##data## '');
    function propertyValuesSet(propNum, aValues){
        var oProperty = AMI.find('#itemD_property_'+propNum);
        var sValue;
        if(oProperty.selectedIndex > 0 ){
            sValue = oProperty.options[oProperty.selectedIndex].value;
        }
        for(var i = oProperty.options.length - 1; i >= 0; i--){
            oProperty.options.remove(i);
        }
        for(var i = 0; i < aValues.length; i++){
            oProperty.options[oProperty.options.length] = new Option(aValues[i], aValues[i]);
            if(sValue == aValues[i]){
                oProperty.selectedIndex = i;
            }
        }
        return true;
    }
    
    function inArray(aArray, sValue){
        for(var i = 0; i < aArray.length; i++){
            if(aArray[i] == sValue){
                return true;
            }
        }
        return false;
    }
    
    function getAllowedPropertyValues(getPropNum, propNum, propValue){
        var aValues = Array();
        for(var i = 1; i < aPropData.length - 1; i++){
            if(!inArray(aValues, aPropData[i][propNum])){
                if(getPropNum == propNum ){
                    aValues[aValues.length] = aPropData[i][getPropNum];
                }else if(aPropData[i][propNum] == propValue){
                    aValues[aValues.length] = aPropData[i][getPropNum];
                }
            }
        }
        return aValues;
    }
    function setProperty(propNum, propValue){
        var aValues;
        if(aPropData && ( aPropData.length > 1)){
            if(!propNum) propNum = 0;
            if(!propValue) propValue = aPropData[1][propNum];
           
            for(var i = 1; i < aPropData.length; i++){
                if(aPropData[i][propNum] == propValue){
                    for(var j = 0; j < aPropData[i].length - 2; j++){
                        aValues = getAllowedPropertyValues(j, propNum, propValue);
                        propertyValuesSet(j, aValues);
                    }
                    var bFound = true;
                    for(var j = 0; j < aPropData[i].length - 2; j++){
                        var oProperty = AMI.find('#itemD_property_'+j);
                        if (oProperty.value != aPropData[i][j]){
                            bFound = false;
                        }
                    }
                    if(bFound){
                        AMI.find('.base_price')[0].innerHTML = aPropData[i][aPropData[i].length - 2];
                    }
                }
            }
        }
    }

function prepareProperties(){
        if(aPropData && (aPropData.length > 1)){
            for(var i=0; i<aPropData[0].length - 2; i++){
                document.write('<tr><td class="itemD_property_name">'+aPropData[0][i]+':</td> <td class="itemD_property"><select id="itemD_property_' + i + '" name=property_' + i + ' onchange="setProperty(' + i + ', this.value)"></select></td></tr>');
            }
        }
        
    }
    prepareProperties();
    //addOnLoadEvent( function(){ setProperty(); } );
</script>
"-->

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



Разработка мобильной версии сайта с сохранением дизайна и позиций в поиске
Добавлено: 13.02.12 20:25:00 #9



Регистрация: 13.02.12
Сообщений: 15


Обратиться по имени

Дмитрий alleanza.ru:
После завершения всех работ у вас должны появиться выпадающие списки на сайте, которые можно расположить согласно вашей верстке.


Спасибо большое, сделала как вы сказали, но получилось вот так http://hijabs.wmsite.ru/katalog/products/uglovye/alfa-z

что же я сделала не так?



Добавлено: 13.02.12 20:33:59 #10




Регистрация: 14.07.08
Сообщений: 1126


Обратиться по имени

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



Разработка мобильной версии сайта с сохранением дизайна и позиций в поиске
Добавлено: 16.02.12 13:51:50 #11



Регистрация: 01.06.11
Сообщений: 8


Обратиться по имени

А есть ли возможность отобразить фильтр (размеры курток) непосредственно в сете itemD_detail.
Вставляю переменную ##filter## в этот сет, но она ничего не выводит.
По дизайну предполагается что выбор размера и кнопка добавить в корзину находятся непосредственно в блоке с информацией о товаре.
Спасибо!



Добавлено: 16.02.12 17:06:55 #12



Регистрация: 01.06.11
Сообщений: 8


Обратиться по имени

И еще такой вопрос про список размеров. Сейчас по умолчанию при открытии карточки объекта выбран пункт ВСЕ (имеется в виду все размеры).
Как избавится от этого пункта?
Нужно чтобы по умолчанию отображался любой размер из списка.



Добавлено: 22.02.12 10:41:58 #13



Регистрация:


Обратиться по имени

Кирилл (simfosoft):
А есть ли возможность отобразить фильтр (размеры курток) непосредственно в сете itemD_detail.
Вставляю переменную ##filter## в этот сет, но она ничего не выводит.
По дизайну предполагается что выбор размера и кнопка добавить в корзину находятся непосредственно в блоке с информацией о товаре.
Спасибо!


Для карточки товара эту переменную необходимо указывать в сете var="body_itemD"(по-умолчанию она там уже есть).

Для того, что бы в карточке товара появился фильтр, необходимо в используемом наборе свойств указать параметру "Кол-во повторов блока подвидов в фильтре:" значение "1".

Кирилл (simfosoft):
И еще такой вопрос про список размеров. Сейчас по умолчанию при открытии карточки объекта выбран пункт ВСЕ (имеется в виду все размеры).
Как избавится от этого пункта?
Нужно чтобы по умолчанию отображался любой размер из списка.

Для того, что бы скрыть из фильтра пункты с определёнными названиями, нужно в шаблоне filter_form.tpl, в сетах отвечающих за вывод каждого пункта свойства задать проверку по значению переменной caption, к примеру:
Для того, что бы в выпадающем списке убрать пункт "Все", зададим в сете var="field_select_row" проверку ##IF(caption != "Все" )##, т.е. сет будет выглядеть так:
##IF(caption != "Все" )##<option value="##value##" ##selected##>##caption## </option>##endif##



Добавлено: 27.02.12 15:34:32 #14



Регистрация: 01.06.11
Сообщений: 8


Обратиться по имени

Для карточки товара эту переменную необходимо указывать в сете var="body_itemD"(по-умолчанию она там уже есть).

Для того, что бы в карточке товара появился фильтр, необходимо в используемом наборе свойств указать параметру "Кол-во повторов блока подвидов в фильтре:" значение "1".


Вы не поняли. Мне необходимо напечатать фильтр (выбор размера) не над ##item_detail## и не под ним, а в нем.
Поясню:
##item_detail## это текстовая информация о товаре и изображение.
Текст находится в блоке left, картинка в блоке right. Так же по дизайну в блоке left после текста и печатается фильтр. Соответственно текста больше - фильтр ниже.

По второму вопросу - помогло. Спасибо большое!



Добавлено: 01.10.12 14:36:13 #15



Регистрация: 27.09.12
Сообщений: 8


Обратиться по имени

Добрый день!
Пожалуйста, подскажите, как переместить выпадающие списки с выбором размера и цвета и окно "Добавить в корзину" непосредственно под описание товара.
Где и что конкретно для этого нужно сделать?
Буду очень благодарна любому ответу





Создать новую тему

Всего тем: 6659
Всего сообщений: 27847
Всего зарегистрированных пользователей: 53143
Последний зарегистрированный пользователь: maksimkrutoy