Модуль OC 2 - Карусель рекомендуемых товаров

Модуль сделан на основе стандартного "Featured", выводит рекомендуемые товары в виде карусели. В настройках модуля добавлена возможность выбора отображения товара (можно вывести без описания, с заменой кнопки корзины на "подробнее"). Заголовок (можно отключить) модуль получает из настроек, а не языкового файла, как это сделано по-умолчанию. Можно добавить свой CSS класс для более тонкой настройки внешнего вида.

Языки модуля - русский и английский.

Для установки модуля необходимо скопировать файлы в соответствующие каталоги на сервере, никаких замен не требуется.

Карусель рекомендуемых товаров - установка

После копирования файлов переходим в панели управления, настройка прав (Система - Пользователи - Группы - Администратор - редактировать):

настройка прав пользователей opencart

Находим и отмечаем в правах на просмотр и изменение "module/featuredcarusel", сохраняем. Дальше можно работать с модулем.

назначение прав на просмотр и изменение модуля opencart

Настройки модуля

Кроме тех настроек что остались от стандартного модуля, добавлено и изменено следующее:

  • Заголовок модуля - именно в таком виде будет выведен на сайте
  • Отображение заголовка модуля - вкл/выкл
  • Количество одновременно отображаемых товаров
  • Вид товара (отображение товара)
    • Обычный
    • Без описания
    • Без описания и заменой корзины на "подробнее"
    • Замена кнопки корзины
  • Добавление произвольного CSS класса

В итоге все это выглядит так:

Настройки модуля в панели управления

Что касается вывода модуля на сайт, в стандартном шаблоне все хорошо и красиво (тестировал с 4 одновременно отображаемыми товарами и картинкой 200*200px).

Настройки модуля в панели управления

Настройки модуля в панели управления

Настройки модуля в панели управления

Начиная с Opencart 2.3 изменилось расположение каталога модулей. Версия для OC 2.3.x - отдельно. Если уже успели скопировать файлы от предыдущей версии - нужно их удалить. Возможны проблемы

Скачать модуль (OC 2.x < 2.3)Скачать модуль (OC 2.3+)

Добавить комментарий

