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

Тема в разделе "Opencart", создана пользователем animal_x, 10 янв 2015.

Информация :
Внимание форумчане! При создании тем, или выкладывании какой-либо информации проверьте в какой ветке форума вы находитесь! Не путайте Opencart и Opencart2. При несоблюдении данного условия выносится соответствующее наказание! И потом не говорите что вас НЕ ПРЕДУПРЕЖДАЛИ! По возможности используйте обменники mail, yandex, google, dropbox, rghost Дабы избежать просьб перезалить и проблем с рекламой!
Модераторы: ZiX
  1. animal_x

    animal_x

    Регистр.:
    22 июн 2012
    Сообщения:
    400
    Симпатии:
    127
    Подскажите модуль или может кто делал подобное:
    нужно в карточке товаров выводить подобные товары по определенным атрибутам, например выводится товар у него в атрибуте цвет - "красный", и соответственно должны вывестись в сопутствующих товарах товары с атрибутом "красный".
     
  2. Ghz

    Ghz Писатель

    Регистр.:
    12 июн 2012
    Сообщения:
    3
    Симпатии:
    0
    models/catalog/product.php
    public function getProductRelated($product_id)


    С этой функцией надо работать. Я выводил просто товары из той же категории которые рядом по цене.
     
  3. animal_x

    animal_x

    Регистр.:
    22 июн 2012
    Сообщения:
    400
    Симпатии:
    127
    Если не сложно выложите здесь, что именно в этой фунции Вы меняли, может по вашему примеру переделаю или на мысли наталкнет
     
  4. sidoruk2000

    sidoruk2000 Постоялец

    Регистр.:
    19 окт 2012
    Сообщения:
    112
    Симпатии:
    27
    прикрепил файлик. Там модуль который выводит в карточке товара похожие товары с категории. (извините не знаю как под хайдом файлик спрятать :) ) Нужно покрутить контроллер данного модуля чтобы отбирало по атрибутам. Но подозреваю что данная функция значительно замедлит сайт, т.к. будет перебирать атрибуты кучи товаров.
     

    Вложения:

    SuperRomario, kompok и animal_x нравится это.
  5. natash070995

    natash070995 Писатель

    Регистр.:
    11 мар 2014
    Сообщения:
    9
    Симпатии:
    0
    просто добавлял в рекомендуемые товары еще несколько товаров через бд, с одинаковыми атрибутами, даже проще чем устанавливать дополнительный модуль
     
  6. Ruri

    Ruri Создатель

    Регистр.:
    28 авг 2013
    Сообщения:
    45
    Симпатии:
    3
    геморно это, вот бы кто-то доделал модуль похожих товаров. вот мне нужны по атрибутам по запаху духов. очень актуально. а так надо помнить с каких запахов состоят духи, если все в ручную.
     
  7. bezzubtsev

    bezzubtsev

    Регистр.:
    14 май 2015
    Сообщения:
    230
    Симпатии:
    65
  8. shover

    shover Создатель

    Регистр.:
    10 сен 2015
    Сообщения:
    23
    Симпатии:
    0
    Скажите пожалуйста, появился нуленный Related Products having Similar attributes у кого нибудь?
     
  9. nethare

    nethare Постоялец

    Регистр.:
    27 окт 2012
    Сообщения:
    104
    Симпатии:
    30
    Вот пример функции, которая выводит товары имеющие такое же значение атрибута, что и исходный товар. и находящиеся в заданной категории. Идентификатор атрибута зафиксирован, правда...

    Код:
      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;
       }
    
    
    
     
  10. SalyczeQ

    SalyczeQ Создатель

    Регистр.:
    17 сен 2015
    Сообщения:
    27
    Симпатии:
    1