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

ychetka

Новичок
  
  • Posts

    7
  • Joined

  • Last visited

Everything posted by ychetka

  1. Вот пример SQl запроса на запись тегов, в котором решена твоя проблема (обрати внимание на вторую часть запроса) $this->db->query("INSERT INTO " . DB_PREFIX . "product_tags SET product_id ='" . (int)$product['product_id'] . "', tag = '" . $this->db->escape($ptag_ind) . "', language_id = '" . (int)$product['language_id'] . "' ON DUPLICATE KEY UPDATE tag = VALUES(tag), product_id=VALUES(product_id), language_id=VALUES(language_id)");
  2. Модуль не работает v. - 1.4.9.7 Все css и js сервер отдает. Картинка просто жуть - вся верста сьехала функционала никакого. никаких ошибок и предупреждений php не выводит. Буду рад если подскажите как заставить работать. Скриншот -
  3. Здр. присваивание, точнее формирование в контроллере (админка) товара есть функция Getform , там надо залаживать возможность иметь вторую цену в товаре. Запись в базу - В модели товара addproduct
  4. Задача легко решается директивами <virtualhost> в настройке апача. Собственно вопрос - цены для товара можно иметь разные ? Скидки для двух магазинов тоже разные ?
  5. Эххх.. Собственно, возникла необходимость в поиске по атрибутам товара. Не мудрствуя лукаво, было принято решение допилить встроенный расширенный поиск (oStore). Забегая вперед, скажу что шаблон вывода товара и контроллер (а точнее проверка в контроллере), были отредактированы, таким образом, никаких <select><option></option></select> в шаблоне вывода нет, а строится таблица , т.е. в моем варианте (точнее заказчика) ему нужен был именно такой функционал картинка Итак вернусь к поиску. Решил использовать встроенную возможность искать модель (пока так, потом отредактирую темплейты нормально). Запрос для поиска (пример) - .../index.php?route=product/search&keyword=красный&category_id=0&model=1 Контроллер поиска использует модель /catalog/product функции getTotalProductsByKeyword getTotalProductsByTag (я так понял это два параллельных поиска так далее их результаты просто сравниваются и берется результат того у кого больше) $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_tag_total = $this->model_catalog_product->getTotalProductsByTag($this->request->get['keyword'], isset($this->request->get['category_id']) ? $this->request->get['category_id'] : ''); $product_total = max($product_total, $product_tag_total); По сути обе - это выборка из БД, правда запросы там не простые, а с объединением таблиц, чем и было решено воспользоваться: Вот отредактированная строка из модели /model/catalog/product.php функция getTotalProductsByKeyword : $sql = "SELECT COUNT(*) AS total FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_option_value_description povd ON (p.product_id = povd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'"; Я присоединил product_option_value_description к запросу и провел соотношение product.product_id = product_option_value_description.product_id и еще одно небольшое условие ниже if (!$model) { $sql .= ")"; } else { $sql .= " OR povd.name LIKE '%" . $this->db->escape($keyword) . "%')"; } По аналогии с были отредактированы выборки: getTotalProductsByKeyword getTotalProductsByTag getProductsByKeyword getProductsByTag Задача поиска по атрибутам в итоге решена, но отрабатывает некорректно, а точнее: Если в поиск забить к примеру слово "красный" и у какого нибудь товара есть опция значение которой "красный" поиск работает нормально, но если слово поиска будет "красный карандаш" - поиск не выдаст результатов, я не понимаю отчего это происходит, ведь выборка идет LIKE %% ( $sql .= " OR povd.name LIKE '%" . $this->db->escape($keyword) . "%')"; ) причем даже пробле вначале слова " красный" - поиск не дает результатов. Сейчас на яве сделал ключевому слову trim (убираю пробелы с начала и конца строки), но это заплатка. Собственно свою проблемую я думаю я описал детально, если будут у кого-то вопросы по описанию, пишите я дам более детальные пояснения. Помогите решить проблему с поиском. P/S Я с Opencart знаком сегодня ровно как неделю, прошу сильно не пинать, мог где-то что-то упустить.
  6. Необходим функционал некого фильтра. Типа производители бытовой химии не выводятся в категории детские игрушки. Я понимаю что можно сделать 10 тематических магазинов вместо рутовых категорий но все же, подскажите существует ли сие чудо в природе ?
×
×
  • 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.