{
  "$schema": "https://rev.uask.pro/knowledge/node.schema.json",
  "schema_version": "1.0",
  "entity": "revolution.settings.catalog.sorting",
  "canonical_url": "https://rev.uask.pro/settings/catalog/sorting.html",
  "anchors": {
    "doc": "#doc",
    "dev": "#dev"
  },
  "title_ru": "Сортировки каталога",
  "summary_ru": "Здесь настраивается раздел «Сортировки каталога» и то, как он выглядит и работает для покупателей.",
  "version_scope": "5.x",
  "source": {
    "kind": "shipped_admin_template",
    "file": "admin/view/template/revolution/revtheme.twig",
    "tab_id": "tab_cat_sorts"
  },
  "retrieval": {
    "read_when": [
      "изменить сортировку товаров",
      "добавить варианты сортировки"
    ],
    "skip_when": [
      "задача не касается компонента и ни одно условие связи не совпадает"
    ],
    "strategy": "read_current_then_conditionally_follow_edges",
    "stop_condition": "получены поля, ограничения и проверка, необходимые для текущей задачи",
    "do_not": [
      "не читать весь сайт последовательно",
      "не выдумывать серверную валидацию защищённого контроллера"
    ]
  },
  "fields": [
    {
      "name": "revtheme_catalog_sorts_category[group_default]",
      "label_ru": "Группировка по умолчанию",
      "control": "select",
      "format": "enum",
      "options": [
        {
          "value": "0",
          "label": "Не задана"
        },
        {
          "value": "stock",
          "label": "Статус на складе"
        },
        {
          "value": "fman",
          "label": "Производитель"
        },
        {
          "value": "",
          "label": ""
        },
        {
          "value": "",
          "label": ""
        }
      ],
      "default_evidence": "не задан в HTML",
      "validation_evidence": "Явная HTML-валидация не задана",
      "conditional_ui": false,
      "purpose_ru": "Управляет параметром «Группировка по умолчанию» в этом компоненте.",
      "source_line": 3928,
      "consumer_files": [
        "system/revolution.ocmod.xml",
        "admin/view/template/revolution/revtheme.twig"
      ]
    },
    {
      "name": "revtheme_catalog_sorts_category[sort_default]",
      "label_ru": "Сортировка по умолчанию",
      "control": "select",
      "format": "enum",
      "options": [
        {
          "value": "p.sort_order",
          "label": "По умолчанию"
        },
        {
          "value": "p.sort_order",
          "label": "По умолчанию"
        },
        {
          "value": "pd.name",
          "label": "По имени"
        },
        {
          "value": "pd.name",
          "label": "По имени"
        },
        {
          "value": "p.price",
          "label": "По Цене"
        },
        {
          "value": "p.price",
          "label": "По Цене"
        },
        {
          "value": "rating",
          "label": "По Рейтингу"
        },
        {
          "value": "rating",
          "label": "По Рейтингу"
        },
        {
          "value": "p.model",
          "label": "По Модели"
        },
        {
          "value": "p.model",
          "label": "По Модели"
        },
        {
          "value": "p.date_added",
          "label": "По Дате поступления"
        },
        {
          "value": "p.date_added",
          "label": "По Дате поступления"
        }
      ],
      "default_evidence": "не задан в HTML",
      "validation_evidence": "Явная HTML-валидация не задана",
      "conditional_ui": false,
      "purpose_ru": "Определяет порядок вывода; меньшие значения обычно выводятся раньше.",
      "source_line": 3944,
      "consumer_files": [
        "system/revolution.ocmod.xml",
        "admin/view/template/revolution/revtheme.twig"
      ]
    },
    {
      "name": "revtheme_catalog_sorts_category[sort_default_adesc]",
      "label_ru": "Сортировка по умолчанию",
      "control": "select",
      "format": "enum",
      "options": [
        {
          "value": "ASC",
          "label": "По возрастанию"
        },
        {
          "value": "ASC",
          "label": "По возрастанию"
        },
        {
          "value": "DESC",
          "label": "По убыванию"
        },
        {
          "value": "DESC",
          "label": "По убыванию"
        }
      ],
      "default_evidence": "не задан в HTML",
      "validation_evidence": "Явная HTML-валидация не задана",
      "conditional_ui": false,
      "purpose_ru": "Определяет порядок вывода; меньшие значения обычно выводятся раньше.",
      "source_line": 3979,
      "consumer_files": [
        "system/revolution.ocmod.xml",
        "admin/view/template/revolution/revtheme.twig"
      ]
    },
    {
      "name": "revtheme_catalog_sorts_category[order_ASC]",
      "label_ru": "По умолчанию",
      "control": "radio",
      "format": "enum / boolean",
      "options": [
        {
          "value": "1",
          "label": "Да"
        },
        {
          "value": "0",
          "label": "Нет"
        }
      ],
      "default_evidence": "не задан в HTML",
      "validation_evidence": "Явная HTML-валидация не задана",
      "conditional_ui": false,
      "purpose_ru": "Управляет параметром «По умолчанию» в этом компоненте.",
      "source_line": 3998,
      "consumer_files": [
        "system/revolution.ocmod.xml",
        "admin/view/template/revolution/revtheme.twig"
      ]
    },
    {
      "name": "revtheme_catalog_sorts_category[{language_id}][order_ASC_text]",
      "label_ru": "По умолчанию",
      "control": "text",
      "format": "string",
      "options": [],
      "default_evidence": "не задан в HTML",
      "validation_evidence": "Явная HTML-валидация не задана",
      "conditional_ui": false,
      "purpose_ru": "Задаёт отображаемый пользователю текст или заголовок.",
      "source_line": 4009,
      "consumer_files": [
        "system/revolution.ocmod.xml",
        "admin/view/template/revolution/revtheme.twig"
      ]
    },
    {
      "name": "revtheme_catalog_sorts_category[name_ASC]",
      "label_ru": "По имени(А - Я)",
      "control": "radio",
      "format": "enum / boolean",
      "options": [
        {
          "value": "1",
          "label": "Да"
        },
        {
          "value": "0",
          "label": "Нет"
        }
      ],
      "default_evidence": "не задан в HTML",
      "validation_evidence": "Явная HTML-валидация не задана",
      "conditional_ui": false,
      "purpose_ru": "Задаёт отображаемый пользователю текст или заголовок.",
      "source_line": 4018,
      "consumer_files": [
        "system/revolution.ocmod.xml",
        "admin/view/template/revolution/revtheme.twig"
      ]
    },
    {
      "name": "revtheme_catalog_sorts_category[{language_id}][name_ASC_text]",
      "label_ru": "По имени(А - Я)",
      "control": "text",
      "format": "string",
      "options": [],
      "default_evidence": "не задан в HTML",
      "validation_evidence": "Явная HTML-валидация не задана",
      "conditional_ui": false,
      "purpose_ru": "Задаёт отображаемый пользователю текст или заголовок.",
      "source_line": 4029,
      "consumer_files": [
        "system/revolution.ocmod.xml",
        "admin/view/template/revolution/revtheme.twig"
      ]
    },
    {
      "name": "revtheme_catalog_sorts_category[name_DESC]",
      "label_ru": "По имени(Я - А)",
      "control": "radio",
      "format": "enum / boolean",
      "options": [
        {
          "value": "1",
          "label": "Да"
        },
        {
          "value": "0",
          "label": "Нет"
        }
      ],
      "default_evidence": "не задан в HTML",
      "validation_evidence": "Явная HTML-валидация не задана",
      "conditional_ui": false,
      "purpose_ru": "Задаёт отображаемый пользователю текст или заголовок.",
      "source_line": 4038,
      "consumer_files": [
        "system/revolution.ocmod.xml",
        "admin/view/template/revolution/revtheme.twig"
      ]
    },
    {
      "name": "revtheme_catalog_sorts_category[{language_id}][name_DESC_text]",
      "label_ru": "По имени(Я - А)",
      "control": "text",
      "format": "string",
      "options": [],
      "default_evidence": "не задан в HTML",
      "validation_evidence": "Явная HTML-валидация не задана",
      "conditional_ui": false,
      "purpose_ru": "Задаёт отображаемый пользователю текст или заголовок.",
      "source_line": 4049,
      "consumer_files": [
        "system/revolution.ocmod.xml",
        "admin/view/template/revolution/revtheme.twig"
      ]
    },
    {
      "name": "revtheme_catalog_sorts_category[price_ASC]",
      "label_ru": "По Цене(по возрастанию)",
      "control": "radio",
      "format": "enum / boolean",
      "options": [
        {
          "value": "1",
          "label": "Да"
        },
        {
          "value": "0",
          "label": "Нет"
        }
      ],
      "default_evidence": "не задан в HTML",
      "validation_evidence": "Явная HTML-валидация не задана",
      "conditional_ui": false,
      "purpose_ru": "Управляет параметром «По Цене(по возрастанию)» в этом компоненте.",
      "source_line": 4058,
      "consumer_files": [
        "system/revolution.ocmod.xml",
        "admin/view/template/revolution/revtheme.twig"
      ]
    },
    {
      "name": "revtheme_catalog_sorts_category[{language_id}][price_ASC_text]",
      "label_ru": "По Цене(по возрастанию)",
      "control": "text",
      "format": "string",
      "options": [],
      "default_evidence": "не задан в HTML",
      "validation_evidence": "Явная HTML-валидация не задана",
      "conditional_ui": false,
      "purpose_ru": "Задаёт отображаемый пользователю текст или заголовок.",
      "source_line": 4069,
      "consumer_files": [
        "system/revolution.ocmod.xml",
        "admin/view/template/revolution/revtheme.twig"
      ]
    },
    {
      "name": "revtheme_catalog_sorts_category[price_DESC]",
      "label_ru": "По Цене(по убыванию)",
      "control": "radio",
      "format": "enum / boolean",
      "options": [
        {
          "value": "1",
          "label": "Да"
        },
        {
          "value": "0",
          "label": "Нет"
        }
      ],
      "default_evidence": "не задан в HTML",
      "validation_evidence": "Явная HTML-валидация не задана",
      "conditional_ui": false,
      "purpose_ru": "Управляет параметром «По Цене(по убыванию)» в этом компоненте.",
      "source_line": 4078,
      "consumer_files": [
        "system/revolution.ocmod.xml",
        "admin/view/template/revolution/revtheme.twig"
      ]
    },
    {
      "name": "revtheme_catalog_sorts_category[{language_id}][price_DESC_text]",
      "label_ru": "По Цене(по убыванию)",
      "control": "text",
      "format": "string",
      "options": [],
      "default_evidence": "не задан в HTML",
      "validation_evidence": "Явная HTML-валидация не задана",
      "conditional_ui": false,
      "purpose_ru": "Задаёт отображаемый пользователю текст или заголовок.",
      "source_line": 4089,
      "consumer_files": [
        "system/revolution.ocmod.xml",
        "admin/view/template/revolution/revtheme.twig"
      ]
    },
    {
      "name": "revtheme_catalog_sorts_category[rating_DESC]",
      "label_ru": "По Рейтингу(по убыванию)",
      "control": "radio",
      "format": "enum / boolean",
      "options": [
        {
          "value": "1",
          "label": "Да"
        },
        {
          "value": "0",
          "label": "Нет"
        }
      ],
      "default_evidence": "не задан в HTML",
      "validation_evidence": "Явная HTML-валидация не задана",
      "conditional_ui": false,
      "purpose_ru": "Управляет параметром «По Рейтингу(по убыванию)» в этом компоненте.",
      "source_line": 4098,
      "consumer_files": [
        "system/revolution.ocmod.xml",
        "admin/view/template/revolution/revtheme.twig"
      ]
    },
    {
      "name": "revtheme_catalog_sorts_category[{language_id}][rating_DESC_text]",
      "label_ru": "По Рейтингу(по убыванию)",
      "control": "text",
      "format": "string",
      "options": [],
      "default_evidence": "не задан в HTML",
      "validation_evidence": "Явная HTML-валидация не задана",
      "conditional_ui": false,
      "purpose_ru": "Задаёт отображаемый пользователю текст или заголовок.",
      "source_line": 4109,
      "consumer_files": [
        "system/revolution.ocmod.xml",
        "admin/view/template/revolution/revtheme.twig"
      ]
    },
    {
      "name": "revtheme_catalog_sorts_category[rating_ASC]",
      "label_ru": "По Рейтингу(по возрастанию)",
      "control": "radio",
      "format": "enum / boolean",
      "options": [
        {
          "value": "1",
          "label": "Да"
        },
        {
          "value": "0",
          "label": "Нет"
        }
      ],
      "default_evidence": "не задан в HTML",
      "validation_evidence": "Явная HTML-валидация не задана",
      "conditional_ui": false,
      "purpose_ru": "Управляет параметром «По Рейтингу(по возрастанию)» в этом компоненте.",
      "source_line": 4118,
      "consumer_files": [
        "system/revolution.ocmod.xml",
        "admin/view/template/revolution/revtheme.twig"
      ]
    },
    {
      "name": "revtheme_catalog_sorts_category[{language_id}][rating_ASC_text]",
      "label_ru": "По Рейтингу(по возрастанию)",
      "control": "text",
      "format": "string",
      "options": [],
      "default_evidence": "не задан в HTML",
      "validation_evidence": "Явная HTML-валидация не задана",
      "conditional_ui": false,
      "purpose_ru": "Задаёт отображаемый пользователю текст или заголовок.",
      "source_line": 4129,
      "consumer_files": [
        "system/revolution.ocmod.xml",
        "admin/view/template/revolution/revtheme.twig"
      ]
    },
    {
      "name": "revtheme_catalog_sorts_category[model_ASC]",
      "label_ru": "По Модели(A - Я)",
      "control": "radio",
      "format": "enum / boolean",
      "options": [
        {
          "value": "1",
          "label": "Да"
        },
        {
          "value": "0",
          "label": "Нет"
        }
      ],
      "default_evidence": "не задан в HTML",
      "validation_evidence": "Явная HTML-валидация не задана",
      "conditional_ui": false,
      "purpose_ru": "Управляет параметром «По Модели(A - Я)» в этом компоненте.",
      "source_line": 4138,
      "consumer_files": [
        "system/revolution.ocmod.xml",
        "admin/view/template/revolution/revtheme.twig"
      ]
    },
    {
      "name": "revtheme_catalog_sorts_category[{language_id}][model_ASC_text]",
      "label_ru": "По Модели(A - Я)",
      "control": "text",
      "format": "string",
      "options": [],
      "default_evidence": "не задан в HTML",
      "validation_evidence": "Явная HTML-валидация не задана",
      "conditional_ui": false,
      "purpose_ru": "Задаёт отображаемый пользователю текст или заголовок.",
      "source_line": 4149,
      "consumer_files": [
        "system/revolution.ocmod.xml",
        "admin/view/template/revolution/revtheme.twig"
      ]
    },
    {
      "name": "revtheme_catalog_sorts_category[model_DESC]",
      "label_ru": "По Модели(Я - A)",
      "control": "radio",
      "format": "enum / boolean",
      "options": [
        {
          "value": "1",
          "label": "Да"
        },
        {
          "value": "0",
          "label": "Нет"
        }
      ],
      "default_evidence": "не задан в HTML",
      "validation_evidence": "Явная HTML-валидация не задана",
      "conditional_ui": false,
      "purpose_ru": "Управляет параметром «По Модели(Я - A)» в этом компоненте.",
      "source_line": 4158,
      "consumer_files": [
        "system/revolution.ocmod.xml",
        "admin/view/template/revolution/revtheme.twig"
      ]
    },
    {
      "name": "revtheme_catalog_sorts_category[{language_id}][model_DESC_text]",
      "label_ru": "По Модели(Я - A)",
      "control": "text",
      "format": "string",
      "options": [],
      "default_evidence": "не задан в HTML",
      "validation_evidence": "Явная HTML-валидация не задана",
      "conditional_ui": false,
      "purpose_ru": "Задаёт отображаемый пользователю текст или заголовок.",
      "source_line": 4169,
      "consumer_files": [
        "system/revolution.ocmod.xml",
        "admin/view/template/revolution/revtheme.twig"
      ]
    },
    {
      "name": "revtheme_catalog_sorts_category[date_added_ASC]",
      "label_ru": "По дате поступления(старые > новые)",
      "control": "radio",
      "format": "enum / boolean",
      "options": [
        {
          "value": "1",
          "label": "Да"
        },
        {
          "value": "0",
          "label": "Нет"
        }
      ],
      "default_evidence": "не задан в HTML",
      "validation_evidence": "Явная HTML-валидация не задана",
      "conditional_ui": false,
      "purpose_ru": "Управляет параметром «По дате поступления(старые > новые)» в этом компоненте.",
      "source_line": 4178,
      "consumer_files": [
        "system/revolution.ocmod.xml",
        "admin/view/template/revolution/revtheme.twig"
      ]
    },
    {
      "name": "revtheme_catalog_sorts_category[{language_id}][date_added_ASC_text]",
      "label_ru": "По дате поступления(старые > новые)",
      "control": "text",
      "format": "string",
      "options": [],
      "default_evidence": "не задан в HTML",
      "validation_evidence": "Явная HTML-валидация не задана",
      "conditional_ui": false,
      "purpose_ru": "Задаёт отображаемый пользователю текст или заголовок.",
      "source_line": 4189,
      "consumer_files": [
        "system/revolution.ocmod.xml",
        "admin/view/template/revolution/revtheme.twig"
      ]
    },
    {
      "name": "revtheme_catalog_sorts_category[date_added_DESC]",
      "label_ru": "По дате поступления(новые > старые)",
      "control": "radio",
      "format": "enum / boolean",
      "options": [
        {
          "value": "1",
          "label": "Да"
        },
        {
          "value": "0",
          "label": "Нет"
        }
      ],
      "default_evidence": "не задан в HTML",
      "validation_evidence": "Явная HTML-валидация не задана",
      "conditional_ui": false,
      "purpose_ru": "Управляет параметром «По дате поступления(новые > старые)» в этом компоненте.",
      "source_line": 4198,
      "consumer_files": [
        "system/revolution.ocmod.xml",
        "admin/view/template/revolution/revtheme.twig"
      ]
    },
    {
      "name": "revtheme_catalog_sorts_category[{language_id}][date_added_DESC_text]",
      "label_ru": "По дате поступления(новые > старые)",
      "control": "text",
      "format": "string",
      "options": [],
      "default_evidence": "не задан в HTML",
      "validation_evidence": "Явная HTML-валидация не задана",
      "conditional_ui": false,
      "purpose_ru": "Задаёт отображаемый пользователю текст или заголовок.",
      "source_line": 4209,
      "consumer_files": [
        "system/revolution.ocmod.xml",
        "admin/view/template/revolution/revtheme.twig"
      ]
    }
  ],
  "relations": [
    {
      "relation": "part_of",
      "target": "revolution.settings.catalog",
      "url": "/settings/catalog/",
      "why": "Родительский раздел «Каталог товаров».",
      "when_to_follow": "Нужен обзор соседних компонентов этого раздела."
    },
    {
      "relation": "apply_with",
      "target": "revolution.workflow.safe-change",
      "url": "/getting-started/safe-workflow",
      "why": "Безопасное изменение настроек и откат.",
      "when_to_follow": "Перед изменением рабочего магазина."
    },
    {
      "relation": "troubleshoot_with",
      "target": "revolution.troubleshooting.cache",
      "url": "/troubleshooting/cache",
      "why": "Сохранённые настройки могут быть скрыты кэшем шаблона, модификаторов или браузера.",
      "when_to_follow": "Изменение сохранено, но не видно на витрине."
    },
    {
      "relation": "related_by_task",
      "target": "revolution.settings.appearance.catalog",
      "url": "/settings/appearance/catalog",
      "why": "Общие задачи: catalog, commerce, product.",
      "when_to_follow": "Вопрос затрагивает одновременно «Сортировки каталога» и «Внешний вид каталога»."
    },
    {
      "relation": "related_by_task",
      "target": "revolution.settings.home.product-slider-1",
      "url": "/settings/home/product-slider-1",
      "why": "Общие задачи: catalog, commerce, product.",
      "when_to_follow": "Вопрос затрагивает одновременно «Сортировки каталога» и «Произвольный слайдер товаров 1»."
    },
    {
      "relation": "related_by_task",
      "target": "revolution.settings.catalog.compare",
      "url": "/settings/catalog/compare",
      "why": "Общие задачи: catalog, commerce, product.",
      "when_to_follow": "Вопрос затрагивает одновременно «Сортировки каталога» и «Сравнение товаров»."
    },
    {
      "relation": "related_by_task",
      "target": "revolution.settings.additional.checkout",
      "url": "/settings/additional/checkout",
      "why": "Общие задачи: commerce, product.",
      "when_to_follow": "Вопрос затрагивает одновременно «Сортировки каталога» и «Страница оформления заказа»."
    }
  ],
  "uncertainties": [
    "Точная серверная валидация и реализация сохранения скрыты ionCube.",
    "Пустое HTML-значение не считается доказательством фактического default после установки."
  ]
}
