stream3k Posted July 8, 2011 Share Posted July 8, 2011 привет всем нужна вот такая помощь нужно добавить в расширенный поиск поиск по артикулу SKU на поиск плиз не направлять перешерстил даже иностранные ффорумы но решения адекватного не нашел подмена типа мол поставьте вмето чего то поиск по артикулу не интересна нужен именно поиск по артикулу в добавок к существующему расширенному поиску думаю интересно будет не только мне многие ищут но пока что как я понял без результатов помогите плиз кто чем может в решении этой проблемы Link to comment Share on other sites More sharing options...
Yesvik Posted July 8, 2011 Share Posted July 8, 2011 Дело в том что SKU как правило предназначен для внутреннего использования, так же как и Расположение, поэтому ты ничего и не нашел ни у нас ни у буржуев. А проблема по большому счету яйца выеденного не стоит и решается элементарно - добавлением условия в SQL-запрос. Уточни задачу и я тебе скажу что и где подправить. Link to comment Share on other sites More sharing options... stream3k Posted July 8, 2011 Author Share Posted July 8, 2011 вот мой сайт http://mebelizstekla.in.ua/ прикладываю скриншот еще того что и где мне нужно вот на скриншоте в расширеном поиске можно поставить галочку поиск по описанию и поиск по модели. для меня идеальным было бы добавить еще одну галочку поиск по коду товара (артикулу SKU везде по разному это называют) вот собственно то что меня интересует у меня в магазине каждому товару присвоен уникальный артикул вот поиск по ним мне нужно сделать для удобства когда клиент звонит он говорит код товара и я с легкостью смогу его найти ибо когда клиент говорит модель то постоянно путают то цифры то буквы. вот собственно такая задача стоит если сможете помогите пожалуйста смотрел я на разных форумах люди такое тоже ищут но решения не нашел но думаю тема актуальна. заранее огромное спасибо Link to comment Share on other sites More sharing options... Yesvik Posted July 8, 2011 Share Posted July 8, 2011 Тебе как сделать? что бы всё по умняку, с красивым кодом... или что-бы править было проще? Link to comment Share on other sites More sharing options... Yesvik Posted July 9, 2011 Share Posted July 9, 2011 Это по умняку... Сначала правим вьювер. Открываем файл catalog/view/theme/default/template/product/search.tpl Ищем <tr> <td colspan="2"><?php if ($model) { ?> <input type="checkbox" name="model" id="model" checked="checked" /> <?php } else { ?> <input type="checkbox" name="model" id="model" /> <?php } ?> <?php echo $entry_model; ?></td> </tr> и после найденного добавляем <tr> <td colspan="2"><?php if ($sku) { ?> <input type="checkbox" name="sku" id="sku" checked="checked" /> <?php } else { ?> <input type="checkbox" name="sku" id="sku" /> <?php } ?> <?php echo $entry_sku; ?></td> </tr> почти в самом низу файла ищем if ($('#model').attr('checked')) { url += '&model=1'; } и после найденного добавляем if ($('#sku').attr('checked')) { url += '&sku=1'; } Так как мы добавили языковую переменную $entry_sku - добавим её в файл локализации... Открываем файл catalog/language/russian/product/search.php В конце файла, перед строкой ?> добавляем $_['entry_sku'] = 'Поиск по артикулу'; Вьювер готов, правим контроллер Открываем файл catalog/controller/product/search.php Ищем if (isset($this->request->get['model'])) { $url .= '&model=' . $this->request->get['model']; } и после найденного добавляем if (isset($this->request->get['sku'])) { $url .= '&sku=' . $this->request->get['sku']; } Ищем $this->data['entry_model'] = $this->language->get('entry_model'); и после найденного добавляем $this->data['entry_sku'] = $this->language->get('entry_sku'); Ищем if (isset($this->request->get['model'])) { $this->data['model'] = $this->request->get['model']; } else { $this->data['model'] = ''; } и после найденного добавляем if (isset($this->request->get['sku'])) { $this->data['sku'] = $this->request->get['sku']; } else { $this->data['sku'] = ''; } Ищем $product_total = $this->model_catalog_product->getTotalProductsByKeyword( $this->request->get['keyword'], isset($this->request->get['category_id']) ? $this->request->get['category_id'] : '', isset($this->request->get['description']) ? $this->request->get['description'] : '', isset($this->request->get['model']) ? $this->request->get['model'] : '');и изменяем так $product_total = $this->model_catalog_product->getTotalProductsByKeyword( $this->request->get['keyword'], isset($this->request->get['category_id']) ? $this->request->get['category_id'] : '', isset($this->request->get['description']) ? $this->request->get['description'] : '', isset($this->request->get['model']) ? $this->request->get['model'] : '', isset($this->request->get['sku']) ? $this->request->get['sku'] : ''); Ищем if (isset($this->request->get['model'])) { $url .= '&model=' . $this->request->get['model']; } и после найденного добавляем if (isset($this->request->get['sku'])) { $url .= '&sku=' . $this->request->get['sku']; } Ищем $results = $this->model_catalog_product->getProductsByKeyword( $this->request->get['keyword'], isset($this->request->get['category_id']) ? $this->request->get['category_id'] : '', isset($this->request->get['description']) ? $this->request->get['description'] : '', isset($this->request->get['model']) ? $this->request->get['model'] : '', $sort, $order, ($page - 1) * $this->config->get('config_catalog_limit'), $this->config->get('config_catalog_limit'));и изменяем так $results = $this->model_catalog_product->getProductsByKeyword( $this->request->get['keyword'], isset($this->request->get['category_id']) ? $this->request->get['category_id'] : '', isset($this->request->get['description']) ? $this->request->get['description'] : '', isset($this->request->get['model']) ? $this->request->get['model'] : '', isset($this->request->get['sku']) ? $this->request->get['sku'] : '', $sort, $order, ($page - 1) * $this->config->get('config_catalog_limit'), $this->config->get('config_catalog_limit')); Ищем if (isset($this->request->get['model'])) { $url .= '&model=' . $this->request->get['model']; } и после найденного добавляем if (isset($this->request->get['sku'])) { $url .= '&sku=' . $this->request->get['sku']; } Ищем if (isset($this->request->get['model'])) { $url .= '&model=' . $this->request->get['model']; } и после найденного добавляем if (isset($this->request->get['sku'])) { $url .= '&sku=' . $this->request->get['sku']; } Если обратил внимание - несколько раз ищем и правим одно и то-же... Это я все правки указал в порядке следования.С контроллером закончили - переходим к модели. Открываем файл catalog/model/catalog/product.php Ищем public function getProductsByKeyword($keyword, $category_id = 0, $description = FALSE, $model = FALSE, $sort = 'p.sort_order', $order = 'ASC', $start = 0, $limit = 20) {и изменяем так public function getProductsByKeyword($keyword, $category_id = 0, $description = FALSE, $model = FALSE, $sku = FALSE, $sort = 'p.sort_order', $order = 'ASC', $start = 0, $limit = 20) { Ищем if (!$description) { $sql .= " AND (pd.name LIKE '%" . $this->db->escape($keyword) . "%'"; } else { $sql .= " AND (pd.name LIKE '%" . $this->db->escape($keyword) . "%' OR pd.description LIKE '%" . $this->db->escape($keyword) . "%'"; } if (!$model) { $sql .= ")"; } else { $sql .= " OR p.model LIKE '%" . $this->db->escape($keyword) . "%')"; } и изменяем так $sql .= " AND (pd.name LIKE '%" . $this->db->escape($keyword) . "%'"; if ($description) { $sql .= " OR pd.description LIKE '%" . $this->db->escape($keyword) . "%'"; } if ($model) { $sql .= " OR p.model LIKE '%" . $this->db->escape($keyword) . "%'"; } if ($sku) { $sql .= " OR p.sku LIKE '" . $this->db->escape($keyword) . "%'"; } $sql .= ")"; Ищем public function getTotalProductsByKeyword($keyword, $category_id = 0, $description = FALSE, $model = FALSE) {и изменяем так public function getTotalProductsByKeyword($keyword, $category_id = 0, $description = FALSE, $model = FALSE, $sku = FALSE) { Ищем if (!$description) { $sql .= " AND (pd.name LIKE '%" . $this->db->escape($keyword) . "%'"; } else { $sql .= " AND (pd.name LIKE '%" . $this->db->escape($keyword) . "%' OR pd.description LIKE '%" . $this->db->escape($keyword) . "%'"; } if (!$model) { $sql .= ")"; } else { $sql .= " OR p.model LIKE '%" . $this->db->escape($keyword) . "%')"; } и изменяем так $sql .= " AND (pd.name LIKE '%" . $this->db->escape($keyword) . "%'"; if ($description) { $sql .= " OR pd.description LIKE '%" . $this->db->escape($keyword) . "%'"; } if ($model) { $sql .= " OR p.model LIKE '%" . $this->db->escape($keyword) . "%'"; } if ($sku) { $sql .= " OR p.sku LIKE '" . $this->db->escape($keyword) . "%'"; } $sql .= ")"; Всё. 6 Link to comment Share on other sites More sharing options... Yesvik Posted July 9, 2011 Share Posted July 9, 2011 Самый простой вариант... Всегда ищет по Наименованию и по SKU, а по Описанию и по Модели - в соответствии с чекбоксами. Для уменьшения промахов ищется только точное совпадение SKU, в варианте "по умняку" - ищет SKU которые начинаются с введённой поисковой фразы Открываем файл catalog/model/catalog/product.php Ищем в двух местах if (!$model) { $sql .= ")"; } else { $sql .= " OR p.model LIKE '%" . $this->db->escape($keyword) . "%')"; } и изменяем в двух местах так if (!$model) { $sql .= " OR p.sku = '" . $this->db->escape($keyword) . "')"; } else { $sql .= " OR p.model LIKE '%" . $this->db->escape($keyword) . "%' OR p.sku = '" . $this->db->escape($keyword) . "')"; } Всё. 4 Link to comment Share on other sites More sharing options... rider76 Posted July 9, 2011 Share Posted July 9, 2011 Большое спасибо, очень полезное решение. 1 Link to comment Share on other sites More sharing options... stream3k Posted July 9, 2011 Author Share Posted July 9, 2011 все действительно супер огромное вам спасибо и плюс вам искал решение и вы мне очень помогли Link to comment Share on other sites More sharing options... 3 months later... copypaste Posted November 6, 2011 Share Posted November 6, 2011 Добрый день. Вот тоже самое бы на 1.5.1.1 Во вьювере таких конструкций уже нет. Link to comment Share on other sites More sharing options... snastik Posted November 14, 2011 Share Posted November 14, 2011 изумительно работает как всегда спасибо Yesvik единственно в модели сделал вот так $sql .= " AND (pd.name LIKE '%" . $this->db->escape($keyword) . "%'"; $sql .= " OR p.sku LIKE '" . $this->db->escape($keyword) . "%'"; if ($description) { $sql .= " OR pd.description LIKE '%" . $this->db->escape($keyword) . "%'"; } if ($model) { $sql .= " OR p.model LIKE '%" . $this->db->escape($keyword) . "%'"; } if ($inventorynumber) { $sql .= " OR p.sku LIKE '" . $this->db->escape($keyword) . "%'"; } $sql .= ")"; после чего начало искать по части кода товара и из обычного поиска и из расширенного не знаю чем мне это грозит но работает :-) Link to comment Share on other sites More sharing options... rb2 Posted November 14, 2011 Share Posted November 14, 2011 Вот тоже самое бы на 1.5.1.1 Во вьювере таких конструкций уже нет. Я для 1.5.1.{1,2,3} описывал поиск по SKU Link to comment Share on other sites More sharing options... copypaste Posted November 15, 2011 Share Posted November 15, 2011 Я для 1.5.1.{1,2,3} описывал поиск по SKUК сожалению, очень запутано и непонятно описали.Кто-то может помочь с более понятной инструкцией? Спасибо. Link to comment Share on other sites More sharing options... rb2 Posted November 15, 2011 Share Posted November 15, 2011 К сожалению, очень запутано и непонятно описали. Кто-то может помочь с более понятной инструкцией? Спасибо. Красным цветом и "-" отмечено, что надо убрать, зелёным и "+" то, что добавлено. Имена изменяемых файлов можно увидеть в строках с "---/+++". До и после изменений показаны 3-5 строк для облегчения поиска правильного места. Здешние понятные описания отличаются только тем, что вместо "-" пишут словами "найдите вот это", а вместо "+" -- "замените на это". В каких файлах искать - тоже видно. По аналогии. Красненькое и зелененькое. У меня ко всему прочему ещё и номера строк видны, по ним дополнительно можно сориентироваться в большом файле. Что конкретно непонятно - объясните, возможно я смогу сделать подсказку понятней. Link to comment Share on other sites More sharing options... copypaste Posted November 15, 2011 Share Posted November 15, 2011 Вот к примеру Имена изменяемых файлов можно увидеть в строках с "---/+++".--- a/public_html/catalog/model/catalog/product.php+++ b/public_html/catalog/model/catalog/product.php Я не очень понимаю смысла. Один и тот же файл. Или тут имеется в виду, что в одном и том же файле, и удаляются и добавляются строки, то это только в заблуждение вводит? Вот это откуда строчка? @@ -106,10 +106,12 @@ class ModelCatalogProduct extends Model { В целом, я все сделал. Спасибо большое, все ищет! Link to comment Share on other sites More sharing options... oae Posted November 16, 2011 Share Posted November 16, 2011 Подскажите. Когда делаю поиск по SKU поиск начинает тормозить. Без него не тормозит. Как быть??? Буду очень благодарен. Link to comment Share on other sites More sharing options... rb2 Posted November 17, 2011 Share Posted November 17, 2011 oae, добавьте индекс по этому полю в БД: ALTER TABLE `opencart_product` ADD INDEX ( `sku` ) Вместо "opencart_" свой префикс поставьте Link to comment Share on other sites More sharing options... oae Posted November 17, 2011 Share Posted November 17, 2011 oae, добавьте индекс по этому полю в БД: ALTER TABLE `opencart_product` ADD INDEX ( `sku` ) Вместо "opencart_" свой префикс поставьте Спасибо за подсказку но это не помогло. Если оставляешь только по полю name то ищет 1 сек. Если оставляешь по полю sku ищет 4-5 сек. Индекс добавил тоже самое. Если делаешь и по тому и потому полю ищет тоже 4-5 сек. что с индексом что без. не зависимо от того что ввожу в поле поиск. :( Помогите!!!! Вторую ночь не сплю а сделать не могу. Link to comment Share on other sites More sharing options... 5 months later... alkrav Posted May 2, 2012 Share Posted May 2, 2012 В общем есть простое решение через VQmod. Я опубликовал его тут: Поиск по параметрам SKU, UPC и модели. Link to comment Share on other sites More sharing options... 11 months later... uraaa Posted April 16, 2013 Share Posted April 16, 2013 Нужен отдельный модуль поиска, только по артикулу. Подскажите, как можно реализовать? Link to comment Share on other sites More sharing options... uraaa Posted April 22, 2013 Share Posted April 22, 2013 Нужен отдельный модуль поиска, только по артикулу. Подскажите, как можно реализовать? Ау, есть кто живой? Link to comment Share on other sites More sharing options... 1 month later... uraaa Posted May 24, 2013 Share Posted May 24, 2013 Нужен отдельный модуль поиска, только по артикулу. Подскажите, как можно реализовать? Если такие сложности с отдельным, может проще подкорректировать стандартный модуль, подскажите где копать... Link to comment Share on other sites More sharing options... 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 Share More sharing options... Followers 0 Go to topic listing Similar Content Не работает поиск By Zah, March 23 15 replies 164 views Zah March 23 Помощь! By Asp1r1n, February 9 0 replies 166 views Asp1r1n February 9 Фильтруйте помощь 1 2 By Etegro, October 11, 2022 49 comments 2,066 views mario512 February 25 Модуль поиска By The_KriptoniT, February 22 2 replies 149 views 100napb February 22 Помощь по Simple By Asp1r1n, February 11 1 reply 243 views WarStyle February 11 Recently Browsing 0 members No registered users viewing this page. Последние темы Последние дополнения Последние новости All Activity Home Поддержка и ответы на вопросы Модули и дополнения Помощь нужен поиск по SKU артиклу Покупателям Оплата дополнений физическими лицами Оплата дополнений юридическими лицами Политика возвратов Разработчикам Регламент размещения дополнений Регламент продаж и поддержки дополнений Виртуальный аккаунт автора Политика продвижения объявлений API каталога дополнений Урегулирование споров по авторским правам Полезная информация Публичная оферта Политика возвратов Политика конфиденциальности Платежная политика Политика Передачи Персональных Данных Политика прозрачности Последние дополнения Alta — тема для админ панели By impulze100500 Sorting modules in layout Drag&Drop By markimax Additional services for SAP modules By S_A_P Opencart ChatGPT - artificial intelligence content generator By kabantejay Custom Email By Parallax × Existing user? Sign In Sign Up Shopping section Back Purchased extensions Invoices Whishlist Alternative Contacts Forums News ocStore Back Official site Demo ocStore 3.0.3.2 Demo ocStore 2.3.0.2.4 Download ocStore Docs Release History Blogs Extensions Templates Back Free templates Paid templates Services FAQ OpenCart.Pro Back Demo Buy Compare × 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. I accept
stream3k Posted July 8, 2011 Author Share Posted July 8, 2011 вот мой сайт http://mebelizstekla.in.ua/ прикладываю скриншот еще того что и где мне нужно вот на скриншоте в расширеном поиске можно поставить галочку поиск по описанию и поиск по модели. для меня идеальным было бы добавить еще одну галочку поиск по коду товара (артикулу SKU везде по разному это называют) вот собственно то что меня интересует у меня в магазине каждому товару присвоен уникальный артикул вот поиск по ним мне нужно сделать для удобства когда клиент звонит он говорит код товара и я с легкостью смогу его найти ибо когда клиент говорит модель то постоянно путают то цифры то буквы. вот собственно такая задача стоит если сможете помогите пожалуйста смотрел я на разных форумах люди такое тоже ищут но решения не нашел но думаю тема актуальна. заранее огромное спасибо Link to comment Share on other sites More sharing options...
Yesvik Posted July 8, 2011 Share Posted July 8, 2011 Тебе как сделать? что бы всё по умняку, с красивым кодом... или что-бы править было проще? Link to comment Share on other sites More sharing options... Yesvik Posted July 9, 2011 Share Posted July 9, 2011 Это по умняку... Сначала правим вьювер. Открываем файл catalog/view/theme/default/template/product/search.tpl Ищем <tr> <td colspan="2"><?php if ($model) { ?> <input type="checkbox" name="model" id="model" checked="checked" /> <?php } else { ?> <input type="checkbox" name="model" id="model" /> <?php } ?> <?php echo $entry_model; ?></td> </tr> и после найденного добавляем <tr> <td colspan="2"><?php if ($sku) { ?> <input type="checkbox" name="sku" id="sku" checked="checked" /> <?php } else { ?> <input type="checkbox" name="sku" id="sku" /> <?php } ?> <?php echo $entry_sku; ?></td> </tr> почти в самом низу файла ищем if ($('#model').attr('checked')) { url += '&model=1'; } и после найденного добавляем if ($('#sku').attr('checked')) { url += '&sku=1'; } Так как мы добавили языковую переменную $entry_sku - добавим её в файл локализации... Открываем файл catalog/language/russian/product/search.php В конце файла, перед строкой ?> добавляем $_['entry_sku'] = 'Поиск по артикулу'; Вьювер готов, правим контроллер Открываем файл catalog/controller/product/search.php Ищем if (isset($this->request->get['model'])) { $url .= '&model=' . $this->request->get['model']; } и после найденного добавляем if (isset($this->request->get['sku'])) { $url .= '&sku=' . $this->request->get['sku']; } Ищем $this->data['entry_model'] = $this->language->get('entry_model'); и после найденного добавляем $this->data['entry_sku'] = $this->language->get('entry_sku'); Ищем if (isset($this->request->get['model'])) { $this->data['model'] = $this->request->get['model']; } else { $this->data['model'] = ''; } и после найденного добавляем if (isset($this->request->get['sku'])) { $this->data['sku'] = $this->request->get['sku']; } else { $this->data['sku'] = ''; } Ищем $product_total = $this->model_catalog_product->getTotalProductsByKeyword( $this->request->get['keyword'], isset($this->request->get['category_id']) ? $this->request->get['category_id'] : '', isset($this->request->get['description']) ? $this->request->get['description'] : '', isset($this->request->get['model']) ? $this->request->get['model'] : '');и изменяем так $product_total = $this->model_catalog_product->getTotalProductsByKeyword( $this->request->get['keyword'], isset($this->request->get['category_id']) ? $this->request->get['category_id'] : '', isset($this->request->get['description']) ? $this->request->get['description'] : '', isset($this->request->get['model']) ? $this->request->get['model'] : '', isset($this->request->get['sku']) ? $this->request->get['sku'] : ''); Ищем if (isset($this->request->get['model'])) { $url .= '&model=' . $this->request->get['model']; } и после найденного добавляем if (isset($this->request->get['sku'])) { $url .= '&sku=' . $this->request->get['sku']; } Ищем $results = $this->model_catalog_product->getProductsByKeyword( $this->request->get['keyword'], isset($this->request->get['category_id']) ? $this->request->get['category_id'] : '', isset($this->request->get['description']) ? $this->request->get['description'] : '', isset($this->request->get['model']) ? $this->request->get['model'] : '', $sort, $order, ($page - 1) * $this->config->get('config_catalog_limit'), $this->config->get('config_catalog_limit'));и изменяем так $results = $this->model_catalog_product->getProductsByKeyword( $this->request->get['keyword'], isset($this->request->get['category_id']) ? $this->request->get['category_id'] : '', isset($this->request->get['description']) ? $this->request->get['description'] : '', isset($this->request->get['model']) ? $this->request->get['model'] : '', isset($this->request->get['sku']) ? $this->request->get['sku'] : '', $sort, $order, ($page - 1) * $this->config->get('config_catalog_limit'), $this->config->get('config_catalog_limit')); Ищем if (isset($this->request->get['model'])) { $url .= '&model=' . $this->request->get['model']; } и после найденного добавляем if (isset($this->request->get['sku'])) { $url .= '&sku=' . $this->request->get['sku']; } Ищем if (isset($this->request->get['model'])) { $url .= '&model=' . $this->request->get['model']; } и после найденного добавляем if (isset($this->request->get['sku'])) { $url .= '&sku=' . $this->request->get['sku']; } Если обратил внимание - несколько раз ищем и правим одно и то-же... Это я все правки указал в порядке следования.С контроллером закончили - переходим к модели. Открываем файл catalog/model/catalog/product.php Ищем public function getProductsByKeyword($keyword, $category_id = 0, $description = FALSE, $model = FALSE, $sort = 'p.sort_order', $order = 'ASC', $start = 0, $limit = 20) {и изменяем так public function getProductsByKeyword($keyword, $category_id = 0, $description = FALSE, $model = FALSE, $sku = FALSE, $sort = 'p.sort_order', $order = 'ASC', $start = 0, $limit = 20) { Ищем if (!$description) { $sql .= " AND (pd.name LIKE '%" . $this->db->escape($keyword) . "%'"; } else { $sql .= " AND (pd.name LIKE '%" . $this->db->escape($keyword) . "%' OR pd.description LIKE '%" . $this->db->escape($keyword) . "%'"; } if (!$model) { $sql .= ")"; } else { $sql .= " OR p.model LIKE '%" . $this->db->escape($keyword) . "%')"; } и изменяем так $sql .= " AND (pd.name LIKE '%" . $this->db->escape($keyword) . "%'"; if ($description) { $sql .= " OR pd.description LIKE '%" . $this->db->escape($keyword) . "%'"; } if ($model) { $sql .= " OR p.model LIKE '%" . $this->db->escape($keyword) . "%'"; } if ($sku) { $sql .= " OR p.sku LIKE '" . $this->db->escape($keyword) . "%'"; } $sql .= ")"; Ищем public function getTotalProductsByKeyword($keyword, $category_id = 0, $description = FALSE, $model = FALSE) {и изменяем так public function getTotalProductsByKeyword($keyword, $category_id = 0, $description = FALSE, $model = FALSE, $sku = FALSE) { Ищем if (!$description) { $sql .= " AND (pd.name LIKE '%" . $this->db->escape($keyword) . "%'"; } else { $sql .= " AND (pd.name LIKE '%" . $this->db->escape($keyword) . "%' OR pd.description LIKE '%" . $this->db->escape($keyword) . "%'"; } if (!$model) { $sql .= ")"; } else { $sql .= " OR p.model LIKE '%" . $this->db->escape($keyword) . "%')"; } и изменяем так $sql .= " AND (pd.name LIKE '%" . $this->db->escape($keyword) . "%'"; if ($description) { $sql .= " OR pd.description LIKE '%" . $this->db->escape($keyword) . "%'"; } if ($model) { $sql .= " OR p.model LIKE '%" . $this->db->escape($keyword) . "%'"; } if ($sku) { $sql .= " OR p.sku LIKE '" . $this->db->escape($keyword) . "%'"; } $sql .= ")"; Всё. 6 Link to comment Share on other sites More sharing options... Yesvik Posted July 9, 2011 Share Posted July 9, 2011 Самый простой вариант... Всегда ищет по Наименованию и по SKU, а по Описанию и по Модели - в соответствии с чекбоксами. Для уменьшения промахов ищется только точное совпадение SKU, в варианте "по умняку" - ищет SKU которые начинаются с введённой поисковой фразы Открываем файл catalog/model/catalog/product.php Ищем в двух местах if (!$model) { $sql .= ")"; } else { $sql .= " OR p.model LIKE '%" . $this->db->escape($keyword) . "%')"; } и изменяем в двух местах так if (!$model) { $sql .= " OR p.sku = '" . $this->db->escape($keyword) . "')"; } else { $sql .= " OR p.model LIKE '%" . $this->db->escape($keyword) . "%' OR p.sku = '" . $this->db->escape($keyword) . "')"; } Всё. 4 Link to comment Share on other sites More sharing options... rider76 Posted July 9, 2011 Share Posted July 9, 2011 Большое спасибо, очень полезное решение. 1 Link to comment Share on other sites More sharing options... stream3k Posted July 9, 2011 Author Share Posted July 9, 2011 все действительно супер огромное вам спасибо и плюс вам искал решение и вы мне очень помогли Link to comment Share on other sites More sharing options... 3 months later... copypaste Posted November 6, 2011 Share Posted November 6, 2011 Добрый день. Вот тоже самое бы на 1.5.1.1 Во вьювере таких конструкций уже нет. Link to comment Share on other sites More sharing options... snastik Posted November 14, 2011 Share Posted November 14, 2011 изумительно работает как всегда спасибо Yesvik единственно в модели сделал вот так $sql .= " AND (pd.name LIKE '%" . $this->db->escape($keyword) . "%'"; $sql .= " OR p.sku LIKE '" . $this->db->escape($keyword) . "%'"; if ($description) { $sql .= " OR pd.description LIKE '%" . $this->db->escape($keyword) . "%'"; } if ($model) { $sql .= " OR p.model LIKE '%" . $this->db->escape($keyword) . "%'"; } if ($inventorynumber) { $sql .= " OR p.sku LIKE '" . $this->db->escape($keyword) . "%'"; } $sql .= ")"; после чего начало искать по части кода товара и из обычного поиска и из расширенного не знаю чем мне это грозит но работает :-) Link to comment Share on other sites More sharing options... rb2 Posted November 14, 2011 Share Posted November 14, 2011 Вот тоже самое бы на 1.5.1.1 Во вьювере таких конструкций уже нет. Я для 1.5.1.{1,2,3} описывал поиск по SKU Link to comment Share on other sites More sharing options... copypaste Posted November 15, 2011 Share Posted November 15, 2011 Я для 1.5.1.{1,2,3} описывал поиск по SKUК сожалению, очень запутано и непонятно описали.Кто-то может помочь с более понятной инструкцией? Спасибо. Link to comment Share on other sites More sharing options... rb2 Posted November 15, 2011 Share Posted November 15, 2011 К сожалению, очень запутано и непонятно описали. Кто-то может помочь с более понятной инструкцией? Спасибо. Красным цветом и "-" отмечено, что надо убрать, зелёным и "+" то, что добавлено. Имена изменяемых файлов можно увидеть в строках с "---/+++". До и после изменений показаны 3-5 строк для облегчения поиска правильного места. Здешние понятные описания отличаются только тем, что вместо "-" пишут словами "найдите вот это", а вместо "+" -- "замените на это". В каких файлах искать - тоже видно. По аналогии. Красненькое и зелененькое. У меня ко всему прочему ещё и номера строк видны, по ним дополнительно можно сориентироваться в большом файле. Что конкретно непонятно - объясните, возможно я смогу сделать подсказку понятней. Link to comment Share on other sites More sharing options... copypaste Posted November 15, 2011 Share Posted November 15, 2011 Вот к примеру Имена изменяемых файлов можно увидеть в строках с "---/+++".--- a/public_html/catalog/model/catalog/product.php+++ b/public_html/catalog/model/catalog/product.php Я не очень понимаю смысла. Один и тот же файл. Или тут имеется в виду, что в одном и том же файле, и удаляются и добавляются строки, то это только в заблуждение вводит? Вот это откуда строчка? @@ -106,10 +106,12 @@ class ModelCatalogProduct extends Model { В целом, я все сделал. Спасибо большое, все ищет! Link to comment Share on other sites More sharing options... oae Posted November 16, 2011 Share Posted November 16, 2011 Подскажите. Когда делаю поиск по SKU поиск начинает тормозить. Без него не тормозит. Как быть??? Буду очень благодарен. Link to comment Share on other sites More sharing options... rb2 Posted November 17, 2011 Share Posted November 17, 2011 oae, добавьте индекс по этому полю в БД: ALTER TABLE `opencart_product` ADD INDEX ( `sku` ) Вместо "opencart_" свой префикс поставьте Link to comment Share on other sites More sharing options... oae Posted November 17, 2011 Share Posted November 17, 2011 oae, добавьте индекс по этому полю в БД: ALTER TABLE `opencart_product` ADD INDEX ( `sku` ) Вместо "opencart_" свой префикс поставьте Спасибо за подсказку но это не помогло. Если оставляешь только по полю name то ищет 1 сек. Если оставляешь по полю sku ищет 4-5 сек. Индекс добавил тоже самое. Если делаешь и по тому и потому полю ищет тоже 4-5 сек. что с индексом что без. не зависимо от того что ввожу в поле поиск. :( Помогите!!!! Вторую ночь не сплю а сделать не могу. Link to comment Share on other sites More sharing options... 5 months later... alkrav Posted May 2, 2012 Share Posted May 2, 2012 В общем есть простое решение через VQmod. Я опубликовал его тут: Поиск по параметрам SKU, UPC и модели. Link to comment Share on other sites More sharing options... 11 months later... uraaa Posted April 16, 2013 Share Posted April 16, 2013 Нужен отдельный модуль поиска, только по артикулу. Подскажите, как можно реализовать? Link to comment Share on other sites More sharing options... uraaa Posted April 22, 2013 Share Posted April 22, 2013 Нужен отдельный модуль поиска, только по артикулу. Подскажите, как можно реализовать? Ау, есть кто живой? Link to comment Share on other sites More sharing options... 1 month later... uraaa Posted May 24, 2013 Share Posted May 24, 2013 Нужен отдельный модуль поиска, только по артикулу. Подскажите, как можно реализовать? Если такие сложности с отдельным, может проще подкорректировать стандартный модуль, подскажите где копать... Link to comment Share on other sites More sharing options... 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 Share More sharing options... Followers 0 Go to topic listing Similar Content Не работает поиск By Zah, March 23 15 replies 164 views Zah March 23 Помощь! By Asp1r1n, February 9 0 replies 166 views Asp1r1n February 9 Фильтруйте помощь 1 2 By Etegro, October 11, 2022 49 comments 2,066 views mario512 February 25 Модуль поиска By The_KriptoniT, February 22 2 replies 149 views 100napb February 22 Помощь по Simple By Asp1r1n, February 11 1 reply 243 views WarStyle February 11 Recently Browsing 0 members No registered users viewing this page. Последние темы Последние дополнения Последние новости All Activity Home Поддержка и ответы на вопросы Модули и дополнения Помощь нужен поиск по SKU артиклу Покупателям Оплата дополнений физическими лицами Оплата дополнений юридическими лицами Политика возвратов Разработчикам Регламент размещения дополнений Регламент продаж и поддержки дополнений Виртуальный аккаунт автора Политика продвижения объявлений API каталога дополнений Урегулирование споров по авторским правам Полезная информация Публичная оферта Политика возвратов Политика конфиденциальности Платежная политика Политика Передачи Персональных Данных Политика прозрачности Последние дополнения Alta — тема для админ панели By impulze100500 Sorting modules in layout Drag&Drop By markimax Additional services for SAP modules By S_A_P Opencart ChatGPT - artificial intelligence content generator By kabantejay Custom Email By Parallax
Yesvik Posted July 9, 2011 Share Posted July 9, 2011 Это по умняку... Сначала правим вьювер. Открываем файл catalog/view/theme/default/template/product/search.tpl Ищем <tr> <td colspan="2"><?php if ($model) { ?> <input type="checkbox" name="model" id="model" checked="checked" /> <?php } else { ?> <input type="checkbox" name="model" id="model" /> <?php } ?> <?php echo $entry_model; ?></td> </tr> и после найденного добавляем <tr> <td colspan="2"><?php if ($sku) { ?> <input type="checkbox" name="sku" id="sku" checked="checked" /> <?php } else { ?> <input type="checkbox" name="sku" id="sku" /> <?php } ?> <?php echo $entry_sku; ?></td> </tr> почти в самом низу файла ищем if ($('#model').attr('checked')) { url += '&model=1'; } и после найденного добавляем if ($('#sku').attr('checked')) { url += '&sku=1'; } Так как мы добавили языковую переменную $entry_sku - добавим её в файл локализации... Открываем файл catalog/language/russian/product/search.php В конце файла, перед строкой ?> добавляем $_['entry_sku'] = 'Поиск по артикулу'; Вьювер готов, правим контроллер Открываем файл catalog/controller/product/search.php Ищем if (isset($this->request->get['model'])) { $url .= '&model=' . $this->request->get['model']; } и после найденного добавляем if (isset($this->request->get['sku'])) { $url .= '&sku=' . $this->request->get['sku']; } Ищем $this->data['entry_model'] = $this->language->get('entry_model'); и после найденного добавляем $this->data['entry_sku'] = $this->language->get('entry_sku'); Ищем if (isset($this->request->get['model'])) { $this->data['model'] = $this->request->get['model']; } else { $this->data['model'] = ''; } и после найденного добавляем if (isset($this->request->get['sku'])) { $this->data['sku'] = $this->request->get['sku']; } else { $this->data['sku'] = ''; } Ищем $product_total = $this->model_catalog_product->getTotalProductsByKeyword( $this->request->get['keyword'], isset($this->request->get['category_id']) ? $this->request->get['category_id'] : '', isset($this->request->get['description']) ? $this->request->get['description'] : '', isset($this->request->get['model']) ? $this->request->get['model'] : '');и изменяем так $product_total = $this->model_catalog_product->getTotalProductsByKeyword( $this->request->get['keyword'], isset($this->request->get['category_id']) ? $this->request->get['category_id'] : '', isset($this->request->get['description']) ? $this->request->get['description'] : '', isset($this->request->get['model']) ? $this->request->get['model'] : '', isset($this->request->get['sku']) ? $this->request->get['sku'] : ''); Ищем if (isset($this->request->get['model'])) { $url .= '&model=' . $this->request->get['model']; } и после найденного добавляем if (isset($this->request->get['sku'])) { $url .= '&sku=' . $this->request->get['sku']; } Ищем $results = $this->model_catalog_product->getProductsByKeyword( $this->request->get['keyword'], isset($this->request->get['category_id']) ? $this->request->get['category_id'] : '', isset($this->request->get['description']) ? $this->request->get['description'] : '', isset($this->request->get['model']) ? $this->request->get['model'] : '', $sort, $order, ($page - 1) * $this->config->get('config_catalog_limit'), $this->config->get('config_catalog_limit'));и изменяем так $results = $this->model_catalog_product->getProductsByKeyword( $this->request->get['keyword'], isset($this->request->get['category_id']) ? $this->request->get['category_id'] : '', isset($this->request->get['description']) ? $this->request->get['description'] : '', isset($this->request->get['model']) ? $this->request->get['model'] : '', isset($this->request->get['sku']) ? $this->request->get['sku'] : '', $sort, $order, ($page - 1) * $this->config->get('config_catalog_limit'), $this->config->get('config_catalog_limit')); Ищем if (isset($this->request->get['model'])) { $url .= '&model=' . $this->request->get['model']; } и после найденного добавляем if (isset($this->request->get['sku'])) { $url .= '&sku=' . $this->request->get['sku']; } Ищем if (isset($this->request->get['model'])) { $url .= '&model=' . $this->request->get['model']; } и после найденного добавляем if (isset($this->request->get['sku'])) { $url .= '&sku=' . $this->request->get['sku']; } Если обратил внимание - несколько раз ищем и правим одно и то-же... Это я все правки указал в порядке следования.С контроллером закончили - переходим к модели. Открываем файл catalog/model/catalog/product.php Ищем public function getProductsByKeyword($keyword, $category_id = 0, $description = FALSE, $model = FALSE, $sort = 'p.sort_order', $order = 'ASC', $start = 0, $limit = 20) {и изменяем так public function getProductsByKeyword($keyword, $category_id = 0, $description = FALSE, $model = FALSE, $sku = FALSE, $sort = 'p.sort_order', $order = 'ASC', $start = 0, $limit = 20) { Ищем if (!$description) { $sql .= " AND (pd.name LIKE '%" . $this->db->escape($keyword) . "%'"; } else { $sql .= " AND (pd.name LIKE '%" . $this->db->escape($keyword) . "%' OR pd.description LIKE '%" . $this->db->escape($keyword) . "%'"; } if (!$model) { $sql .= ")"; } else { $sql .= " OR p.model LIKE '%" . $this->db->escape($keyword) . "%')"; } и изменяем так $sql .= " AND (pd.name LIKE '%" . $this->db->escape($keyword) . "%'"; if ($description) { $sql .= " OR pd.description LIKE '%" . $this->db->escape($keyword) . "%'"; } if ($model) { $sql .= " OR p.model LIKE '%" . $this->db->escape($keyword) . "%'"; } if ($sku) { $sql .= " OR p.sku LIKE '" . $this->db->escape($keyword) . "%'"; } $sql .= ")"; Ищем public function getTotalProductsByKeyword($keyword, $category_id = 0, $description = FALSE, $model = FALSE) {и изменяем так public function getTotalProductsByKeyword($keyword, $category_id = 0, $description = FALSE, $model = FALSE, $sku = FALSE) { Ищем if (!$description) { $sql .= " AND (pd.name LIKE '%" . $this->db->escape($keyword) . "%'"; } else { $sql .= " AND (pd.name LIKE '%" . $this->db->escape($keyword) . "%' OR pd.description LIKE '%" . $this->db->escape($keyword) . "%'"; } if (!$model) { $sql .= ")"; } else { $sql .= " OR p.model LIKE '%" . $this->db->escape($keyword) . "%')"; } и изменяем так $sql .= " AND (pd.name LIKE '%" . $this->db->escape($keyword) . "%'"; if ($description) { $sql .= " OR pd.description LIKE '%" . $this->db->escape($keyword) . "%'"; } if ($model) { $sql .= " OR p.model LIKE '%" . $this->db->escape($keyword) . "%'"; } if ($sku) { $sql .= " OR p.sku LIKE '" . $this->db->escape($keyword) . "%'"; } $sql .= ")"; Всё. 6 Link to comment Share on other sites More sharing options... Yesvik Posted July 9, 2011 Share Posted July 9, 2011 Самый простой вариант... Всегда ищет по Наименованию и по SKU, а по Описанию и по Модели - в соответствии с чекбоксами. Для уменьшения промахов ищется только точное совпадение SKU, в варианте "по умняку" - ищет SKU которые начинаются с введённой поисковой фразы Открываем файл catalog/model/catalog/product.php Ищем в двух местах if (!$model) { $sql .= ")"; } else { $sql .= " OR p.model LIKE '%" . $this->db->escape($keyword) . "%')"; } и изменяем в двух местах так if (!$model) { $sql .= " OR p.sku = '" . $this->db->escape($keyword) . "')"; } else { $sql .= " OR p.model LIKE '%" . $this->db->escape($keyword) . "%' OR p.sku = '" . $this->db->escape($keyword) . "')"; } Всё. 4 Link to comment Share on other sites More sharing options... rider76 Posted July 9, 2011 Share Posted July 9, 2011 Большое спасибо, очень полезное решение. 1 Link to comment Share on other sites More sharing options... stream3k Posted July 9, 2011 Author Share Posted July 9, 2011 все действительно супер огромное вам спасибо и плюс вам искал решение и вы мне очень помогли Link to comment Share on other sites More sharing options... 3 months later... copypaste Posted November 6, 2011 Share Posted November 6, 2011 Добрый день. Вот тоже самое бы на 1.5.1.1 Во вьювере таких конструкций уже нет. Link to comment Share on other sites More sharing options... snastik Posted November 14, 2011 Share Posted November 14, 2011 изумительно работает как всегда спасибо Yesvik единственно в модели сделал вот так $sql .= " AND (pd.name LIKE '%" . $this->db->escape($keyword) . "%'"; $sql .= " OR p.sku LIKE '" . $this->db->escape($keyword) . "%'"; if ($description) { $sql .= " OR pd.description LIKE '%" . $this->db->escape($keyword) . "%'"; } if ($model) { $sql .= " OR p.model LIKE '%" . $this->db->escape($keyword) . "%'"; } if ($inventorynumber) { $sql .= " OR p.sku LIKE '" . $this->db->escape($keyword) . "%'"; } $sql .= ")"; после чего начало искать по части кода товара и из обычного поиска и из расширенного не знаю чем мне это грозит но работает :-) Link to comment Share on other sites More sharing options... rb2 Posted November 14, 2011 Share Posted November 14, 2011 Вот тоже самое бы на 1.5.1.1 Во вьювере таких конструкций уже нет. Я для 1.5.1.{1,2,3} описывал поиск по SKU Link to comment Share on other sites More sharing options... copypaste Posted November 15, 2011 Share Posted November 15, 2011 Я для 1.5.1.{1,2,3} описывал поиск по SKUК сожалению, очень запутано и непонятно описали.Кто-то может помочь с более понятной инструкцией? Спасибо. Link to comment Share on other sites More sharing options... rb2 Posted November 15, 2011 Share Posted November 15, 2011 К сожалению, очень запутано и непонятно описали. Кто-то может помочь с более понятной инструкцией? Спасибо. Красным цветом и "-" отмечено, что надо убрать, зелёным и "+" то, что добавлено. Имена изменяемых файлов можно увидеть в строках с "---/+++". До и после изменений показаны 3-5 строк для облегчения поиска правильного места. Здешние понятные описания отличаются только тем, что вместо "-" пишут словами "найдите вот это", а вместо "+" -- "замените на это". В каких файлах искать - тоже видно. По аналогии. Красненькое и зелененькое. У меня ко всему прочему ещё и номера строк видны, по ним дополнительно можно сориентироваться в большом файле. Что конкретно непонятно - объясните, возможно я смогу сделать подсказку понятней. Link to comment Share on other sites More sharing options... copypaste Posted November 15, 2011 Share Posted November 15, 2011 Вот к примеру Имена изменяемых файлов можно увидеть в строках с "---/+++".--- a/public_html/catalog/model/catalog/product.php+++ b/public_html/catalog/model/catalog/product.php Я не очень понимаю смысла. Один и тот же файл. Или тут имеется в виду, что в одном и том же файле, и удаляются и добавляются строки, то это только в заблуждение вводит? Вот это откуда строчка? @@ -106,10 +106,12 @@ class ModelCatalogProduct extends Model { В целом, я все сделал. Спасибо большое, все ищет! Link to comment Share on other sites More sharing options... oae Posted November 16, 2011 Share Posted November 16, 2011 Подскажите. Когда делаю поиск по SKU поиск начинает тормозить. Без него не тормозит. Как быть??? Буду очень благодарен. Link to comment Share on other sites More sharing options... rb2 Posted November 17, 2011 Share Posted November 17, 2011 oae, добавьте индекс по этому полю в БД: ALTER TABLE `opencart_product` ADD INDEX ( `sku` ) Вместо "opencart_" свой префикс поставьте Link to comment Share on other sites More sharing options... oae Posted November 17, 2011 Share Posted November 17, 2011 oae, добавьте индекс по этому полю в БД: ALTER TABLE `opencart_product` ADD INDEX ( `sku` ) Вместо "opencart_" свой префикс поставьте Спасибо за подсказку но это не помогло. Если оставляешь только по полю name то ищет 1 сек. Если оставляешь по полю sku ищет 4-5 сек. Индекс добавил тоже самое. Если делаешь и по тому и потому полю ищет тоже 4-5 сек. что с индексом что без. не зависимо от того что ввожу в поле поиск. :( Помогите!!!! Вторую ночь не сплю а сделать не могу. Link to comment Share on other sites More sharing options... 5 months later... alkrav Posted May 2, 2012 Share Posted May 2, 2012 В общем есть простое решение через VQmod. Я опубликовал его тут: Поиск по параметрам SKU, UPC и модели. Link to comment Share on other sites More sharing options... 11 months later... uraaa Posted April 16, 2013 Share Posted April 16, 2013 Нужен отдельный модуль поиска, только по артикулу. Подскажите, как можно реализовать? Link to comment Share on other sites More sharing options... uraaa Posted April 22, 2013 Share Posted April 22, 2013 Нужен отдельный модуль поиска, только по артикулу. Подскажите, как можно реализовать? Ау, есть кто живой? Link to comment Share on other sites More sharing options... 1 month later... uraaa Posted May 24, 2013 Share Posted May 24, 2013 Нужен отдельный модуль поиска, только по артикулу. Подскажите, как можно реализовать? Если такие сложности с отдельным, может проще подкорректировать стандартный модуль, подскажите где копать... Link to comment Share on other sites More sharing options... 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 Share More sharing options... Followers 0 Go to topic listing Similar Content Не работает поиск By Zah, March 23 15 replies 164 views Zah March 23 Помощь! By Asp1r1n, February 9 0 replies 166 views Asp1r1n February 9 Фильтруйте помощь 1 2 By Etegro, October 11, 2022 49 comments 2,066 views mario512 February 25 Модуль поиска By The_KriptoniT, February 22 2 replies 149 views 100napb February 22 Помощь по Simple By Asp1r1n, February 11 1 reply 243 views WarStyle February 11 Recently Browsing 0 members No registered users viewing this page. Последние темы Последние дополнения Последние новости All Activity Home Поддержка и ответы на вопросы Модули и дополнения Помощь нужен поиск по SKU артиклу
Yesvik Posted July 9, 2011 Share Posted July 9, 2011 Самый простой вариант... Всегда ищет по Наименованию и по SKU, а по Описанию и по Модели - в соответствии с чекбоксами. Для уменьшения промахов ищется только точное совпадение SKU, в варианте "по умняку" - ищет SKU которые начинаются с введённой поисковой фразы Открываем файл catalog/model/catalog/product.php Ищем в двух местах if (!$model) { $sql .= ")"; } else { $sql .= " OR p.model LIKE '%" . $this->db->escape($keyword) . "%')"; } и изменяем в двух местах так if (!$model) { $sql .= " OR p.sku = '" . $this->db->escape($keyword) . "')"; } else { $sql .= " OR p.model LIKE '%" . $this->db->escape($keyword) . "%' OR p.sku = '" . $this->db->escape($keyword) . "')"; } Всё. 4 Link to comment Share on other sites More sharing options... rider76 Posted July 9, 2011 Share Posted July 9, 2011 Большое спасибо, очень полезное решение. 1 Link to comment Share on other sites More sharing options... stream3k Posted July 9, 2011 Author Share Posted July 9, 2011 все действительно супер огромное вам спасибо и плюс вам искал решение и вы мне очень помогли Link to comment Share on other sites More sharing options... 3 months later... copypaste Posted November 6, 2011 Share Posted November 6, 2011 Добрый день. Вот тоже самое бы на 1.5.1.1 Во вьювере таких конструкций уже нет. Link to comment Share on other sites More sharing options... snastik Posted November 14, 2011 Share Posted November 14, 2011 изумительно работает как всегда спасибо Yesvik единственно в модели сделал вот так $sql .= " AND (pd.name LIKE '%" . $this->db->escape($keyword) . "%'"; $sql .= " OR p.sku LIKE '" . $this->db->escape($keyword) . "%'"; if ($description) { $sql .= " OR pd.description LIKE '%" . $this->db->escape($keyword) . "%'"; } if ($model) { $sql .= " OR p.model LIKE '%" . $this->db->escape($keyword) . "%'"; } if ($inventorynumber) { $sql .= " OR p.sku LIKE '" . $this->db->escape($keyword) . "%'"; } $sql .= ")"; после чего начало искать по части кода товара и из обычного поиска и из расширенного не знаю чем мне это грозит но работает :-) Link to comment Share on other sites More sharing options... rb2 Posted November 14, 2011 Share Posted November 14, 2011 Вот тоже самое бы на 1.5.1.1 Во вьювере таких конструкций уже нет. Я для 1.5.1.{1,2,3} описывал поиск по SKU Link to comment Share on other sites More sharing options... copypaste Posted November 15, 2011 Share Posted November 15, 2011 Я для 1.5.1.{1,2,3} описывал поиск по SKUК сожалению, очень запутано и непонятно описали.Кто-то может помочь с более понятной инструкцией? Спасибо. Link to comment Share on other sites More sharing options... rb2 Posted November 15, 2011 Share Posted November 15, 2011 К сожалению, очень запутано и непонятно описали. Кто-то может помочь с более понятной инструкцией? Спасибо. Красным цветом и "-" отмечено, что надо убрать, зелёным и "+" то, что добавлено. Имена изменяемых файлов можно увидеть в строках с "---/+++". До и после изменений показаны 3-5 строк для облегчения поиска правильного места. Здешние понятные описания отличаются только тем, что вместо "-" пишут словами "найдите вот это", а вместо "+" -- "замените на это". В каких файлах искать - тоже видно. По аналогии. Красненькое и зелененькое. У меня ко всему прочему ещё и номера строк видны, по ним дополнительно можно сориентироваться в большом файле. Что конкретно непонятно - объясните, возможно я смогу сделать подсказку понятней. Link to comment Share on other sites More sharing options... copypaste Posted November 15, 2011 Share Posted November 15, 2011 Вот к примеру Имена изменяемых файлов можно увидеть в строках с "---/+++".--- a/public_html/catalog/model/catalog/product.php+++ b/public_html/catalog/model/catalog/product.php Я не очень понимаю смысла. Один и тот же файл. Или тут имеется в виду, что в одном и том же файле, и удаляются и добавляются строки, то это только в заблуждение вводит? Вот это откуда строчка? @@ -106,10 +106,12 @@ class ModelCatalogProduct extends Model { В целом, я все сделал. Спасибо большое, все ищет! Link to comment Share on other sites More sharing options... oae Posted November 16, 2011 Share Posted November 16, 2011 Подскажите. Когда делаю поиск по SKU поиск начинает тормозить. Без него не тормозит. Как быть??? Буду очень благодарен. Link to comment Share on other sites More sharing options... rb2 Posted November 17, 2011 Share Posted November 17, 2011 oae, добавьте индекс по этому полю в БД: ALTER TABLE `opencart_product` ADD INDEX ( `sku` ) Вместо "opencart_" свой префикс поставьте Link to comment Share on other sites More sharing options... oae Posted November 17, 2011 Share Posted November 17, 2011 oae, добавьте индекс по этому полю в БД: ALTER TABLE `opencart_product` ADD INDEX ( `sku` ) Вместо "opencart_" свой префикс поставьте Спасибо за подсказку но это не помогло. Если оставляешь только по полю name то ищет 1 сек. Если оставляешь по полю sku ищет 4-5 сек. Индекс добавил тоже самое. Если делаешь и по тому и потому полю ищет тоже 4-5 сек. что с индексом что без. не зависимо от того что ввожу в поле поиск. :( Помогите!!!! Вторую ночь не сплю а сделать не могу. Link to comment Share on other sites More sharing options... 5 months later... alkrav Posted May 2, 2012 Share Posted May 2, 2012 В общем есть простое решение через VQmod. Я опубликовал его тут: Поиск по параметрам SKU, UPC и модели. Link to comment Share on other sites More sharing options... 11 months later... uraaa Posted April 16, 2013 Share Posted April 16, 2013 Нужен отдельный модуль поиска, только по артикулу. Подскажите, как можно реализовать? Link to comment Share on other sites More sharing options... uraaa Posted April 22, 2013 Share Posted April 22, 2013 Нужен отдельный модуль поиска, только по артикулу. Подскажите, как можно реализовать? Ау, есть кто живой? Link to comment Share on other sites More sharing options... 1 month later... uraaa Posted May 24, 2013 Share Posted May 24, 2013 Нужен отдельный модуль поиска, только по артикулу. Подскажите, как можно реализовать? Если такие сложности с отдельным, может проще подкорректировать стандартный модуль, подскажите где копать... Link to comment Share on other sites More sharing options... 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 Share More sharing options... Followers 0 Go to topic listing Similar Content Не работает поиск By Zah, March 23 15 replies 164 views Zah March 23 Помощь! By Asp1r1n, February 9 0 replies 166 views Asp1r1n February 9 Фильтруйте помощь 1 2 By Etegro, October 11, 2022 49 comments 2,066 views mario512 February 25 Модуль поиска By The_KriptoniT, February 22 2 replies 149 views 100napb February 22 Помощь по Simple By Asp1r1n, February 11 1 reply 243 views WarStyle February 11 Recently Browsing 0 members No registered users viewing this page.
rider76 Posted July 9, 2011 Share Posted July 9, 2011 Большое спасибо, очень полезное решение. 1 Link to comment Share on other sites More sharing options...
stream3k Posted July 9, 2011 Author Share Posted July 9, 2011 все действительно супер огромное вам спасибо и плюс вам искал решение и вы мне очень помогли Link to comment Share on other sites More sharing options...
copypaste Posted November 6, 2011 Share Posted November 6, 2011 Добрый день. Вот тоже самое бы на 1.5.1.1 Во вьювере таких конструкций уже нет. Link to comment Share on other sites More sharing options...
snastik Posted November 14, 2011 Share Posted November 14, 2011 изумительно работает как всегда спасибо Yesvik единственно в модели сделал вот так $sql .= " AND (pd.name LIKE '%" . $this->db->escape($keyword) . "%'"; $sql .= " OR p.sku LIKE '" . $this->db->escape($keyword) . "%'"; if ($description) { $sql .= " OR pd.description LIKE '%" . $this->db->escape($keyword) . "%'"; } if ($model) { $sql .= " OR p.model LIKE '%" . $this->db->escape($keyword) . "%'"; } if ($inventorynumber) { $sql .= " OR p.sku LIKE '" . $this->db->escape($keyword) . "%'"; } $sql .= ")"; после чего начало искать по части кода товара и из обычного поиска и из расширенного не знаю чем мне это грозит но работает :-) Link to comment Share on other sites More sharing options... rb2 Posted November 14, 2011 Share Posted November 14, 2011 Вот тоже самое бы на 1.5.1.1 Во вьювере таких конструкций уже нет. Я для 1.5.1.{1,2,3} описывал поиск по SKU Link to comment Share on other sites More sharing options... copypaste Posted November 15, 2011 Share Posted November 15, 2011 Я для 1.5.1.{1,2,3} описывал поиск по SKUК сожалению, очень запутано и непонятно описали.Кто-то может помочь с более понятной инструкцией? Спасибо. Link to comment Share on other sites More sharing options... rb2 Posted November 15, 2011 Share Posted November 15, 2011 К сожалению, очень запутано и непонятно описали. Кто-то может помочь с более понятной инструкцией? Спасибо. Красным цветом и "-" отмечено, что надо убрать, зелёным и "+" то, что добавлено. Имена изменяемых файлов можно увидеть в строках с "---/+++". До и после изменений показаны 3-5 строк для облегчения поиска правильного места. Здешние понятные описания отличаются только тем, что вместо "-" пишут словами "найдите вот это", а вместо "+" -- "замените на это". В каких файлах искать - тоже видно. По аналогии. Красненькое и зелененькое. У меня ко всему прочему ещё и номера строк видны, по ним дополнительно можно сориентироваться в большом файле. Что конкретно непонятно - объясните, возможно я смогу сделать подсказку понятней. Link to comment Share on other sites More sharing options... copypaste Posted November 15, 2011 Share Posted November 15, 2011 Вот к примеру Имена изменяемых файлов можно увидеть в строках с "---/+++".--- a/public_html/catalog/model/catalog/product.php+++ b/public_html/catalog/model/catalog/product.php Я не очень понимаю смысла. Один и тот же файл. Или тут имеется в виду, что в одном и том же файле, и удаляются и добавляются строки, то это только в заблуждение вводит? Вот это откуда строчка? @@ -106,10 +106,12 @@ class ModelCatalogProduct extends Model { В целом, я все сделал. Спасибо большое, все ищет! Link to comment Share on other sites More sharing options... oae Posted November 16, 2011 Share Posted November 16, 2011 Подскажите. Когда делаю поиск по SKU поиск начинает тормозить. Без него не тормозит. Как быть??? Буду очень благодарен. Link to comment Share on other sites More sharing options... rb2 Posted November 17, 2011 Share Posted November 17, 2011 oae, добавьте индекс по этому полю в БД: ALTER TABLE `opencart_product` ADD INDEX ( `sku` ) Вместо "opencart_" свой префикс поставьте Link to comment Share on other sites More sharing options... oae Posted November 17, 2011 Share Posted November 17, 2011 oae, добавьте индекс по этому полю в БД: ALTER TABLE `opencart_product` ADD INDEX ( `sku` ) Вместо "opencart_" свой префикс поставьте Спасибо за подсказку но это не помогло. Если оставляешь только по полю name то ищет 1 сек. Если оставляешь по полю sku ищет 4-5 сек. Индекс добавил тоже самое. Если делаешь и по тому и потому полю ищет тоже 4-5 сек. что с индексом что без. не зависимо от того что ввожу в поле поиск. :( Помогите!!!! Вторую ночь не сплю а сделать не могу. Link to comment Share on other sites More sharing options... 5 months later... alkrav Posted May 2, 2012 Share Posted May 2, 2012 В общем есть простое решение через VQmod. Я опубликовал его тут: Поиск по параметрам SKU, UPC и модели. Link to comment Share on other sites More sharing options... 11 months later... uraaa Posted April 16, 2013 Share Posted April 16, 2013 Нужен отдельный модуль поиска, только по артикулу. Подскажите, как можно реализовать? Link to comment Share on other sites More sharing options... uraaa Posted April 22, 2013 Share Posted April 22, 2013 Нужен отдельный модуль поиска, только по артикулу. Подскажите, как можно реализовать? Ау, есть кто живой? Link to comment Share on other sites More sharing options... 1 month later... uraaa Posted May 24, 2013 Share Posted May 24, 2013 Нужен отдельный модуль поиска, только по артикулу. Подскажите, как можно реализовать? Если такие сложности с отдельным, может проще подкорректировать стандартный модуль, подскажите где копать... Link to comment Share on other sites More sharing options... 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 Share More sharing options... Followers 0
rb2 Posted November 14, 2011 Share Posted November 14, 2011 Вот тоже самое бы на 1.5.1.1 Во вьювере таких конструкций уже нет. Я для 1.5.1.{1,2,3} описывал поиск по SKU Link to comment Share on other sites More sharing options...
copypaste Posted November 15, 2011 Share Posted November 15, 2011 Я для 1.5.1.{1,2,3} описывал поиск по SKUК сожалению, очень запутано и непонятно описали.Кто-то может помочь с более понятной инструкцией? Спасибо. Link to comment Share on other sites More sharing options...
rb2 Posted November 15, 2011 Share Posted November 15, 2011 К сожалению, очень запутано и непонятно описали. Кто-то может помочь с более понятной инструкцией? Спасибо. Красным цветом и "-" отмечено, что надо убрать, зелёным и "+" то, что добавлено. Имена изменяемых файлов можно увидеть в строках с "---/+++". До и после изменений показаны 3-5 строк для облегчения поиска правильного места. Здешние понятные описания отличаются только тем, что вместо "-" пишут словами "найдите вот это", а вместо "+" -- "замените на это". В каких файлах искать - тоже видно. По аналогии. Красненькое и зелененькое. У меня ко всему прочему ещё и номера строк видны, по ним дополнительно можно сориентироваться в большом файле. Что конкретно непонятно - объясните, возможно я смогу сделать подсказку понятней. Link to comment Share on other sites More sharing options...
copypaste Posted November 15, 2011 Share Posted November 15, 2011 Вот к примеру Имена изменяемых файлов можно увидеть в строках с "---/+++".--- a/public_html/catalog/model/catalog/product.php+++ b/public_html/catalog/model/catalog/product.php Я не очень понимаю смысла. Один и тот же файл. Или тут имеется в виду, что в одном и том же файле, и удаляются и добавляются строки, то это только в заблуждение вводит? Вот это откуда строчка? @@ -106,10 +106,12 @@ class ModelCatalogProduct extends Model { В целом, я все сделал. Спасибо большое, все ищет! Link to comment Share on other sites More sharing options...
oae Posted November 16, 2011 Share Posted November 16, 2011 Подскажите. Когда делаю поиск по SKU поиск начинает тормозить. Без него не тормозит. Как быть??? Буду очень благодарен. Link to comment Share on other sites More sharing options...
rb2 Posted November 17, 2011 Share Posted November 17, 2011 oae, добавьте индекс по этому полю в БД: ALTER TABLE `opencart_product` ADD INDEX ( `sku` ) Вместо "opencart_" свой префикс поставьте Link to comment Share on other sites More sharing options...
oae Posted November 17, 2011 Share Posted November 17, 2011 oae, добавьте индекс по этому полю в БД: ALTER TABLE `opencart_product` ADD INDEX ( `sku` ) Вместо "opencart_" свой префикс поставьте Спасибо за подсказку но это не помогло. Если оставляешь только по полю name то ищет 1 сек. Если оставляешь по полю sku ищет 4-5 сек. Индекс добавил тоже самое. Если делаешь и по тому и потому полю ищет тоже 4-5 сек. что с индексом что без. не зависимо от того что ввожу в поле поиск. :( Помогите!!!! Вторую ночь не сплю а сделать не могу. Link to comment Share on other sites More sharing options...
alkrav Posted May 2, 2012 Share Posted May 2, 2012 В общем есть простое решение через VQmod. Я опубликовал его тут: Поиск по параметрам SKU, UPC и модели. Link to comment Share on other sites More sharing options...
uraaa Posted April 16, 2013 Share Posted April 16, 2013 Нужен отдельный модуль поиска, только по артикулу. Подскажите, как можно реализовать? Link to comment Share on other sites More sharing options...
uraaa Posted April 22, 2013 Share Posted April 22, 2013 Нужен отдельный модуль поиска, только по артикулу. Подскажите, как можно реализовать? Ау, есть кто живой? Link to comment Share on other sites More sharing options...
uraaa Posted May 24, 2013 Share Posted May 24, 2013 Нужен отдельный модуль поиска, только по артикулу. Подскажите, как можно реализовать? Если такие сложности с отдельным, может проще подкорректировать стандартный модуль, подскажите где копать... Link to comment Share on other sites More sharing options...
Recommended Posts