Перейти к содержанию
Форум поддержки пользователей VamShop

Условие для фильтра


Рекомендуемые сообщения

По умолчанию товарам атрибуты не показываю в листинге товаров, чтобы не путать пользователя, потому что товары сгруппированы. http://kotri-shop.ru/category/shapki-sharfy.html

Когда выбираю в фильтре какие то настройки, то группировка у товаров убирается. И их становится море одинаковых.

Так вот хотелось бы либо оставить группировку как было, просто отбросить товары не имеющие таких характеристик. Либо как вариант в случае выбора фильтра отображать атрибуты всем этим товарам (тогда какое условие прописать в Микро шаблон subcategory-listing)

Заранее спасибо

Ссылка на сообщение
Поделиться на другие сайты
11 минут назад, allef сказал:

По умолчанию товарам атрибуты не показываю в листинге товаров, чтобы не путать пользователя, потому что товары сгруппированы. http://kotri-shop.ru/category/shapki-sharfy.html

Когда выбираю в фильтре какие то настройки, то группировка у товаров убирается. И их становится море одинаковых.

Так вот хотелось бы либо оставить группировку как было, просто отбросить товары не имеющие таких характеристик. Либо как вариант в случае выбора фильтра отображать атрибуты всем этим товарам (тогда какое условие прописать в Микро шаблон subcategory-listing)

Заранее спасибо

По идее, группировка не убирается ведь по умолчанию.

Может Вы какую-то правку внесли у себя в коде?!

Вот например в faq был совет - 

Да и в демке - http://demo2.vamshop.ru/category/smart-watches.html

Сгруппированный товар - 1 в списке.

 

Ссылка на сообщение
Поделиться на другие сайты

вот по ссылке http://kotri-shop.ru/category/shapki-sharfy.html

в левом столбце выберите что то в фильтре, размер например

и будет без группировки результат, пока не нажмешь сбросить фильтр

я ничего не правила, так было изначально

я только показ атрибутов у товаров убрала под названием

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

 

Ссылка на сообщение
Поделиться на другие сайты

Собственно задача в чем. Куда пишется информация что выбрано в фильтре. И как это проверить-я есть там инфа или нет

 

в зависимости от этого я хочу прописать условие-показывать атрибуты товара в листинге товаров или нет

 

Ссылка на сообщение
Поделиться на другие сайты
1 час назад, allef сказал:

вот по ссылке http://kotri-shop.ru/category/shapki-sharfy.html

в левом столбце выберите что то в фильтре, размер например

и будет без группировки результат, пока не нажмешь сбросить фильтр

я ничего не правила, так было изначально

я только показ атрибутов у товаров убрала под названием

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

 

Попробуйте в /app/Catalog/function.content_listing.php поменять (у меня этот код с 296 строки начинается):

            if(!empty($filter_list))
            {        
                $content_list_data_conditions = array_merge($content_list_data_conditions,array('Content.id' => $filtered_content));        
            } else {     
                $content_list_data_conditions = array_merge($content_list_data_conditions,array('OR' => array(
                   'Content.id_group' => 0
                  ,'Content.id_group is null'
                  ,'Content.is_group' => 1
                ))); 
            }

на:

            if(!empty($filter_list))
            {        
                $content_list_data_conditions = array_merge($content_list_data_conditions,array('Content.id' => $filtered_content',Content.id_group' => 0
                  ,'Content.id_group is null'
                  ,'Content.is_group' => 1));        
            } else {     
                $content_list_data_conditions = array_merge($content_list_data_conditions,array('OR' => array(
                   'Content.id_group' => 0
                  ,'Content.id_group is null'
                  ,'Content.is_group' => 1
                ))); 
            }

Примерно так.

т.е. условие добавить такое же как и для обычного вывода товара.

50 минут назад, allef сказал:

И еще в левой колонке фильтр выпадающим списком, а хотелось бы чекбоксами

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

или просто в Админке - Настройки - Шаблоны атрибутов.

Скопировать шаблон бокса Фильтр из типа checkbox в шаблон бокса Фильтр типа list

 

 

Если что, вывод может кэшироваться, так что после правок можон кэш сбрасывать на главной странице админки.

Ссылка на сообщение
Поделиться на другие сайты
 if(!empty($filter_list))
            {        
                $content_list_data_conditions = array_merge($content_list_data_conditions,array('Content.id' => $filtered_content,               					'Content.id_group' => 0
                  ,'Content.id_group is null'
                  ,'Content.is_group' => 1));     
            } else {     
                $content_list_data_conditions = array_merge($content_list_data_conditions,array('OR' => array(
                   'Content.id_group' => 0
                  ,'Content.id_group is null'
                  ,'Content.is_group' => 1
                ))); 
            }

Исправила опечатку (тому кто будет потом копировать)))

 

Спасибо, все сгруппировалось)))

Но теперь при том когда я задаю какой то параметр, скажем красный цвет, выдает-товары не найдены...

