Описание и настройки
Плагин формирует и отображает списки избранных товаров для категории. Функциональность плагина сходна со встроенными в Shopscript динамическими списками, однако выборка товаров для составления списка производится из категории, текущей или указанной, а не из всех товаров магазина.
Показ списка над основным перечнем товаров категории позволяет привлечь внимание покупателя к новинкам, самым популярным товарам, скидочным акциям по товарам, входящим в категорию, которую просматривает потенциальный покупатель.
Списки формируются без учета параметров сортировки и фильтрации в категории, если посетитель их установил.
Максимальное число товаров в списке указывается в настройках плагина. Не стоит без особой нужды указывать очень большое число, 6-12 товаров в каждом списке будет более, чем достаточно. Точное число товаров в результате может быть меньше, чем указано, если в категории нет подходящего количества товаров. Список может даже быть пустым.
Плагин формирует четыре вида списков:
- Новинки — список самых новых товаров в категории. Это список товаров категории, упорядоченный по дате создания в порядке убывания. Самый новый товар — самый первый. В настройках также можно установить ограничение на количество дней, в течение которых товар считается новым. Тогда в выборку не попадут товары, созданные ранее.
- Самые продаваемые — список товаров, упорядоченный по количеству продаж, отсортированный в порядке убывания. Товары с одинаковым числом продаж сортируются по имени.
- С самыми лучшими оценками — товары, упорядоченные по рейтингу в порядке убывания. Товары с одинаковым рейтингом сортируются также по имени
- Самые выгодные — товары с наибольшей скидкой в числовом выражении. Скидка считается как разница между "зачеркнутой" ценой и ценой продажи. Товары с одинаковым размером скидки сортируются также по имени. Товары без скидки (со скидкой равной нулю или отрицательному значению) и товары без "зачеркнутой" цены в список не попадают.
Настройки магазина, влияющие на работу плагина
- Продажа товаров, отсутствющих на складе. Если в настройках разрешено заказывать товары, которые отсутствуют на складе, то такие товары попадут и в списки. Если продажа отсутствующих товаров запрещена, то и в списках их не будет
- Показ товаров из подкатегорий. Списки формируются с учетом настройки категории "Включить товары из подкатегорий". Если в настройках категории разрешен показ товаров из подкатегорий, то такие товары будут учитываться при формировании списков. И наоборот.
Управление показом списков
Особенности встроенного шаблона
Во встроенном шаблоне доступны три переменных, две из которых wa_theme_url и wa_theme_path аналогичны переменным основных шаблонов тем приложений. С их помощью можно, например, подключать для отображения списков стандарный шаблон из темы дизайна, обычно list-thumbs.html или list-thumbs-mini.html. Это может помочь унифицировать внешний вид с остальной темой.
Также во встроенный шаблон передается переменная lists представляющая собой ассоциативный массив в качестве ключей которого выступают идентификаторы списков, а значения — массив товаров списка.
Допустимые ключи: newest, top_rated, top_selling и best_buys.
array('newest' => array(/* массив товаров */),
'top_rated' => array(/* массив товаров */),
'top_selling' => array(/* массив товаров */),
'best_buys' => array(/* массив товаров */)
);
Формат каждого списка аналогичен формату массива товаров в категории или списков товаров.
Отображение с использованием хука frontend_category
Встроенный шаблон выводится в месте, указанным хуком frontend_category. В настройках плагина можно указать дополнительно, чтобы шаблон выводился только на первой странице категории, если используется постраничная навигация. Также можно полностью отключить обработку хука.
Отображение встроенного шаблона в произвольном месте
Если необходимо вывести результат работы плагина с использованием встроенного шаблона в произвольном месте страницы категории, можно использовать метод shopFeaprocatPlugin::render($category_id) заменив $category_id на ID категории (таки да, он может отличаться от текущей, но зачем?).
Пример вызова из шаблона category.html:
{shopFeaprocatPlugin::render($category.id)}
Получение данных без использования встроенного шаблона
Можно просто получить данные в виде массива и не использовать встроенный шаблон и настройки плагина. Для этого необходимо вызвать метод shopFeaprocatPlugin::getProducts($options), где $options это массив с настройками. Формат массива настроек:
$options = array(
'category_id' => id_категории /* ID категории. Обязательный ключ */
'list_types' => array( /* массив нужных списков. Идентификатор списка должен */
'newest'=> 1, /* быть ключом массива, а значение должно быть */
... /* больше 0 */
),
'max_products' => 12, /* Максимально число товаров в списке, по умолчанию 12*/
'days_new' => 30 /* Ограничение по "возрасту" новых товаров, укажите */
/* 0, чтобы отключить. По умолчанию 30 дней */
)