Поиск по атрибутам

Тема в разделе "Общие вопросы", создана пользователем Андрей Быстров, 29 мар 2016.

  1. Андрей Быстров

    Андрей Быстров Пользователь

    Сообщения:
    88
    Симпатии:
    2
    Здравствуйте. В OpenCart 2.2.0.0 "Поиск" ищет только по категориям. Можно сделать так, чтобы искал в описании-независимо от галочки"искать в описании" и ещё по атрибутам товара?
     
    Последнее редактирование: 29 мар 2016
  2. Vlad

    Vlad Эксперт

    Сообщения:
    4.130
    Симпатии:
    999
    теоретически конечно можно, ну а практически, нужно делать.
    Если не забуду, попробую написать решение.
     
    KIVIn нравится это.
  3. KIVIn

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

    Сообщения:
    38
    Симпатии:
    5
    Да очень нужная вещь и желательно еще по данным (например по модели).
     
  4. Vlad

    Vlad Эксперт

    Сообщения:
    4.130
    Симпатии:
    999
    по модели и так ищет.
     
  5. KIVIn

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

    Сообщения:
    38
    Симпатии:
    5
    Проверил, поиск осуществляется только по названию товара и описанию. По модели поиск не идет :-(

    Немного уточню, сейчас поковырялся и понял что по модели поиск идет, но он идет только по строгому соответствию. Если модель Beelle Vera 240, то если задать точно такой же запрос то он найдет, а если убрать хоть один символ то нет. Сами понимаете что это не рабочая схема. Правильно было бы, чтоб поиск шел если я задам и просто Beelle и Vera 240 или Beelle Vera.
     
    Последнее редактирование: 31 мар 2016
  6. Андрей Быстров

    Андрей Быстров Пользователь

    Сообщения:
    88
    Симпатии:
    2
    Будет решение на такой поиск или ждать его в следующих версиях?
     
  7. Vlad

    Vlad Эксперт

    Сообщения:
    4.130
    Симпатии:
    999
    в файле \catalog\model\catalog\product.php

    находим первое совпадение
    Код:
                $sql .= " FROM " . DB_PREFIX . "product p";
            }
    и после вставляем
    PHP:
    $sql .= " LEFT JOIN " DB_PREFIX "product_attribute pa ON (p.product_id = pa.product_id)"////pa////

    далее находим
    Код:
    $sql .= " OR LCASE(p.mpn) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'";
    и после вставляем
    PHP:
    $sql .= " OR LCASE(pa.text) = '" $this->db->escape(utf8_strtolower($data['filter_name'])) . "'"////pa//////
    теперь при вводе в поиске значения атрибута, будет находить товары.
     
    Ален и KIVIn нравится это.
  8. Андрей Быстров

    Андрей Быстров Пользователь

    Сообщения:
    88
    Симпатии:
    2
    Спасибо, всё оК.
     
  9. Zhezkazganetcs

    Zhezkazganetcs Продвинутый пользователь

    Сообщения:
    819
    Симпатии:
    108
    чет не ищет по атрибутам
    Version 2.3.0.2 (rs.5)
    зашел в товар
    скопировал атрибут
    вставил в поиск и не нашел товар
     
  10. Ален

    Ален Эксперт

    Сообщения:
    2.056
    Симпатии:
    640
    значение атрибута вводите или сам атрибут? Модификаторы обновили? Точно проверили? Если все да.. то нужно потестировать опять. Если сделаете окмод, то будет проще..
     
  11. Zhezkazganetcs

    Zhezkazganetcs Продвинутый пользователь

    Сообщения:
    819
    Симпатии:
    108
    у меня есть масляный фильтр HU715/5X Mann Filter
    у него есть оригинальный номер в атрибутах 11427506677
    вот я забил 11427506677 и ничего не нашел
    это пока я не умею
    просто изменил как написано выше
     
  12. Zhezkazganetcs

    Zhezkazganetcs Продвинутый пользователь

    Сообщения:
    819
    Симпатии:
    108
  13. Андрей Быстров

    Андрей Быстров Пользователь

    Сообщения:
    88
    Симпатии:
    2
    А можно доработать код, чтобы в описании тоже искал, сам не соображу никак.
     
  14. Zhezkazganetcs

    Zhezkazganetcs Продвинутый пользователь

    Сообщения:
    819
    Симпатии:
    108
    а пошариться в настройках модификатора, не?
     
  15. Андрей Быстров

    Андрей Быстров Пользователь

    Сообщения:
    88
    Симпатии:
    2
    Там нет настроек поиска по описанию. Model, sku, ean, isbn, location, upc, jan, mpn, поиск по атрибутам, это всё что там есть.