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

Gann

Users
  
  • Posts

    687
  • Joined

  • Last visited

Everything posted by Gann

  1. Для всех товаров: Необходима доставка - нет (вкладка Данные) Учитывать в заказе - удалить доставку. С платежами нужно думать
  2. Ага, "Характеристики Хотите купить SONY PS-4? Купите у нас! Цена такая то" (пример из ниоткуда в никуда) = скорый фильтр от ПС Ах, да, не все же оптимизируют заголовки товара. п.с. про настройки нет информации.
  3. спасибо Ещё вопрос: от куда берутся данные для Title? Понятно, что название вкладки, а вторая часть - от куда? Из H1, title или....
  4. На реальном сайте - пробовали? Запрос лучше идёт в топ? Замысел работает? (можно посмотреть?)
  5. Возникла ещё идея: записать в БД из catalog/model/catalog/product Так можно сделать? Прямо в функции: public function getProductSimilar($product_id,$limit) { $product_data = array(); // находим категорию, в которой нах. товар $category = $this->db->query("SELECT category_id FROM " . DB_PREFIX . "product_to_category WHERE product_id = '" .$product_id. "'"); $category_id = $category->row['category_id']; // делаем выборку товаров из этой же категории, которые следуют после данного товара $query = $this->db->query("SELECT p.product_id FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_to_category p2c ON (p.product_id = p2c.product_id) WHERE p2c.category_id = '" . (int)$category_id . "' AND p.status = '1' AND p.date_available <= NOW() AND p.product_id > '" .(int)$product_id. "' ORDER BY p.product_id ASC LIMIT " .(int)$limit); foreach ($query->rows as $result) { $product_data[$result['product_id']] = $this->getProduct($result['product_id']); } if(count($query->rows) < $limit){ // если в категории после товара меньше лимита... $plimit = $limit - count($query->rows); // вычисляем разницу и делаем выборку товаров с НАЧАЛА списка, кол-во = разнице $sql = $this->db->query("SELECT p.product_id FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_to_category p2c ON (p.product_id = p2c.product_id) WHERE p2c.category_id = '" . (int)$category_id . "' AND p.status = '1' AND p.date_available <= NOW() AND p.product_id <> '" .(int)$product_id. "' ORDER BY p.product_id ASC LIMIT " .(int)$limit); foreach ($sql->rows as $result) { $product_data[$result['product_id']] = $this->getProduct($result['product_id']); } } return $product_data; }
  6. В общем, нужен генератор сопутствующих товаров по принципу: товары из той же категории, закольцованные по кругу. Кажется, кэш поможет. Чтобы каждый раз не генерировались налету.
  7. Наверное это всё что новое нужно из catalog/ в admin/ перенести, да?
  8. Вот и хотелось бы - полученный в новой функции из модели результат - записать в таблицу. Чтобы каждый раз не выполнять запросы к БД. Можно так сделать? Хотелось бы записать и при добавлении новых товаров - перезаписывать данные в таблице по сопутствующим товарам.
  9. Далее, в каталоге: после $results = $this->model_catalog_product->getProductRelated($this->request->get['product_id']); я указал if(count($results)<6){// если уже выводятся сопуствующие, не более $temp = $this->model_catalog_product->getProductSimilar($this->request->get['product_id'],6); foreach($temp as $t){ if(!empty($t)){ $results[] = $t; } } } временно = обращаемся к новой функции по бд Затем сама функция в модели public function getProductSimilar($product_id,$limit) { $product_data = array(); // находим категорию, в которой нах. товар $category = $this->db->query("SELECT category_id FROM " . DB_PREFIX . "product_to_category WHERE product_id = '" .$product_id. "'"); $category_id = $category->row['category_id']; // делаем выборку товаров из этой же категории, которые следуют после данного товара $query = $this->db->query("SELECT p.product_id FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_to_category p2c ON (p.product_id = p2c.product_id) WHERE p2c.category_id = '" . (int)$category_id . "' AND p.status = '1' AND p.date_available <= NOW() AND p.product_id > '" .(int)$product_id. "' ORDER BY p.product_id ASC LIMIT " .(int)$limit); foreach ($query->rows as $result) { $product_data[$result['product_id']] = $this->getProduct($result['product_id']); } if(count($query->rows) < $limit){ // если в категории после товара меньше лимита... $plimit = $limit - count($query->rows); // вычисляем разницу и делаем выборку товаров с НАЧАЛА списка, кол-во = разнице $sql = $this->db->query("SELECT p.product_id FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_to_category p2c ON (p.product_id = p2c.product_id) WHERE p2c.category_id = '" . (int)$category_id . "' AND p.status = '1' AND p.date_available <= NOW() AND p.product_id <> '" .(int)$product_id. "' ORDER BY p.product_id ASC LIMIT " .(int)$limit); foreach ($sql->rows as $result) { $product_data[$result['product_id']] = $this->getProduct($result['product_id']); } } return $product_data; }
  10. Добрый вечер) В общем, не пойму как записать в базу сопутствующие товары, полученные с помощью сторонней функции. Начну с этого: (трактую что ниже написано, правильно?) Если существует запрос добавления продукта (с админки) - то присваеваем продукт полученный с админки иначе если существует (ранее добавленный продукт), то присваиваем продукту - продукт, полученный из базы, иначе - продукт - это массив данные по сопутствующим товарам - это массив распаковываем массив... Верно? if (isset($this->request->post['product_related'])) { $products = $this->request->post['product_related']; } elseif (isset($this->request->get['product_id'])) { $products = $this->model_catalog_product->getProductRelated($this->request->get['product_id']); } else { $products = array(); } $data['product_relateds'] = array(); foreach ($products as $product_id) { $related_info = $this->model_catalog_product->getProduct($product_id); if ($related_info) { $data['product_relateds'][] = array( 'product_id' => $related_info['product_id'], 'name' => $related_info['name'] ); } }
  11. Добрый вечер! Когда дойдут? Я прикупил бы под версию 2.1
  12. Добрый вечер! Модуль какой-нибудь за последнее время ставили? С базой работали? Вспоминайте - исправляйте.
  13. покажите ссылку (в ЛС, если не хотите светить в теме)
  14. Открываете category.tpl Находите <div class="col-md-3 text-right"> Вместо этого указываете <div class="col-md-5 text-right"> или сколько-то там. В сумме должно быть 12. Т.е. <div class="col-md-2">, <div class="col-md-2 text-right">........ = по col-md = 12
  15. в настройках (Система) Вкладка "Опции" Заказ при нехватке
  16. Правильно делать с категорией. "Создавайте на сайте понятную и простую систему навигации" - не дословно от рекомендаций ПС Яндекс, да и остальных. Как можно создать понятную и простую систему без категорий - я не знаю.
  17. На данный момент сисадмин изменил лишь open-files-limit = 100000
  18. Я понимаю, но хотелось бы посмотреть как у людей настроено всё. Текущая конфигурация (не я настраивал): # # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. bind-address = 127.0.0.1 # # * Fine Tuning # key_buffer = 32M max_allowed_packet = 16M thread_stack = 192K thread_cache_size = 8 table_open_cache = 1000 # This replaces the startup script and checks MyISAM tables if needed # the first time they are touched myisam-recover = BACKUP #max_connections = 100 #table_cache = 64 #thread_concurrency = 10 # # * Query Cache Configuration # query_cache_limit = 8M query_cache_size = 16M # # * Logging and Replication # # Both location gets rotated by the cronjob. # Be aware that this log type is a performance killer. # As of 5.1 you can enable the log at runtime! #general_log_file = /var/log/mysql/mysql.log #general_log = 1 # # Error log - should be very few entries. # log_error = /var/log/mysql/error.log # # Here you can see queries with especially long duration #slow_query_log_file = /var/log/mysql/mysql-slow.log #slow_query_log = 1 #long_query_time = 2 #log_queries_not_using_indexes # # The following can be used as easy to replay backup logs or for replication. # note: if you are setting up a replication slave, see README.Debian about # other settings you may need to change. #server-id = 1 #log_bin = /var/log/mysql/mysql-bin.log expire_logs_days = 10 max_binlog_size = 100M #binlog_do_db = include_database_name #binlog_ignore_db = include_database_name # # * InnoDB # # InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/. # Read the manual for more InnoDB related options. There are many! # innodb_buffer_pool_size=320M #innodb_additional_mem_pool_size=20M innodb_flush_log_at_trx_commit=0 innodb_file_per_table # * Security Features # # Read the manual, too, if you want chroot! # chroot = /var/lib/mysql/ # # For generating SSL certificates I recommend the OpenSSL GUI "tinyca". # # ssl-ca=/etc/mysql/cacert.pem # ssl-cert=/etc/mysql/server-cert.pem # ssl-key=/etc/mysql/server-key.pem [mysqldump] quick quote-names max_allowed_packet = 16M [mysql] #no-auto-rehash # faster start of mysql but no tab completition [isamchk] key_buffer = 16M Ведь явно можно больше выжать с 2мя ГБ ОЗУ, так ведь? На том же серваке - есть другие сайты на ВП. Они слабенькие. Но тем не менее.
  19. Здравствуйте! Поделитесь, пожалуйста, хорошей боевой конфигурацией MySQL сервера. Интересуют конфигурации при оперативной памяти около 2-х ГБ, проект довольно сильно нагружен. Хотелось бы оптимизировать БД.
  20. Да, возможно. Неограниченное количество операторов (спортсменов) + под каждого свой "виджет"
  21. если не секрет - в чем доработать хотите? Может другие варианты тогда стоит поискать. Смена валюты в зависимости от страны там по-умолчанию есть.
×
×
  • 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.