Перейти к содержанию
Официальный форум поддержки Simpla

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


Рекомендуемые сообщения

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

 

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

 

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

 

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

 

 

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

 

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

Ссылка на сообщение
Поделиться на другие сайты

я так понимаю речь про JSON формат с реализацией?

Я не вникал в доки, какой сделаешь отпишись. Интересно.
Ссылка на сообщение
Поделиться на другие сайты

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

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

 

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

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

 

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

https://yadi.sk/i/wLLfnPS33QcnZD

 

 

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

 

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

Изменено пользователем Maksclub
Ссылка на сообщение
Поделиться на другие сайты

Я короче сделал поиск через JSON Яндекса...

оформляю всплывающие подсказки...

Изменено пользователем Maksclub
Ссылка на сообщение
Поделиться на другие сайты

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> 

 


 

Ссылка на сообщение
Поделиться на другие сайты

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

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

 

// Товары
$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>' : '')."
Ссылка на сообщение
Поделиться на другие сайты

Если кому нужен, обращайтесь :)

Поиск Яндекса для интернет-магазинов

 

ezgif-2-3094ae67c0.gif

Изменено пользователем Maksclub
Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

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

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

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

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

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

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

<price>цена</price>

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

yandex-search.php

Изменено пользователем Enhill
Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

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

Ссылка на сообщение
Поделиться на другие сайты

FIX

Добавлен вывод изображения 100х100 в фид.

yandex-search.php

Изменено пользователем Enhill
Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

Ссылка на сообщение
Поделиться на другие сайты

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

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

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

 

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

Изменено пользователем Maksclub
Ссылка на сообщение
Поделиться на другие сайты

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

Рекомендую добавить кнопку "в корзину" на подобии розетки.
Ссылка на сообщение
Поделиться на другие сайты

хм, отличная идя кстати, спасибо :)

Ну тогда и цену тоже + старая цена)

Я это уже давно сделал для себя, пока ты про поиск не написал.

Ссылка на сообщение
Поделиться на другие сайты
  • 1 год спустя...

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

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

 

Изменено пользователем FDA
Ссылка на сообщение
Поделиться на другие сайты

 

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

 

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

 

 

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

 

{foreach $category->path as $cat}

     {$cat->name|escape}

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

Ссылка на сообщение
Поделиться на другие сайты

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

 

{foreach $category->path as $cat}

     {$cat->name|escape}

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

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

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

Изменено пользователем FDA
Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...