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

KingCrimson

Новачок
  
  • Публікації

    28
  • З нами

  • Відвідування

Усі публікації користувача KingCrimson

  1. Прошу прощения мое предыдущее сообщение по ошибке размещено мной же из профиля (KingCrimon - пропущена буква ) сейчас пишу с активного профиля. Исполнитель найден и работа успешно и оперативно выполнена. Спасибо выше отписавшемуся пользователю Bright.
  2. На сайте большое количество товара и по некоторым запросам возможен вывод сотен едениц товара из разных категорий необходимо вывести модуль категорий и счетчики найденных товаров в той или иной категории. например как тут (пример) предложение и цены плиз в личку Спасибо
  3. Собственно сабж opencart 1.5.1.3 Каким образом возможно добавить в результаты поиска, вывод категорий в которых были найдены те или иные товары ?
  4. у меня на 1.5.1.3 поиск работает только с одним словом любые два или более слов дают такую же хрень
  5. costas как дела с доработкой ? или если дела не очень - может кто поделится о других вариантах ,
  6. а как получить ID категории в которой я нахожусь в данный момент ? хочу модифицировать модуль категорий, дабы он выводил на странице товара ,сопутствующие под категории текущего товара. $this->data['category'] = $this->getCategories(тут_вызов_id__текущей_категориии);
  7. Имею Opencart 1.5.1.3 . Включен гостевой вход и возможность оформлять заказы без регистрации. функция PHP mail() работает корректно. После полной регистрации без проблем приходят нотиферы как на майл клиента так и на мыло администраторов сайта. Так же была упрощена форма для не желающих регистрироватся. оставлены как обязательные поля лишь : имя, номер телефона и адрес . ошибок в логах нету. Как сделать чтобы если заказ оформляется без регистрации - приходило оповещение администраторам сайта о появившемся заказе ?
  8. Немного оптимизировал майскул стала гораздо быстрее импортироватся (импорт из CSV этих самых 10 000 товаров и 200 категорий, импорт без инсертов - все на UPDATE) база товаров а вот злосчастный запрос все так же медленно [mysqld] port = 3306 datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock log-error=/var/log/mysqld.log pid-file= /usr/libexec/mysqld/mysqld.pid #skip-bdb skip-external-locking key_buffer_size = 1024M key_cache_division_limit=70 max_allowed_packet = 2M table_open_cache = 5000 table_definition_cache=5000 sort_buffer_size = 4M read_buffer_size = 4M read_rnd_buffer_size = 8M net_buffer_length = 8K thread_stack = 128K collation-server=cp1251_general_ci #default-character-set=cp1251 init-connect="SET NAMES cp1251" character-set-server=cp1251 skip-character-set-client-handshake log-slow-queries=/var/log/slow.log long_query_time = 1 #log-queries-not-using-indexes #new added param query_cache_size =64M query_cache_limit =64M open_files_limit = 20000 join_buffer_size = 3M thread_cache_size = 8 thread_concurrency =12 myisam_sort_buffer_size = 128M low_priority_updates=1 max_heap_table_size=128M tmp_table_size=128M
  9. не переживай ) для теста был поднят ОсСтор по адресу testx.pcf1.ru он ошибку и дает , на него пофиг , это так для кучи проблемному opencart-у 1.5.1.3 - так же подсунул эту модель категорий , но проблемная opencart1.5.1.3 пока без 10 000 товаров (укакал я ее экспериментами ,и бекапу укакал случайно - а каталог импортировать из екселевского прайсика некогда , завтра займусь )
  10. как только, так сразу , попробую твою рекомендациюпросто за компом эпизодами ) посплю и за дело )
  11. подсунул Category.php что дали выше ocstore - выдал ошибку Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1 Error No: 1064 SELECT COUNT(DISTINCT p.product_id) AS total FROM oc_product p LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '2' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND p.product_id IN (SELECT p2c.product_id FROM oc_product_to_category p2c WHERE ) а тот что с джумлой на ктором проблемма - вроде работает и визуально быстрее (но пока не залил 10 000 товаров)
  12. хм...мониторил htopом загрузка винта выведена на видное место.. но что то как то не припомню ... подниму этот глюк на тестовом хосте - там уже обращу внимание и на винт и скриптик запущу... [mysqld] port = 3306 datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock log-error=/var/log/mysqld.log pid-file= /usr/libexec/mysqld/mysqld.pid #skip-bdb skip-external-locking key_buffer_size = 512M max_allowed_packet = 16M table_open_cache = 1024 sort_buffer_size = 128K read_buffer_size = 256K read_rnd_buffer_size = 512K net_buffer_length = 2K thread_stack = 128K collation-server=cp1251_general_ci #default-character-set=cp1251 init-connect="SET NAMES cp1251" character-set-server=cp1251 skip-character-set-client-handshake log-slow-queries=/var/log/slow.log long_query_time = 1 log-queries-not-using-indexes
  13. были добавлены индексы для следующих полей alter table `oc_product` add KEY `model` (`model`); alter table `oc_product` add KEY `stock_status_id` (`stock_status_id`); alter table `oc_product` add KEY `quantity` (`quantity`,`date_available`); alter table `oc_product` add KEY `tax_class_id` (`tax_class_id`,`weight_class_id`,`length_class_id`); alter table `oc_product` add KEY `sort_order` (`sort_order`); alter table `oc_product_option_description` add KEY `product_id` (`product_id`); alter table `oc_product_option_value` add KEY `product_option_id` (`product_option_id`); alter table `oc_product_option_value` add KEY `product_id` (`product_id`); alter table `oc_url_alias` add UNIQUE KEY `query` (`query`); alter table `oc_url_alias` add KEY `keyword` (`keyword`); alter table `oc_zone` add KEY `country_id` (`country_id`); вот их то и удалил после того как стало еще хуже , правда куда хуже то )
  14. индексы работают когда все ок с запросами а в моем случае после построения индексов упал сервер кстати интересное наблюдение - без индексов злосчастный запрос грузил 1 ядро а с индексом все 4 Yesvik - попробую вечером
  15. версия опенкарта 1.5.1.3 интегрирован посредством joocart для вывода категорий используется модуль поставляемый с джукартом -но впринципе он тупо выдергивает вывод родного модуля категорий опенкарта и подсовывает его джумле . с тем же каталогом на 10 000 едениц товара установил OcStore последний (testx . pcf1 . ru) работает он быстрее - но все же 5 секунд ожидания при заходе на главную - это недопустимо долго. в общем очевидно что функция подсчета товара в категории - самая неправильная функция опенкарта .. помоему и один проход для некоторых магазинов будет тяжеловат (допустим каталог насчитывает 100 000 едениц товара ) в идеале добавить бы дополнительное поле для категорий в БД - куда писалось бы количество товара. а инициация пересчета происходила бы вручную по нажатии соответствующего пункта в админке.
  16. freelancer товары все выводятся . Вывод значения кол ва товара в категории можно выключить. В таком состоянии и миллион товаров не проблемма . Вопрос только в том как сохранить вывод кол-ва товаров категории
  17. поправил строки 44 и 58 в catalog/controller/module/category.php заменил $product_total = $this->model_catalog_product->getTotalProducts($data); на $product_total=1; после этого все стало буквально летать . функция getTotalProducts имеет двойной foreach для категорий и подкатегорий что и делает эту жуткую рекурсию однако теперь напротив каждой категории я лицезрею цифру (1) как бы сохранить вывод колличества товара в категории при этом ускорить вывод страницы ?
  18. Индексы строил пару дней назад стало еще хуже сейчас все индексы удалил проблема действительно видимо в рекурсии (Count : 8.96k (1.26%)) - это при том что после добавления товаров на сайт было всего 4- 5 заходов --- Этот запрос принадлежит функции getTotalProducts opencart\catalog\model\catalog\product.php public function getTotalProducts($data = array()) { $sql = "SELECT COUNT(DISTINCT p.product_id) 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_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'"; if (isset($data['filter_name'])) { if (isset($data['filter_description']) && $data['filter_description']) { $sql .= " AND (LCASE(pd.name) LIKE '%" . $this->db->escape(mb_strtolower($data['filter_name'], 'UTF-8')) . "%' OR p.product_id IN (SELECT pt.product_id FROM " . DB_PREFIX . "product_tag pt WHERE pt.language_id = '" . (int)$this->config->get('config_language_id') . "' AND LCASE(pt.tag) LIKE '%" . $this->db->escape(mb_strtolower($data['filter_name'], 'UTF-8')) . "%') OR LCASE(pd.description) LIKE '%" . $this->db->escape(mb_strtolower($data['filter_name'], 'UTF-8')) . "%')"; } else { $sql .= " AND (LCASE(pd.name) LIKE '%" . $this->db->escape(mb_strtolower($data['filter_name'], 'UTF-8')) . "%' OR p.product_id IN (SELECT pt.product_id FROM " . DB_PREFIX . "product_tag pt WHERE pt.language_id = '" . (int)$this->config->get('config_language_id') . "' AND LCASE(pt.tag) LIKE '%" . $this->db->escape(mb_strtolower($data['filter_name'], 'UTF-8')) . "%'))"; } } if (isset($data['filter_tag']) && $data['filter_tag']) { $sql .= " AND p.product_id IN (SELECT pt.product_id FROM " . DB_PREFIX . "product_tag pt WHERE pt.language_id = '" . (int)$this->config->get('config_language_id') . "' AND LCASE(pt.tag) LIKE '%" . $this->db->escape(mb_strtolower($data['filter_tag'], 'UTF-8')) . "%')"; } if (isset($data['filter_category_id']) && $data['filter_category_id']) { if (isset($data['filter_sub_category']) && $data['filter_sub_category']) { $implode_data = array(); $this->load->model('catalog/category'); $categories = $this->model_catalog_category->getCategoriesByParentId($data['filter_category_id']); foreach ($categories as $category_id) { $implode_data[] = "p2c.category_id = '" . (int)$category_id . "'"; } $sql .= " AND p.product_id IN (SELECT p2c.product_id FROM " . DB_PREFIX . "product_to_category p2c WHERE " . implode(' OR ', $implode_data) . ")"; } else { $sql .= " AND p.product_id IN (SELECT p2c.product_id FROM " . DB_PREFIX . "product_to_category p2c WHERE p2c.category_id = '" . (int)$data['filter_category_id'] . "')"; } } if (isset($data['filter_manufacturer_id'])) { $sql .= " AND p.manufacturer_id = '" . (int)$data['filter_manufacturer_id'] . "'"; } $query = $this->db->query($sql); return $query->row['total']; } вот только не пойму откуда эта функция 9 тысяч раз была вызвана ...
  19. Построил магазин на основе оригинального opencart 1.5.1.3 магазин интегрирован в джумлу 1.7 после импорта каталога товаров (10 000 едениц товара + 100 - 200 категорий ) начались нереальные тормаоза (выделены сервер 4xXeon 4гига оперативы ) --- в mysql slow log имею следующую картину : ______________________________________________________________________ 001 ___ Count : 8.96k (1.26%) Time : 1650.390618 s total, 184.195 ms avg, 150.109 ms to 614.001 ms max (21.14%) 95% of Time : 1488.393502 s total, 174.858 ms avg, 150.109 ms to 314.669 ms max Lock Time (s) : 618.555 ms total, 69 ╣s avg, 57 ╣s to 1.751 ms max (0.58%) 95% of Lock : 576.596 ms total, 68 ╣s avg, 57 ╣s to 81 ╣s max Rows sent : 1 avg, 1 to 1 max (0.06%) Rows examined : 32.15k avg, 32.07k to 33.31k max (8.99%) Database : xxxxx_xxxxx Users : xxx_xxx@localhost : 100.00% (8960) of query, 25.09% (178223) of all users Query abstract: SET timestamp=N; SELECT COUNT(DISTINCT p.product_id) AS total FROM oc_product p LEFT JOIN oc_product_description pd ON (p .product_id = pd.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) LEFT JOIN oc_product_to _category p2c ON (p.product_id = p2c.product_id) WHERE pd.language_id = 'S' AND p.status = 'S' AND p.date_available Query sample: SET timestamp=1320119802; SELECT COUNT(DISTINCT p.product_id) AS total FROM oc_product p LEFT JOIN oc_product_description pd ON (p.product_id = pd.pr oduct_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) LEFT JOIN oc_product_to_category p2c ON (p.p roduct_id = p2c.product_id) WHERE pd.language_id = '2' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND (p2c.category_id = '20'); ---- может кто подскажет куда копать ? (адрес сайта grosscomp ру/new_site/ )
  20. Но ни количество ни цена не связаны с реальным товаром из базы ((
  21. гм опции абсолютно виртуальные единицы не связные с реальным товаром из базы кстати нашел компонент http://www.opencart.com/index.php?route=extension/extension/info&extension_id=2274&path=8&filter_search=Accessories%20&filter_download_id=23&sort=e.date_modified&order=DESC жаль платный - но недорогой

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

Important Information

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