Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Recommended Posts

Добрый день, подскажите пожалуйста, можно ли изменить модуль поиска Ajax live search на 2.3.0 что бы автодополнение по артикулам работало так же, как и по наименованию товара? По-умолчанию автоподбор срабатывает в наименовании товаров, но для нахождения по артикулу нужно вбить артикул полностью или же проще другой поиск использовать?

Змінено користувачем DarthOlolo
Надіслати
Поділитися на інших сайтах


28 минут назад, DarthOlolo сказал:

Добрый день, подскажите пожалуйста, можно ли изменить модуль поиска Ajax live search на 2.3.0 что бы автодополнение по артикулам работало так же, как и по наименованию товара? По-умолчанию автоподбор срабатывает в наименовании товаров, но для нахождения по артикулу нужно вбить артикул полностью или же проще другой поиск использовать?

 https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=26240

 

*Support for OpenCart's native filter system (Product Name, Tag, Model, SKU, UPC, EAN, JAN, ISBN, MPN)

 

Искать по модели должен. Это же у вас как Артикул?

Надіслати
Поділитися на інших сайтах

Проще обратиться к автору модуля за доработками

Надіслати
Поділитися на інших сайтах

37 минут назад, Eldaeron сказал:

 https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=26240

 

*Support for OpenCart's native filter system (Product Name, Tag, Model, SKU, UPC, EAN, JAN, ISBN, MPN)

 

Искать по модели должен. Это же у вас как Артикул?

Да, верно, артикул, и по нему он по факту ищет, но нет автодополнения... Грубо говоря если в названии начинать вбивать "Теле" то в выпадающем списке предлогает товар со схожим названием, типо "Телефон 1", "Телефон 2", "Телефон 3", "Телефон 4" "Телевизор" и т.д. Но если вбивать артикул, то идет только полное совпадение - если есть товары с артикулами телефон-1, телефон-2, телефон-3 ... и начинать вбивать "телефон-" в списке подбора ничего не будет найдено, нужно только точно указывать артикул.

Надіслати
Поділитися на інших сайтах


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

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

 

Надіслати
Поділитися на інших сайтах


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

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


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

 

Не подскажите где именно запрос должен быть, в catalog\controller\product\live_search.php? Как то поиск туго идёт этот, в прочих модулях как то проще было.

Надіслати
Поділитися на інших сайтах


  • 4 months later...

недавно обновили концепцию артикула товара ( забита в модель) и приписали к цифровому коду буквенный индекс цветов (B,W,G,DG,ect) после чего живой поиск не воспринимает товары с новым индексом - при полном соответствии товар выдается в результатах, при частичном совпадении - нет.

В 2.1.0.2 попробовал заменить по рекомендации выше

Спойлер

if (!empty($data['filter_name'])) {
				$sql .= " OR LCASE(p.model) LIKE '%" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "%'";
				$sql .= " OR LCASE(p.sku) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'";
				$sql .= " OR LCASE(p.upc) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'";
				$sql .= " OR LCASE(p.ean) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'";
				$sql .= " OR LCASE(p.jan) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'";
				$sql .= " OR LCASE(p.isbn) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'";
				$sql .= " OR LCASE(p.mpn) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'";
			}

			$sql .= ")";

При замене строки в getProduct и в getTotalProducts при попытке поиска результат выдается нулевой и вываливается куча ошибок - и вот что ему конкретно не нравится (ошибки указывают на дополнение Фикс поиска) понять не могу.  

 

Notice: Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' LIKE '%5000523%' OR LCASE(p.sku) = '5000523' OR LCASE(p.upc) = '5000523' OR ' at line 1
Error No: 1064
SELECT COUNT(DISTINCT p.product_id) AS total FROM zdt_product p LEFT JOIN zdt_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN zdt_product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '1' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND ( pd.name LIKE '%5000523%' OR pd.tag LIKE '%5000523%' OR LCASE(p.model) LIKE '%5000523%' OR LCASE(p.sku) = '5000523' OR LCASE(p.upc) = '5000523' OR LCASE(p.ean) = '5000523' OR LCASE(p.jan) = '5000523' OR LCASE(p.isbn) = '5000523' OR LCASE(p.mpn) = '5000523') in /home/setsu131/public_html/system/library/db/mysqli.php on line 41Notice: Trying to get property of non-object in /home/setsu131/public_html/system/storage/modification/catalog/model/catalog/product.php on line 602Notice: Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' LIKE '%5000523%' OR LCASE(p.sku) = '5000523' OR LCASE(p.upc) = '5000523' OR ' at line 1
Error No: 1064
SELECT p.product_id, (SELECT AVG(rating) AS total FROM ***_review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT price FROM ***_product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '1' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW())) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM ***_product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '1' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special FROM ***_product p LEFT JOIN ***_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN ***_product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '1' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND ( pd.name LIKE '%5000523%' OR pd.tag LIKE '%5000523%' OR LCASE(p.model) LIKE '%5000523%' OR LCASE(p.sku) = '5000523' OR LCASE(p.upc) = '5000523' OR LCASE(p.ean) = '5000523' OR LCASE(p.jan) = '5000523' OR LCASE(p.isbn) = '5000523' OR LCASE(p.mpn) = '5000523') GROUP BY p.product_id ORDER BY p.sort_order ASC, LCASE(pd.name) ASC LIMIT 0,21 in /home/setsu131/public_html/system/library/db/mysqli.php on line 41Notice: Trying to get property of non-object in /home/setsu131/public_html/system/storage/modification/catalog/model/catalog/product.php on line 259Warning: Invalid argument supplied for foreach() in /home/setsu131/public_html/system/storage/modification/catalog/model/catalog/product.php on line 259

 

image.thumb.png.4152a4f723b7cf20aeeae1c729a69ed2.png

 

 

Надіслати
Поділитися на інших сайтах

12 часов назад, Setsuna сказал:

и вот что ему конкретно не нравится

 

если скопировать первый запрос в notepad++

то выяснится, что в нем между

OR LCASE(p.model)

и

LIKE '%5000523%'

кто-то умудрился рядом с пробелом впихнуть спецсимвол ;)

 

A2jNIZ9uSkSVZ17v8iWFwA.png

  • +1 1
Надіслати
Поділитися на інших сайтах

В 18.05.2018 в 11:07, AlexDW сказал:

 

если скопировать первый запрос в notepad++

то выяснится, что в нем между

OR LCASE(p.model)

и

LIKE '%5000523%'

кто-то умудрился рядом с пробелом впихнуть спецсимвол ;)

 

A2jNIZ9uSkSVZ17v8iWFwA.png

спасибо, ошибки ушли, правда с индексами так и неработает :(

Надіслати
Поділитися на інших сайтах

  • 5 months later...
  • 2 months later...

@AlexDW @thentru Здравствуйте. Модуль ищет по артикулу с автодополнением только в выплывающем окне. Если нажать на лупу или "показать все результаты", то поиск будет по точному артикулу. Запрос в model/catalog изменил. Подскажите, как исправить?

Надіслати
Поділитися на інших сайтах


  • 2 weeks later...
5 минут назад, sdaweb сказал:

Здравствуйте. Перестал работать модуль. Не выпадает товар вообще в поиске. Как можно исправить ситуацию?

 

так же, как и в случае с "перестала заводиться машина" - искать причину и устранять

Надіслати
Поділитися на інших сайтах

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

 

так же, как и в случае с "перестала заводиться машина" - искать причину и устранять

 

Это понятно ))) Вот только не знаю где ее искать и как устранять...

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.