Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

поиск только по модели товара


Recommended Posts

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

сейчас он ищет по названию . 

я ищу к примеру товар с кодом А 0001 он выдаёт все товары где есть 0001 и в конце списка то что мне нужно .

Мне надо чтобы если пользователь введёт А 0001 или А0001 выдавало только эти товары и ничего более

 

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

Link to post
Share on other sites

8 минут назад, chukcha сказал:

Где?

на самом сайте , не в админке

 

Link to post
Share on other sites

Этот модуль может

 

Скриншот 21.11.21_14.59.25.png

Link to post
Share on other sites

13 минут назад, hempua сказал:

Этот модуль может

 

Скриншот 21.11.21_14.59.25.png

Cпасибо ) прийму к сведению .

Link to post
Share on other sites

33 минуты назад, Yuorv сказал:

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

сейчас он ищет по названию . 

я ищу к примеру товар с кодом А 0001 он выдаёт все товары где есть 0001 и в конце списка то что мне нужно .

Мне надо чтобы если пользователь введёт А 0001 или А0001 выдавало только эти товары и ничего более

 

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

Так не стоит делать. Лучше добавить отдельный поиск именно по модели товара.

Но если всё же решите делать глобально, то можно поправить штатный запрос в модели товара.

В файле catalog/model/catalog/product.php

Вот это:

if (!empty($data['filter_name']) || !empty($data['filter_tag'])) {


Заменить на это:
 

if (!empty($data['filter_name'])) {
    $sql .= " AND LCASE(p.model) = '%" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "%'";
} else if (!empty($data['filter_tag'])) {

 

Заменить нужно в двух местах. Вхождение встречается два раза.

Правку привёл на примере OC3

Link to post
Share on other sites

Может есть какой-нибудь бесплатный модуль ?

 

Edited by Yuorv
Link to post
Share on other sites

 

1 час назад, mpn2005 сказал:

Так не стоит делать. Лучше добавить отдельный поиск именно по модели товара.

Но если всё же решите делать глобально, то можно поправить штатный запрос в модели товара.

В файле catalog/model/catalog/product.php

Вот это:


if (!empty($data['filter_name']) || !empty($data['filter_tag'])) {


Заменить на это:
 


if (!empty($data['filter_name'])) {
    $sql .= " AND LCASE(p.model) = '%" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "%'";
} else if (!empty($data['filter_tag'])) {

 

Заменить нужно в двух местах. Вхождение встречается два раза.

Правку привёл на примере OC3

ОС 2.3 перестал вообще работать поиск

Link to post
Share on other sites

Только что, Yuorv сказал:

ОС 2.3 перестал вообще работать поиск

Я писал ориентировочный код. Мог где-то опечататься.

Вы же не указывали версию, я привёл пример для OC3.

Link to post
Share on other sites
2 минуты назад, Yuorv сказал:

перестал вообще работать поиск

Как перестал? Выдаёт ошибку? Не ищет?

Похоже я должен быть заинтересован вашем вопросе. А вам оно и не надо вовсе.

 

Link to post
Share on other sites
$sql .= " AND LCASE(p.model) = '%" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "%'";

Вот тут я накосячил.

Надо вот так:

$sql .= " AND LCASE(p.model) LIKE '%" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "%'";

 

Link to post
Share on other sites
1 час назад, mpn2005 сказал:

Так не стоит делать. Лучше добавить отдельный поиск именно по модели товара.

Но если всё же решите делать глобально, то можно поправить штатный запрос в модели товара.

В файле catalog/model/catalog/product.php

Вот это:


if (!empty($data['filter_name']) || !empty($data['filter_tag'])) {


Заменить на это:
 


if (!empty($data['filter_name'])) {
    $sql .= " AND LCASE(p.model) = '%" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "%'";
} else if (!empty($data['filter_tag'])) {

 

Заменить нужно в двух местах. Вхождение встречается два раза.

Правку привёл на примере OC3

вот такая ошибка

 

Parse error: syntax error, unexpected 'if' (T_IF), expecting function (T_FUNCTION) or const (T_CONST) in /var/www/fastuser/data/www/benefistutu.com/system/storage/modification/catalog/model/catalog/product.php on line 309

Link to post
Share on other sites

1 минуту назад, Yuorv сказал:

Parse error: syntax error, unexpected 'if' (T_IF), expecting function (T_FUNCTION) or const (T_CONST) in /var/www/fastuser/data/www/benefistutu.com/system/storage/modification/catalog/model/catalog/product.php on line 309

Покажите, что в районе 309 строки в этом файле.

Link to post
Share on other sites
4 минуты назад, mpn2005 сказал:

Покажите, что в районе 309 строки в этом файле.

 

image.png

Link to post
Share on other sites

Вы что не видите, что ошибка не касается описанной правки?

image.thumb.png.81489a041b0422dc037f2150e6b25fe5.png

 

Отключите модификатор фильтра. Проверьте поиск, а потом уже дружите всё вместе.

  • +1 2
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.