URL и параметры Vesremont для AI-агента

Каноническая URL-грамматика Vesremont: страницы, фасеты, диапазоны, сортировка, пагинация и правила комбинирования параметров. Исходный файл для машинного чтения: /llms/url-patterns.md.

Ниже описан фактический протокол, который обрабатывают серверная часть и JavaScript сайта. В примерах {...} означает переменную часть, а не буквальный текст.

Страницы

Назначение Паттерн
Корень каталога /catalog/
Валидное состояние каталога /catalog/{validated-path}/
Товар /catalog/product/{product-code}/
Бренд /catalog/brand/{brand-code}/
Все бренды /brand/
Поиск /search/?search={url-encoded-text}
Отзывы состояния каталога /catalog/{validated-path}/otziv/
Корзина /personal/basket/

{validated-path} проверяется сервером по актуальному набору валидных URL. Не конструируйте и не переставляйте его сегменты без готового href или URL из sitemap.

Категориальные фасеты

Дополнительное значение передаётся повторяемым параметром:

filter={facet-value-code}
                        

Несколько разных групп:

?filter={code-1}&filter={code-2}
                        

Коды чувствительны к фактическим данным каталога. Получайте их из data-filter-value-code и используйте опубликованный href; не выводите код из видимого названия. Штатный интерфейс переключает значение внутри одной группы и комбинирует значения разных групп.

Числовые диапазоны

range={filter-id}_s_o_{min}-e_d_{max}
                        

Фактический синтаксис содержит подчёркивание после ID, не знак =. ID, min и max — неотрицательные целые числа; текущий HTML задаёт step="1". Несколько диапазонов — повторяемые параметры:

?range={id-1}_s_o_{min-1}-e_d_{max-1}&range={id-2}_s_o_{min-2}-e_d_{max-2}
                        

filter-id=1 зарезервирован реализацией для цены. Остальные ID обозначают числовые характеристики и должны присутствовать на текущей странице. Сервер отбрасывает неизвестные ID и корректирует выходящие за доступные границы значения.

Реальный пример существующего формата:

/catalog/krepyezh/?range=1_s_o_82704-e_d_476950&range=4283_s_o_398-e_d_1437
                        

Сортировка товаров

sorts=id_sort
                        sorts=price_min
                        sorts=price_max
                        
  • id_sort — штатный порядок «Новинки»; UI обычно удаляет параметр и использует его как default.
  • price_min — сначала дешевле.
  • price_max — сначала дороже.

Параметр sort в robots.txt — старое SEO-правило и не является интерфейсом текущего каталога. Используется именно sorts.

Пагинация товаров

page={positive-integer}
                        

page=1 является начальным состоянием и обычно удаляется генератором ссылок. Ссылки пагинации публикуются в HTML. Изменение фасета или range сбрасывает page; смена сортировки может сохранить текущую страницу.

Комбинация query

Поддерживается совместное использование повторяемых filter, повторяемых range, одного sorts и одного page, например:

/catalog/{validated-path}/?filter={code}&range={id}_s_o_{min}-e_d_{max}&sorts=price_min&page=2
                        

Порядок query-параметров не является смысловым. При кодировании используйте обычный percent-encoding; не кодируйте разделители _s_o_, -e_d_, & и = как часть значений вручную.

Отзывы категории

На URL с окончанием /otziv/ обрабатываются:

  • otziv_sort=old|rating_high|rating_low; отсутствие параметра означает сначала новые;
  • otziv_rating=1|2|3|4|5;
  • otziv_media=1;
  • otziv_offset={positive-integer} для следующей пачки;
  • те же filter и range, что определяют исходное состояние категории.

Кнопки отзывов сейчас изменяют эти параметры через JavaScript. Агент может построить URL по указанным допустимым значениям.

Поиск

GET /search/?search={text}
                        

Других публичных query-параметров, сортировки или пагинации у страницы поиска текущая реализация не предоставляет.