Модуль 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+)

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

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

  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 #

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