Фильтрация товаров по параметрам

Тема в разделе "Хаки и модификации", создана пользователем toorr2p, 20.09.2011.

  1. toorr2p
    Offline

    toorr2p Недавно здесь

    Регистрация:
    04.09.2009
    Сообщения:
    37
    Симпатии:
    2
    Пол:
    Мужской
    Здравствуйте форумчане, помогите разобратся где изменить запрос SQL на выборку товаров по определенным параметрам.
    Ситуация следующая:
    1) Virtuemart V 1.1.9 stable

    2) В каталоге товаров сделал два типа товаров - "Рубашки" и "Галстуки", а также для каждого типа добавил параметры [скрин админки для типа "Рубашки"]:
    [​IMG]

    3)В БД создались две таблицы jos_vm_product_type_1 - "Рубашки"
    [​IMG]

    и jos_vm_product_type_2 - "Галстуки"
    http://s015.radikal.ru/i333/1109/79/8d99c7eacafc.png

    Наполнились эти таблицы после того как я к товарам добавил типы, тоесть отнес рубашки к типу "Рубашки" и галстуки к "Галстуки".

    Теперь в двух этих таблицах содержатся идентификаторы продуктов product_id и значения параметров для типа (напр Рубашки).

    Вопрос как делать выборку по этим таблицам, те выбирать product_id WHERE model=% AND rukav=%..., а затем полученный список ID товаров использовать для выборки из таблицы jos_vm_product

    А это сама страница с модулем фильтра http://berlot-nsk.mvip.ru/index.php?page=shop.browse&category_id=1&option=com_virtuemart&Itemid=5

    В каком файле и функции произвести изменения, и как это более правильно сделать? Я так пологаю это файлы administrator/components/com_virtuemart/html/shop_browse_queries.php и administrator/components/com_virtuemart/html/shop.browse.php
    Или я ошибаюсь?

    Спасибо!
     
  2.  
  3. Offline

    morph Пользователь

    Регистрация:
    05.04.2007
    Сообщения:
    158
    Симпатии:
    10
    Пол:
    Мужской
    http://joomlaforum.ru/index.php/topic,69642.0.html
    вам нужно стандартный поиск по типам вынести в модуль вот и все. выше описано как,думаю разберетесь,если что - пишите
     
  4. toorr2p
    Offline

    toorr2p Недавно здесь

    Регистрация:
    04.09.2009
    Сообщения:
    37
    Симпатии:
    2
    Пол:
    Мужской
    Спасибо, но мне нужно поля для выбора параметров выводить именно модулем вот в такой форме http://berlot-nsk.mvip.ru/index.php?page=shop.browse&category_id=1&option=com_virtuemart&Itemid=5
    Сделал вне все параметры передаваемые по POST как и с этой стандартной страницы поиска товаров по параметрам: http://berlot-nsk.mvip.ru/index.php...ameter_search_form&product_type_id=1&Itemid=5

    Сравнил передаваемые параметры по POST (FireBug)
    1) со страницы стандартного поиска
    Itemid 3
    option com_virtuemart
    page shop.browse
    price
    price_comp le
    product_type_1_clasp_comp find_in_set_all
    product_type_1_consistenc... find_in_set_all
    product_type_1_model[] Классическая
    product_type_1_model_comp find_in_set_all
    product_type_1_rukav_comp find_in_set_all
    product_type_1_silhouette... find_in_set_all
    product_type_1_texture_co... find_in_set_all
    product_type_id 1
    search Поиск

    1) и со страницы через мой модуль\форму
    Itemid 3
    option com_virtuemart
    page shop.browse
    price
    price_comp le
    product_type_1_clasp[]
    product_type_1_clasp_comp find_in_set_any
    product_type_1_consistenc...
    product_type_1_consistenc... find_in_set_any
    product_type_1_model[] Классическая
    product_type_1_model_comp find_in_set_any
    product_type_1_rukav[]
    product_type_1_rukav_comp find_in_set_any
    product_type_1_silhouette...
    product_type_1_silhouette... find_in_set_any
    product_type_1_texture[]
    product_type_1_texture_co... find_in_set_any
    product_type_id 1
    search Поиск

    Как видно передаются все теже параметры, но на выходе не выводится ни одного товара! Вот непойму в чем проблема((
     
    Последнее редактирование: 23.09.2011
  5. toorr2p
    Offline

    toorr2p Недавно здесь

    Регистрация:
    04.09.2009
    Сообщения:
    37
    Симпатии:
    2
    Пол:
    Мужской
    Выяснилось!
    При стандартном поиске http://berlot-nsk.mvip.ru/index.php?option=com_virtuemart&page=shop.parameter_search_form&product_type_id=1&Itemid=5
    НЕ ВЫБРАННЫЙ параметр не передается, тоесть передается только выбранный в виде массива product_type_1_model[] Классическая
    А при использовании формы моего модуля эти параметры всеравно передаются в виде пустых массивов(array([0]=>)).
    Поэтому в shop_browse_queries.php на Str 205 добавил проверку:

    Код (CODE):
    1. //Если значение параметра array и если первый индекс равен пустоте, обнуляем массив
    2. if(is_array($get_item_value)){
    3.  if($get_item_value[0]==''){
    4.   $get_item_value='';
    5.  }
    6. }

    И все заработало! Тоесть обнуляем пустые массивы параметров, и в следствии этого они не учитываются при поиске в SQL запросе на выборку!

    Всем спасибо, вроде проблема решена!
     
  6. Offline

    morph Пользователь

    Регистрация:
    05.04.2007
    Сообщения:
    158
    Симпатии:
    10
    Пол:
    Мужской

    там же написано как именно в модуль вывести. скопировал,вставил,назначил тип с настроек модуля, поправил 1 строчку. все - универсальный модуль подбора по параметрам типов,а далее вирт сам все сделает.

    уже года два продаю за 30$ кто хочет готовый вариант:).
    тынц
    все вариации одного модуля(слева на главной,первые две вкладки в отборе по авто- все вариации одного модуля с разными настройками.)
     
  7. varakuta
    Offline

    varakuta Недавно здесь

    Регистрация:
    21.05.2009
    Сообщения:
    268
    Симпатии:
    2
    Пол:
    Мужской
    дороговато 30баков (за объединение 3х подборов в один)
     
  8. Offline

    morph Пользователь

    Регистрация:
    05.04.2007
    Сообщения:
    158
    Симпатии:
    10
    Пол:
    Мужской

    причем сдесь обьединение трех подборов в один? там на первых двух вкладках один модуль про который писал как его делать, а на третьей воабще другой на аяксе (для подбора шин/дисков по марке авто) все модули писались,а не обьединялись в один. вкладки воабще дело десятое

    30$ за модуль выводящий форму подбора по любым параметрам(селект,мультиселект,текст,<=>= и т.п. - какой тип поля выбереш в настройках параметра типа,цена "от и до ") типа (который укажеш в админке в настройке модуля)

    30$ за то, кому лень проследовать инструкциям в том посте что написал и сделать свой такойже,затратив минут 15 и чуть подумать логически.
     
  9. Sedoy
    Offline

    Sedoy Пользователь

    Регистрация:
    26.09.2005
    Сообщения:
    39
    Симпатии:
    2
    Пол:
    Мужской
    >уже года два продаю за 30$ кто хочет готовый вариант

    1 насколько он отличается от _http://joomlaforum.ru/index.php/topic,111319.0.html ?

    2 фильтр выводит выборку в формате шаблона browse_Х.php или формирует свой интерфейс-шаблон, как в бесплатной версии по ссылке?

    3 фильтр работает только по типам или и по свойствам товаров и по позициям (дочерним) тоже?

    4 если у товара несколько значений параметров типа (он может быть белый, красный, зеленый и т.д. - множественность), то отрабатывает ли фильтр на все значения? (фришная версия вышеуказанного работает только если одно значение)

    сенкс
     
  10. Offline

    morph Пользователь

    Регистрация:
    05.04.2007
    Сообщения:
    158
    Симпатии:
    10
    Пол:
    Мужской
    Sedoy , видели стандартный поиск по типам в вирте (в главном модуле если включить "показывать поиск по параметрам параметры" то появиться ссылка на расширенный поиск, там ссылки на типы - нажимаеш и форма поиска по параметрам выбранного типа) вот я ПРОСТО вывел в МОДУЛЬ это дело для удобства. поиск - полный функционал поиска в вирте. естественно ищет по browse_Х.php и т.п.
    отличия...да такиеже как отличия стандартного поиска от того что по ссылке. ищет не олько по "выпадающий список" а также и по тексту,числу, мультивыбору и всем тем видам параметров типов что есть в вирте,естественно использует вывод виртовский.
    это просто модуль для стандартного поиска,это не компонент как ссылка выше,нету аяксов и прочих рюшичек.
    вывод дочек отрублен при поиске в вирте сознательно в файле shop_browse_queries.php разрабами. если надо закоментируйте строку условия.


    както так
     
  11. Sedoy
    Offline

    Sedoy Пользователь

    Регистрация:
    26.09.2005
    Сообщения:
    39
    Симпатии:
    2
    Пол:
    Мужской
    разве в расширенном есть поиск по свойствам?
    кста, у меня расширенный не работает нормально - есть типы, но он их не предлагает к выборке
    чем это вызвано не знаю
    возможно хаки повлияли
    мне нужно что б фильтр давал возможность выбирать как типы с их параметрами, так и свойства, что прописаны в самой карточке (причем там их два вида: просто свойства с параметрами и те что с позициями - дочками )
     
  12. Offline

    morph Пользователь

    Регистрация:
    05.04.2007
    Сообщения:
    158
    Симпатии:
    10
    Пол:
    Мужской
    нет только по параметрам типов.
    да по свойствам нелогично. свойство(3 вкладка список свойств-в простонародье атрибуты) это вып. список что выбирает покупатель при покупке т.о. искать по ним нелогично так как он еще не выбрал).

    а если свойства это как раз "свойства" тоесть отличительные особенности дочерних товаров и нужно при поиске выводить как раз дочерние товары с отбором по свойствам то нужно переписать несколько логику поиска вирта (выше описал что разрабы сознательно ограничили вывод списка товаров только родителями $where_clause[] = "`product_parent_id`=0 ";) воабще по сути логичнее выводить список дочерних в список товаров как в карточке(http://joomlaforum.ru/index.php/topic,84888.msg486743.html#msg486743),а при поиске по свойствам ограничивать этот список по найденным значениям
     
  13. Sedoy
    Offline

    Sedoy Пользователь

    Регистрация:
    26.09.2005
    Сообщения:
    39
    Симпатии:
    2
    Пол:
    Мужской
    ну.. тут вопрос дискуссионный
    предположим есть товар
    у него могут быть следующие свойства:

    заказ 10 дней = 1000р
    заказ 15 дней = 900р
    заказ 20 дней = 800р

    можно реализовать это через тип, дочернии товары, а можно просто через те свойства где как раз и применяется зависимость "свойство - цена"
    ведь она не зря так "выделена"
    почему по ним нет поиска не понятно

    скажем мне нужно найти товары со сроком заказа 15 дней
    просто собираюсь создать пул-заказ из 10 товаров у которых срок 15 дней, а не "перелистывать" кучу карточек для выявления таких по одной
     
  14. Offline

    morph Пользователь

    Регистрация:
    05.04.2007
    Сообщения:
    158
    Симпатии:
    10
    Пол:
    Мужской
    в вирте значения свойст товара храняться как "свойство,позиция[+цена];свойство1,позиция11[+цена];свойство2,позиция21[-цена]...." и так в каждом товаре произвольно. справочника свойств нет как такогого, посему чтобы было универсально не выйдет-неоткуда брать форму в поиск, если только настройках модуля просто руками не задавать список всех возможных для тебя значений и свойств, тогда можно искать по всем товарам есть ли в них такие вариации.
     
  15. Offline

    shaen Недавно здесь

    Регистрация:
    30.01.2010
    Сообщения:
    5
    Симпатии:
    0
    Пол:
    Женский
    а как можно приобрести у вас модуль, понравился что отдельно все по типам сразу выпадающими списками идет на http://www.1000x1000.ru/view_all_products_in_shop.html во всех местах
     
  16. Offline

    shaen Недавно здесь

    Регистрация:
    30.01.2010
    Сообщения:
    5
    Симпатии:
    0
    Пол:
    Женский
    morph, ваш модуль как на ссылке как можно приобрести ? а как установить расскажете ?
     

Поделиться этой страницей

Загрузка...