VM Yandex Search - Яндекс поиск для VirtueMart

Опубликовано: 30 Май, 2018
Обновлено: 19 Сентябрь, 2019
Категория: Расширения для VirtueMart 3
Комментариев: 101

В 2016 году Яндекс анонсировал свой новый сервис - Поиск для интернет-магазинов.

Поиск от Яндекса позволяет решить большинство самых распространенных проблем, связанных с поиском:

  • исправление ошибок
  • исправление опечаток
  • исправление неправильной раскладки
  • распознавание разных вариантов написания слов

Релевантность такого поиска на порядок выше в сравнении со стандартным поиском и любыми другими поисковыми расширениями.

Все преимущества новой технологии в коротком видео ниже.

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

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

Поиск от Яндекса будет интегрирован в virtuemart с помощью отдельного модуля, но сначала рассмотрим основные подготовительные шаги.

Создание нового поиска

В этом разделе описаны все шаги по добавлению нового поиска для сайта. Прочитать подробную инструкцию от Яндекса можно на этой странице.

Подтверждение прав на управление сайтом

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

Создание и размещение каталога товаров

Необходимо подготовить каталог товаров в формате YML. Этот формат используется, например, для Яндекс.Маркета.

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

Чтобы сгенерировать статичный xml файл с помощью бесплатного скрипта в файле /market/vm2_market.php замените

на

После генерации YML его нужно добавить на этой странице.

Яндекс быстро его проиндексирует и выведет всю информацию.

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

Адрес YML-файла - адрес к xml каталогу.

После добавления поиска он будет доступен на странице Мои поиски.

Подключение к API Яндекс.Поиска

Напомню, что с помощью данного API можно встраивать результаты поиска в стандартный шаблон сайта.

В кабинете разработчика нажмите кнопку Получить ключ.

Имя ключа — имя, которое отображается на странице Ваши API-ключи.

Сервис для подключения — выберите API Яндекс.Поиска для сайта.

В результате будет создан уникальный ключ авторизации для доступа к API Яндекс.Поиска.

Для каждого сайта нужно создать свой ключ.

Для подключения ключа к поиску на странице Мои поиски перейдите в настройки конкретного поиска и добавьте ключ во вкладке Выдача в JSON.

Модуль VM Yandex Search

VM Yandex Search  - это модуль для интеграции поиска по интернет-магазинам от Яндекса в virtuemart.

Модуль имеет 2 вкладки с настройками.

Основные настройки

API ключ - api ключ для поиска. О процессе его получения написано выше в статье.

ID поиска - его можно узнать на странице Мои поиски. Идентификатор указан в адресной строке страницы поиска.

Смысл остальных настроек понятен из названия.

Поисковые подсказки

Модуль позволяет автоматически выводить поисковые подсказки.

Кроме установки модуля в файле  /components/com_virtuemart/views/category/view.html.php перед

нужно добавить

для virtuemart 3.4.2 и выше этот код нужно добавить перед

Для правильного показа результатов поиска создайте скрытый пункт меню с типом Virtuemart Категория. В настройках выберите Верхний уровень категорий.

Во вкладке Virtuemart category view settings отключите показ категорий.

Протестировать модуль можно на рабочем сайте с 5000 товаров.

Демо Кейс по внедрению VM Yandex Search

Информация о модуле

Версия: 1.2

Последнее обновление: 19.09.2019

Дата создания: 30.05.2018

Совместимость с Joomla: 3.0.x - 3.9.x

Совместимость с Virtuemart: 3.0.x - 3.6.x

Стоимость: 1500р. 900р. (до 30.11.2019)

Бесплатные обновления в течение 12 месяцев.

Купить

