Jump to content

Полноценный поиск товаров в магазине от Яндекса (с морфологией, автоисправлениями и пр.)


Recommended Posts

Мы все знаем, что одно из самых узких мест в Simpla является ужасный поиск товаров. Но есть решение, которое может все изменить.

 

Недавно команда Яндекса выпустила в бетатестирование новый полноценный поиск для интернет магазинов. https://tech.yandex.ru/sitesearch/shopsearch/

 

Он понимает запросы в свободной форме, исправит ошибки и опечатки, выводит подсказки, разберается с разными вариантами написания названий. Сам результат можно отфильтровать по категории, по наличию в продаже, по ценовому диапазону.

 

Можно быстро и легко подключить страницу с поиском, но стилизованную яндексом. Для этого надо добавить пару скриптов на сайт и скормить файлик с YML каталогом.

 

 

Самое интересное: с помощью Яндекс API можно получать сырые JSON данные, которые можно как угодно стилизовать в своем магазине.

 

Предлагаю обсудить возможности этого поиска.

Link to post
Share on other sites

Ну обычный (с JS кодом) попробовал,

получается он аяксом делает автоподстановку в форме,потом делает переадресацию на страницу, указанную в настрйоках поиска в кабинете с урлом вида: 

 

?searchid=<ID_ПОИСКА>&text=Джинсы%2031%2C%2034#p=2&priceLow=&priceHigh=&categoryId=25

и если на той странице стоит еще 1 код, то он выводит в нем результаты на основании GET-параметров выше...

 

Что не понравилось: в виджете результатов он вываливает полноценный огромный фильтр как в Яндекс маркете, с категориями и свойствами, у меня пустой фид, но вот он что вывел:

https://yadi.sk/i/wLLfnPS33QcnZD

 

 

А вот JSON-реализацией я займусь конечно

 

Чтобы поиск был корректным — нужно максимально детально сделать фид

Edited by Maksclub
Link to post
Share on other sites

Maksclub, ого! Даже не знаю как выразить свой восторг.

 

По поводу фида. Стандартный фид в принципе имеет в себе все необходимое, кроме характеристик. Опять же все подряд характеристики туда пихать не очень рационально (их может быть очень много).

 

Как думаете на счет такого варианта:

 

Cразу после описания в <description> или в тег <param>  выводим те характеристики, которые отмечены в фильтре (значит самые важные).

 

Например вот так:

    if (!empty($features[$p->product_id])) {
        foreach($features[$p->product_id] as $feature) {
            print "
            <param name='".htmlspecialchars($feature->name)."'>".htmlspecialchars($feature->value)."</param>
            ";
        }
    }

 

Еще наверное бренд хорошо выводить

 

<vendor>Adidas</vendor> 

 


 

Link to post
Share on other sites

Согласен. Открываются невиданные возможности фильтрации результатов поиска.

По поводу бренда. Наверное хорошо и артикул туда закинуть.

 

// Товары
$simpla->db->query("SET SQL_BIG_SELECTS=1");
// Товары
$simpla->db->query("SELECT v.price, v.id as variant_id, p.name as product_name, v.name as variant_name, p.url, p.annotation, pc.category_id, i.filename as image, b.name as brand, b.url as brand_url
FROM __variants v LEFT JOIN __products p ON v.product_id=p.id

LEFT JOIN __products_categories pc ON p.id = pc.product_id AND pc.position=(SELECT MIN(position) FROM __products_categories WHERE product_id=p.id LIMIT 1)
LEFT JOIN __images i ON p.id = i.product_id AND i.position=(SELECT MIN(position) FROM __images WHERE product_id=p.id LIMIT 1)
LEFT JOIN __brands b ON p.brand_id = b.id
WHERE p.visible AND (v.stock >0 OR v.stock is NULL) GROUP BY v.id");
print "<offers>
";

 

<vendor>".htmlspecialchars($p->brand)."</vendor>
".($p->sku ? '<vendorCode>'.$p->sku.'</vendorCode>' : '')."
Link to post
Share on other sites

Maksclub, вот это оперативность =)

 

Файл фида, отдающий максимальную информацию в поиск, включая все свойства.

 

Его также можно использовать для выгрузки на яндекс маркет.

<name>Наименование товара</name>

<vendor>Бренд</vendor>

<vendorCode>Артикул</vendorCode>

<description>Описание $p->description : $p->annotation<description/>

<param name="Свойство">значение свойства</param>

<price>цена</price>

<oldprice>старая цена</oldprice>

yandex-search.php

Edited by Enhill
Link to post
Share on other sites

Файл фида, отдающий максимальную информацию в поиск, включая все свойства.

 

Его также можно использовать для выгрузки на яндекс маркет.

 

вчера уже доработал и переиндексировал пару раз:)

Link to post
Share on other sites

Ну ты красавчек!

Статью позволишь дублянуть у себя в блоге?

Или вообще напиши сам как автор http://simpla-addons.org/add

 

да можешь дублировать :) еще правда не до конца доделал реализацию... UI доделать нужно, обработку ошибок... на самом деле я делал часа 4, ты бы и за 1 справился

Edited by Maksclub
Link to post
Share on other sites

да можешь дублировать :) еще правда не до конца доделал реализацию... UI доделать нужно, обработку ошибок...

Рекомендую добавить кнопку "в корзину" на подобии розетки.
Link to post
Share on other sites
  • 1 year later...

Подскажите, как можно в наименовании товара добавить категорию этого товара:
 

<name>Категория товара, Наименование товара</name>

 

Edited by FDA
Link to post
Share on other sites

 

Подскажите, как можно в наименовании товара добавить категорию этого товара:

 

<name>Категория товара, Наименование товара</name>

 

 

если стандартными методами без доработки то на странице товара так

 

{foreach $category->path as $cat}

     {$cat->name|escape}

    {/foreach}{$product->name|escape}

Link to post
Share on other sites

если стандартными методами без доработки то на странице товара так

 

{foreach $category->path as $cat}

     {$cat->name|escape}

    {/foreach}{$product->name|escape}

Так пробовал, не работает.

Речь идет о файле yandex-search.php  либо, что тоже самое, yandex.php

Edited by FDA
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...