Индекс документации: https://vesremont.com/llms.txt
Связь этого раздела с задачей
Задача: Найти точный товар по артикулу, модели или названию.
Что нужно на входе: Текст запроса. HTML, JSON и Markdown — альтернативы, OAuth для публичного поиска не нужен.
Результат: Подтверждённое совпадение, product_id и URL; неоднозначные результаты требуют уточнения, а не выбора наугад.
Другая цель? Карта всех задач и режимов. Права личного доступа — auth.md; это не обязательный шаг для публичного чтения.
Следующий раздел по теме: Данные карточки товара — сверить артикул и характеристики · Фильтры и диапазоны — уточнить широкий подбор · Корзина и оформление — передать уже найденные товары по ссылке.
Артикул → точный товар → ссылка на корзину
- Для известного артикула используйте публичный
GET /api/v1/products?q={артикул}(JSON) илиGET /api/v1/products.md?q={артикул}(Markdown). OAuth и API key не нужны. Кодируйте query value, не меняйте Host/IP и не передавайте browser cookies. - Сопоставьте артикул и модель с результатом, прочитайте
items[].idв JSON или явный ID в Markdown. При нескольких совпадениях проверьте точную карточку; не угадывайте ID и не подставляйте артикул вместо него. - Если ваш инструмент не читает API, откройте HTML-поиск
/search/?search={артикул}либо найденную поисковиком карточку. В карточке есть видимый текстовый блок с ID и конкретной/buy/ссылкой. HTML-атрибуты и выполнение JavaScript для этого не нужны. - Для запроса «пришли корзину» передайте эту опубликованную ссылку покупателю. Можно не открывать её агентом: перенос выполняется при открытии покупателем, а не в его отсутствие. Отметьте отдельно, если ваш инструмент не смог проверить ссылку; не объявляйте функцию невозможной. Ссылка, несколько товаров и оформление.
JSON, Markdown и HTML — альтернативы, а не обязательные последовательные этапы. Публичные MCP/A2A инструменты поиска также доступны без покупательского токена; SDK — необязателен. Подробности каждого протокола — в Public API.
Поиск в открытом браузере через WebMCP
search_products({search: "артикул или модель"}) открывает обычную страницу результатов; единственное точное совпадение может сразу открыть карточку. После навигации заново получите список инструментов текущей страницы.
- В листинге вызовите
get_visible_products({limit: 1}), чтобы показать цену первого результата и получить его настоящийproductIdи URL.limitограничивает число возвращённых товаров, не выполняет новый поиск. - Для полной карточки вызовите
open_product({productId: ID_из_результата}). Он принимает только товар, уже представленный на текущей странице, и открывает его опубликованный URL. Произвольный ID не угадывайте. - На карточке
get_current_product({})читает цену, остаток, описание и характеристики той же страницы, которую видит покупатель. Цена в рублях; наличие, возможность заказа и самовывоз — разные признаки. - Пустой список не доказывает отсутствие товара во всём каталоге. Уточните запрос или дождитесь штатной загрузки выдачи. Для добавления нужен отдельный
add_to_cart; поиск и открытие карточки корзину не меняют.
Навигационные инструменты меняют открытую страницу и поэтому не помечены как чистое чтение readOnlyHint: true. Чтение данных выполняют get_visible_products и get_current_product. Браузерные инструменты и подтверждения · Карточка товара.
Программный поиск REST
GET /api/v1/products?q={text}&page=1&per_page=10 — поиск товаров; GET /api/v1/brands?q={text} — поиск брендов. Здесь используется q, тогда как HTML /search/ ниже использует search. API опирается на существующую поисковую нормализацию и Manticore-индексы сайта; фильтры/сортировка используют Reindexer, детали товара и цена — Tarantool. Пагинация начинается с 1, per_page ограничен 100. При слишком широком пересечении сервер возвращает ошибку вместо неполного результата. Уточните запрос или категорию. MCP/A2A используют операции реестра, UCP — catalog/search с непрозрачным cursor. Контракт поиска.
Публичная форма
В header каждой HTML-страницы находится стандартная форма:
<form action="/search/" method="get" role="search">
<input name="search" type="search">
</form>
Публичный интерфейс:
GET https://vesremont.com/search/?search={url-encoded-text}
Используется параметр search, не q, s или query.
Поведение
- Пробельные символы нормализуются, значение обрезается по краям.
- Пустой запрос показывает страницу поиска без результатов.
- Результаты разделены на категории, бренды и товары.
- Максимум на серверной странице: 5 категорий, 5 брендов и 100 товаров.
- Если после объединения найден ровно один уникальный URL, сервер отвечает
302на найденную категорию, бренд или товар. - Страница не предоставляет публичной пагинации, сортировки или фасетов результатов.
- Ссылки результатов являются обычными
a[href].
Header также показывает AJAX-подсказки через внутренние /search_ajax/ endpoint. Это вспомогательный JS-интерфейс; для агента предпочтительна GET-форма /search/.