Merhaba arkadaşlar, bugün demo site yapımında benzer ürün seçmekten bıktığımı farkettim, sitede arama yaptım verilen güzel bir modül var 15$ birde google amcaya danışayım dedim Burda birşeyler yapmışlar. Benim işimi gördü fazlasıyla. Belki başka arkadaşların da işini görür hemen kısaca kodları ve açıklamalarını yapayım.
Öncelikle yedek almayı unutmayalım.
ilk olarak " catalog/controller/product/product.php " dosyamızı açıyoruz
alttaki kodu buluyoruz
altına aşağıdaki kodu ekliyoruz.
daha sonra catalog/model/catalog/product.php açıyoruz
bu kodu bulup hemen altına alttaki kodu ekliyoruz
standart kodu değiştirmeden verdim bu kodda "10" benzer ürün seciyor bunu kendinize göre kodların içindeki //change to suit number of products to display yazan yerlerin karşısındaki "10" değiştirerek ayarlayabilirsiniz.
Umarım işinize yarar
Öncelikle yedek almayı unutmayalım.
ilk olarak " catalog/controller/product/product.php " dosyamızı açıyoruz
alttaki kodu buluyoruz
PHP:
$results = $this->model_catalog_product->getProductRelated($this->request->get['product_id']);
altına aşağıdaki kodu ekliyoruz.
PHP:
#####################
## Start Related by Mod
#####################
//related by manufacturer
if(count($results)<10 && (int)$this->data['product_info']['manufacturer_id'] > 0){//change to suit number of products to display
$temp = $this->model_catalog_product->getProductRelatedByManufacturer($this->data['product_info']['manufacturer_id'],$this->request->get['product_id'],count($results));
foreach($temp as $t){
if(!empty($t)){
$results[] = $t;
}
}
}
//related by category
if(count($results)<10){//change to suit number of products to display
$temp = $this->model_catalog_product->getProductRelatedByCategory($this->request->get['product_id'],count($results));
foreach($temp as $t){
if(!empty($t)){
$results[] = $t;
}
}
}
//related by randomisation
if(count($results)<10){//change to suit number of products to display
$temp = $this->model_catalog_product->getProductRelatedByNothing($this->request->get['product_id'],count($results));
foreach($temp as $t){
if(!empty($t)){
$results[] = $t;
}
}
}
#####################
## End related by mod
#####################
daha sonra catalog/model/catalog/product.php açıyoruz
PHP:
public function getProductRelated($product_id) {
$product_data = array();
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_related pr LEFT JOIN " . DB_PREFIX . "product p ON (pr.related_id = p.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pr.product_id = '" . (int)$product_id . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'");
foreach ($query->rows as $result) {
$product_data[$result['related_id']] = $this->getProduct($result['related_id']);
}
return $product_data;
}
bu kodu bulup hemen altına alttaki kodu ekliyoruz
PHP:
#####################
## Start Related by Mod
#####################
public function getProductRelatedByManufacturer($manufacturer_id,$product_id,$num_results) {
//return array();
$product_data = array();
$num = 10 - $num_results;//change to suit number of products to display
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product WHERE manufacturer_id = '" . (int)$manufacturer_id . "' AND product_id != '" . (int)$product_id . "' LIMIT 0,".$num."");
foreach ($query->rows as $result) {
$product_data[$result['product_id']] = $this->getProduct($result['product_id']);
}
return $product_data;
}
public function getProductRelatedByCategory($product_id,$num_results) {
//return array();
$product_data = array();
$num = 10 - $num_results;//change to suit number of products to display
$getCat = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_to_category WHERE product_id = '" . (int)$product_id . "'");
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_to_category WHERE category_id = '" . (int)$getCat->row['category_id'] . "' AND product_id != '" . (int)$product_id . "' ORDER BY RAND() LIMIT 0,".$num."");
foreach ($query->rows as $result) {
$product_data[$result['product_id']] = $this->getProduct($result['product_id']);
}
return $product_data;
}
public function getProductRelatedByNothing($product_id,$num_results) {
$product_data = array();
$num = 10 - $num_results;//change to suit number of products to display
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product WHERE product_id != '" . (int)$product_id . "' ORDER BY RAND() LIMIT 0,".$num."");
foreach ($query->rows as $result) {
$product_data[$result['product_id']] = $this->getProduct($result['product_id']);
}
return $product_data;
}
#####################
## End related by mod
#####################
standart kodu değiştirmeden verdim bu kodda "10" benzer ürün seciyor bunu kendinize göre kodların içindeki //change to suit number of products to display yazan yerlerin karşısındaki "10" değiştirerek ayarlayabilirsiniz.
Umarım işinize yarar