stream3k Опубліковано: 8 липня 2011 Share Опубліковано: 8 липня 2011 привет всем нужна вот такая помощь нужно добавить в расширенный поиск поиск по артикулу SKU на поиск плиз не направлять перешерстил даже иностранные ффорумы но решения адекватного не нашел подмена типа мол поставьте вмето чего то поиск по артикулу не интересна нужен именно поиск по артикулу в добавок к существующему расширенному поиску думаю интересно будет не только мне многие ищут но пока что как я понял без результатов помогите плиз кто чем может в решении этой проблемы Надіслати Поділитися на інших сайтах More sharing options...
Yesvik Опубліковано: 8 липня 2011 Share Опубліковано: 8 липня 2011 Дело в том что SKU как правило предназначен для внутреннего использования, так же как и Расположение, поэтому ты ничего и не нашел ни у нас ни у буржуев. А проблема по большому счету яйца выеденного не стоит и решается элементарно - добавлением условия в SQL-запрос. Уточни задачу и я тебе скажу что и где подправить. Надіслати Поділитися на інших сайтах More sharing options... stream3k Опубліковано: 8 липня 2011 Автор Share Опубліковано: 8 липня 2011 вот мой сайт http://mebelizstekla.in.ua/ прикладываю скриншот еще того что и где мне нужно вот на скриншоте в расширеном поиске можно поставить галочку поиск по описанию и поиск по модели. для меня идеальным было бы добавить еще одну галочку поиск по коду товара (артикулу SKU везде по разному это называют) вот собственно то что меня интересует у меня в магазине каждому товару присвоен уникальный артикул вот поиск по ним мне нужно сделать для удобства когда клиент звонит он говорит код товара и я с легкостью смогу его найти ибо когда клиент говорит модель то постоянно путают то цифры то буквы. вот собственно такая задача стоит если сможете помогите пожалуйста смотрел я на разных форумах люди такое тоже ищут но решения не нашел но думаю тема актуальна. заранее огромное спасибо Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 8 липня 2011 Share Опубліковано: 8 липня 2011 Тебе как сделать? что бы всё по умняку, с красивым кодом... или что-бы править было проще? Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 9 липня 2011 Share Опубліковано: 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 Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 9 липня 2011 Share Опубліковано: 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 Надіслати Поділитися на інших сайтах More sharing options... rider76 Опубліковано: 9 липня 2011 Share Опубліковано: 9 липня 2011 Большое спасибо, очень полезное решение. 1 Надіслати Поділитися на інших сайтах More sharing options... stream3k Опубліковано: 9 липня 2011 Автор Share Опубліковано: 9 липня 2011 все действительно супер огромное вам спасибо и плюс вам искал решение и вы мне очень помогли Надіслати Поділитися на інших сайтах More sharing options... 3 months later... copypaste Опубліковано: 6 листопада 2011 Share Опубліковано: 6 листопада 2011 Добрый день. Вот тоже самое бы на 1.5.1.1 Во вьювере таких конструкций уже нет. Надіслати Поділитися на інших сайтах More sharing options... snastik Опубліковано: 14 листопада 2011 Share Опубліковано: 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 .= ")"; после чего начало искать по части кода товара и из обычного поиска и из расширенного не знаю чем мне это грозит но работает :-) Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 14 листопада 2011 Share Опубліковано: 14 листопада 2011 Вот тоже самое бы на 1.5.1.1 Во вьювере таких конструкций уже нет. Я для 1.5.1.{1,2,3} описывал поиск по SKU Надіслати Поділитися на інших сайтах More sharing options... copypaste Опубліковано: 15 листопада 2011 Share Опубліковано: 15 листопада 2011 Я для 1.5.1.{1,2,3} описывал поиск по SKUК сожалению, очень запутано и непонятно описали.Кто-то может помочь с более понятной инструкцией? Спасибо. Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 15 листопада 2011 Share Опубліковано: 15 листопада 2011 К сожалению, очень запутано и непонятно описали. Кто-то может помочь с более понятной инструкцией? Спасибо. Красным цветом и "-" отмечено, что надо убрать, зелёным и "+" то, что добавлено. Имена изменяемых файлов можно увидеть в строках с "---/+++". До и после изменений показаны 3-5 строк для облегчения поиска правильного места. Здешние понятные описания отличаются только тем, что вместо "-" пишут словами "найдите вот это", а вместо "+" -- "замените на это". В каких файлах искать - тоже видно. По аналогии. Красненькое и зелененькое. У меня ко всему прочему ещё и номера строк видны, по ним дополнительно можно сориентироваться в большом файле. Что конкретно непонятно - объясните, возможно я смогу сделать подсказку понятней. Надіслати Поділитися на інших сайтах More sharing options... copypaste Опубліковано: 15 листопада 2011 Share Опубліковано: 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 { В целом, я все сделал. Спасибо большое, все ищет! Надіслати Поділитися на інших сайтах More sharing options... oae Опубліковано: 16 листопада 2011 Share Опубліковано: 16 листопада 2011 Подскажите. Когда делаю поиск по SKU поиск начинает тормозить. Без него не тормозит. Как быть??? Буду очень благодарен. Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 17 листопада 2011 Share Опубліковано: 17 листопада 2011 oae, добавьте индекс по этому полю в БД: ALTER TABLE `opencart_product` ADD INDEX ( `sku` ) Вместо "opencart_" свой префикс поставьте Надіслати Поділитися на інших сайтах More sharing options... oae Опубліковано: 17 листопада 2011 Share Опубліковано: 17 листопада 2011 oae, добавьте индекс по этому полю в БД: ALTER TABLE `opencart_product` ADD INDEX ( `sku` ) Вместо "opencart_" свой префикс поставьте Спасибо за подсказку но это не помогло. Если оставляешь только по полю name то ищет 1 сек. Если оставляешь по полю sku ищет 4-5 сек. Индекс добавил тоже самое. Если делаешь и по тому и потому полю ищет тоже 4-5 сек. что с индексом что без. не зависимо от того что ввожу в поле поиск. :( Помогите!!!! Вторую ночь не сплю а сделать не могу. Надіслати Поділитися на інших сайтах More sharing options... 5 months later... alkrav Опубліковано: 2 травня 2012 Share Опубліковано: 2 травня 2012 В общем есть простое решение через VQmod. Я опубликовал его тут: Поиск по параметрам SKU, UPC и модели. Надіслати Поділитися на інших сайтах More sharing options... 11 months later... uraaa Опубліковано: 16 квітня 2013 Share Опубліковано: 16 квітня 2013 Нужен отдельный модуль поиска, только по артикулу. Подскажите, как можно реализовать? Надіслати Поділитися на інших сайтах More sharing options... uraaa Опубліковано: 22 квітня 2013 Share Опубліковано: 22 квітня 2013 Нужен отдельный модуль поиска, только по артикулу. Подскажите, как можно реализовать? Ау, есть кто живой? Надіслати Поділитися на інших сайтах More sharing options... 1 month later... uraaa Опубліковано: 24 травня 2013 Share Опубліковано: 24 травня 2013 Нужен отдельный модуль поиска, только по артикулу. Подскажите, как можно реализовать? Если такие сложности с отдельным, может проще подкорректировать стандартный модуль, подскажите где копать... Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Модулі та розширення Помощь нужен поиск по SKU артиклу Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich Промо банери в категоріях товарів Автор: IHOR1989 Trend - адаптивний універсальний шаблон Автор: DSV × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
stream3k Опубліковано: 8 липня 2011 Автор Share Опубліковано: 8 липня 2011 вот мой сайт http://mebelizstekla.in.ua/ прикладываю скриншот еще того что и где мне нужно вот на скриншоте в расширеном поиске можно поставить галочку поиск по описанию и поиск по модели. для меня идеальным было бы добавить еще одну галочку поиск по коду товара (артикулу SKU везде по разному это называют) вот собственно то что меня интересует у меня в магазине каждому товару присвоен уникальный артикул вот поиск по ним мне нужно сделать для удобства когда клиент звонит он говорит код товара и я с легкостью смогу его найти ибо когда клиент говорит модель то постоянно путают то цифры то буквы. вот собственно такая задача стоит если сможете помогите пожалуйста смотрел я на разных форумах люди такое тоже ищут но решения не нашел но думаю тема актуальна. заранее огромное спасибо Надіслати Поділитися на інших сайтах More sharing options...
Yesvik Опубліковано: 8 липня 2011 Share Опубліковано: 8 липня 2011 Тебе как сделать? что бы всё по умняку, с красивым кодом... или что-бы править было проще? Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 9 липня 2011 Share Опубліковано: 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 Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 9 липня 2011 Share Опубліковано: 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 Надіслати Поділитися на інших сайтах More sharing options... rider76 Опубліковано: 9 липня 2011 Share Опубліковано: 9 липня 2011 Большое спасибо, очень полезное решение. 1 Надіслати Поділитися на інших сайтах More sharing options... stream3k Опубліковано: 9 липня 2011 Автор Share Опубліковано: 9 липня 2011 все действительно супер огромное вам спасибо и плюс вам искал решение и вы мне очень помогли Надіслати Поділитися на інших сайтах More sharing options... 3 months later... copypaste Опубліковано: 6 листопада 2011 Share Опубліковано: 6 листопада 2011 Добрый день. Вот тоже самое бы на 1.5.1.1 Во вьювере таких конструкций уже нет. Надіслати Поділитися на інших сайтах More sharing options... snastik Опубліковано: 14 листопада 2011 Share Опубліковано: 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 .= ")"; после чего начало искать по части кода товара и из обычного поиска и из расширенного не знаю чем мне это грозит но работает :-) Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 14 листопада 2011 Share Опубліковано: 14 листопада 2011 Вот тоже самое бы на 1.5.1.1 Во вьювере таких конструкций уже нет. Я для 1.5.1.{1,2,3} описывал поиск по SKU Надіслати Поділитися на інших сайтах More sharing options... copypaste Опубліковано: 15 листопада 2011 Share Опубліковано: 15 листопада 2011 Я для 1.5.1.{1,2,3} описывал поиск по SKUК сожалению, очень запутано и непонятно описали.Кто-то может помочь с более понятной инструкцией? Спасибо. Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 15 листопада 2011 Share Опубліковано: 15 листопада 2011 К сожалению, очень запутано и непонятно описали. Кто-то может помочь с более понятной инструкцией? Спасибо. Красным цветом и "-" отмечено, что надо убрать, зелёным и "+" то, что добавлено. Имена изменяемых файлов можно увидеть в строках с "---/+++". До и после изменений показаны 3-5 строк для облегчения поиска правильного места. Здешние понятные описания отличаются только тем, что вместо "-" пишут словами "найдите вот это", а вместо "+" -- "замените на это". В каких файлах искать - тоже видно. По аналогии. Красненькое и зелененькое. У меня ко всему прочему ещё и номера строк видны, по ним дополнительно можно сориентироваться в большом файле. Что конкретно непонятно - объясните, возможно я смогу сделать подсказку понятней. Надіслати Поділитися на інших сайтах More sharing options... copypaste Опубліковано: 15 листопада 2011 Share Опубліковано: 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 { В целом, я все сделал. Спасибо большое, все ищет! Надіслати Поділитися на інших сайтах More sharing options... oae Опубліковано: 16 листопада 2011 Share Опубліковано: 16 листопада 2011 Подскажите. Когда делаю поиск по SKU поиск начинает тормозить. Без него не тормозит. Как быть??? Буду очень благодарен. Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 17 листопада 2011 Share Опубліковано: 17 листопада 2011 oae, добавьте индекс по этому полю в БД: ALTER TABLE `opencart_product` ADD INDEX ( `sku` ) Вместо "opencart_" свой префикс поставьте Надіслати Поділитися на інших сайтах More sharing options... oae Опубліковано: 17 листопада 2011 Share Опубліковано: 17 листопада 2011 oae, добавьте индекс по этому полю в БД: ALTER TABLE `opencart_product` ADD INDEX ( `sku` ) Вместо "opencart_" свой префикс поставьте Спасибо за подсказку но это не помогло. Если оставляешь только по полю name то ищет 1 сек. Если оставляешь по полю sku ищет 4-5 сек. Индекс добавил тоже самое. Если делаешь и по тому и потому полю ищет тоже 4-5 сек. что с индексом что без. не зависимо от того что ввожу в поле поиск. :( Помогите!!!! Вторую ночь не сплю а сделать не могу. Надіслати Поділитися на інших сайтах More sharing options... 5 months later... alkrav Опубліковано: 2 травня 2012 Share Опубліковано: 2 травня 2012 В общем есть простое решение через VQmod. Я опубликовал его тут: Поиск по параметрам SKU, UPC и модели. Надіслати Поділитися на інших сайтах More sharing options... 11 months later... uraaa Опубліковано: 16 квітня 2013 Share Опубліковано: 16 квітня 2013 Нужен отдельный модуль поиска, только по артикулу. Подскажите, как можно реализовать? Надіслати Поділитися на інших сайтах More sharing options... uraaa Опубліковано: 22 квітня 2013 Share Опубліковано: 22 квітня 2013 Нужен отдельный модуль поиска, только по артикулу. Подскажите, как можно реализовать? Ау, есть кто живой? Надіслати Поділитися на інших сайтах More sharing options... 1 month later... uraaa Опубліковано: 24 травня 2013 Share Опубліковано: 24 травня 2013 Нужен отдельный модуль поиска, только по артикулу. Подскажите, как можно реализовать? Если такие сложности с отдельным, может проще подкорректировать стандартный модуль, подскажите где копать... Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Модулі та розширення Помощь нужен поиск по SKU артиклу Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich Промо банери в категоріях товарів Автор: IHOR1989 Trend - адаптивний універсальний шаблон Автор: DSV
Yesvik Опубліковано: 9 липня 2011 Share Опубліковано: 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 Надіслати Поділитися на інших сайтах More sharing options... Yesvik Опубліковано: 9 липня 2011 Share Опубліковано: 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 Надіслати Поділитися на інших сайтах More sharing options... rider76 Опубліковано: 9 липня 2011 Share Опубліковано: 9 липня 2011 Большое спасибо, очень полезное решение. 1 Надіслати Поділитися на інших сайтах More sharing options... stream3k Опубліковано: 9 липня 2011 Автор Share Опубліковано: 9 липня 2011 все действительно супер огромное вам спасибо и плюс вам искал решение и вы мне очень помогли Надіслати Поділитися на інших сайтах More sharing options... 3 months later... copypaste Опубліковано: 6 листопада 2011 Share Опубліковано: 6 листопада 2011 Добрый день. Вот тоже самое бы на 1.5.1.1 Во вьювере таких конструкций уже нет. Надіслати Поділитися на інших сайтах More sharing options... snastik Опубліковано: 14 листопада 2011 Share Опубліковано: 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 .= ")"; после чего начало искать по части кода товара и из обычного поиска и из расширенного не знаю чем мне это грозит но работает :-) Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 14 листопада 2011 Share Опубліковано: 14 листопада 2011 Вот тоже самое бы на 1.5.1.1 Во вьювере таких конструкций уже нет. Я для 1.5.1.{1,2,3} описывал поиск по SKU Надіслати Поділитися на інших сайтах More sharing options... copypaste Опубліковано: 15 листопада 2011 Share Опубліковано: 15 листопада 2011 Я для 1.5.1.{1,2,3} описывал поиск по SKUК сожалению, очень запутано и непонятно описали.Кто-то может помочь с более понятной инструкцией? Спасибо. Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 15 листопада 2011 Share Опубліковано: 15 листопада 2011 К сожалению, очень запутано и непонятно описали. Кто-то может помочь с более понятной инструкцией? Спасибо. Красным цветом и "-" отмечено, что надо убрать, зелёным и "+" то, что добавлено. Имена изменяемых файлов можно увидеть в строках с "---/+++". До и после изменений показаны 3-5 строк для облегчения поиска правильного места. Здешние понятные описания отличаются только тем, что вместо "-" пишут словами "найдите вот это", а вместо "+" -- "замените на это". В каких файлах искать - тоже видно. По аналогии. Красненькое и зелененькое. У меня ко всему прочему ещё и номера строк видны, по ним дополнительно можно сориентироваться в большом файле. Что конкретно непонятно - объясните, возможно я смогу сделать подсказку понятней. Надіслати Поділитися на інших сайтах More sharing options... copypaste Опубліковано: 15 листопада 2011 Share Опубліковано: 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 { В целом, я все сделал. Спасибо большое, все ищет! Надіслати Поділитися на інших сайтах More sharing options... oae Опубліковано: 16 листопада 2011 Share Опубліковано: 16 листопада 2011 Подскажите. Когда делаю поиск по SKU поиск начинает тормозить. Без него не тормозит. Как быть??? Буду очень благодарен. Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 17 листопада 2011 Share Опубліковано: 17 листопада 2011 oae, добавьте индекс по этому полю в БД: ALTER TABLE `opencart_product` ADD INDEX ( `sku` ) Вместо "opencart_" свой префикс поставьте Надіслати Поділитися на інших сайтах More sharing options... oae Опубліковано: 17 листопада 2011 Share Опубліковано: 17 листопада 2011 oae, добавьте индекс по этому полю в БД: ALTER TABLE `opencart_product` ADD INDEX ( `sku` ) Вместо "opencart_" свой префикс поставьте Спасибо за подсказку но это не помогло. Если оставляешь только по полю name то ищет 1 сек. Если оставляешь по полю sku ищет 4-5 сек. Индекс добавил тоже самое. Если делаешь и по тому и потому полю ищет тоже 4-5 сек. что с индексом что без. не зависимо от того что ввожу в поле поиск. :( Помогите!!!! Вторую ночь не сплю а сделать не могу. Надіслати Поділитися на інших сайтах More sharing options... 5 months later... alkrav Опубліковано: 2 травня 2012 Share Опубліковано: 2 травня 2012 В общем есть простое решение через VQmod. Я опубликовал его тут: Поиск по параметрам SKU, UPC и модели. Надіслати Поділитися на інших сайтах More sharing options... 11 months later... uraaa Опубліковано: 16 квітня 2013 Share Опубліковано: 16 квітня 2013 Нужен отдельный модуль поиска, только по артикулу. Подскажите, как можно реализовать? Надіслати Поділитися на інших сайтах More sharing options... uraaa Опубліковано: 22 квітня 2013 Share Опубліковано: 22 квітня 2013 Нужен отдельный модуль поиска, только по артикулу. Подскажите, как можно реализовать? Ау, есть кто живой? Надіслати Поділитися на інших сайтах More sharing options... 1 month later... uraaa Опубліковано: 24 травня 2013 Share Опубліковано: 24 травня 2013 Нужен отдельный модуль поиска, только по артикулу. Подскажите, как можно реализовать? Если такие сложности с отдельным, может проще подкорректировать стандартный модуль, подскажите где копать... Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Модулі та розширення Помощь нужен поиск по SKU артиклу
Yesvik Опубліковано: 9 липня 2011 Share Опубліковано: 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 Надіслати Поділитися на інших сайтах More sharing options... rider76 Опубліковано: 9 липня 2011 Share Опубліковано: 9 липня 2011 Большое спасибо, очень полезное решение. 1 Надіслати Поділитися на інших сайтах More sharing options... stream3k Опубліковано: 9 липня 2011 Автор Share Опубліковано: 9 липня 2011 все действительно супер огромное вам спасибо и плюс вам искал решение и вы мне очень помогли Надіслати Поділитися на інших сайтах More sharing options... 3 months later... copypaste Опубліковано: 6 листопада 2011 Share Опубліковано: 6 листопада 2011 Добрый день. Вот тоже самое бы на 1.5.1.1 Во вьювере таких конструкций уже нет. Надіслати Поділитися на інших сайтах More sharing options... snastik Опубліковано: 14 листопада 2011 Share Опубліковано: 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 .= ")"; после чего начало искать по части кода товара и из обычного поиска и из расширенного не знаю чем мне это грозит но работает :-) Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 14 листопада 2011 Share Опубліковано: 14 листопада 2011 Вот тоже самое бы на 1.5.1.1 Во вьювере таких конструкций уже нет. Я для 1.5.1.{1,2,3} описывал поиск по SKU Надіслати Поділитися на інших сайтах More sharing options... copypaste Опубліковано: 15 листопада 2011 Share Опубліковано: 15 листопада 2011 Я для 1.5.1.{1,2,3} описывал поиск по SKUК сожалению, очень запутано и непонятно описали.Кто-то может помочь с более понятной инструкцией? Спасибо. Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 15 листопада 2011 Share Опубліковано: 15 листопада 2011 К сожалению, очень запутано и непонятно описали. Кто-то может помочь с более понятной инструкцией? Спасибо. Красным цветом и "-" отмечено, что надо убрать, зелёным и "+" то, что добавлено. Имена изменяемых файлов можно увидеть в строках с "---/+++". До и после изменений показаны 3-5 строк для облегчения поиска правильного места. Здешние понятные описания отличаются только тем, что вместо "-" пишут словами "найдите вот это", а вместо "+" -- "замените на это". В каких файлах искать - тоже видно. По аналогии. Красненькое и зелененькое. У меня ко всему прочему ещё и номера строк видны, по ним дополнительно можно сориентироваться в большом файле. Что конкретно непонятно - объясните, возможно я смогу сделать подсказку понятней. Надіслати Поділитися на інших сайтах More sharing options... copypaste Опубліковано: 15 листопада 2011 Share Опубліковано: 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 { В целом, я все сделал. Спасибо большое, все ищет! Надіслати Поділитися на інших сайтах More sharing options... oae Опубліковано: 16 листопада 2011 Share Опубліковано: 16 листопада 2011 Подскажите. Когда делаю поиск по SKU поиск начинает тормозить. Без него не тормозит. Как быть??? Буду очень благодарен. Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 17 листопада 2011 Share Опубліковано: 17 листопада 2011 oae, добавьте индекс по этому полю в БД: ALTER TABLE `opencart_product` ADD INDEX ( `sku` ) Вместо "opencart_" свой префикс поставьте Надіслати Поділитися на інших сайтах More sharing options... oae Опубліковано: 17 листопада 2011 Share Опубліковано: 17 листопада 2011 oae, добавьте индекс по этому полю в БД: ALTER TABLE `opencart_product` ADD INDEX ( `sku` ) Вместо "opencart_" свой префикс поставьте Спасибо за подсказку но это не помогло. Если оставляешь только по полю name то ищет 1 сек. Если оставляешь по полю sku ищет 4-5 сек. Индекс добавил тоже самое. Если делаешь и по тому и потому полю ищет тоже 4-5 сек. что с индексом что без. не зависимо от того что ввожу в поле поиск. :( Помогите!!!! Вторую ночь не сплю а сделать не могу. Надіслати Поділитися на інших сайтах More sharing options... 5 months later... alkrav Опубліковано: 2 травня 2012 Share Опубліковано: 2 травня 2012 В общем есть простое решение через VQmod. Я опубликовал его тут: Поиск по параметрам SKU, UPC и модели. Надіслати Поділитися на інших сайтах More sharing options... 11 months later... uraaa Опубліковано: 16 квітня 2013 Share Опубліковано: 16 квітня 2013 Нужен отдельный модуль поиска, только по артикулу. Подскажите, как можно реализовать? Надіслати Поділитися на інших сайтах More sharing options... uraaa Опубліковано: 22 квітня 2013 Share Опубліковано: 22 квітня 2013 Нужен отдельный модуль поиска, только по артикулу. Подскажите, как можно реализовать? Ау, есть кто живой? Надіслати Поділитися на інших сайтах More sharing options... 1 month later... uraaa Опубліковано: 24 травня 2013 Share Опубліковано: 24 травня 2013 Нужен отдельный модуль поиска, только по артикулу. Подскажите, как можно реализовать? Если такие сложности с отдельным, может проще подкорректировать стандартный модуль, подскажите где копать... Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
rider76 Опубліковано: 9 липня 2011 Share Опубліковано: 9 липня 2011 Большое спасибо, очень полезное решение. 1 Надіслати Поділитися на інших сайтах More sharing options...
stream3k Опубліковано: 9 липня 2011 Автор Share Опубліковано: 9 липня 2011 все действительно супер огромное вам спасибо и плюс вам искал решение и вы мне очень помогли Надіслати Поділитися на інших сайтах More sharing options...
copypaste Опубліковано: 6 листопада 2011 Share Опубліковано: 6 листопада 2011 Добрый день. Вот тоже самое бы на 1.5.1.1 Во вьювере таких конструкций уже нет. Надіслати Поділитися на інших сайтах More sharing options...
snastik Опубліковано: 14 листопада 2011 Share Опубліковано: 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 .= ")"; после чего начало искать по части кода товара и из обычного поиска и из расширенного не знаю чем мне это грозит но работает :-) Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 14 листопада 2011 Share Опубліковано: 14 листопада 2011 Вот тоже самое бы на 1.5.1.1 Во вьювере таких конструкций уже нет. Я для 1.5.1.{1,2,3} описывал поиск по SKU Надіслати Поділитися на інших сайтах More sharing options... copypaste Опубліковано: 15 листопада 2011 Share Опубліковано: 15 листопада 2011 Я для 1.5.1.{1,2,3} описывал поиск по SKUК сожалению, очень запутано и непонятно описали.Кто-то может помочь с более понятной инструкцией? Спасибо. Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 15 листопада 2011 Share Опубліковано: 15 листопада 2011 К сожалению, очень запутано и непонятно описали. Кто-то может помочь с более понятной инструкцией? Спасибо. Красным цветом и "-" отмечено, что надо убрать, зелёным и "+" то, что добавлено. Имена изменяемых файлов можно увидеть в строках с "---/+++". До и после изменений показаны 3-5 строк для облегчения поиска правильного места. Здешние понятные описания отличаются только тем, что вместо "-" пишут словами "найдите вот это", а вместо "+" -- "замените на это". В каких файлах искать - тоже видно. По аналогии. Красненькое и зелененькое. У меня ко всему прочему ещё и номера строк видны, по ним дополнительно можно сориентироваться в большом файле. Что конкретно непонятно - объясните, возможно я смогу сделать подсказку понятней. Надіслати Поділитися на інших сайтах More sharing options... copypaste Опубліковано: 15 листопада 2011 Share Опубліковано: 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 { В целом, я все сделал. Спасибо большое, все ищет! Надіслати Поділитися на інших сайтах More sharing options... oae Опубліковано: 16 листопада 2011 Share Опубліковано: 16 листопада 2011 Подскажите. Когда делаю поиск по SKU поиск начинает тормозить. Без него не тормозит. Как быть??? Буду очень благодарен. Надіслати Поділитися на інших сайтах More sharing options... rb2 Опубліковано: 17 листопада 2011 Share Опубліковано: 17 листопада 2011 oae, добавьте индекс по этому полю в БД: ALTER TABLE `opencart_product` ADD INDEX ( `sku` ) Вместо "opencart_" свой префикс поставьте Надіслати Поділитися на інших сайтах More sharing options... oae Опубліковано: 17 листопада 2011 Share Опубліковано: 17 листопада 2011 oae, добавьте индекс по этому полю в БД: ALTER TABLE `opencart_product` ADD INDEX ( `sku` ) Вместо "opencart_" свой префикс поставьте Спасибо за подсказку но это не помогло. Если оставляешь только по полю name то ищет 1 сек. Если оставляешь по полю sku ищет 4-5 сек. Индекс добавил тоже самое. Если делаешь и по тому и потому полю ищет тоже 4-5 сек. что с индексом что без. не зависимо от того что ввожу в поле поиск. :( Помогите!!!! Вторую ночь не сплю а сделать не могу. Надіслати Поділитися на інших сайтах More sharing options... 5 months later... alkrav Опубліковано: 2 травня 2012 Share Опубліковано: 2 травня 2012 В общем есть простое решение через VQmod. Я опубликовал его тут: Поиск по параметрам SKU, UPC и модели. Надіслати Поділитися на інших сайтах More sharing options... 11 months later... uraaa Опубліковано: 16 квітня 2013 Share Опубліковано: 16 квітня 2013 Нужен отдельный модуль поиска, только по артикулу. Подскажите, как можно реализовать? Надіслати Поділитися на інших сайтах More sharing options... uraaa Опубліковано: 22 квітня 2013 Share Опубліковано: 22 квітня 2013 Нужен отдельный модуль поиска, только по артикулу. Подскажите, как можно реализовать? Ау, есть кто живой? Надіслати Поділитися на інших сайтах More sharing options... 1 month later... uraaa Опубліковано: 24 травня 2013 Share Опубліковано: 24 травня 2013 Нужен отдельный модуль поиска, только по артикулу. Подскажите, как можно реализовать? Если такие сложности с отдельным, может проще подкорректировать стандартный модуль, подскажите где копать... Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0
rb2 Опубліковано: 14 листопада 2011 Share Опубліковано: 14 листопада 2011 Вот тоже самое бы на 1.5.1.1 Во вьювере таких конструкций уже нет. Я для 1.5.1.{1,2,3} описывал поиск по SKU Надіслати Поділитися на інших сайтах More sharing options...
copypaste Опубліковано: 15 листопада 2011 Share Опубліковано: 15 листопада 2011 Я для 1.5.1.{1,2,3} описывал поиск по SKUК сожалению, очень запутано и непонятно описали.Кто-то может помочь с более понятной инструкцией? Спасибо. Надіслати Поділитися на інших сайтах More sharing options...
rb2 Опубліковано: 15 листопада 2011 Share Опубліковано: 15 листопада 2011 К сожалению, очень запутано и непонятно описали. Кто-то может помочь с более понятной инструкцией? Спасибо. Красным цветом и "-" отмечено, что надо убрать, зелёным и "+" то, что добавлено. Имена изменяемых файлов можно увидеть в строках с "---/+++". До и после изменений показаны 3-5 строк для облегчения поиска правильного места. Здешние понятные описания отличаются только тем, что вместо "-" пишут словами "найдите вот это", а вместо "+" -- "замените на это". В каких файлах искать - тоже видно. По аналогии. Красненькое и зелененькое. У меня ко всему прочему ещё и номера строк видны, по ним дополнительно можно сориентироваться в большом файле. Что конкретно непонятно - объясните, возможно я смогу сделать подсказку понятней. Надіслати Поділитися на інших сайтах More sharing options...
copypaste Опубліковано: 15 листопада 2011 Share Опубліковано: 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 { В целом, я все сделал. Спасибо большое, все ищет! Надіслати Поділитися на інших сайтах More sharing options...
oae Опубліковано: 16 листопада 2011 Share Опубліковано: 16 листопада 2011 Подскажите. Когда делаю поиск по SKU поиск начинает тормозить. Без него не тормозит. Как быть??? Буду очень благодарен. Надіслати Поділитися на інших сайтах More sharing options...
rb2 Опубліковано: 17 листопада 2011 Share Опубліковано: 17 листопада 2011 oae, добавьте индекс по этому полю в БД: ALTER TABLE `opencart_product` ADD INDEX ( `sku` ) Вместо "opencart_" свой префикс поставьте Надіслати Поділитися на інших сайтах More sharing options...
oae Опубліковано: 17 листопада 2011 Share Опубліковано: 17 листопада 2011 oae, добавьте индекс по этому полю в БД: ALTER TABLE `opencart_product` ADD INDEX ( `sku` ) Вместо "opencart_" свой префикс поставьте Спасибо за подсказку но это не помогло. Если оставляешь только по полю name то ищет 1 сек. Если оставляешь по полю sku ищет 4-5 сек. Индекс добавил тоже самое. Если делаешь и по тому и потому полю ищет тоже 4-5 сек. что с индексом что без. не зависимо от того что ввожу в поле поиск. :( Помогите!!!! Вторую ночь не сплю а сделать не могу. Надіслати Поділитися на інших сайтах More sharing options...
alkrav Опубліковано: 2 травня 2012 Share Опубліковано: 2 травня 2012 В общем есть простое решение через VQmod. Я опубликовал его тут: Поиск по параметрам SKU, UPC и модели. Надіслати Поділитися на інших сайтах More sharing options...
uraaa Опубліковано: 16 квітня 2013 Share Опубліковано: 16 квітня 2013 Нужен отдельный модуль поиска, только по артикулу. Подскажите, как можно реализовать? Надіслати Поділитися на інших сайтах More sharing options...
uraaa Опубліковано: 22 квітня 2013 Share Опубліковано: 22 квітня 2013 Нужен отдельный модуль поиска, только по артикулу. Подскажите, как можно реализовать? Ау, есть кто живой? Надіслати Поділитися на інших сайтах More sharing options...
uraaa Опубліковано: 24 травня 2013 Share Опубліковано: 24 травня 2013 Нужен отдельный модуль поиска, только по артикулу. Подскажите, как можно реализовать? Если такие сложности с отдельным, может проще подкорректировать стандартный модуль, подскажите где копать... Надіслати Поділитися на інших сайтах More sharing options...
Recommended Posts