Что такое YML и где его получить?
YML (Yandex Market Language) — это стандарт, разработанный Яндексом для принятия и размещения информации в базе данных Яндекс.Маркета.
Формат оказался настолько удобным, что теперь используется Яндексом повсеместно, когда речь заходит о базе данных товаров. Чтобы получить YML-файл для интернет-магазина uCoz, пройдите этот урок. Вам потребуется иметь ссылку на YML-файл. Она выглядит следующим образом: http://example.com/export.yml
Как работает поиск по YML для магазина?
Преимущество поиска по YML перед обычным поиском от Яндекса в том, что не нужно ждать полной индексации сайта. Все товары описаны в YML-файле. Кроме того, они четко структурированы, что позволяет отобразить полную информацию о товаре. Например, так:
Другие преимущества:
- исправляет неправильную раскладку клавиатуры
- исправляет опечатки и ошибки
- распознает варианты написания
Создание поиска по каталогу товаров
Давайте создадим поиск по своему магазину. Для этого перейдите по ссылке. Выполните вход в аккаунт Яндекса, если не сделали этого ранее.
Теперь создайте новую страницу на своем сайте. Пока оставьте ее содержимое пустым. Укажите адрес страницы и ссылку на YML файл.
Нажмите на кнопку «Сохранить». Должно появится сообщения «Каталог в очереди на проверку».
Размещение поиска на сайте
Выберите из меню слева пункт «Код для вставки на сайт». Откроется страница с кодом, который нужно установить к себе на сайт:
- Код формы поиска устанавливаем в то место, где раньше была наша форма.
- Код результатов поиска устанавливаем на страницу, которую создавали чуть ранее.
Теперь нужно дождаться окончания проверки файла и поиском можно пользоваться.
Выдача в JSON
В случаях, когда представленный вид результатов поиска не подходит, используйте возможность получения выдачи в JSON. Нужно получить API ключи и изучить документацию.
Для запроса к поиску используется HTTP-метод GET. Параметры запроса передаются в его URI:
https://catalogapi.site.yandex.net/v1.0?apikey=c24a2422-ac83-4c9f-98a6-d500b7d164a2&text=сотовый%20телефон&searchid=0000000&page=0&avaliable=true&price_low=0&price_high=1000
Где:
- apikey — API ключ, который вы получили ранее;
- text — поисковый запрос
- searchid — ID созданного поиска. Можно посмотреть в адресной строке на сайте Яндекс.Поиск для сайта;
- page — номер страницы результатов поиска;
- avaliable — товар в наличии
- price_low и price_high — фильтры по цене
Также можно задать способ сортировки и в какой категории искать.
После отправки запроса, придет ответ, который выглядит следующим образом:
{
"documents" : [ {
"name" : "Крекер с кунжутом \"Lotte Fitness\", 88г Х 2шт",
"description" : "Крекер с кунжутом \"Lotte Fitness\". Состав: Пшеничная мука, сахар, растительное масло, гидрированное растительное масло (соевое), кокосовая мука, сгущенное молоко, жареный черный кунжут, разрыхлитель (гидрокарбонат аммония), сгущенные молочные сливки, пептизированная мука (крупа), соль поваренная пищевая, масло, яйца, мука жареной черной сои, разрыхлитель (гидрокарбонат натрия), миндальная пудра, паста из черного кунжута, эмульгатор (соевый лецитин), искусственный молочный ароматизатор, энзим, пудра корицы, регулятор кислотности (бисульфат натрия). Срок годности: 12 мес.",
"url" : "/shop/43054/desc/kreker-s-kunzhutom-lotte-fitness-88g",
"categoryId" : 7872,
"categoryParents" : [ 7298, 7872 ],
"price" : 125.37,
"currencyId" : "RUB",
"vendor" : "\"Лотте Конфекшнери Ко.\" (респ. Корея)",
"snippet" : "http://avatars.mds.yandex.net/get-pds-yml/121153/2a000001562a9f91990fff11e391e8590253/snippet",
"mobileSnippet" : "http://avatars.mds.yandex.net/get-pds-yml/121153/2a000001562a9f91990fff11e391e8590253/mobile",
"available" : true,
"oldPrice" : null
}, {
"name" : "Соус салатный \"Kikkoman\" с кунжутом, 250 мл",
"description" : "Соус салатный \"Kikkoman\" с кунжутом. Состав: вода, рисовое масло, сахар, соевый соус (вода, соевые бобы, пшеница, соль), спиртовой уксус, кунжут (6,5%), кунжутное масло (6,0%), экстракт дрожжей, соль, тростниковая сахарная меласса, специи (включительно горчица), загуститель: модифицированный кукурузный крахмал. Идеально к овощам, мясу, птице. Срок годности: 12 мес.",
"url" : "/shop/42797/desc/sous-salatnyj-kikkoman-s-kunzhutom-250-ml",
"categoryId" : 11738,
"categoryParents" : [ 7301, 11738 ],
"price" : 456,
"currencyId" : "RUB",
"vendor" : "\"Kikkoman Europe\" (Нидерланды)",
"snippet" : "http://avatars.mds.yandex.net/get-pds-yml/49925/2a000001562acd520415bdc41bb0c4218bd7/snippet",
"mobileSnippet" : "http://avatars.mds.yandex.net/get-pds-yml/49925/2a000001562acd520415bdc41bb0c4218bd7/mobile",
"available" : true,
"oldPrice" : null
},
...
найденные товары
...
{
"id" : 7299,
"value" : "МОЛОЧНЫЕ ИЗДЕЛИЯ",
"parentId" : 0
}, {
"id" : 7303,
"value" : "ДЕТИШКАМ (ПИТАНИЕ И УХОД)",
"parentId" : 0
}, {
"id" : 7301,
"value" : "СПЕЦИИ, ПРИПРАВЫ, СОУСЫ",
"parentId" : 0
},
...
список категорий
...
],
"misspell" : {
"reask" : null,
"misspell" : null
},
"page" : 0,
"perPage" : 10,
"docsTotal" : 35
}
Остается только разобрать и вывести ответ.