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

SIMaks

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

    45
  • З нами

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

Повідомлення, опубліковані користувачем SIMaks

  1. Если правильно понял, то скорее всего этот код нужен.

     

    public function getProducts($data = array()) {
    		if ($this->customer->isLogged()) {
    			$customer_group_id = $this->customer->getCustomerGroupId();
    		} else {
    			$customer_group_id = $this->config->get('config_customer_group_id');
    		}	
    		
    		$cache = md5(http_build_query($data));
    		
    		$product_data = $this->cache->get('product.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$customer_group_id . '.' . $cache);
    		
    		if (!$product_data) {
    			$sql = "SELECT p.product_id, (SELECT AVG(rating) AS total FROM " . DB_PREFIX . "review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating 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)"; 
    						
    			if (!empty($data['filter_category_id'])) {
    				$sql .= " LEFT JOIN " . DB_PREFIX . "product_to_category p2c ON (p.product_id = p2c.product_id)";			
    			}
    			
    			$sql .= " 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 (!empty($data['filter_name']) || !empty($data['filter_tag'])) {
    				$sql .= " AND (";
    				
    				if (!empty($data['filter_name'])) {					
    					if (!empty($data['filter_description'])) {
    						$sql .= "LCASE(pd.name) LIKE '%" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "%' OR MATCH(pd.description) AGAINST('" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "')";
    					} else {
    						$sql .= "LCASE(pd.name) LIKE '%" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "%'";
    					}
    				}
    				
    				if (!empty($data['filter_name']) && !empty($data['filter_tag'])) {
    					$sql .= " OR ";
    				}
    				
    				if (!empty($data['filter_tag'])) {
    					$implode = array();
    
                $words = explode(' ', trim(preg_replace('/\s\s+/', ' ', $data['filter_tag'])));
    
                foreach ($words as $word) {
                   $implode[] = "LCASE(pd.tag) LIKE '%" . $this->db->escape(utf8_strtolower($word)) . "%'";
                }
    
                if ($implode) {
                   $sql .= " " . implode(" OR ", $implode);
                }
    				}
    			
    				$sql .= ")";
    				
    				if (!empty($data['filter_name'])) {
    					$implode = array();
    
                $words = explode(' ', trim(preg_replace('/\s\s+/', ' ', $data['filter_tag'])));
    
                foreach ($words as $word) {
                   $implode[] = "LCASE(pd.tag) LIKE '%" . $this->db->escape(utf8_strtolower($word)) . "%'";
                }
    
                if ($implode) {
                   $sql .= " " . implode(" OR ", $implode);
                }
    				}
    				
    				if (!empty($data['filter_name'])) {
    					$sql .= " OR LCASE(p.sku) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'";
    				}	
    				
    				if (!empty($data['filter_name'])) {
    					$sql .= " OR LCASE(p.upc) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'";
    				}		
    
    				if (!empty($data['filter_name'])) {
    					$sql .= " OR LCASE(p.ean) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'";
    				}
    
    				if (!empty($data['filter_name'])) {
    					$sql .= " OR LCASE(p.jan) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'";
    				}
    				
    				if (!empty($data['filter_name'])) {
    					$sql .= " OR LCASE(p.isbn) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'";
    				}		
    				
    				if (!empty($data['filter_name'])) {
    					$sql .= " OR LCASE(p.mpn) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'";
    				}					
    			}
    			
    			if (!empty($data['filter_category_id'])) {
    				if (!empty($data['filter_sub_category'])) {
    					$implode_data = array();
    					
    					$implode_data[] = (int)$data['filter_category_id'];
    					
    					$this->load->model('catalog/category');
    					
    					$categories = $this->model_catalog_category->getCategoriesByParentId($data['filter_category_id']);
    										
    					foreach ($categories as $category_id) {
    						$implode_data[] = (int)$category_id;
    					}
    								
    					$sql .= " AND p2c.category_id IN (" . implode(', ', $implode_data) . ")";			
    				} else {
    					$sql .= " AND p2c.category_id = '" . (int)$data['filter_category_id'] . "'";
    				}
    			}		
    					
    			if (!empty($data['filter_manufacturer_id'])) {
    				$sql .= " AND p.manufacturer_id = '" . (int)$data['filter_manufacturer_id'] . "'";
    			}
    			
    			$sql .= " GROUP BY p.product_id";
    			
    			$sort_data = array(
    				'pd.name',
    				'p.model',
    				'p.quantity',
    				'p.price',
    				'rating',
    				'p.sort_order',
    				'p.date_added'
    			);	
    			
    			if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
    				if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {
    					$sql .= " ORDER BY LCASE(" . $data['sort'] . ")";
    				} else {
    					$sql .= " ORDER BY " . $data['sort'];
    				}
    			} else {
    				$sql .= " ORDER BY p.sort_order";	
    			}
    			
    			if (isset($data['order']) && ($data['order'] == 'DESC')) {
    				$sql .= " DESC, LCASE(pd.name) DESC";
    			} else {
    				$sql .= " ASC, LCASE(pd.name) ASC";
    			}
    		
    			if (isset($data['start']) || isset($data['limit'])) {
    				if ($data['start'] < 0) {
    					$data['start'] = 0;
    				}				
    	
    				if ($data['limit'] < 1) {
    					$data['limit'] = 20;
    				}	
    			
    				$sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit'];
    			}
    			
    			$product_data = array();
    					
    			$query = $this->db->query($sql);
    		
    			foreach ($query->rows as $result) {
    				$product_data[$result['product_id']] = $this->getProduct($result['product_id']);
    			}
    			
    			$this->cache->set('product.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . (int)$customer_group_id . '.' . $cache, $product_data);
    		}
    		
    		return $product_data;
    	}
    	
    
  2. Сабж. При вводе запроса в строку поиска выводится белый экран и ничего больше.

     

    В журнале такая ошибка.

     

    2014-01-29 - PHP Notice:  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 'LCASE(pd.tag) LIKE '%%' OR LCASE(p.sku) = '1' OR LCASE(p.upc) = '1' OR LCASE(p.e' at line 1<br />Error No: 1064<br />SELECT p.product_id, (SELECT AVG(rating) AS total FROM review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating FROM product p LEFT JOIN product_description pd ON (p.product_id = pd.product_id) LEFT JOIN product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '1' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND (LCASE(pd.name) LIKE '%1%') LCASE(pd.tag) LIKE '%%' OR LCASE(p.sku) = '1' OR LCASE(p.upc) = '1' OR LCASE(p.ean) = '1' OR LCASE(p.jan) = '1' OR LCASE(p.isbn) = '1' OR LCASE(p.mpn) = '1' GROUP BY p.product_id ORDER BY p.sort_order ASC, LCASE(pd.name) ASC LIMIT 0,12 in /home/s/---/---/public_html/system/database/mysql.php on line 50

     

     

    Подскажите как решить данную проблему?

  3. Подскажите пожалуйста куда копать с данной ошибкой?

    PHP Notice:  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 'LCASE(pd.tag) LIKE '%%' OR LCASE(p.sku) = 'in' OR LCASE(p.upc) = 'in' OR LCASE(p' at line 1<br />Error No: 1064<br />SELECT p.product_id, (SELECT AVG(rating) AS total FROM review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating FROM product p LEFT JOIN product_description pd ON (p.product_id = pd.product_id) LEFT JOIN product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '1' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND (LCASE(pd.name) LIKE '%in%') LCASE(pd.tag) LIKE '%%' OR LCASE(p.sku) = 'in' OR LCASE(p.upc) = 'in' OR LCASE(p.ean) = 'in' OR LCASE(p.jan) = 'in' OR LCASE(p.isbn) = 'in' OR LCASE(p.mpn) = 'in' GROUP BY p.product_id ORDER BY p.sort_order ASC, LCASE(pd.name) ASC LIMIT 0,12 in /home/s/.../.../public_html/system/database/mysql.php on line 49
    
    /home/s/.../.../public_html/catalog/model/catalog/product.php(222): DB->query('SELECT p.product_id, (SELECT AVG(rating) AS total FROM review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating FROM product p LEFT JOIN product_description pd ON (p.product_id = pd.product_id) LEFT JOIN product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '1' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND (LCASE(pd.name) LIKE '%12%') LCASE(pd.tag) LIKE '%%' OR LCASE(p.sku) = '12' OR LCASE(p.upc) = '12' OR LCASE(p.ean) = '12' OR LCASE(p.jan) = '12' OR LCASE(p.isbn) = '12' OR LCASE(p.mpn) = '12' GROUP BY p.product_id ORDER BY p.sort_order ASC, LCASE(pd.name) ASC LIMIT 0,12')
    
  4. лучшее что я видел - это автоматизация магазина (хотя скорее полуавтоматизация) на основе 1c модуля. Там есть и рабочее место манагера и парсер, и обновление прайс листов и прочие плюшки.

    Но стоимость 800 бачинских кусается пока

    Если не затруднит, киньте ссыль, почитать...

  5. Здравствуйте! Господа, подскажите, кто как и чем автоматизирует работу интернет-магазина?

    Какие модули посоветуете?

    Какими CRM пользуетесь?

    Способ интеграции CRM с сайтом?

    Как осуществляете заказ по телефону, если продажи планируются только по предоплате?

    Как выставляете счета клиентам, если заказ был сделан по телефону?

    Как работаете с поставщиками, если не имеете своего склада или товарных запасов?

    Как актуализируете наличие товара на сайте с поставщиками?

    Чем обрабатываете прайсы разных поставщиков?

    Каким образом автоматизируете добавление товаров в магазин?

  6. Да, нашел заказы в потерянных, но при изменении статусов в модулях оплаты (робокасса и edost наложенный платеж) все равно заказ оказывается в потерянных. Менял поочередно статусы безрезультатно. Как быть?

  7. Господа, подскажи в чем может быть проблема? Делаю заказ наложенным платежом, заказ проходит, пишется сообщение об успешном оформлении, но когда захожу в панель управления заказ не отображается. Использую "Заказ и регистрация Simple" + "Edost" + "Robokassa"

  8. Подскажите пожалуйста, как разместить на странице производителя описание (текст)? Сейчас при клике на производителя, открывается страница со всеми товарами этого производителя, а текста описания нет, хотя в админке заполнил все поля. Подскажите что не так делаю?

  9. Столкнулся с проблемой, при добавлении товаров с помощью импорта файла csv, не считается доставка модулем edost. На товары добавленные в ручную все считает, а добавленные с помощью модуля не считает.

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

Important Information

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