Комментарии (56)

  1. Олег 15 января 2018, 14:55(Комментарий был изменён)
    0 #

    Редко пишу комментарии, но тут не смог сдержаться) Спасибо огромное, всё установилось без проблем, работает на ура, модуль супер!!!

    1. Дмитрий 09 ноября 2017, 11:43
      0 #

      Добрый день уважаемый вебмастер!

      сразу скажу, что модуль классный и удобный!
      Не могли бы вы подсказать как и где можно исправить формулу рассчета сдвига owl-item?

      нужно получить так: transform: translate3d (-325px, 0px, 0px);

      В чем состоит задача:

      1) ширина owl-item на 1300px container max-width: 295px. Адаптив.
      2) отступ между товарами — как в остальных рядах с товаром: 30px, т.е. по 15px у каждого кроме first-child & last-child.

      Заранее благодарю за любую помощь!

      Хорошего вам дня,
      Дмитрий

      1. test 06 октября 2017, 15:12
        0 #

        Добрый день подскажите пожалуйста, как изменить сортировку товара в карусели?
        Сейчас первым выводится тот товар который первым добавил в админке, а нужно сделать что бы первый добавленный в админке выводился последним. Заранее благодарен.

        1. Владимир 09 октября 2017, 03:26(Комментарий был изменён)
          0 #

          Здравствуйте! Сейчас не могу проверить, попробуйте так:
          37 строка /catalog/controller/extension/module/featuredcarusel.php:

          $products = array_slice($setting['product'], 0, (int)$setting['limit']);
          Заменить на:
          $products = array_reverse(array_slice($setting['product'], 0, (int)$setting['limit']));
          или:
          $products = array_slice(array_reverse($setting['product']), 0, (int)$setting['limit']);

          1. test 12 октября 2017, 10:25
            0 #

            Спасибо, помог вариант — $products = array_reverse(array_slice($setting['product'], 0, (int)$setting['limit']));

        2. Koshsh 03 июля 2017, 21:04
          0 #

          Спасибо, все настроил с первого раза под себя и заработало на ОС2.3, однако есть вопрос по поводу ссылок, мод делает их прямыми до товара минуя категории: сайт.ru/tovar, а надо бы так сайт.ru/category/../tovar. У меня включен стандартный ЧПУ, как то эту проблему решить можно?

          1. Владимир 03 июля 2017, 22:35
            0 #

            А в других подобных модулях ведет на товар с категорией? если да, то лучше сделать как там, если нет — рекомендую установить seo_pro

          2. Владимир 07 июня 2017, 18:29
            0 #

            Добрый, как все же сделать расстояние между карточками товара, сплошняком не гуд…

            1. жора 27 мая 2017, 00:07
              0 #

              Подскажите как можно сделать следующее: использую например featured -для вывода нужных мне товаров, при этом в любом месте посреди товаров выводить нужный блок с картинкой и ссылкой куда то.
              товар 1 товар 2
              блок1 товар3
              товар 4 блок 2

              1. Дмитрий 21 апреля 2017, 04:57
                0 #

                Модуль отличный! Большое спасибо! Один вопрос, как сделать, чтобы карточки были на расстоянии друг от друга, как в стандартном модуле?

                1. Владимир 19 апреля 2017, 02:33
                  0 #

                  Кто бы сказал, как бы поменять цвет кнопки, вывод добавления в корзину нормальный, а если ставлю подробнее, то цвет кнопки становится серым, и съезжает верстка. Кто знает как исправить. Автор, расскажи плиз ))

                  1. Владимир 19 апреля 2017, 04:31
                    0 #

                    По-умолчанию кнопки все серые… надо видеть

                    1. Владимир 20 апреля 2017, 14:54
                      0 #

                      Владимир, в моей ситуации решить вопрос можно?

                      1. Владимир 21 апреля 2017, 01:57
                        0 #

                        Разобрался, спасибо ))

                  2. Михаил 03 апреля 2017, 21:17
                    0 #

                    Поставил разрешения Админам на редактирование и просмотр — все равно доступа нет. Скажите, можно как-то обойти эту ошибку?

                    1. Владимир 19 апреля 2017, 04:30
                      0 #

                      Добавил версию для OC 2.3. Изменилось расположение каталога модулей

                    2. andrei 31 марта 2017, 12:46
                      0 #

                      не отображаются товары, пишет — что не достаточно прав

                      1. Владимир 19 апреля 2017, 04:30
                        0 #

                        Добавил версию для OC 2.3

                      2. Владимир 24 января 2017, 17:04(Комментарий был изменён)
                        0 #

                        Модуль отличный, но у меня возникли трудности, скачет размер карточек товара.
                        Как вылечить, кто знает, а так же прыгает цена, она не в один уровень. Спасибо за ранее )
                        radikal.ru][img]http://s019.radikal.ru/i640/1701/14/097ccd7c32ef.jpg

                        1. Владимир 19 апреля 2017, 04:33
                          0 #

                          По такому скрину очень сложно сказать т.к. вероятнее всего причина в наличии/отсутствии рейтинга, скидки, описания, а они как раз и не видны

                        2. kwakin 29 ноября 2016, 09:00(Комментарий был изменён)
                          0 #

                          как побороть
                          opencart pro 2102
                          шаб дефолт
                          farat.ru.host1529840.serv66.hostland.pro/index.php?route=common/home
                          под каруселью брендов

                          1. Валерий 21 ноября 2016, 11:18
                            0 #

                            Добрый день. Подскажите как сделать что-бы, модуль адаптировался под разные разрешения экрана и устройства?

                            1. Владимир 21 ноября 2016, 12:48
                              0 #

                              Посмотрите шаблон любого похожего модуля в используемой теме (latest.tpl, featured.tpl,..) и назначьте те же классы для блоков этого модуля. Возможно и структуру поменять придется

                            2. Аркадий 16 октября 2016, 12:34
                              0 #

                              Добрый день. Как сделать вращение карусели плавным без рывков на сайте опенкарт.

                              1. Владимир 17 октября 2016, 11:10(Комментарий был изменён)
                                0 #

                                Более плавное вращение — без прокрутки обратно к первому слайду? Если да, то здесь используется скрипт карусели OwlCarousel v1.3.3, которая идет стандартно в опенкарт 2 и в которой такой возможности нет… можно использовать другой скрипт, но тогда его желательно прикручивать и к другим модулям, что бы не загромождать head.
                                Если само переключение слайдов не достаточно плавное, можно добавить к параметрам вызова (внизу featuredcarusel.tpl)

                                lazyLoad : true,
                                Так же попробуйте добавить:
                                transitionStyle : "fade",
                                или
                                transitionStyle : "scaleUp",
                                (c transitionStyle может не заработать прокрутка… нужно проверять)

                              2. test 11 октября 2016, 10:18
                                0 #

                                Подскажите пожалуйста сколько будет стоить переделать этот модуль под следующие задачи:
                                — добавить возможность автоматического вывода новых товаров (не только тех которые добавляются вручную)
                                — добавить возможность сортировки товара методом перетаскивания вверх/вниз
                                — добавить возможность вывода определенной ссылки которая будет крепится на название модуля (тег h3)
                                — добавить возможность указания картинки в качестве стикера (новинка, акция, хит, скидка) для всех товаров указанных в определенном модуле

                                1. Владимир 17 октября 2016, 11:22
                                  0 #

                                  Давно планирую переделку этого модуля, но руки не доходят… когда займусь — не знаю пока. Задание не совсем понятно…
                                  вывод новых поступлений и товаров добавленных вручную — отдельно (или новые, или выбранные)?
                                  Что касается стикеров… для добавляемых вручную да, можно… а вот для новинок — здесь максимум что можно задать — вывод стикера «новинка» для всех, + вывод других стикеров или для всех, или, к примеру, для второго товара, без привязки к некому конкретному товару.

                                  1. test 18 октября 2016, 07:07
                                    0 #

                                    Да, или новые или выбранные. Так можете подсказать когда ожидать?

                                2. Николай 03 сентября 2016, 10:23(Комментарий был изменён)
                                  0 #

                                  Владимир, добрый день! :)

                                  Почему-то модуль листает влево на 1 раз больше нужного, в самом модуле изменял в основном стили, в скрипте изменил значение autoPlay и добавил stopOnHover, хотя и до этих изменений в js был уже такой трабл (изначально все работало правильно).

                                  Вот тот самый трабл: pixs.ru/showimage/problemspn_1006028_23156205.png
                                  В настройках модуля:
                                  Лимит: 4
                                  Количество одновременно отображаемых товаров: 4

                                  Пробовал уменьшать кол-во отображаемых товаров с 4 до 3 — все равно захватывает пустой блок под товар. Помогите, пожалуйста, разобраться!

                                  1. Владимир 15 сентября 2016, 02:58
                                    0 #

                                    Пробовал выставлять 4+4, другие варианты, товары из списка отключать… не получается повторить

                                  2. sasha 29 августа 2016, 09:36
                                    0 #

                                    Привет.Как задать для этого модуля в товаре производителя. Выводится только первый производитель, т.к. нет цикла в модуле? Для last, special и др. работает без проблем, то бишь в latest.php в массив $data['products'][] = array( добавляю 'manufacturer' => $result['manufacturer'], и в latest.tpl вывожу <?php echo $product['manufacturer']; ?>. Здесь это не канает, как исправить подскажите?)

                                    1. Владимир 01 сентября 2016, 04:57
                                      0 #

                                      Все верно, просто здесь используется не $result, а $product_info, т.е.

                                      'manufacturer' => $product_info['manufacturer'],

                                      1. sasha 01 сентября 2016, 05:21
                                        0 #

                                        Спасибо, помогло. Раз пошла такая пьянка, Владимир, подскажите пожалуйста как там сделать вывод скидки в процентах на товаре. Опять же на latest, special работает без проблем, а здесь ни как. Вот конструкция
                                        в feature.php Находим:

                                        if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
                                        $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')));
                                        } else {
                                        $price = false;
                                        }
                                        if ((float)$result['special']) {
                                        $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')));
                                        } else {
                                        $special = false;
                                        }

                                        И меняем на:

                                        if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
                                        $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')));
                                        $price2 = $result['price'];
                                        } else {
                                        $price = false;
                                        $price2 = false;
                                        }
                                        if ((float)$result['special']) {
                                        $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')));
                                        $special2 = $result['special'];
                                        } else {
                                        $special = false;
                                        $special2 = false;
                                        }
                                        Затем:
                                        $this->data['products'][] = array(
                                        'product_id' => $result['product_id'],
                                        'thumb' => $image,
                                        'name' => $result['name'],
                                        'price' => $price,
                                        'special' => $special,
                                        'rating' => $rating,
                                        'reviews' => sprintf($this->language->get('text_reviews'), (int)$result['reviews']),
                                        'href' => $this->url->link('product/product', 'product_id='. $result['product_id'])
                                        );
                                        Меняем на:
                                        $this->data['products'][] = array(
                                        'product_id' => $result['product_id'],
                                        'thumb' => $image,
                                        'name' => $result['name'],
                                        'price' => $price,
                                        'price2' => $price2,
                                        'special' => $special,
                                        'special2' => $special2,
                                        'rating' => $rating,
                                        'reviews' => sprintf($this->language->get('text_reviews'), (int)$result['reviews']),
                                        'href' => $this->url->link('product/product', 'product_id='. $result['product_id'])
                                        );
                                        Было добавлено:
                                        $price2 и $special2
                                        2. Изменения в шаблоне (/catalog/view/theme/default/template/module/feature.tpl):
                                        После:
                                        <?php echo $product['price']; ?> <?php echo $product['special']; ?>

                                        Добавляем:
                                        <?php
                                        $num[0]=$product['price2']; //Стоимость без скидки
                                        $num[1]=$product['special2']; //Стоимость по акции
                                        $procent=$num[0]/100;

                                        $result=100-($num[1]/$procent); //вычисляем процент
                                        echo round ($result); ?> % Скидка

                                        1. sasha 01 сентября 2016, 06:45
                                          0 #

                                          а все сделал, опять же $result, поменял на $product_info. Спасибо за наводку

                                    2. Николай 24 августа 2016, 18:11
                                      0 #

                                      Привет, подскажи как увеличить время, через которое начинается прокрутка, и было бы классно, если при наведении на товар, карусель останавливалась. Помоги, пожалуйста, реализовать это :)
                                      С уважением, Николай!

                                      1. Владимир 01 сентября 2016, 04:53
                                        0 #

                                        В шаблоне (/catalog/view/theme/default/template/module/featuredcarusel.tpl) есть вызов скрипта (внизу) с параметрами:

                                        $('#prodcarousel<?php echo $module; ?>').owlCarousel({
                                          items: <?php echo $items; ?>,
                                          autoPlay: 3000,
                                          navigation: true,
                                          navigationText: ['<i class="fa fa-chevron-left fa-5x"></i>', '<i class="fa fa-chevron-right fa-5x"></i>'],
                                          pagination: false
                                        });
                                        Здесь: autoPlay — скорость. так же нужно добавить параметр stopOnHover.
                                        Как вариант:
                                        $('#prodcarousel<?php echo $module; ?>').owlCarousel({
                                          items: <?php echo $items; ?>,
                                          autoPlay: 5000,
                                          navigation: true,
                                          navigationText: ['<i class="fa fa-chevron-left fa-5x"></i>', '<i class="fa fa-chevron-right fa-5x"></i>'],
                                          pagination: false,
                                          stopOnHover: true
                                        });

                                        1. Николай 02 сентября 2016, 17:47
                                          0 #

                                          Большое спасибо! Работает!

                                      2. михаил 01 августа 2016, 11:42
                                        0 #

                                        спасибо.

                                        1. phantom 15 июня 2016, 20:35
                                          0 #

                                          Добрый день.
                                          А как этот модуль можно переделать для хитов?

                                          1. maxxfc 01 июня 2016, 11:17
                                            0 #

                                            Подскажите, можно как-то сделать, чтоб в этой карусели были не рекомендуемые товары, а новинки?
                                            Спасибо.

                                            1. Данил 31 мая 2016, 18:08
                                              0 #

                                              Нельзя создать несколько разных блоков, как со стандартной каруселью :(

                                              1. Владимир 31 мая 2016, 21:05
                                                0 #

                                                А вот про это я если честно и не подумал… надо бы посмотреть как время будет…

                                              2. Леонид 15 апреля 2016, 12:37
                                                0 #

                                                Да проблема в нем 100% он конфликтует с теми стилями, которые заданы для общего шаблона :)
                                                У меня не стандартный шаблон стоит

                                                1. Леонид 14 апреля 2016, 14:42
                                                  0 #

                                                  Подскажите, как добавить CSS класс к модулю, чтоб он был в общем стиле сайта.
                                                  Спасибо!

                                                  1. Владимир 15 апреля 2016, 12:20
                                                    0 #

                                                    Посмотрите какие классы назначены блокам похожих модулей и назначьте те же в /catalog/view/theme/default/template/module/featuredcarusel.tpl… Или внесите правки в css файл используемого шаблона.

                                                    1. Леонид 15 апреля 2016, 12:27
                                                      0 #

                                                      Владимир, вчера крутил, вертел, добавлял, изменял и ничего

                                                      1. Владимир 15 апреля 2016, 12:32
                                                        0 #

                                                        Посмотрите вот этот файл — /catalog/view/javascript/jquery/owl-carousel/featuredcarusel.css может в нем проблема…

                                                        1. Леонид 15 апреля 2016, 13:19(Комментарий был изменён)
                                                          0 #

                                                          pixs.ru/showimage/Bezimyanni_6562064_21557429.png
                                                          Вот что выходит
                                                          А должно быть так:
                                                          pixs.ru/showimage/Bezimyanni_5371838_21557460.jpg
                                                          Что делать, не знаю(

                                                          1. Владимир 15 апреля 2016, 13:33
                                                            0 #

                                                            нужно править макет и контроллер (для скидки)… только зачем? на сайте ведь есть уже вывод товаров в карусели…

                                                            1. Леонид 15 апреля 2016, 13:41
                                                              0 #

                                                              Мне показался этот модель лучше)

                                                  2. рк 13 марта 2016, 20:16
                                                    0 #

                                                    Приветствую!
                                                    в админке кликаю по [ Изменение настроек модуля «Карусель рекомендуемых товаров» ]
                                                    в итоге Notice: Error: Could not load model extension/module! in D:\OpenServer\domains\domains.ru\vqmod\vqcache\vq2-system_engine_loader.php on line 48
                                                    подскажите как исправить?

                                                    1. Владимир 14 марта 2016, 06:23
                                                      0 #

                                                      Ошибка с модулем не связана никак в общем то… VQMOD на второй версии пользоваться и не начинал, точно не подскажу. Для начала нужно проверить /system/engine/loader.php, о котором в ошибке говорится. Он или изменен, или изменения вносит vqmod. 1 — сверьте с оригиналом (в котором 48я строка пустая), если изменений нет — проверьте все файлы из /vqmod/xml (кроме vqmod_opencart.xml) — один из них вносит изменения в loader.php — уберите его, проверьте версию и т.д.

                                                    2. Иван 24 февраля 2016, 13:35
                                                      0 #

                                                      подскажите, как сделать отображение цены жирным шрифтом?

                                                      1. Владимир 26 февраля 2016, 13:50
                                                        0 #

                                                        Добавьте в CSS:
                                                        .product-thumb .price {
                                                        color: #FF5400;
                                                        font-size: 23px;
                                                        text-align: center;
                                                        margin-top: 10px;
                                                        min-height: 40px;
                                                        }

                                                        .product-thumb .price-new {
                                                        font-weight: 600;
                                                        }

                                                        .product-thumb .price-old {
                                                        color: #999;
                                                        text-decoration: line-through;
                                                        margin-left: 10px;
                                                        }

                                                        Это для примера… а вообще здесь все аналогично стандартному шаблону, если у Вас используется другой — откройте любой похожий модуль и возьмите оттуда классы блоков и перенесите в этот (файл .tpl)

                                                      2. Дмитрий 19 февраля 2016, 23:36
                                                        0 #

                                                        А как поисковики относятся к таким каруселям? любят они их, или не очень?

                                                        1. Владимир 19 февраля 2016, 23:41
                                                          0 #

                                                          Это для посетителей… а поисковику должно быть без разницы оформлены эти блоки в виде карусели или нет… про негатив ничего не слышал