Ссылка на сообщение
Поделиться на другие сайты
8 минут назад, allef сказал:

 if(!empty($filter_list))
            {        
                $content_list_data_conditions = array_merge($content_list_data_conditions,array('Content.id' => $filtered_content,               					'Content.id_group' => 0
                  ,'Content.id_group is null'
                  ,'Content.is_group' => 1));     
            } else {     
                $content_list_data_conditions = array_merge($content_list_data_conditions,array('OR' => array(
                   'Content.id_group' => 0
                  ,'Content.id_group is null'
                  ,'Content.is_group' => 1
                ))); 
            }

Исправила опечатку (тому кто будет потом копировать)))

 

Спасибо, все сгруппировалось)))

Но теперь при том когда я задаю какой то параметр, скажем красный цвет, выдает-товары не найдены...

Попробуйте такое условие оставить:

 if(!empty($filter_list))
            {        
                $content_list_data_conditions = array_merge($content_list_data_conditions,array('Content.id' => $filtered_content,'Content.is_group' => 1));     
            } else {     
                $content_list_data_conditions = array_merge($content_list_data_conditions,array('OR' => array(
                   'Content.id_group' => 0
                  ,'Content.id_group is null'
                  ,'Content.is_group' => 1
                ))); 
            }

 

т.е. только is_group = 1 оставить.

По идее, это значит что выводятся тоьлко мастер (главные) товары.

Ссылка на сообщение
Поделиться на другие сайты

но если выводятся только мастер товары, а они не соответствую по цвету например, то ничего и не выводится..

Все логично.

В шаблоне листинга товаров просто условие поставить бы - типа если что то выбрано в фильтре-то атрибуты показываем, если в фильтр пуст то не показываем

И проблемы бы решилась...

 

Ссылка на сообщение
Поделиться на другие сайты
2 минуты назад, allef сказал:

но если выводятся только мастер товары, а они не соответствую по цвету например, то ничего и не выводится..

Все логично.

В шаблоне листинга товаров просто условие поставить бы - типа если что то выбрано в фильтре-то атрибуты показываем, если в фильтр пуст то не показываем

И проблемы бы решилась...

 

Ну да, Вы ж сами писали выше, что не хотите показывать зависимые товары, я Вам написал как убрать зависимые.

Получается, что либо так, либо так.

Ссылка на сообщение
Поделиться на другие сайты

Видимо я неправильно объяснила. В листинге товаров под названием идут атрибуты

Свитер

  • Пол: для мальчиков и девочек
  • Размер: 28-92
  • Цвет: белый с голубым

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

Просто свитер и все. А уж зашел он в товар и выбрал что ему надо.

И это я сделала - в шаблоне в микрошаблоне product-listing  в 54 строке  <div class="description">{attribute_list product_id=$node.id}</div> присвоив display:none

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

 

Поэтому надо какую то конструкцию типа:

if (хоть какой то параметр в фильтре выбран) { <div class="description">{attribute_list product_id=$node.id}</div> }

Ссылка на сообщение
Поделиться на другие сайты

Так а почему Вы не выводите attribute_list всем товарам?!

Там ведь как раз и будет видно, что это за товар.

По характеристикам.

Без всяких условий выводите всем товарам характеристики.

Какой-то тогда смысл в фильтрах если Вы всё равно скрываете вывод характеристик, по которым, собственно, идёт фильтрация.

Ссылка на сообщение
Поделиться на другие сайты

Вот пройдите по ссылке

http://kotri-shop.ru/category/Saraphan.html

Видим 4 сарафана. Самый первый

  • Пол: для девочек
  • Размер: 26-86
  • Цвет: льняной с синим

То есть если мамаша имеет ребенка размера 32-110 она в этот товар не зайдет. Потому что не знает что там внутри куча цветов и размеров.

Вот поэтому я и не хочу ей показывать тут атрибуты.

Ссылка на сообщение
Поделиться на другие сайты
39 минут назад, allef сказал:

Вот пройдите по ссылке

http://kotri-shop.ru/category/Saraphan.html

Видим 4 сарафана. Самый первый

  • Пол: для девочек
  • Размер: 26-86
  • Цвет: льняной с синим

То есть если мамаша имеет ребенка размера 32-110 она в этот товар не зайдет. Потому что не знает что там внутри куча цветов и размеров.

Вот поэтому я и не хочу ей показывать тут атрибуты.

Понятно.

Вообще есть метка {filter_active_name}, которая как раз выводит название текущего фильтра если он задан.

Её можно использовать для того что б задать условие.

т.е. в Админке - Оформление - Микро-шаблона - product-listing меняйте:

<div class="description">{attribute_list product_id=$node.id}</div>

на:

{if {filter_active_name}}<div class="description">{attribute_list product_id=$node.id}</div>{/if}

Тогда, по идее, Вы получите то, что хотите, если я Вас правильно понял.

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

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...