101 комментарий
    DaN

    DaN

    Интересное решение.
    Вопрос
    - YML постоянно обновлять придется если добавился товар?
    или он служит только для активации
    - У нас IP Яндекса блокируют, как Ваш поиск себя будет вести в таком случае?
    Спсиабо

      admin

      admin

      Здравствуйте!

      После добавления товара yml нужно обновить. При следующем сканировании яндекс скачает новую версию и начнет учитывать товары из нее. Время последней проверки yml файла можно посмотреть в настройках поиска на странице Мои поиски.

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

      Попробуйте для теста поставить поиск со стандартным шаблоном от яндекса. Если он будет работать, то и при работе модуля по api проблем возникнуть не должно.

    izvarino

    Здравствуйте!
    Использую фильтр товаров MyExt, для которого уже создан пункт меню с родительской категорией.
    Можно будет как-нибудь сделать, чтоб эти два модуля обращались к разным пунктам меню?

      admin

      admin

      Здравствуйте!

      Не будет ошибкой если они будут обращаться к одной странице.

        izvarino

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

        Подскажите, не получается настроить поиск. Подсказки релевантные, а в результатах поиска все подряд товары показывает. Отключение Фильтров не помогло.

        И еще подскажите, как из подсказок убрать производителя? Можно ли это сделать, или это уже к Яндексу? Или по-другому файл формировать надо?

          admin

          admin

          Дело в том, что тогда при поиске у меня появляются оба модуля фильтра

          Пришлите ссылку на сайт.

          Подсказки релевантные, а в результатах поиска все подряд товары показывает.

          Ответил в соседнем комментарии.

          как из подсказок убрать производителя?

          Поиск осуществляется по всем данным о товаре, в том числе и по производителю. В подсказках информация о производителе не выводится, только название товара. Если у Вас выводится, значит неправильно сформирован xml файл. Пришлите ссылку на сайт.

            admin

            admin

            По производителю. У Вас ошибки в xml файле. По какой-то причине в названии товара присутствует имя производителя и не формируется ссылка на картинку товара. Если xml формировался с помощью бесплатного скрипта, то давайте перенесем обсуждение в его тему. Если стоит платный скрипт, то обратитесь в поддержку автора.

            По фильтру. Чтобы скрыть модули фильтров без правок кода установите компонент Advanced Module Manager. После этого в настройках модулей с фильтрами во вкладке Отображение по условиям активируйте поле URL и внесите туда vmsearch

            izvarino

            Делал файл с помощью этого скрипта:
            https://joomlaforum.ru/index.php?topic=198852.0
            Как перенести тему? Скопировать туда сообщение?
            По изображениям, похоже, ссылка на изображение формируется только если имя файла написано латиницей, а если кириллицей, то изображение не показывается в подсказках. С этим можно что-то сделать?

            admin

            admin

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

            izvarino

            Платный плагин решил все проблемы. В настройках и производителя убрал и транскодировал кириллицу.

            admin

            admin

            Хорошо. А какой именно плагин использовали?

            admin

            admin

            Рад, что все проблемы решились.

        izvarino

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

          admin

          admin

          В файле /components/com_virtuemart/views/category/view.html.php перед

          нужно добавить

          Вы точно добавили указанный код перед, а не после?

            izvarino

            Действительно, код был после, извините)

      MK Электро

      В моём случае тоже уже были пункты меню с родительской категорией. Причём там для этих пунктов уже было настроено наоборот - категории выводить, а товары не выводить.
      Решил ситуацию следующим образом:
      (само собой создал новый пункт меню с нужными настройками)
      в файле ../mkelektro/public_html/modules/mod_vm_yandex_search/tmpl/default.php (а лучше в своём шаблоне, в переопределении) вместо:
      $resultURL = JRoute::_('index.php?option=com_virtuemart&view=category&virtuemart_category_id=0', FALSE);
      написал: $resultURL = JRoute::_('index.php?Itemid=481', FALSE);
      где 481 - это ID нужного пункта меню.
      Всё работает хорошо.

      Admin, возможно, имеет смысл внести выбор пункта меню для результатов в настройки модуля.

        admin

        admin

        Спасибо за идею.
        Вышла новая версия модуля, в которой добавил данную настройку.
        Новую версию можно скачать в личном кабинете на сайте virtuemart.su

    izvarino

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

      admin

      admin

      Пришлите доступ к админке, доступ к сайту по ftp и ссылку на вопрос на admin@virtuemart.su, разберемся.

        izvarino

        Доступы выслал.
        Возник еще вопрос. На айпэде в сафари подсказки выпадают справа от формы поиска, а не под формой. Как это можно исправить?
        На айфоне при этом нормально.

          admin

          admin

          Все поправил, написал на почту.

    izvarino

    Здравствуйте!
    Не подскажете, можно ли как-нибудь отследить в Яндекс.Метрике переход по поисковой подсказке?

      admin

      admin

      Здравствуйте!

      Создайте новую цель javascrip-событие.
      В качестве идентификатора укажите, например, clickSearch.
      В файле /modules/mod_vm_yandex_search/tmpl/default.php замените

      на

      XXXXXX — номер вашего счетчика;

        izvarino

        Спасибо, получилось.

          admin

          admin

          Хорошо.

    SirPiter

    SirPiter

    Добрый день!
    У меня неверно работала функция "Показать все результаты поиска".
    Выдавалась страница, что ничего не найдено. И на ней не было стандартного поиска VM,
    Поменял в файле default.php название поля ввода с "vmsearch" на "keyword", чтобы поиск соответствовал тому, что у меня в VM.
    (index.php?option=com_virtuemart&keyword=слово&view=category)
    Joomla! 3.8.10, VirtueMart 3.2.14

      admin

      admin

      Здравствуйте!

      Не нужно ничего менять для того, чтобы выводилась стандартная форма результатов на странице поиска. Поиск от Яндекса работает отдельно и никак не связан со стандартным поиском virtuemart. Если в быстрый подсказках есть результаты, а при нажатии на кнопку Показать все результаты поиска ничего не показывается, то проблема в шаблоне virtuemart. Пришлите доступ к админке и ftp на admin@virtuemart.su, решим вопрос.

        SirPiter

        SirPiter

        Да. Все заработало.

        Хотя я так и не понял - почему. То ли переименование меню сработало, то ли отключение-включение SEO, то ли в результате всех манипуляций кеш основательно почистился.

        Спасибо.

          admin

          admin

          Рад, что проблема решилась.
          Скорее всего, проблема была в кеше.

    Ejov

    Добрый день, Владимир!
    Есть ли возможность в результатах поиска добавить стандартную сортировку - по цене, артикулу и т.д.?

      admin

      admin

      Здравствуйте!

      Нет, сортировка только по релевантности. В следующей версии модуля будет добавлена сортировка результатов поиска по цене.

    inst54ru

    inst54ru

    Доброго дня!
    inst54.ru
    Начните вводить набор. Не у всех есть картинка, хотя изображение есть у всех.
    Возможно это из-за того, что имя файла на русском. например
    Набор инструментов Berger BG141-1214. фото: images/stories/virtuemart/product/Набор 141 пр в ориг цвет_result.png. Может быть возможно что-нибудь сделать, не меняя все имена файлов ?

      inst54ru

      inst54ru

      ...по наборам перезалил фотки...
      для примера головки торцевые удлиненные

        inst54ru

        inst54ru

        не дождавшись ответа, перезалил все фотки с названием на английском!

          admin

          admin

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

    inst54ru

    inst54ru

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

      admin

      admin

      У Вас создано 2 пункта меню с типом Virtuemart Категория и верхним уровнем категории. Есть несколько вариантов:
      1. В настройках пункта меню Меню > Невимое меню > Каталог отключить показ категорий
      2. Удалить один из пунктов меню.

        inst54ru

        inst54ru

        сделал 1 вариант. не помогло

          admin

          admin

          Пришлите доступ к админке на admin@virtuemart.su, решим вопрос.

    mik-on

    здравствуйте.

    На странице с результатами поиска все работает хорошо, кроме момента, если выбрать "показывать по 150 товаров" - пустая страница. При этом все остальные варианты - все ок.

    Еще хочу написать о том, что модуль очень крутой! СПАСИБО! Не могу нарадоваться. Второй день пишу специально "криво" - все равно находит 🙂

      admin

      admin

      Здравствуйте!

      Для вывода на одной странице доступно максимум 100 товаров. Это ограничение связано с тем, что больше этого количества для одной страницы не отдает сам Яндекс.

        mik-on

        может, подскажите, а где можно отключить этот вариант из выпадающего списка. или сделать, например 100?

          admin

          admin

          Количество по умолчанию можно задать в настройках модуля в опции Количество на странице.
          Убрать показ 150 в выпадающем списке можно в Virtuemart > Настройки > Шаблоны в области Укажите последовательность разбиения на страницы для списка.

            mik-on

            СПАСИБО!!!

    izvarino

    Здравствуйте!
    После обновления шаблона Трендшоп поиск перестал выдавать релевантные результаты. В результатах поиска показывает все товары магазина.
    В поисковых подсказках все в порядке при этом.

      izvarino

      Разобрался) Поправил измененный файл.)

        admin

        admin

        Рад, что проблема решилась.

    juicy

    Подскажите, у меня выпадающий список появляется за меню и за блоками с товарами, изменение z-index не помогает.

      admin

      admin

      Пришлите ссылку на сайт, без этого что-то конкретное не получится посоветовать.

    Алексей

    Здравствуйте!
    Модуль несколько странно себя ведет.
    Некоторые слова он показывает нормально: например пины.
    Часть слов выдает некорректно.
    Пример: бусины, обниматели, швензы.
    При этом в Яндексе - проверка поиска -
    https://site.yandex.ru/catalogs/2336194/preview/
    Все хорошо.
    Подскажите, пожалуйста, как побороть эту проблему.

      admin

      admin

      Здравствуйте!

      Модуль не производит поиск, а только выдает результаты, которые отдает сервис Яндекса.
      Подождите некоторое время, возможно, все стабилизируется.
      Если проблема останется, то напишите в поддержку Яндекса

    Garmon85

    Отличный модуль, встал без глюков, немного допилил, прикрутил owl carousel, поучилось супер, короче Респект Админу!

      admin

      admin

      Спасибо за отзыв.

    TYMON_krot

    Подскажите, пожалуйста, ищет ли этот плагин по описанию товара? Например, у нас 70 000 товаров, заголовки у всех такого типа "Платье Х-4567" , "Пальто О-0890" . Будет ли данный поиск искать товар если у него в описании указано "Платье из шелка. Цвет: синий" , если пользователь введет "Платье синее"?

      TYMON_krot

      И как быстро Яндекс будет обновлять базу? За неделю у нас по 1-2 тыс. товаров добавляется

        admin

        admin

        За поиск товаров отвечают алгоритмы Яндекса, поэтому я точно не могу сказать про конкретный случай, но совершенно точно это будет самый лучший алгоритм поиска из всех.
        По опыту база обновляется очень быстро.

    МК Электро

    Здравствуйте. Рассматриваю Ваше расширение, чтобы приобрести. Интересует такой вопрос: поисковые подсказки и результаты поиска указывают только товары или категории тоже? Мне бы нужно, чтобы категории тоже были.

      admin

      admin

      Здравствуйте!

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

      На странице с результатами поиска показываются только товары.

    Archibald

    МК Электро,
    замечу что модуль хороший сделано все безукоризнно, однако api поиска у Яндекса довольно сырой и они особо не торопятся его дорабатывать. При большом количестве товаров есть вероятность, что будет выдавать не то что ожидается или не в том порядке.

      МК Электро

      Спасибо, что поделились. Думаю попробую тоже.

      Интересен такой момент: почитал об этом API (https://tech.yandex.ru/site/api/concepts/catalogue-docpage/#concept_2) и вижу там не только documents, но и categoryList в JSON результатах. Я подумал, что этим они отдают как раз категории. Я не так понял?
      Или просто этот модуль на это ещё не рассчитан?

        admin

        admin

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

      admin

      admin

      Спасибо за отзыв.
      Думаю, что со временем Яндекс доработает api, но даже в таком виде качество поиска Яндекса на порядок лучше встроенного поиска virtuemart.

    MK Электро

    Кажется, тут на хватает варианта для чисел 1, 21, 31, 121 и т.д. ("товар").

      MK Электро

      Как вариант:

      При желании и "найдено" тоже можно просклонять ("найден").

        admin

        admin

        Спасибо за найденную проблему.
        Поправил в новой версии модуля.

    yrygvay

    Доброго дня Владимир, планируется добавление возможности отображения спец/цен на товар в подсказках выборки поиска.
    В данный момент показывается основная цена на товар и часто отпугивает клиента, а скидка при этом 45 процентов (сейчас выход отключения вообще отображения цен)

      admin

      admin

      Здравствуйте!

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

    MK Электро

    Спасибо (!) за оперативно внесенные правки.

    Ещё парочка пожеланий, с Вашего позволения:

    - возможность выбора суффикса css класса модуля
    (добавить в xml:

    )

    -
    $doc->addStyleSheet(JURI::base().'/modules/mod_vm_yandex_search/assets/vm_yandex_search.css');
    тут кажется лишний слеш перед modules

    - возможно в view.html.php лучше добавлять не require, а include. Вдруг модуль потом удалят, у тут строчку убрать забудут, выйдет fatal error )

    В целом доволен Вашим расширением, спасибо!

      admin

      admin

      Согласен, require можно заменить на include.
      Подключение стилей поправил в архиве с новой версией.
      Спасибо за дополнения, рад, что модуль пригодился в работе.

    webms

    у меня 6 сайтов, каждому покупать модуль или 1 раз достаточно?

      admin

      admin

      Модуль можно использовать на неограниченном количестве сайтов.

    webms

    Спасибо еще раз за модуль, допелил немного под себя и все шикарно работает.
    Но заметил что Яндекс обновляет файл XML два раза в день, получается измененное наличие или цена не всегда соответствует.

    Можно как то из виртумарта брать эти данные?, если да то как?
    За ранее спасибо.

      admin

      admin

      Если для генерации xml файла используется vm2_market.php, можно убрать в нем изменения на генерацию статичного файла

      В этом случае каждый раз при обращении будет формироваться xml с актуальными данными.

    webms

    это понятно, давно убрано
    я про то что Яндекс файл обрабатывает примерно раз в день (даже тех.поддержка подтвердила, чаще сказали не планируют)

    Но я обратил внимание что два раза, в ~11 часов и ~23 часа

    Вот, хотелось бы как то цены в подсказке вытаскивать с сайта, так как она будет актуальной на момент запроса

      admin

      admin

      Цена в подсказке берется из json, который отдает Яндекс.
      Если цену нужно брать из базы, то потребуется доработка, напишите на admin@virtuemart.su

        webms

        Написал:)
        Я думаю это будет очень важным обновлением для всех. Спасибо за ранее.

    Алексей

    Не обязательно. Меня, например, удивляет, что вам не хватает частоты перепроверок Яндексом 2 раза в день. Неужели у Вас цены меняются чаще

      webms

      да, не хватает.
      Мы лидирующая компания в МСК по нашей тематике, цены постоянно проверяем и по маркету ориентируемся https://c2n.me/42KS2oS
      Плюс я немного модернизировал поиск, и некоторые данные я бы хотел взять с sql (наличие например) https://clip2net.com/s/42KSmL0

        MK Электро

        Немного офтоп:
        Не поделитесь, как именно постоянно проверяете цены конкурентов?
        Тоже размышляю над этим.

    mmag

    Можно как-то управлять порядком вывода товаров в поиске? Часто выводит не оптимально с точки зрения покупок...

      admin

      admin

      Порядок формируется яндексом по наиболее релевантным результатам.
      Что именно Вы хотите изменить?

        mmag

        Вперед товары со скидкой и в наличии, потом остальное. Вероятно, через яндекс это сложно осуществить... Сортировку по цене вы вроде бы уже обещали в будущем.

        mmag

        кстати в видео-презентации яндекса упоминаются разные способы сортировки поиска. Нельзя ли их использовать?

          admin

          admin

          Можно ограничить результаты поиска только товарами в наличии если в xml файле идет выгрузка наличия.
          Для настройки, пожалуйста, пришлите доступ к админке и ftp на admin@virtuemart.su.

            mmag

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

      Алексей

      При большом желании можно )
      Мне, как заядлому сеошнику, было трудно от этого удержаться ))
      И реализовал-таки.
      Способ получился не идеальный, но для практического использования очень даже хороший.

      А Яндекс тут реально сортирует не ахти. Не так как в своей поисковой выдаче. Это и не удивительно. Ведь он не получает обратной связи о поведенческих факторах. Что из результатов пользователю действительно подошло, а что он закрыл и пошел искать дальше.

        mmag

        Не поделитесь решением?

          Алексей

          Общедоступно - пожалуй, нет. В частном порядке, если интересно, за скромное вознаграждение, готов поделиться (вложил в это немало своих усилий). Почта: mail@inform-resource.ru

    mmag

    Хорошо бы в модуле предусмотреть задержку на подсказки. А то набираешь слово, а он еще на первые буквы подсказки выводит, нерелевантные уже набранному.

      admin

      admin

      Добавлю в новой версии модуля. Новая версия выйдет в этом месяце.

    admin

    admin

    Вышла новая версия с поддержкой поиска по товарам в наличии и настройкой количества символов для показа поисковых подсказок.

    Скачать новую версию можно в личном кабинете.

      mmag

      Хорошо бы еще сортировку результатов сделать. Фильтр не то, его можно и в yml сделать. Нужна сортировка по наличию, по цене, по скидке...

    nezleek

    На Joomla 2.5 и Virtuemart 2 подойдет?

      admin

      admin

      После небольших правок должен заработать, но нет под рукой этих версий.
      Если пришлете на admin@virtuemart.su доступ к админке и ftp, то попробую поставить.

    sportmag52-shop

    Здравствуйте, оплатил модуль, очень жду его установить и попробовать

      admin

      admin

      Здравствуйте!

      Спасибо за покупку, ссылку отправил.

        v.korchagin.p

        Что то у меня не получается в личном кабинете найти(

          sportmag52-shop

          все норм, сам фигню сделал спасибо!

            admin

            admin

            Хорошо.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*
Для вставки кода заключите его в теги [php] [/php]
*

Оплата без комиссии

Доступ к модулю будет открыт в личном кабинете на сайте virtuemart.su в течении 1-3 часов после оплаты.

Если у Вас еще нет учетной записи, пожалуйста, зарегистрируйтесь.

×

С 15-18 июня admin в отпуске.

Ответы на все вопросы и ссылки на товары будут присланы 19 июня.

Спасибо за понимание и хороших выходных.

×