Покупателям
Инструмент Электрика и свет Ручной инструмент Офис и дом Строительные материалы Спецодежда и СИЗ Расходные материалы Складское оборудование Крепёж Климатическое оборудование Сантехника Автосервисное оборудование Строительное оборудование Спорт и туризм Станки Всё для сада Клининговое оборудование

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

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

Версия AI-документации: 1.14.31. Ревизия: sha256:5645af5ca9e82c3127c691283c5eec16d7efab8039972ccbbae5ae4b8ec746ce.

Индекс документации: https://vesremont.com/llms.txt

Связь этого раздела с задачей

Задача: Правильно продолжить навигацию по опубликованному HTML URL.

Что нужно на входе: Реальный href/canonical и значения текущих фильтров. Символические пути каталога нельзя угадывать.

Результат: Корректный URL следующего состояния; HTML query не переносится в REST schema.

Другая цель? Карта всех задач и режимов. Права личного доступа — auth.md; это не обязательный шаг для публичного чтения.

Следующий раздел по теме: Фильтры и диапазоны — получить допустимые значения · Поиск по сайту — найти страницу заново при неизвестном пути · Public API — использовать отдельный контракт программного интерфейса.

URL программных интерфейсов

REST использует /api/v1 без завершающего slash у маршрутов; отдельный /api/v1/cart-drafts/ сохраняет slash. OpenAPI: /openapi.json и /.well-known/openapi.json. Remote MCP: /mcp; A2A: /a2a/message:send; UCP: /ucp/v1. Discovery: /.well-known/api-catalog, /.well-known/mcp.json, /.well-known/agent-card.json, /.well-known/ucp. OAuth metadata: /.well-known/oauth-authorization-server. Не дописывайте slash, index.php или HTML-параметры к API URL. Контракт: Public API.

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

Страницы

НазначениеПаттерн
Корень каталога/catalog/
Валидное состояние каталога/catalog/{validated-path}/
Товар/catalog/product/{section-code}/{product-code}/
Бренд/catalog/brand/{brand-code}/
Все бренды/brand/
Поиск/search/?search={url-encoded-text}
Отзывы состояния каталога/catalog/{validated-path}/otziv/
Корзина/personal/basket/
Передать товары покупателю без OAuth/buy/{product_id}:{quantity}
Подписать подборку, получить share_url/api/v1/cart-drafts/?product_id={id}&quantity={qty}

/buy/ использует внутренний ID товара, не артикул или ID строки корзины. Конкретная ссылка публикуется в видимом тексте карточки. Это документированное исключение к запрету угадывать catalog path: меняется только количество 1–99 у известного ID. Несколько товаров: /buy/{id1}:{qty1},{id2}:{qty2}, до 20 разных ID. Сайт выполняет защищённый перенос при открытии покупателем, а не запись одним GET агента. Порядок переноса.

{validated-path} и оба кода товарного URL проверяются сервером по актуальному набору валидных URL. Не конструируйте и не переставляйте их сегменты без готового href, canonical или 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-параметров, сортировки или пагинации у страницы поиска текущая реализация не предоставляет.