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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Скачать модуль

Еще 4 материала, которые возможно Вам понравятся:

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

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

  1. kwakin 29 ноября 2016, 09:00(Комментарий был изменён)
    как побороть
    opencart pro 2102
    шаб дефолт
    farat.ru.host1529840.serv66.hostland.pro/index.php?route=common/home
    под каруселью брендов
    1. Валерий 21 ноября 2016, 11:18
      Добрый день. Подскажите как сделать что-бы, модуль адаптировался под разные разрешения экрана и устройства?
      1. Владимир 21 ноября 2016, 12:48
        Посмотрите шаблон любого похожего модуля в используемой теме (latest.tpl, featured.tpl,..) и назначьте те же классы для блоков этого модуля. Возможно и структуру поменять придется
      2. Аркадий 16 октября 2016, 12:34
        Добрый день. Как сделать вращение карусели плавным без рывков на сайте опенкарт.
        1. Владимир 17 октября 2016, 11:10(Комментарий был изменён)
          Более плавное вращение — без прокрутки обратно к первому слайду? Если да, то здесь используется скрипт карусели OwlCarousel v1.3.3, которая идет стандартно в опенкарт 2 и в которой такой возможности нет… можно использовать другой скрипт, но тогда его желательно прикручивать и к другим модулям, что бы не загромождать head.
          Если само переключение слайдов не достаточно плавное, можно добавить к параметрам вызова (внизу featuredcarusel.tpl)
          lazyLoad : true,
          Так же попробуйте добавить:
          transitionStyle : "fade",
          или
          transitionStyle : "scaleUp",
          (c transitionStyle может не заработать прокрутка… нужно проверять)
        2. test 11 октября 2016, 10:18
          Подскажите пожалуйста сколько будет стоить переделать этот модуль под следующие задачи:
          — добавить возможность автоматического вывода новых товаров (не только тех которые добавляются вручную)
          — добавить возможность сортировки товара методом перетаскивания вверх/вниз
          — добавить возможность вывода определенной ссылки которая будет крепится на название модуля (тег h3)
          — добавить возможность указания картинки в качестве стикера (новинка, акция, хит, скидка) для всех товаров указанных в определенном модуле
          1. Владимир 17 октября 2016, 11:22
            Давно планирую переделку этого модуля, но руки не доходят… когда займусь — не знаю пока. Задание не совсем понятно…
            вывод новых поступлений и товаров добавленных вручную — отдельно (или новые, или выбранные)?
            Что касается стикеров… для добавляемых вручную да, можно… а вот для новинок — здесь максимум что можно задать — вывод стикера «новинка» для всех, + вывод других стикеров или для всех, или, к примеру, для второго товара, без привязки к некому конкретному товару.
            1. test 18 октября 2016, 07:07
              Да, или новые или выбранные. Так можете подсказать когда ожидать?
          2. Николай 03 сентября 2016, 10:23(Комментарий был изменён)
            Владимир, добрый день! :)

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

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

            Пробовал уменьшать кол-во отображаемых товаров с 4 до 3 — все равно захватывает пустой блок под товар. Помогите, пожалуйста, разобраться!
            1. Владимир 15 сентября 2016, 02:58
              Пробовал выставлять 4+4, другие варианты, товары из списка отключать… не получается повторить
            2. sasha 29 августа 2016, 09:36
              Привет.Как задать для этого модуля в товаре производителя. Выводится только первый производитель, т.к. нет цикла в модуле? Для last, special и др. работает без проблем, то бишь в latest.php в массив $data['products'][] = array( добавляю 'manufacturer' => $result['manufacturer'], и в latest.tpl вывожу <?php echo $product['manufacturer']; ?>. Здесь это не канает, как исправить подскажите?)
              1. Владимир 01 сентября 2016, 04:57
                Все верно, просто здесь используется не $result, а $product_info, т.е.
                'manufacturer' => $product_info['manufacturer'],
                1. sasha 01 сентября 2016, 05:21
                  Спасибо, помогло. Раз пошла такая пьянка, Владимир, подскажите пожалуйста как там сделать вывод скидки в процентах на товаре. Опять же на 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
                    а все сделал, опять же $result, поменял на $product_info. Спасибо за наводку
              2. Николай 24 августа 2016, 18:11
                Привет, подскажи как увеличить время, через которое начинается прокрутка, и было бы классно, если при наведении на товар, карусель останавливалась. Помоги, пожалуйста, реализовать это :)
                С уважением, Николай!
                1. Владимир 01 сентября 2016, 04:53
                  В шаблоне (/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
                    Большое спасибо! Работает!
                2. михаил 01 августа 2016, 11:42
                  спасибо.
                  1. phantom 15 июня 2016, 20:35
                    Добрый день.
                    А как этот модуль можно переделать для хитов?
                    1. maxxfc 01 июня 2016, 11:17
                      Подскажите, можно как-то сделать, чтоб в этой карусели были не рекомендуемые товары, а новинки?
                      Спасибо.
                      1. Данил 31 мая 2016, 18:08
                        Нельзя создать несколько разных блоков, как со стандартной каруселью :(
                        1. Владимир 31 мая 2016, 21:05
                          А вот про это я если честно и не подумал… надо бы посмотреть как время будет…
                        2. Леонид 15 апреля 2016, 12:37
                          Да проблема в нем 100% он конфликтует с теми стилями, которые заданы для общего шаблона :)
                          У меня не стандартный шаблон стоит
                          1. Леонид 14 апреля 2016, 14:42
                            Подскажите, как добавить CSS класс к модулю, чтоб он был в общем стиле сайта.
                            Спасибо!
                            1. Владимир 15 апреля 2016, 12:20
                              Посмотрите какие классы назначены блокам похожих модулей и назначьте те же в /catalog/view/theme/default/template/module/featuredcarusel.tpl… Или внесите правки в css файл используемого шаблона.
                              1. Леонид 15 апреля 2016, 12:27
                                Владимир, вчера крутил, вертел, добавлял, изменял и ничего
                                1. Владимир 15 апреля 2016, 12:32
                                  Посмотрите вот этот файл — /catalog/view/javascript/jquery/owl-carousel/featuredcarusel.css может в нем проблема…
                                  1. Леонид 15 апреля 2016, 13:19(Комментарий был изменён)
                                    pixs.ru/showimage/Bezimyanni_6562064_21557429.png
                                    Вот что выходит
                                    А должно быть так:
                                    pixs.ru/showimage/Bezimyanni_5371838_21557460.jpg
                                    Что делать, не знаю(
                                    1. Владимир 15 апреля 2016, 13:33
                                      нужно править макет и контроллер (для скидки)… только зачем? на сайте ведь есть уже вывод товаров в карусели…
                                      1. Леонид 15 апреля 2016, 13:41
                                        Мне показался этот модель лучше)
                            2. рк 13 марта 2016, 20:16
                              Приветствую!
                              в админке кликаю по [ Изменение настроек модуля «Карусель рекомендуемых товаров» ]
                              в итоге 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
                                Ошибка с модулем не связана никак в общем то… VQMOD на второй версии пользоваться и не начинал, точно не подскажу. Для начала нужно проверить /system/engine/loader.php, о котором в ошибке говорится. Он или изменен, или изменения вносит vqmod. 1 — сверьте с оригиналом (в котором 48я строка пустая), если изменений нет — проверьте все файлы из /vqmod/xml (кроме vqmod_opencart.xml) — один из них вносит изменения в loader.php — уберите его, проверьте версию и т.д.
                              2. Иван 24 февраля 2016, 13:35
                                подскажите, как сделать отображение цены жирным шрифтом?
                                1. Владимир 26 февраля 2016, 13:50
                                  Добавьте в 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
                                  А как поисковики относятся к таким каруселям? любят они их, или не очень?
                                  1. Владимир 19 февраля 2016, 23:41
                                    Это для посетителей… а поисковику должно быть без разницы оформлены эти блоки в виде карусели или нет… про негатив ничего не слышал