Помощь Похожие товары (по атрибутам)

animal_x

Постоялец
Регистрация
22 Июн 2012
Сообщения
412
Реакции
147
Подскажите модуль или может кто делал подобное:
нужно в карточке товаров выводить подобные товары по определенным атрибутам, например выводится товар у него в атрибуте цвет - "красный", и соответственно должны вывестись в сопутствующих товарах товары с атрибутом "красный".
 
models/catalog/product.php
public function getProductRelated($product_id)


С этой функцией надо работать. Я выводил просто товары из той же категории которые рядом по цене.
 
models/catalog/product.php
public function getProductRelated($product_id)


С этой функцией надо работать. Я выводил просто товары из той же категории которые рядом по цене.
Если не сложно выложите здесь, что именно в этой фунции Вы меняли, может по вашему примеру переделаю или на мысли наталкнет
 
прикрепил файлик. Там модуль который выводит в карточке товара похожие товары с категории. (извините не знаю как под хайдом файлик спрятать :) ) Нужно покрутить контроллер данного модуля чтобы отбирало по атрибутам. Но подозреваю что данная функция значительно замедлит сайт, т.к. будет перебирать атрибуты кучи товаров.
 

Вложения

  • similar_products_mod.zip
    137,6 KB · Просмотры: 96
просто добавлял в рекомендуемые товары еще несколько товаров через бд, с одинаковыми атрибутами, даже проще чем устанавливать дополнительный модуль
 
просто добавлял в рекомендуемые товары еще несколько товаров через бд, с одинаковыми атрибутами, даже проще чем устанавливать дополнительный модуль
геморно это, вот бы кто-то доделал модуль похожих товаров. вот мне нужны по атрибутам по запаху духов. очень актуально. а так надо помнить с каких запахов состоят духи, если все в ручную.
 
Есть такой модуль, который автоматом товары по атрибутам добавляет. Но он платный и для второй версии пока не встречал.
Название модуля: Related Products having Similar attributes
Ссылка: Для просмотра ссылки Войди или Зарегистрируйся
 
Скажите пожалуйста, появился нуленный Related Products having Similar attributes у кого нибудь?
 
Вот пример функции, которая выводит товары имеющие такое же значение атрибута, что и исходный товар. и находящиеся в заданной категории. Идентификатор атрибута зафиксирован, правда...

Код:
  public function getRproducts($product_id, $category_id, $limit){

     $color_query = $this->db->query("SELECT text FROM " . DB_PREFIX . "product_attribute WHERE product_id = '" .(int)$product_id. "' AND attribute_id = 12 LIMIT 1");
     
     $color = (isset($color_query->row['text']))?$color_query->row['text']:false;
       
     $product_data = array();
     
     if (!$color) {
     $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)
       LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id)       
       WHERE p.status = '1' AND p.quantity > 0
       AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'
       AND p2c.category_id = '" . (int)$category_id ."'
       ORDER BY RAND() LIMIT " . (int)$limit);
     } else {
       $color = trim(mb_strtolower($color));
       $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)
       LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id)
       LEFT JOIN " . DB_PREFIX . "product_attribute pa ON (p.product_id = pa.product_id)
       WHERE p.status = '1'
       AND p.quantity > 0
       AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'
       AND p2c.category_id = '" . (int)$category_id ."'
       AND TRIM(LOWER(pa.text)) LIKE '" .$color. "'
       ORDER BY RAND() LIMIT " . (int)$limit);
       
       if (!$query->rows){
         $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)
           LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id)       
           WHERE p.status = '1' AND p.quantity > 0
           AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'
           AND p2c.category_id = '" . (int)$category_id ."'
           ORDER BY RAND() LIMIT " . (int)$limit);
       }
       
     }
     $this->load->model('catalog/product');

     foreach ($query->rows as $result) {
       $product_data[$result['product_id']] = $this->model_catalog_product->getProduct($result['product_id']);
     }

     return $product_data;
   }
 
Назад
Сверху