Готовые страницы

Каталог товаров

Готовая страница «Каталог товаров» выводит список категорий магазина в выбранном макете. Всё оформление управляется из панели настроек темы — код на странице остаётся неизменным.

Важно. Код этой страницы отличается от Seller 1. Если вы переносите сайт с первой версии темы — замените код страницы целиком: старые настройки (row-cols-*, pages__catalog_categories_cards_*) в Seller 2.0 не работают.

Создание страницы

  1. Установите приложение Настройки шаблонов через Инсталлер (если ещё не установлено).
  2. Создайте страницу в приложении Магазин (Магазин → Витрина → Страницы).
  3. Разместите на странице код:
{* GET THEME *}
{$theme_id = waRequest::getTheme()}

{* UTILS *}
{include "{$wa->site->themePath($theme_id)}u-utils.html"}

{* GET THEMESETTINGS *}
{$theme_settings = $wa->themesettings->getThemeSettings($theme_id, "site", true)}

{* LAYOUT *}
{call include_template template="html/pages/catalog/catalog"}

Сайдбар на странице каталога скрывается автоматически.

Настройки

Все настройки находятся в панели темы: Страницы → Каталог товаров.

НастройкаОписание
Макет отображенияВизуальный макет списка категорий — три варианта, у каждого свои настройки (см. ниже)
Использовать мини-карточки на мобильныхНа мобильных устройствах категории выводятся компактными мини-карточками
Группа изображенийКакую группу изображений использовать для миниатюр категорий (например, default, large, small)
Показывать количество товаровОтображать число товаров в каждой категории
Отображать только эти категорииСейчас не действует — известная ошибка темы (см. ниже)
Исключить эти категорииСейчас не действует — известная ошибка темы (см. ниже)
Внутренний фон / Внутренний фон (тёмная тема)Цветная подложка под списком категорий

Корневая категория каталога задаётся отдельно: Приложения и плагины → Приложение Магазин → Корневая категория.

Известная ошибка. Настройки «Отображать только эти категории» и «Исключить эти категории» в текущей версии темы не работают: страница каталога уже разбивает строку с ID в массив, а шаблоны категорий разбивают её повторно. На PHP 8 это приводит к фатальной ошибке страницы каталога, на PHP 7.4 фильтрация молча не применяется. Пока ошибка не исправлена, ограничивайте список категорий корневой категорией магазина.

Макеты отображения

МакетОписание
Первый (categories_01)Карточки-плитки произвольной ширины, выстраиваются в ряд по содержимому
Второй (categories_02)Строгая сетка: настраиваются соотношение сторон изображения (1:1, 3:4, 4:3, 2:1), размер изображения и число элементов в строке (4–8)
Третий (categories_03)Компактные плитки с маленькими изображениями — подходит, когда категорий много; поддерживает слайдер

Настройки всех трёх макетов показаны в разделе одновременно — блоки «Второй тип отображения» и «Третий тип отображения» видны всегда, независимо от выбора. Применяются только те из них, которые относятся к варианту, выбранному в настройке «Макет отображения».

Тонкая настройка через props

Для нестандартных случаев шаблону можно передать параметры напрямую — они переопределяют значения из настроек темы:

{$props = [
    "type" => "categories_02",
    "parent_id" => 15,
    "aspect_ratio" => "aspect-square",
    "image_size" => "400x400",
    "show_category_products_count" => false
]}

{call include_template template="html/pages/catalog/catalog" props=$props}

Доступные параметры: type, categories, parent_id, include, exclude, aspect_ratio, image_size, image_group, show_category_products_count, wrapper_classes, mobile_scroll, mobile_mini, inner_background, inner_background_dark.

Параметр columns через props не действует: классы сетки собираются из настроек темы до слияния с переданными props, а сами шаблоны категорий значение columns не читают. Число колонок задаётся настройкой темы либо подменой wrapper_classes:

{$props = [
    "type" => "categories_02",
    "wrapper_classes" => ["grid grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-5"]
]}